Groupe de travail Réseau	M. Rose, Performance Systems International	
Request for Comments:  1155	K. McCloghrie,  Hughes LAN Systems	
STD 16	mai 1990	
RFC rendue obsolète : RFC 1065	Traduction Claude Brière de L’Isle	

Structure et identification des informations de gestion pour les internets fondés sur TCP/IP

Table des Matières

1. Statut du présent mémoire	1
2. Introduction	2
3. Structure et identification des informations de gestion	2
3.1 Noms	3
3.2 Syntaxe	4
3.3 Codages	5
4. Objets gérés	5
4.1 Lignes directrices pour les noms d’objet	6
4.2 Types et instances d’objet	6
4.3 Macros pour les objets gérés	7
5. Extensions à la MIB	8
6. Définitions	9
7. Remerciements	11
8. Références	11

1.	Statut du présent mémoire

La présente RFC est une nouvelle livraison de la RFC1065, avec un "Statut du présent mémoire" modifié, plus quelques corrections typographiques mineures. Le contenu technique du document est inchangé par rapport à la RFC1065.

Le présent mémoire fournit les définitions communes pour la structure et l’identification des informations de gestion pour les internets fondés sur TCP/IP. En particulier, conjointement avec les mémoires associés qui décrivent la base d’informations de gestion ainsi que le protocole de gestion de réseau, ces documents fournissent une architecture et un système simple et fonctionnel pour la gestion des internets fondés sur TCP/IP et en particulier, l’Internet.

Le présent mémoire spécifie un protocole standard pour la communauté de l’Internet. Son statut est "Recommandé". Les mises en œuvre TCP/IP dans l’Internet qui sont gérables par le réseau sont invitées à adopter et mettre en œuvre la présente spécification.

Le Bureau des activités de l’Internet recommande que toutes les mises en œuvre IP et TCP soient gérables par le réseau. Cela implique la mise en œuvre de la MIB Internet (RFC1156) et d’au moins un des deux protocoles recommandés de gestion SNMP (RFC1157) ou CMOT (RFC1095). Il devrait être noté que pour l’instant , SNMP est une norme de l’Internet à part entière et que CMOT est un projet de norme. Voir aussi dans les RFC des exigences pour les hôtes et les passerelles des informations plus spécifiques sur l’applicabilité de cette norme.

Prière de se référer à la plus récente édition de la RFC "Normes officielles des protocoles de l’IAB" pour les informations en cours sur l’état et le statut des normes de protocole de l’Internet.

La distribution du présent mémoire n’est soumise à aucune restriction.

2.	Introduction

Le présent mémoire décrit les structures communes et le schéma d’identification pour la définition des informations de gestion utilisées pour la gestion des internets fondés sur TCP/IP. Il comporte des descriptions d’un modèle d’information d’objet pour la gestion de réseau ainsi qu’un ensemble de types génériques utilisés pour décrire les informations de gestion. Les descriptions formelles de la structure sont données à l’aide de la notation de syntaxe abstraite n° 1 (ASN.1, Abstract Syntax Notation One) [1].

Le présent mémoire s’occupe largement des préoccupations organisationnelles et de politique administrative : il ne spécifie pas les objets qui sont gérés, ni les protocoles utilisés pour gérer ces objets. Ces questions sont traitées par deux documents associés : l’un qui décrit la base d’informations de gestion (MIB, Management Information Base) [2], et l’autre qui décrit le protocole simple de gestion de réseau (SNMP, Simple Network Management Protocol) [3].

Le présent mémoire se fonde en partie sur le travail du Groupe de travail de l’ingénierie de l’Internet (IETF), et en particulier sur la note de travail intitulée "Structure et identification des informations de gestion pour l’Internet" [4]. Le présent mémoire utilise une structure d’articulation dérivée de cette note, mais en diffère d’une façon très significative : cette note se focalise entièrement sur l’utilisateur de la gestion de réseau de style OSI. Comme telle, elle ne convient pas pour l’utilisation avec SNMP.

Le présent mémoire essaye d’atteindre deux objectifs : la simplicité et l’extensibilité. Tous deux sont motivés par un souci commun : bien que la gestion des internets fondés sur TCP/IP ait été un sujet d’étude depuis un certain temps, les auteurs n’ont pas le sentiment que sa compréhension en profondeur ait été achevée. Plus crûment, nous pensons que les expériences précédentes, bien qu’elles aient donné un aperçu de problèmes à la communauté, ne sont pas concluantes. En développant une SMI simple, on impose un nombre minimal de contraintes aux approches potentielles futures ; de plus, en développant une SMI extensible, on maximise les approches potentielles disponibles pour l’expérimentation.

On estime que le présent mémoire et ses deux compagnons se conforment aux lignes directrices établies par la RFC1052, "Recommandations de l’IAB pour le développement des normes de gestion de réseau de l’Internet" [5] et la RFC 1109, "Rapport du second groupe ad hoc de révision de la gestion de réseau" [6]. En particulier, on estime que le présent mémoire, conjointement avec le mémoire qui décrit la base d’informations de gestion, fournit une base solide pour la gestion de réseau de l’Internet.

3.	Structure et identification des informations de gestion

On accède aux objets gérés via une base de données d’informations virtuelle, appelée base d’informations de gestion ou MIB. Les objets dans la MIB sont définis à l’aide de la notation de syntaxe abstraite n° 1 (ASN.1, Abstract Syntax Notation One) [1].

Chaque type d’objet a un nom, une syntaxe, et un codage. Le nom est représenté de façon univoque comme un IDENTIFIANT D’OBJET. Un IDENTIFIANT D’OBJET est un nom alloué de façon administrative. Les politiques administrative utilisées pour allouer les noms sont exposées plus loin.

La syntaxe pour un objet type définit la structure abstraite des données correspondant à cet objet type. Par exemple, la structure d’un objet type donné pourrait être un ENTIER ou une CHAINE D’OCTETS. Bien qu’en général, on doive permettre que toute construction ASN.1 soit disponible pour être utilisée à la définition de la syntaxe d’un objet type, le présent mémoire restreint délibérément les constructions ASN.1 qui peuvent être utilisées. Ces restrictions ne sont faites que par souci de simplicité.

Le codage d’un objet type est simplement la façon dont les instances de cet objet type sont représentées en utilisant la syntaxe type de l’objet. Implicitement liée à cette notion de la syntaxe et du codage d’un objet est la façon dont l’objet est représenté lorsqu’il est transmis sur le réseau. Le présent mémoire spécifie l’utilisation des règles de codage de base de l’ASN.1 [7].

Il sort du domaine d’application du présent mémoire de définir la MIB utilisée pour la gestion de réseau ou le protocole de gestion de réseau. Comme mentionné plus haut, ces tâches appartiennent aux documents associés. Le présent mémoire essaye de minimiser les restrictions relevant de ces documents compagnons de façon à en maximiser la généralité. Cependant, dans certains cas, des restrictions ont été faites (par exemple, la syntaxe qui peut être utilisée lors de la définition des types d’objet dans la MIB) afin d’encourager un style particulier de gestion. Des éditions futures du présent mémoire pourront lever ces restrictions.

3.1	Noms
Les noms servent à identifier les objets gérés. Le présent mémoire spécifie les noms qui sont hiérarchiques par nature. Le concept de IDENTIFIANT D’OBJET sert à modéliser cette notion. Un IDENTIFIANT D’OBJET peut être utilisé pour des besoins autres que de nommer les types d’objet géré ; par exemple, chaque norme internationale a un IDENTIFIANT D’OBJET qui lui est alloué pour les besoins de l’identification. En bref, les IDENTIFIANT D’OBJET sont un moyen pour identifier un objet, indépendamment de la sémantique associée à l’objet (par exemple, un objet du réseau, un document de normalisation, etc.)

Un IDENTIFIANT D’OBJET est une séquence d’entiers qui traverse un arbre global. L’arbre comporte une racine connectée à un certain nombre de nœud étiquetés via des branches. Chaque nœud peut à son tour avoir des enfants à lui qui sont étiquetés. Dans ce cas, on peut appeler le nœud un sous-arbre. Ce processus peut continuer jusqu’à un niveau de profondeur arbitraire. Centrale pour la notion de IDENTIFIANT D’OBJET est la compréhension que le contrôle administratif de la signification attribuée aux nœuds peut être délégué quand on traverse l’arbre. Une étiquette est un appariement d’une brève description textuelle et d’un entier.

Le nœud racine lui-même n’est pas étiqueté, mais il a au moins trois enfants directement sous lui : un nœud est administré par l’Organisation mondiale de normalisation (ISO), avec l’étiquette iso(1) , un autre est administré par le Comité consultatif international du télégraphe et du téléphone, avec l’étiquette ccitt(0) ; et le troisième est administré conjointement par l’ISO et le CCITT, joint-iso-ccitt(2).

Sous le nœud iso(1), l’ISO a désigné un sous-arbre à l’usage des autres organisations (inter)nationales, org(3). Des nœuds fils présents, deux ont été alloués à l’Institut national américain pour les normes et les technologies (NIST). Un de ces sous-arbres a été transféré par le NIST au Département américain de la défense, dod(6).

Au moment de la rédaction de ce texte, le DoD n’a pas indiqué comment il gère son sous-arbre d’IDENTIFIANT D’OBJET. Le présent mémoire suppose que le DoD allouera un nœud à la communauté Internet, pour qu’il soit administré par le bureau des activités de l’Internet (IAB, Internet Activities Board) comme suit :

IDENTIFIANT D’OBJET internet	::= { iso org(3) dod(6) 1 }

C’est à dire que le sous-arbre Internet des IDENTIFIANT D’OBJET commence par le préfixe : 1.3.6.1.

Le présent mémoire, en tant que norme approuvée par l’IAB, spécifie maintenant la politique selon laquelle est administré ce sous-arbre des IDENTIFIANT D’OBJET. Au départ, quatre nœuds sont présents :

directory	IDENTIFIANT D’OBJET	::= { internet 1 }	
mgmt	IDENTIFIANT D’OBJET	::= { internet 2 }	
experimental	IDENTIFIANT D’OBJET	::= { internet 3 }	
private	IDENTIFIANT D’OBJET	::= { internet 4 }	

3.1.1	Directory

Le sous-arbre directory(1) (répertoire) est réservé à une utilisation par un futur document qui expose comment le répertoire OSI pourra être utilisé dans l’Internet.

3.1.2	Mgmt

Le sous-arbre mgmt(2) (gestion) est utilisé pour identifier les objets qui sont définis dans les documents approuvés par l’IAB. L’administration du sous-arbre mgmt(2) est déléguée par l’IAB à l’Autorité d’allocation des numéros de l’Internet (IANA, Internet Assigned Numbers Authority) pour l’Internet. Comme les RFC qui définissent de nouvelles versions de la base d’information de gestion standard de l’Internet sont approuvées , il leur est alloué un IDENTIFIANT D’OBJET par l’IANA pour identifier les objets définis par le présent mémoire.

Par exemple, la RFC qui définit la MIB standard Internet initial se verrait allouer le numéro de document de gestion 1. Cette RFC utiliserait l’IDENTIFIANT D’OBJET { mgmt 1 } ou 1.3.6.1.2.1 pour définir la MIB Internet standard.

La génération de nouvelles versions de la MIB Internet standard est un processus rigoureux. La Section 5 du présent mémoire décrit les règles utilisées pour la définition d’une nouvelle version.

3.1.3	Experimental
Le sous-arbre experimental(3) est utilisé pour identifier les objets utilisés dans les expérimentations de l’Internet. L’administration du sous-arbre experimental(3) est déléguée par l’IAB à l’IANA.

Par exemple, un expérimentateur pourrait recevoir le numéro 17, et aurait l’IDENTIFIANT D’OBJET { experimental 17 } ou 1.3.6.1.3.17 disponible pour son usage.

Au titre du processus d’allocation, l’autorité d’allocation des numéros de l’Internet peut formuler des exigences sur la façon d’utiliser ce sous-arbre.

3.1.4	Private
Le sous-arbre private(4) est utilisé pour identifier des objets définis unilatéralement. L’administration du sous-arbre private(4) est délégué par l’IAB à l’Autorité d’allocation des numéros de l’Internet pour l’Internet. Au départ, ce sous-arbre a au moins un fils :

IDENTIFIANT D’OBJET enterprises ::= { private 1 }

Le sous-arbre enterprises(1) est utilisé, entre autres choses, pour permettre aux entités qui fournissent des sous-systèmes de réseautage d’enregistrer les modèles de leurs produits.

À réception d’un sous-arbre, l’entreprise peut, par exemple, définir de nouveaux objets de MIB dans ce sous-arbre. De plus, il est vivement recommandé que l’entreprise enregistre aussi ses sous-systèmes de réseautage dans ce sous-arbre, afin de fournir un mécanisme non ambigu d’identification à utiliser dans les protocoles de gestion. Par exemple, si l’entreprise "Flintstones, Inc." produit des sous-systèmes de réseautage, elle peut alors demander un nœud dans le sous-arbre enterprises à l’IANA. Un tel nœud pourrait être numéroté : 1.3.6.1.4.1.42

L’entreprise "Flintstones, Inc." pourrait alors enregistrer son "Fred Router" sous le nom de : 1.3.6.1.4.1.42.1.1

3.2	Syntaxe

La syntaxe est utilisée pour définir la structure correspondant aux types d’objet. Les constructions ASN.1 sont utilisées pour définir cette structure, bien que toutes les possibilités de l’ASN.1 ne soient pas permises.

Le type ASN.1 ObjectSyntax définit les différentes syntaxes qui peuvent être utilisées dans la définition d’un type d’objet.

3.2.1	Types de primitive
Seuls les types de primitive ASN.1 INTEGER (ENTIER), OCTET STRING (CHAINE D’OCTET), OBJECT IDENTIFIER (IDENTIFIANT D’OBJET), et NULL (NUL) sont permises. Elles sont parfois désignées comme des types non agrégés.

3.2.1.1	Lignes directrices pour les ENTIER énumérés
Si un ENTIER énuméré figure sur la liste comme type d’objet, il ne doit alors pas y avoir dans la liste de l’énumération de nombre désigné avec la valeur 0. L’utilisation de cette valeur est interdite.

3.2.2	Types constructeurs
Le type ASN.1 constructeur SEQUENCE est permis, pourvu qu’il soit utilisé pour générer des listes ou des tableaux.

Pour les listes, la syntaxe prend la forme :

SEQUENCE { <type1>, ..., <typeN> }

où chaque <type> se résout en un des types de primitive ASN.1 dont la liste figure ci-dessus. De plus, ces types ASN.1 sont toujours présents (les clauses DEFAUT et OPTIONNEL n’apparaissent pas dans la définition de SEQUENCE).

Pour les tableaux, la syntaxe prend la forme :

SEQUENCE DE <entrée>

où <entrée> se résout en un constructeur de liste.

Les listes et les tableaux sont parfois désignés sous le nom de types agrégés.

3.2.3	Types définis
De plus, peuvent être définis de nouveaux types pour toute une application, pour autant qu’ils se résolvent en un type de primitive implicitement défini en ASN.1, list, table, ou quelque autre type pour toute une application. Au départ, peu de types sont définis pour toute une application. Des mémoires futurs en définiront sans doute d’autres quand un consensus sera obtenu.

3.2.3.1	NetworkAddress
Ce CHOIX représente une adresse parmi plusieurs familles de protocoles possibles. Actuellement, une seule famille de protocoles, la famille Internet, est présente dans ce CHOIX.

3.2.3.2	IpAddress
Ce type valable pour toute une application représente une adresse internet de 32 bits. Il est représenté par une CHAINE D’OCTETS de longueur 4, dans l’ordre des octets du réseau.

Lorsque ce type ASN.1 est codé en utilisant les règles de codage de base ASN.1, seule la forme de codage en primitive doit être utilisée.

3.2.3.3	Counter
Ce type valable pour toute une application représente un entier non négatif qui augment de façon monotone jusqu’à atteindre une valeur maximum, il revient alors à zéro et recommence alors à croître. Le présent mémoire spécifie une valeur maximum de 232-1 (4  294  967  295 en décimal) pour les compteurs.

3.2.3.4	Gauge
Ce type valable pour toute une application représente un entier non négatif, qui peut croître ou décroître, mais qui se verrouille sur une valeur maximum. Le présent mémoire spécifie une valeur maximum de 232-1 (4  294  967  295 en décimal) pour les indicateurs.

3.2.3.5	TimeTicks
Ce type valable pour toute une application représente un entier non négatif qui compte le temps en centièmes de secondes à partir d’un instant donné. Lorsque des types d’objet définis dans la MIB utilisent ce type ASN.1, la description du type d’objet identifie l’instant de référence.

3.2.3.6	Opaque
Ce type valable pour toute une application prend en charge la capacité à passer une syntaxe ASN.1 arbitraire. Une valeur est codée en utilisant les règles de codage de base ASN.1 dans une chaîne d’octets. Ceci est ensuite codé comme CHAINE D’OCTETS, ce qui a pour effet un "double enveloppement" de la valeur ASN.1 originale.

Noter qu’une mise en œuvre conforme a seulement besoin d’être capable d’accepter et reconnaître les données en codage opaque. Elle n’a pas besoin d’être capable de désenvelopper les données pour interpréter leur contenu.

Noter de plus qu’en utilisant le type ASN.1 EXTERNAL, les codages autres que ASN.1 peuvent être utilisés dans des données à codage opaque.

3.3	Codages

Une fois qu’une instance d’un type d’objet a été identifiée, sa valeur peut être transmise en appliquant les règles de codage de base de l’ASN.1 à la syntaxe du type d’objet.

4.	Objets gérés

Bien que ce ne soit pas l’objet du présent mémoire de définir les objets qui sont dans la MIB, le présent mémoire spécifie un format à utiliser par les normes qui définissent ces objets.

Une définition de type d’objet comporte cinq champs :

OBJET :	Nom textuel, appelé le DESCRIPTEUR D’OBJET, pour le type d’objet, avec son IDENTIFIANT D’OBJET correspondant.

Syntaxe :	La syntaxe abstraite pour le type d’objet. Elle doit se résoudre en une instance du type ASN.1 ObjectSyntax (défini plus loin).

Définition :	Description textuelle de la sémantique du type d’objet. Les mises en œuvre devraient s’assurer que leur instance de l’objet satisfait à cette définition car cette MIB est destinée à être utilisée dans des environnements multi fabricants. À ce titre, il est vital que les objets aient une signification cohérente à travers toutes les machines.

Accès : Lecture-seule, lecture-écriture, écriture-seule, ou non-accessible.

Statut : Obligatoire, facultatif, ou obsolète.

De futures normes pourront aussi spécifier d’autres champs pour les objets qu’elles définiront.

4.1	Lignes directrices pour les noms d’objet

Aucun type d’objet de MIB de l’Internet standard ne doit utiliser de sous identifiant de 0 dans son nom. Cette valeur est réservée pour utilisation avec des extensions futures.

Chaque DESCRIPTEUR D’OBJET correspondant à un type d’objet dans la MIB standard internet doit être une chaîne imprimable unique, mais mnémonique. Ceci va en faveur d’un langage commun pour les hommes, à utiliser lors de discussions sur la MIB et facilite aussi les transpositions simples de tableaux pour les interfaces d’utilisateur.

4.2	Types et instances d’objet

Un type d’objet est une définition d’une sorte d’objet géré ; elle est déclarative par nature. À l’opposé, une instance d’objet est une instanciation d’un type d’objet qui a été liée à une valeur. Par exemple, la notion d’entrée dans un tableau d’acheminement pourrait être définie dans la MIB. Une telle notion correspond à un type d’objet type ; les entrées individuelles dans un tableau d’acheminement particulier qui existe à un instant donné sont des instances d’objet de ce type d’objet.

Une collection des types d’objets est définie dans la MIB. Chacun de ces types sujets est désigné de façon univoque par son IDENTIFIANT D’OBJET et il a aussi un nom textuel, qui est son DESCRIPTEUR D’OBJET. Les moyens par lesquels les instances d’objet sont référencées ne sont pas définis dans la MIB. La référence aux instances d’objets est réalisée par un mécanisme spécifique du protocole : il est de la responsabilité de chaque protocole de gestion qui adhère à la SMI de définir ce mécanisme.

Un type d’objet peut être défini dans la MIB de telle sorte qu’une instance de ce type d’objet représente une agrégation des informations aussi représentées par des instances d’un certain nombre de types d’objets "subordonnés". Par exemple, supposons que les types d’objet suivants soient définis dans la MIB :

OBJET : atIndex { atEntry 1 }
Syntaxe : ENTIER
Définition : Numéro de l’interface pour l’adresse physique.
Accès : lecture-écriture.
Statut : obligatoire.

OBJET : atPhysAddress { atEntry 2 }
Syntaxe : CHAINE D’OCTETS
Définition : L’adresse physique dépendante du support.
Accès : lecture-écriture.
Statut:  obligatoire.

OBJET : atNetAddress { atEntry 3 }
Syntaxe : NetworkAddress
Définition : L’adresse réseau correspondant à l’adresse physique dépendant du support.
Accès : lecture-écriture.
Statut : obligatoire.

Puis, un quatrième type d’objet pourrait aussi être défini dans la MIB :

OBJET : atEntry { auTableau 1 }
Syntaxe :
	AtEntry ::= SEQUENCE {
		atIndex
		ENTIER,
		atPhysAddress
		CHAINE D’OCTETS,
		atNetAddress
		NetworkAddress
		}
Définition : Une entrée dans le tableau de traduction d’adresses.
Accès : lecture-écriture.
Statut : obligatoire.
Chaque instance de ce type d’objet comporte les informations représentées par les instances des trois types d’objet précédents. Un type d’objet défini de cette façon est appelé une liste.

De même, les tableaux peuvent être formés par l’agrégation de types de listes. Par exemple, un cinquième type d’objet pourrait aussi être défini dans la MIB :

OBJET : atTable { à 1 }
Syntaxe : SEQUENCE DE AtEntry
Définition : Le tableau de traduction d’adresses.
Accès : lecture-écriture.
Statut : obligatoire.

de telle sorte que chaque instance de l’objet atTable comporte les informations représentées par l’ensemble des types d’objet atEntry qui constituent collectivement une instance donnée d’objets atTable, c’est-à-dire, un tableau de traduction d’adresses donné.

Considérons comment on peut se référer à un simple objet au sein d’un tableau. En continuant avec l’exemple précédent, on peut nommer le type d’objet { atPhysAddress } et spécifier, en utilisant un mécanisme spécifique du protocole, l’instance d’objet { atNetAddress } = { internet "10.0.0.52" }.

Cet appariement d’un type d’objet et d’instance d’objet se réfèrerait à toutes les instances de atPhysAddress qui font partie de toute entrée dans un tableau de traduction d’adresse pour laquelle la valeur associée de atNetAddress est { internet "10.0.0.52" }.

Pour poursuivre avec cet exemple, considérons comment on pourrait se référer à un objet agrégé (liste) au sein d’un tableau. Nommer le type d’objet { atEntry }et spécifier, à l’aide d’un mécanisme spécifique du protocole, l’instance d’objet { atNetAddress } = { internet "10.0.0.52" } se réfère à toutes les instances des entrées du tableau pour lesquelles la valeur associée atNetAddress est { internet "10.0.0.52" }.

Chaque protocole de gestion doit fournir un mécanisme d’accès aux types d’objet simples (non agrégés). Chaque protocole de gestion spécifie si il prend en charge ou non l’accès aux types d’objet agrégé. De plus, le protocole doit spécifier quelles instances sont "retournées" lorsque un appariement de type/instance d’objet se réfère à plus d’une instance d’un type.

Pour permettre la prise en charge d’une diversité de protocoles de gestion, toutes les informations par lesquelles les instances d’un type d’objet donné peuvent être utilement distinguées l’une de l’autre sont représentées par des instances des types d’objet définis dans le MIB.

4.3	Macros pour les objets gérés

Afin de faciliter l’utilisation des outils de traitement de la définition de la MIB, la macro OBJECT-TYPE peut être utilisée. Cette macro permet de représenter les aspects clés d’un type d’objet d’une façon formelle.

OBJECT-TYPE MACRO ::=
	BEGIN
	TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
		"ACCESS" Accès
		"STATUS" Statut
	VALUE NOTATION ::= valeur (VALUE ObjectName)
Accès ::= "lecture-seule"	| "lecture-écriture"
	| "écriture-seule"
	| "non-accessible"
Statut ::= "obligatoire"
	| "facultatif"
	| "obsolète"
END

Étant donnés les types d’objet définis plus haut, on peut imaginer que les définitions suivantes sont présentes dans la MIB:

	atIndex OBJECT-TYPE
		SYNTAXE	ENTIER
		ACCÊS	lecture-écriture
		STATUT	obligatoire
		::= { atEntry 1 }

	atPhysAddress OBJECT-TYPE
		SYNTAXE	CHAINE D’OCTETS
		ACCÊS	lecture-écriture
		STATUT	obligatoire
		::= { atEntry 2 }

	atNetAddress OBJECT-TYPE
		SYNTAXE	NetworkAddress
		ACCÊS	lecture-écrituree
		STATUT	obligatoire
		::= { atEntry 3 }

	atEntry OBJECT-TYPE
		SYNTAXE	AtEntry
		ACCÊS	lecture-écriture
		STATUT	obligatoire
		::= { atTable 1 }

	atTable OBJECT-TYPE
		SYNTAXE	SEQUENCE DE AtEntry
		ACCÊS	lecture-écriture
		STATUT	obligatoire
		::= { at 1 }

	AtEntry ::= SEQUENCE {
		atIndex
			ENTIER,
		atPhysAddress
			CHAINE D’OCTETS,
		atNetAddress
			NetworkAddress
	}

Les cinq premières définitions décrivent des types d’objet, se rapportant, par exemple, au DESCRIPTEUR D’OBJET atIndex de l’IDENTIFIANT D’OBJET { atEntry 1 }. De plus, la syntaxe de cet objet est définie (ENTIER) conjointement avec l’accès permis (lecture-écriture) et le statut (obligatoire). La sixième définition décrit un type ASN.1 appelé AtEntry.

5.	Extensions à la MIB

Chaque document de MIB standard de l’Internet rend obsolètes tous les document précédents de cette sorte. La portion d’un nom, appelée la queue, qui suit l’IDENTIFIANT D’OBJET { mgmt version-number } utilisée pour nommer les objets doit rester inchangée d’une version à l’autre. Les nouvelles versions peuvent :
(1)	déclarer de vieux types d’objet obsolètes (si nécessaire), mais pas supprimer leurs noms ;
(2)	augmenter la définition d’un type d’objet correspondant à une liste en ajoutant des types d’objet non agrégés aux types d’objet de la liste ; ou,
(3)	définir des types d’objet entièrement nouveaux.

Les nouvelles versions ne peuvent pas  :
(4)	changer la sémantique d’un des objets précédemment définis sans changer le nom de cet objet.

Ces règles sont importantes parce qu’elles admettent une prise en charge plus facile de plusieurs versions de la MIB standard Internet. En particulier, la sémantique associée à la queue d’un nom reste constante à travers les différentes versions de la MIB. Parce que plusieurs versions de la MIB peuvent donc coïncider dans "l’espace de queue", les mises en œuvre qui acceptent plusieurs versions de la MIB peuvent en être grandement simplifiées.

Cependant, il en résulte qu’un agent de gestion peut retourner une instance correspondant à un surensemble du type d’objet attendu. Suivant le principe de robustesse, dans ce cas exceptionnel, un gestionnaire devrait ignorer toute information supplémentaire au delà de la définition du type d’objet attendu. Cependant, le principe de robustesse exige qu’on se comporte avec prudence par rapport aux actions de commande : si une instance n’a pas la même syntaxe que son type d’objet attendu, ces actions de commande doivent alors échouer. Dans les deux cas de la surveillance et de la commande, le nom d’un objet retourné par une opération doit être identique au nom demandé par une opération.

6.	Définitions

RFC1155-SMI DEFINITIONS ::= DEBUT

EXPORTS -- TOUT
	internet, directory, mgmt,
	experimental, private, enterprises,
	OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
	ApplicationSyntax, NetworkAddress, IpAddress,
	Counter, Gauge, TimeTicks, Opaque;

-- chemin de la racine

IDENTIFIANT D’OBJET internet ::= { iso org(3) dod(6) 1 }
IDENTIFIANT D’OBJET directory ::= { internet 1 }
IDENTIFIANT D’OBJET mgmt ::= { internet 2 }
IDENTIFIANT D’OBJET experimental ::= { internet 3 }
IDENTIFIANT D’OBJET private ::= { internet 4 }
DENTIFIANT D’OBJET 	enterprises I::= { private 1 }

-- définition des types d’objet

OBJECT-TYPE MACRO ::=
DEBUT
	TYPE NOTATION ::= type "SYNTAX" (TYPE ObjectSyntax)
		"ACCESS" Accès
		"STATUS" Statut
	VALUE NOTATION ::= valeur (VALEUR ObjectName)
	Accès ::= "lecture-seule"
		| "lecture-écriture"
		| "écriture-seule"
		| "non-accessible"
	Statut ::= "obligatoire"
		| "facultatif"
		| "obsolète"
FIN

-- noms des objets dans la MIB

	ObjectName ::=
		IDENTIFIANT D’OBJET

-- syntaxe des objets dans la MIB

	ObjectSyntax ::=
		CHOIX {
			simple
				SimpleSyntax,

-- noter que les simples SEQUENCE ne sont pas mentionnées directement ici par souci de simplicité (c’est-à-dire, 
-- empêcher de mauvais usages). Cependant, les types valables pour toute une application qui sont IMPLICITEMENT de 
-- simples SEQUENCE codés peuvent apparaître dans le CHOIX suivant valable pour l’application.
	ApplicationSyntax
	}

	SimpleSyntax ::=
		CHOIX {
			number
				ENTIER,

	string
		CHAINE D’OCTETS,

	object
		IDENTIFIANT D’OBJET,

	empty
		NUL
		}

	ApplicationSyntax ::=
		CHOIX {
			address
				NetworkAddress,

	counter
		Counter,

	gauge
		Gauge,

	ticks
		TimeTicks,

	arbitrary
		Opaque

-- les autres types valables pour toute une application, seront ajoutés ici, à mesure qu’ils seront définis.
	}

-- types valables pour toute une application

	NetworkAddress ::=
		CHOIX {
			internet
				IpAddress
		}

	IpAddress ::=
		[APPLICATION 0]          -- dans l’ordre des octets du réseau
			CHAINE D’OCTETS IMPLICITE (TAILLE (4))

	Counter ::=
		[APPLICATION 1]
			ENTIER IMPLICITE (0 à 4  294  967  295)

	Gauge ::=
		[APPLICATION 2]
			ENTIER IMPLICITE (0 à 4  294  967  295)

	TimeTicks ::=
		[APPLICATION 3]
			ENTIER IMPLICITE (0 à 4  294  967  295)

	Opaque ::=
		[APPLICATION 4]          -- valeur ASN.1 arbitraire,
		CHAINE D’OCTETS IMPLICITE   --   "double enveloppement"

	FIN

7.	Remerciements

Le présent mémoire a été influencé par trois ensembles de contributeurs à des projets antérieurs :

Tout d’abord, Lee Labarre de MITRE Corporation, qui, comme auteur de NETMAN SMI [4], a présenté la feuille de route de base du SMI.

Ensuite, plusieurs individus qui ont fourni des commentaires précieux sur le présent mémoire avant sa distribution initiale :
James R. Davin, Proteon
Mark S. Fedor, NYSERNetCraig Partridge, BBN Laboratories
Martin Lee Schoffstall, Rensselaer Polytechnic Institute
Wengyik Yeong, NYSERNet

Enfin le groupe de travail MIB de l’IETF :
Karl Auerbach, Epilogue Technology
K. Ramesh Babu, Excelan
Lawrence Besaw, Hewlett-Packard
Jeffrey D. Case, University of Tennessee at Knoxville
James R. Davin, Proteon
Mark S. Fedor, NYSERNet
Robb Foster, BBN
Phill Gross, The MITRE Corporation
Bent Torp Jensen, Convergent Technology
Lee Labarre, The MITRE Corporation
Dan Lynch, Advanced Computing Environments
Keith McCloghrie, The Wollongong Group
Dave Mackie, 3Com/Bridge
Craig Partridge, BBN (chair)
Jim Robertson, 3Com/Bridge
Marshall T. Rose, The Wollongong Group
Greg Satz, cisco
Martin Lee Schoffstall, Rensselaer Polytechnic Institute
Lou Steinberg, IBM
Dean Throop, Data General
Unni Warrier, Unisys

8.	Références

[1]	Organisation mondiale de normalisation, "Système de traitement de l’information – Interconnexion des systèmes ouverts, spécification de la Notation de syntaxe abstraite n° 1 (ASN.1)", Norme internationale 8824, décembre 1987.

[2]	K. McCloghrie et M. Rose, "Base de données d’informations de gestion pour la gestion de réseau des internets fondés sur TCP/IP", RFC 1156, Performance Systems International and Hughes LAN Systems, mai 1990.

[3]	J. Case, M. Fedor, M. Schoffstall et J. Davin, "Protocole simple de gestion de réseau", RFC 1157, University of Tennessee at Knoxville, Performance Systems International, Performance Systems International, et MIT Laboratory for Computer Science, mai 1990.

[4]	L. LaBarre,"Structure et identification des informations de gestion pour l’Internet", note de travail de la Internet Engineering Task Force, Network Information Center, SRI International, Menlo Park, California, avril 1988.

[5]	V. Cerf, "Recommandations de l’IAB pour le développement des normes de gestion de réseau de l’Internet", RFC 1052, IAB, avril 1988.

[6]	V. Cerf, "Rapport du second groupe ad hoc de révision de la gestion de réseau", RFC 1109, IAB, août 1989.

[7]	Système de traitement de l’information – Interconnexion des systèmes ouverts, "Spécification des règles de codage de base pour la notation de syntaxe abstrait n° 1 (ASN.1)", Organisation internationale de normalisation, Norme internationale 8825, décembre 1987.

Considérations pour la sécurité

Les questions de sécurité ne sont pas discutées dans le présent mémoire.

Adresse des auteurs

Marshall T. Rose	Keith McCloghrie	
PSI, Inc.	The Wollongong Group	
PSI California Office	1129 San Antonio Road	
P.O. Box 391776	Palo Alto, CA 04303	
Mountain View, CA 94039		
téléphone : (415) 961-3380	téléphone : (415) 962-7160	
mél : mrose@PSI.COM	mél : sytek!kzm@HPLABS.HP.COM