Protocole SNMP : Gestion de Réseaux
Protocole SNMP : Gestion de Réseaux
Le modèle architectural
Khaled Hamouid
MIB (Management Information Base)
Département d’informatique
Université de Batna 2
Email : [Link]@gmail,com Les requêtes SNMP
Web : [Link]
SNMP existe sur beaucoup de types de périphériques différents Deux ports sont désignés pour l'utilisation de SNMP :
(routeurs, switchs, modems, PC)... Port 161 : utilisé par l’agent pour recevoir les requêtes de la station de
gestion
Port 162 pour l'écoute des alarmes des agents destinées à la station
Utilisation
d'administration
Fournir un protocole de monitoring d'éléments d'un réseau et de ses
constituants
Permet de manipuler des informations d’administration réseau. Grace à SNMP :
Monitor: Suivre l’état de son réseau dans le temps;
Control: Être alerté des pannes et défauts apparut dans le réseau;
SNMP protocole de la couche Application
Manage (gérer): Modifier des paramètres de fonctionnement du réseau, de
SNMP s’appuie sur le protocole de niveau transport UDP (non connecté donc
façon manuelle ou automatique.
non fiable)
3 4
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Le modèle architectural (1) Le modèle architectural (2)
Le modèle architectural (3) Les éléments d’un système de gestion de réseau (1)
7 8
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Les éléments d’un système de gestion de réseau (2) MIB (Management Information Base) (1)
9 10
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
MIB (Management Information Base) (1) MIB (Management Information Base) (4)
Structure de la MIB
Les informations relatives à la gestion sont définies et présentées selon
un format standard, ce format consiste à considérer les information La MIB possède une structure d’arbre appelé arbre de nommage. On
comme étant des objets (variables), ces objets sont regroupés en retrouve une racine non nommée à partir de laquelle on référencie de
domaines. façon absolue un objet par son OID (noeud de l’arbre).
Un objet de la MIB est déclaré et défini en langage ASN.1 (Abstract Nommage des objets :
Syntax Notation 1 : langage de représentation de donnée) Les objets de MIB reçoivent un identifiant unique (OID: Object Identifier)
Accès à un objet via un Object Identifier (OID)
composé de séquences de chiffres séparés par des points. Cette séquence
se lit de gauche à droite et correspond à des noeuds dans l’arborescence
des noms
Plusieurs notations :
Numérique : composé de séquences de chiffres séparés par des points. Cette
séquence se lit de gauche à droite et correspond à des noeuds dans
l’arborescence des noms (sysDescr : [Link].[Link])
Symbolique : ([Link])
11 12
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
MIB (Management Information Base) (5) MIB (Management Information Base) (6)
13 14
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
MIB (Management Information Base) (5) MIB (Management Information Base) (8)
Les variables de la MIB
• Exemple
• La MIB : exemples
Variable Catégorie Signification
Par exemple, pour localiser l’entité Internet dans l’arbre, la
structure ASN est la suivante :
sysUpTime system Durée écoulé depuis dernier démarrage
ifNumber interfaces Nombre d’interfaces réseau ⇒ [Link] pour le nœud Internet.
ifMtu interfaces MTU d’une interface particulière Par exemple, la variable IPReceives peut être codé des deux
ipDefaultTTL Ip Valeur utilisée dans le champ TTL façons suivantes :
ipInReceives Ip Nbre de datagrammes reçus ⇒ [Link].[Link].0 (le zéro à la fin représente un sous-identifiant
ipFragOKs ip Nbre de datagrammes fragmentés d’instance)
ipRoutingTable ip Table de routage IP ⇒ [Link]
icmpInEchos icmp Nbre de demandes d’echo ICMP reçues
tcpMaxConn tcp Nbre maxi de connexions TCP autorisées
udpInDatagrams udp Nbre de datagrammes UDP reçus
Université du Québec à Hull
15 16
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
MIB (Management Information Base) (9) Représentation des données de la MIB (1)
Représentation des données de la MIB (2) Représentation des données de la MIB (3)
Types d’ASN.1 utilisé par SNMP Description des Objets (variables) de la MIB en ASN-1
Type Description
INTEGER Entier de taille arbitraire, utilisable pour définir des types <name> OBJECT-TYPE
énumérés, Souvent utilisé pour donner un état. Par exemple SYNTAX <datatype>
l’état de l’interface d’un routeur: 1=up, 2=down, 3=testing. ACCESS <either read-only, read-write, write-only, or not-accessible>
OCTET STRING Liste d’octets (taille 0 à 255) : texte, STATUS <either mandatory, optional, or obsolete>
adresse MAC, …
DESCRIPTION "Textual description describing this particular managed object."
NULL (NIL) Objet sans type, peut être utilisé pour finir une liste
::= { <Unique OID that defines this object> }
OBJECT IDENTIFIER Identifie l’objet dans l’arbre de nommage
SYNTAX : son type :
SEQUENCE, SEQUENCE OF Autorise la construction de types complexes. SEQUENCE:
Liste, SEQUENCE OF : Table
en syntaxe ASN-1 : soit un type de base, un type défini dans le rfc 1155, ou
composé
COUNTER nombre 32bits, ne peut qu’être incrémenté, repasse à zéro
quand il dépasse (232−1) ACCESS : Le type d’accès autorisé :
IpAddress Adresse IPv4 sur 32 bit 4 types : read-only, read-write, write-only, non-accessible.
TimeTicks nombre sur 32bits, mesure le temps en centièmes de STATUS : Son statut d’existence :
secondes (uptime) “mandatory, optionnal, obsolete”
Gauge nombre de 32bits. Ne peut pas s’incrémenter quand il atteint DESCRIPTION: La description textuelle de la variable.
le max. (vitesse d’un port ethernet)
::= { noeud chiffre} : la position de cet objet dans l’arbre de nommage
19 20
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Représentation des données de la MIB (4) Représentation des données de la MIB (5)
Exemple : Définition de la propriété sysName de l’objet « system » : Exemple : Type simple, Nbr de paquets reçus
ipInReceives OBJECT-TYPE
SYNTAX counter
ACCESS read-only
STATUS mandatory
DESCRIPTION "the total number of input datagrams
received from interfaces, including those received in
error.”
Ainsi, nous avons la description de toutes les variables, leur méthode ::= {ip 3}
d’accès et la clé que nous devons utiliser pour lire ou écrire sa valeur. La
majorité des constructeurs fournit des fichiers MIBs contenant des
informations sur les variables propres à leur matériel, ne faisant pas
partie des informations standards..
21 22
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Représentation des données de la MIB (6) Représentation des données de la MIB (7)
1) Table de routage
SEQUENCE ⇒ Liste
SEQUENCE OF ⇒ table
Une table est une
« SEQUENCE » de listes
23 24
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Représentation des données de la MIB (8) Représentation des données de la MIB (9)
Définition des tables dans la MIB (table routage, interfaces, adresses IP): Identification des instances:
structuré en colonnes qui décrivent les différentes
variables d’une même instance Dans chaque agent, les objets sont instanciés et les
Chaque colonne est un sous-arbre d’un noeud de valeurs sont associées aux instances
type “sequence” Deux types d’instances
Le même nombre de valeurs pour toutes les Instance unique (exp: sysName, ifNumber) : l’OID de
colonnes l’instance est <OID-feuille.0>
Les “lignes” d’une colonne représentent la même Instance multiple (exp: ifMtu, ifType): La description est
information pour toutes les instances une SEQUENCE OF xx, et xx un OBJECT-TYPE avec un
champ INDEX. Les différentes instances sont distinguées
L'ensemble des lignes forment un "sequence of« par les valeurs de l’index, l'OID de l'instance est
La table possède un champ index, formé d'un ou OID(xx).index
plusieurs noms de colonnes
25 26
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Représentation des données de la MIB (10) Représentation des données de la MIB (10)
Identification des instances: Demande des informations GET (lire et lire suivant)
GetRequest : interroger une (ou plusieurs) variables des objets
gérés de la MIB par leur OID. La requête est envoyée avec les
Exemples: (ipRouteEntry) champs variables sans valeurs, L’agent SNMP envoie une réponse
ipRouteDst (1) ipRouteIfIndex(2) ipRouteMetrics(1) ipRouteNextHop ipRouteMask avec les valeurs des variables demandées, une erreur si variable
(7) (11) inconnue
[Link] [Link] GetRequest((var1, Nul1),(var2,Nul2),…) ((OID(var1),val1),
(OID(var2),val2),…)
[Link] [Link]
[Link] [Link] GetNextRequest : demande l’information sur l’objet suivant (dont on
ne connait pas forcément le nom) au sens du parcours de l’arbre.
Quel est l’OID qui correspond à la colonne 7 ? GetNextRequest répétée permet de parcourir un sous-arbre à partir de sa
[Link].[Link].7 racine (exp: lecture d’une table). On arête jusqu’à ce que l’élément retourné
ne correspond pas, ou si EndOfMib
Le résultat est une nœud colonne et pas une valeur
GetNextRequest(var, Nul) (OID(suivant(var),val(suivant(var)))
Quels sont la valeur et l’IOD de la ligne 3 de la colonne 7 ?
GetBulkRequest : demande les informations d’un groupe de variables.
OID=[Link].[Link].[Link].0 Permet de parcourir systématiquement un sous-arbre jusqu’à EndOfMib
Valeur=[Link]
29 30
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Les messages (requêtes) SNMP (2) Les messages (requêtes) SNMP (2)
Modification des informations SET (écrire) Les échanges de PDU SNMP s'opèrent selon quatre modes définis par
SetRequest : permet de changer la valeur d’une variable de la MIB. les diagrammes suivants:
31 32
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Les messages (requêtes) SNMP (3)
Exemples :
GetRequest(sysDescr.0) = GetRequest ([Link].[Link].0)
{[Link].[Link].0, String SunOs4.1}
GetRequest(sysDescr) = GetRequest ([Link].[Link])
error “noSuchName”
GetNextRequest(sysDescr) = GetNextRequest ([Link].[Link])
{[Link].[Link].0, String SunOs4.1}
GetNextRequest (sysDescr.0)
{sysObjectID.0, OID [Link].2.1.1}
33 34
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Structure d’un message SNMP (1) Structure d’un message SNMP (2)
Les requêtes et les réponses SNMP échangées entre agents et NMS sont
encapsulé dans un message SNMP ayant le format standard suivant : Détail du PDU (Packet Data Unit)
35 36
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Structure d’un message SNMP (3) Format des messages SNMP en ASN.1 (1)
37 38
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Format des messages SNMP en ASN.1 (2) Outils et mise en œuvre SNMP (1)
Les principales commandes utiles notées globalement snmpxxx sont : Exemple de transactions (NET-SNMP) :
snmpget : envoi d’une requête SNMP GET pour obtenir une information Correspondance OID et nom symbolique :
sur un objet de la MIB d’un agent SNMP distant. $ snmptranslate [Link].[Link].0
snmpset : envoi d’une requête SNMP SET pour mettre à jour la valeur SNMPv2-MIB::sysUpTime.0
d’un objet de la MIB d’un agent SNMP distant. Récupérer le nom de l’équipement ayant l’IP([Link])
snmpgetnext : envoi d’une requête SNMP GETNEXT et donne aussi la $ snmpget -c TdS [Link] [Link].[Link].0
valeur de l’objet suivant de la MIB d’un agent SNMP distant si toutefois il
en existe un. [Link] = router-exemple
snmpwalk : cette commande fonctionne comme snmpgetnext mais accéder à une variable inexistante, l’agent renvoie une erreur :
permet de balayer complètement une branche de la MIB d’un agent $ snmpget -c TdS [Link] [Link].99
SNMP distant. Error in packet
snmptranslate : permet de convertir un objet d’une MIB représenté sous Reason: (noSuchName) There is no such variable name in this MIB
sa forme décimale OID en sa forme symbolique et réciproquement.
41 42
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux
Outils et mise en œuvre SNMP (4) Outils et mise en œuvre SNMP (5)
Obtenir la liste de toutes les variables d’une branche Affectation d’une nouvelle valeur à l’objet sysLocation.0 de la MIB de
l’agent avec SNMPv2c :
$ snmpwalk -c TdS [Link] .[Link].2.1.1
[Link] = Cisco Internetwork Operating System Software $ snmpset -c tst localhost [Link].0 s "coucou"
[Link] = OID: enterprises.9.1.172 Error in packet.
[Link] = Timeticks: (9360890) 1 day, 2:00:08.90 Reason: notWritable (that object does not support modification)
[Link] = KindMan@univ-batna2,dz Failed object: SNMPv2-MIB::sysLocation.0
[Link] = router-exemple
[Link] = Univ Batna 2 fesdis Questions :
[Link] = 78 Pourquoi cette erreur a été générée par l’agent SNMP ?
Que doit-on modifier pour pouvoir mettre à jour la valeur de cette
objet?
43 44
Khaled Hamouid Master 2 IRC- Gestion de réseaux Khaled Hamouid Master 2 IRC- Gestion de réseaux