Ce
Notre RFC décrit donc le
La section 2 donne les principes du SMI : séparation de la
description des objets et du protocole d'accès (c'était nécessaire à
l'époque, pour les raisons politiciennes qu'explique bien l'un des
auteurs du
Un autre principe important, est celui de la simplicité. Bien qu'on
puisse se demander s'il est vraiment atteint, il faut se rappeler que
les propositions concurrentes, à l'époque, étaient bien pires. Le RFC
note avec modestie qu'on ne sait pas encore bien maitriser la gestion
des réseaux et qu'il faut donc éviter de tout figer par des normes
trop strictes (et, effectivement, en 2010, la question est toujours
ouverte, comme le montre le
Et, pour ceux qui s'intéressent à l'histoire, outre l'excellent
livre de Rose déjà cité, il y a les
Avec la section 3, on en arrive au concret : qu'est-ce qu'une MIB
et qu'est-ce qu'on met dedans ? La MIB, écrite en
internet OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) 1 }
et les objets officiels sont sous le sous-arbre
% snmpwalk -v 1 -O n -c tressecret 192.0.2.68 1.3.6.1.2.1.2.2.1.8
.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: down(2)
.1.3.6.1.2.1.2.2.1.8.4 = INTEGER: down(2)
Sans
% snmpwalk -v 1 -c tressecret 192.0.2.68 1.3.6.1.2.1.2.2.1.8
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = INTEGER: down(2)
IF-MIB::ifOperStatus.4 = INTEGER: down(2)
Si
L'objet a aussi une syntaxe (section 3., par exemple
ifOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current operational state of the interface.
The testing(3) state indicates that no operational
packets can be passed."
::= { ifEntry 8 }
Notre RFC définit aussi des types à partir de ces types primitifs,
types qui pourront être utilisés par toutes les MIB. C'est le cas de :
Un objet a enfin un
encodage sur le câble (section 3.3) car ASN.1 ne spécifie pas comment les objets
doivent être
La section 4 donne les informations qui doivent être indiquées lors
de la définition d'une classe d'objets (comme
identOpSys OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..40))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the type of operating system in use.
In addition to identifying an operating system,
each assignment made for this purpose also
(implicitly) identifies the textual format and
maximum size of the corresponding identUserid and
identMisc objects.
The legal values for the `indentOpSys' strings
are those listed in the SYSTEM NAMES section of
the most recent edition of the ASSIGNED NUMBERS
RFC [8]."
::= { identEntry 2 }
Toutes les définitions de ce RFC, en ASN.1, sont rassemblées dans la section 6.
Tiens,