Vous êtes sur la page 1sur 28

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université de Sousse

Ecole nationale d’ingénieurs de Sousse

Chapitre 2 : Le protocole SNMP

Enseignante:
Mayssa GHRIBI

Administration des réseaux


Année universitaire: 2019/2020
Qu’est ce que le protocole SNMP ?
Le protocole SNMP (Simple Network Management Protocol) a été développé pour permettre à
l’administrateur d’interroger les éléments de son réseau sans se déplacer. Le principe de SNMP est
très simple : sur chacune des machines, on installe un petit programme : l’agent SNMP. Cet agent
enregistre en permanence des informations relatives à la machine. Il stocke ces informations dans une
base de données appelée MIB (Management Information Base).

    Ainsi, de son ordinateur, l’administrateur peut interroger chacune de ses machines et obtenir les
informations souhaitées, comme par exemple le nombre d’octets reçus et envoyés... Il peut aussi en
modifier certaines.
 
Le protocole SNMP fonctionne au niveau 7 du modèle OSI, mais se situe directement au-dessus
d’UDP. Il fonctionne sur un modèle client serveur, où il n’y a qu’un seul client, la station
d’administration (NMS = Network Management Station ou manager: la station de supervision) et
de nombreux serveurs (chaque agent SNMP), le client interrogeant les serveurs pour récupérer les
informations.
 
Chaque agent est placé sur un nœud du réseau « administrable » (MN : Managed Node). Ces nœuds
peuvent être soit des hôtes (stations de travail ou serveurs), soit des éléments d’interconnexion
(switchs, hubs, routeurs).

2
Qu’est ce que le protocole SNMP ?

L'environnement de gestion SNMP est constitué de plusieurs composantes : La station de


supervision (Manager), les éléments actifs du réseau, les variables MIB et des agents SNMP.

3
Qu’est ce que le protocole SNMP ?

Les différentes composantes de SNMP sont alors les suivantes:

 Éléments actifs du réseau : Ce sont les équipements (Ex : Routeur, Switch, Poste de
travail, imprimante, …) que l'on cherche à gérer.
 Des agents SNMP: Chaque élément du réseau dispose d’un agent SNMP qui répond aux
requêtes du manager. Ils vont chercher l’information requise dans la MIB et la
retransmette ensuite au manager (logiciels qui tournent sur les équipements à
superviser).
 La station de supervision (appelée aussi manager: Network Management Station)
exécute les applications de gestion qui contrôlent les éléments réseaux.
 Les variables MIB (Management Information Base) est une collection d’objets résidant
dans une base d’information virtuelle. Chaque agent comprend une MIB (Management
Information Base) , base d’objets gérés et des variables
 Le protocole, qui permet à la station de supervision d’aller chercher les informations sur
les éléments de réseaux et de recevoir des alertes provenant de ces mêmes éléments
(assure la circulation des messages entre les agents et le manager)) .
4
Les différentes versions de SNMP

Il existe plusieurs versions du protocole SNMP, notamment :


 SNMPv1 : la version SNMPv1 pose les bases du modèle gestionnaires/agents et les bases
de la communication entre le poste de gestion et les différents agents. Le seul mécanisme
de sécurité intégré est l’échange d’un nom de communauté envoyé avec les requêtes
correspondantes. (Le nom appelé communauté est utilisé comme un mot de passe).
 SNMPv2: Elle apporte des mécanismes d'authentification et de chiffrement ainsi que des
méthodes de consultation des informations réseaux plus efficaces: GetBulkRequest a été
ajouté pour récupérer des quantités de données volumineuses en une seule requête.
Considérée comme trop complexe, c’est pourquoi cette version était délaissée.
 SNMPv3: (standard actuel) Introduit de nouveaux mécanismes de sécurité. la version
SNMPv3 a remplacé le nom de communauté par un nom d’utilisateur et un mot de passe.
D’autre part, et contrairement aux versions antérieures, la troisième version du protocole
inclut des fonctionnalités permettant de crypter la transmission des paquets SNMP.

5
Principe de fonctionnement de SNMP

 Le protocole SNMP est basé sur un fonctionnement asymétrique. —Il est constitué d’un
ensemble de requêtes, de réponses et d’un nombre limité d’alertes.
 — Le manager envoie des requêtes à l’agent, lequel retourne des réponses. Lorsqu’un
événement anormal surgit sur l’élément réseau, l’agent envoie une alerte (trap) au
manager.
 SNMP utilise le protocole UDP au niveau de la couche transport.
 Le port 161 est utilisé par l’agent pour recevoir les requêtes de la station de gestion.
 Le port 162 est réservé pour la station de gestion pour recevoir les alertes des
agents.

6
Les différents types d’opérations de
SNMPv1
 Les requêtes :
  GetRequest : permet d’obtenir une variable.
 GetNextRequest : permet d’obtenir la variable suivante (si existante, sinon retour
d’erreur).
 SetRequest : permet de modifier la valeur d’une variable.
 Les réponses : Une seule réponse existe. Elle est différente s’il y a une erreur ou non.
  GetResponse : permet à l’agent de retourner la réponse au NMS. (Aucune erreur)
 En cas d’erreur (Toutefois si la variable demandée n’est pas disponible),
le GetResponse sera accompagné d’une erreur  NoSuchObject pour informer le NMS
que la variable n’est pas disponible.
 Les alertes (Traps, Notifications)
Les alertes sont envoyées quand un événement non attendu se produit sur l’agent. Celui-ci en
informe la station de supervision via une trap. Les alertes possibles
sont: ColdStart, WarmStart, LinkDown, LinkUp, AuthentificationFailure.

7
Format de message SNMPv1

Le message SNMP ce décompose en 3 parties :


 Version SNMP : Correspond au numéro de la version utilisée pour la requête. Peut-être
1, 2p, 2c, 2u, 2* ou 3. Si aucune version n’est précisée, alors la version qui est utilisée
par défaut est SNMPv3 puisqu’elle est devenue le nouveau standard SNMP en 2002.
 Communauté : C'est le contrôle d’accès utilisée par SNMP. Pour les version SNMPv1
et SNMPv2, la communauté est transportée en clair sur le réseau, ce qui pose de gros
problèmes de sécurité. La communauté permet de créer des domaines d’administration.

8
Format de message SNMPv1
 PDU (Packet Data Unit) ou data: Il contient toutes les informations utiles (les valeurs
demandées ou les réponses à ces demandes). Ce champ est lui aussi décomposé en
plusieurs parties qui sont expliqués une à une ci-dessous.
Le format des PDU Get, Set et Response:

9
Format de message SNMPv1

 Le PDU Type décrit le type de requête, réponse ou d'alerte.


 Le champ « Request ID » permet au manager d'associer les réponses à ses requêtes.
 Le champ « Error Status » est l'indicateur du type d'erreur. Si aucune erreur ne s'est
produite, ce champ est mis à zéro.
 Le champ « Error Index » indique, en cas d'erreur, ou celle-ci se situe dans la requête.

 Le champ « Varbind List » est une séquence constituée d’une ou plusieurs paires OID-
Valeur. Le contenu du champs Value change en fonction du PDU Type :
- SetRequest : La valeur correspond à celle de l’OID spécifiée (La variable est nommée
par son OID complet).
- GetRequest & GetNextRequest  : La valeur est NULL
- GetResponse : La valeur correspond à celle de l’OID demandé

10
Format de message SNMPv1
Format de la PDU « Trap »

11
Format de message SNMPv1

Format de la PDU « Trap »

 Le champ “Enterprise” identifie l'entreprise de l’équipement qui a émis le Trap.


 Le champ “Agent Address” contient l'adresse IP de l'agent envoyant le Trap.
- L'adresse 0.0.0.0 signifie que l’émission ne vient pas d'un réseau IP
 Le champ “Specific Trap Type” précise le type de trap constructeur, quand le champ
“generic” contient la valeur correspondante à « enterpriseSpecific ».
 Le champ « Timestamp » contient la valeur de l'objet « sysUpTime » de l’agent au
moment de l’envoi de ce trap: la période écoulée depuis la dernière trap ou
réinitialisation.

12
Format de message SNMPv2

 On a défini trois nouveaux types de PDU :


 GetBulkRequest: Utilisé pour récupérer de grandes quantités de données, ex. : le
contenu de tables.
 InformRequest: permettre à un administrateur d'envoyer des informations à un autre
administrateur.
 SNMPv2-Trap: Remplace le PDU Trap SNMPv1 (obsolète).

 La PDU Trap de SNMPv2 utilise maintenant une structure identique aux autres PDU
 La première variable contient sysUpTime.

 Les informations de type "Error Status" sont plus explicite.

13
Format de message SNMPv2
Error status value Meaning
0 noError
1 tooBig
2 noSuchName*
3 badValue*
4 readOnly*
5 genErr
6 noAccess
7 wrongType
8 wrongLength
9 wrongEncoding
10 wrongValue
11 noCreation
12 inconsistentValue
13 resourceUnavailable
14 commitFailed
15 undoFailed
16 authorizationError
17 notWritable
18 inconsistentName

14
SNMPv1 Vs SNMPv2
La principale faiblesse de SNMPv1 est l'absence d'un mécanisme adéquat pour assurer
la confidentialité et la sécurité des fonctions des informations transmises sur le réseau. Une autre
lacune de SNMPv1 est l’utilisation de la méthode GetNextRequest qui est très mal optimisée. En
effet, si un manager souhaite récupérer un objet complexe, il va demander les variables du tableau
une à une, ce qui fait énormément de requêtes pour récupérer un objet complexe.

SNMPv2 n’a pas comblé les lacunes


sécuritaires de SNMPv1, mais par contre elle
a comblée les lacunes fonctionnelles dues à
l’utilisation de la méthode GetNextRequest.
SNMPv2 a introduit la nouvelle
opération GetBulkRequest qui permet de
retourner un « tableau » (l’agent remplis le Exemple d'utilisation de GetBulkRequest

PDU du paquet SNMP jusqu'à ce qu'il n'y ai


plus de place) lorsque le manager demande
un objet complexe. Exemple d'utilisation de GetNextRequest

15
SNMPv3

SNMPv3, qui est pour l’instant la dernière version de SNMP, a inclue un tout nouveau
mécanisme de sécurité des transactions. La sécurité comprend l'identification des
machines qui communiquent et la confidentialité des paquets. Cette sécurité est basée sur
2 concepts :
 USM (User-based Security Model): L'USM gère toute la sécurisation des paquets de
l’envoi à la réception. Pour mettre en place toute cette sécurisation, l'USM utilise 3
différents mécanismes :
 L’Authentification: Utilisation d’un mot de passe pour la transmission d’un
paquet.
 Le Cryptage: Personne ne peut lire les informations contenues dans les paquets
(PDU).
 L’estampillage du temps: Un paquet SNMPv3 déjà transmis dispose d’une durée
de vie
 VACM (View-based Access Control Model): Il restreint les accès à la MIB en lecture
et/ou en écriture pour un groupe d’utilisateur.
16
SNMPv3

 L'Authentification doit faire en sorte que le paquet reste inchangé pendant la


transmission. Pour cela elle utilise un mécanisme de cryptage (MD5 ou SHA-1) combiné
à un mot de passe. L'authentification ne vise pas à cacher l'existence du paquet ou à le
crypter. Si l'on utilise uniquement l'authentification et qu’une personne malveillante
récupère un paquet passant sur le réseau, alors il sera capable d’en voir le contenu.
Toutefois, cette personne serai dans l’incapacité de changer le contenu du paquet sans
connaître le mot de passe.
 Le cryptage (DES) a pour but d'empêcher que quelqu'un n'obtienne les informations
contenues dans les paquets SNMP. Il utilise un mot de passe connus seulement par les
managers et les agents. Contrairement à l'authentification qui est appliquée à tout le
paquet, le cryptage est seulement appliqué sur le PDU.

 Avec l’estampillage du temps, la durée de vie d’un paquet SNMPv3 est définie à un
certain nombre de secondes (150 secondes par défaut) et au-delà de ce temps, le paquet
est détruit. Grâce à cette méthode, il est impossible de récupérer un paquet sur le réseau
pour le réutiliser plus tard.
17
Format de message SNMPv3

La structure du message se divise en 4 champs :

18
Format de message SNMPv3

Le format du message SNMPv3

19
Management Information Base (MIB)

 Chaque agent SNMP maintient un ensemble d’objets d’observation qui permettent au


« manager » de qualifier les performances de l’équipement supervisé par l’agent.
 Un groupe d’objets d’observation forme un MIB: Management Information Base.
 Il s’agit d’une base de données référençant la liste des objets et des variables associées,
des types de données utilisés pour chaque variable et d’un descriptif de cette variable. La
base contient éventuellement des types de données personnalisés
 Les objets d’un MIB sont définis d’une manière formelle en utilisant une langage: SMI
(Structure of Management Information). (La structure des objets administrés (MIB) sont
définies en se basant sur la syntaxe SMI)

20
Management Information Base (MIB)

 Dans ce modèle, les variables sont répertoriées dans une hiérarchie d’objets. Chaque objet est
identifié par ce que l’on appelle un OID (Object IDentifier). La hiérarchie de ces objets se
représente sous la forme d’un arbre. Les branches constituent les différents OIDs et les feuilles les
variables. Une variable peut donc être référencée par la liste ordonnée des différents OIDs
parcourus à partir de la racine de l’arbre.
 Le modèle SMI définit également les types de données utilisables pour les variables : entier, réel,
durée, compteur, etc…
 Dans une MIB, il existe deux sortes d’objets :
 Les objets simples : L’agent va retourner une seule et unique variables (Ex : Nom de
l’équipement, description de l’équipement, …)
 Les objets complexes : L’agent va retourner un tableau de variables (Ex : La liste des ports
UP sur l’équipement, la liste des adresses IP de l’équipement)
21
Management Information Base (MIB)

 Les objets (variables) gérés par les MIB sont


désignés selon une hiérarchie définie par l’ISO
selon un arbre dit arbre de nommage. Dans cette
arbre, chaque organisation de normalisation
possède une entrée au premier niveau. Les
différentes branches permettent de nommer un
objet de manière unique. Les MIB standard
établies par l’IETF appartiennent à la branche
«Internet »et sont classées dans la sous-branche
mgmt(2).
 Ainsi, l’objet « SysUpTime » est désigné par :
iso.org.dod.internet.mgmt.mib-2.system.sysuptime
 Le même objet peut être décrit par le chemin qui
de la racine (Root) mène à l’objet, soit la suite de
nombre: .1.3.6.1.2.1.1.3 ou encore plus simplement
mib-2(1.3) .
L’ arbre de nommage des objets SNMP

22
Management Information Base (MIB)

Le groupe et La structure numérique MIB-2


Pour faciliter leur gestion, les objets administrables de la MIB standard sont regroupés en
plusieurs catégories (groupes).
Groupe Nombre Commentaire La structure numérique
éléments
system 7 nœud dans le réseau 1.3.6.1.2.1.1
interfaces 25 interfaces réseau 1.3.6.1.2.1.2
at 5 IP address translation 1.3.6.1.2.1.3
ip 65 Internet Protocol 1.3.6.1.2.1.4
icmp 26 Internet Control Message Protocol 1.3.6.1.2.1.5
tcp 21 Transmission Control Protocol 1.3.6.1.2.1.6
udp 8 8 User Datagram Protocol 1.3.6.1.2.1.7
egp 22 Exterior Gateway Protocol 1.3.6.1.2.1.8
rmon 218 Remote network monitoring 1.3.6.1.2.1.9
transmission 114 informations sur la transmission 1.3.6.1.2.1.10
snmp 28 SNMP 1.3.6.1.2.1.11
23
Management Information Base (MIB)

En SNMP, on utilise communément deux branches :


• iso.org.dod.internet.mngt.mib-2 (.1.3.6.1.2.1) : il s’agit de la branche contenant tous les
objets standards, définis précisément dans les RFC. Ainsi, tout agent SNMP doit pouvoir
reconnaître cette branche et les variables qui y sont définies.
• iso.org.dod.internet.private.enterprises (.1.3.6.1.4.1) : cette branche est l’origine de
tous les objets propres au matériel et définies par le constructeur. Ainsi, chaque
constructeur se voit attribué un identifiant (VendorID), qui lui fournit un espace de données
au sein de l’arbre des MIBs. Si nous prenons l’exemple de Cisco, dont l’identifiant est 9,
toutes les variables propres à Cisco ont une clé débutant par .1.3.6.1.4.1.9.

24
Management Information Base (MIB)

Les MIB privées

Malgré l’extension de la RMON MIB (La


MIB I contient 114 objets, la MIB II en
définit 170), les constructeurs ont constitué
des MIB privées. Celles-ci sont développées
dans la branche private. Par exemple, la
MIB IBM contient quelque 600 objets. La
figure suivante fournit un exemple
d’utilisation de la branche private. L’accès
aux variables des MIB privées est assuré par
un agent spécifique qui effectue les
L’ extrait de la branche « private» de la MIB IBM
conversions nécessaires :le proxy-agent.
25
Management Information Base (MIB)

 Le proxy-agent permet ainsi le dialogue entre deux systèmes d’administration différents.


Celui-ci peut être localisé dans le serveur pour l’utilisation d’une MIB privée, ou dans le
manager si l’agent serveur n’est pas conforme au standard (conversion de protocole).

 Certains vieux équipements administrables ne sont pas conformes à SNMP. Dans ce cas, il
est possible d'utiliser un agent proxy sur un équipement SNMP, qui va servir
d'intermédiaire avec celui non SNMP.

Principe d’un proxy-agent (mandataire)

26
Management Information Base (MIB)

Les fichiers MIBs

Les fichiers MIBs décrivent précisément chaque chiffre (OID) de la liste identifiant une variable (la
clé), et sa signification. Prenons l’exemple simple de la variable contenant le nom du matériel
interrogé. Il s’agit d’une propriété de l’objet standard « system » que nous pouvons voir dans
l’arborescence de nommage des objets SNMP. La propriété s’appelle « sysName ». On en déduit
que la variable s’appelle alors : iso.org.dod.internet.mngt.mib-2.system.sysName.
Analysons le fichier MIB décrivant l’objet « system » (RFC 1213) :

27
Management Information Base (MIB)

Les fichiers MIBs

Le fichier fournit toutes les informations relatives à la propriété « sysName » :


• Syntaxe : il s’agit d’une chaîne de caractères de taille variant entre 0 et 255.
• Accès : l’accès à cette variable se fait en lecture ou en écriture
• Etat : cette variable existe et est toujours utilisable.
• Description : il s’agit du nom complet du nœud.
• Sa place dans l’arborescence : 5e propriété de l’objet « system » : On en déduit que cette variable
a pour clé la valeur 1.3.6.1.2.1.1.5.
Ainsi, nous avons la description de toutes les variables, leur méthode 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.
28