SNMP
SNMP
protocole simple de
gestion de réseau
(Simple Network
Management Protocol)
Ntework 3
Supervision des réseaux
Dr Kamel ZELTNI
UFMC-FST
2019 /2010
Licence PRO Réseaux et Télécommunication
Table des
matières
I - Introduction 3
IV - Le modèle de communication 10
V - Le modèle informationnel 13
Conclusion 27
Glossaire 28
Abréviations 29
Introduction
Introduction
I
Fondamental
Le protocole de gestion réseau simplifié SNMP (Simple Network Management Protocol) est un protocole de
couche application, proposé par IETF* (Internet Engineering Task Force) pour gérer les ressources réseau.
Définition
Le protocole SNMP* définit beaucoup plus qu'un protocole de communication qui gère le trafic. Il est basé sur
le modèle Gestionnaire / Agent proposé par ISO-NM. Il définit également la manière dont les données de
gestion doivent être consultées et stockées, ainsi que l'ensemble de la structure distribuée des agents et des
serveurs SNMP.
SNMP est appelé «simple» car l'agent nécessite un minimum de logiciels. La majeure partie de la puissance de
traitement et du stockage de données réside sur le système de gestion, tandis qu'un sous-ensemble
complémentaire de ces fonctions réside sur le système géré.
En raison de sa simplicité, le protocole SNMP est devenu le protocole de référence en matière de supervision
réseau. Il permet à un serveur central de communiquer avec tous les équipements actifs et les serveurs supervisé
pour connaître l'état de très nombreux paramètres.
Complément
La documentation pour Internet et ses protocoles est basée sur RFC** (Request for Comments). Lors de la
publication, ces documents reçoivent un numéro, tel que 1052, qui est utilisé pour l'identification.
3
Introduction
- Elle permet de disposer des avantages de la version 2 sans en présenter les inconvénients.
- Elle définit un nouveau mécanisme de sécurité évitant le décryptage des messages de commande
qui transitent sur le réseau (lecture, changement, et réutilisation), basée sur
- Modèle de sécurité USM* (User-based Security Model) RFC 227 . Il 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.
L'estampillage du temps : Un paquet SNMPv3 déjà transmis dispose d'une durée de vie.
4
Introduction
-
*
Modèle de contrôle d'accès basé sur les vues VACM (View-based Access Control Model)
Il autorise des droits d'accès différents en fonction des utilisateurs,
Il restreint les accès à la MIB en lecture et/ou en écriture pour un groupe d'utilisateur.
5
Les versions SNMP
6
Le modèle organisationnel
Le modèle organisationnel
III
Le protocole SNMP* implémente le modèle organisationnel proposé par le standard ISO-NM. Ce modèle
définit les éléments du réseau et la relation entre eux.
- La station de gestion: C'est le cœur du système, elle centralise toutes les données de gestion. C'est
notamment cette station qui va interagir avec les différents éléments gérés du réseau.
- Les agents SNMP : Ce sont des petits logiciels installés sur tous les éléments du réseau à superviser
(machines serveurs ou éléments actifs). Ils envoient les traps SNMP et répondent aux requêtes de la
station de gestion.
Comme montre la figure au dessus, le protocole SNMP supporte les gestionnaires simples et multiples, c-à-d un
ou plusieurs manageur(s) et un ou plusieurs agent(s). En effet, un agent répond à tout système de gestion qui
communique avec lui en utilisant SNMP.
7
Les sondes RMON
Les réseaux étant de plus en plus distribués, géographiquement et logiquement, la gestion des réseaux est
devenue plus difficile. Une solution consiste à placer des périphériques de gestion à distance, parfois appelés
sondes, sur des segments distants. Les sondes agissent comme les yeux et les oreilles du système de gestion de
réseau, fournissant aux gestionnaires des informations statistiques.
Romote network MONitoring (RMON), définie par l'IETF*, est un protocole de gestion de réseau largement
utilisé pour surveiller le trafic sur les liaisons Ethernet. En fait, les sondes RMON* sont une amélioration de
SNMP, elles sont pour améliorer la convivialité des informations de gestion du réseau et alléger la charge
pesant sur la station de gestion (NMS*) et les administrateurs réseau. elles agissent en tant que Manageur et
d'Agent.
- RMON 1 : est spécifié comme partie de la base d'informations de gestion (MIB*) par la RFC* 1757 en
tant qu'extension du protocole SNMP (Simple Network Management Protocol).
- RMON 2 : est une extension de RMON et a le même mécanisme que RMON. Elle est spécifié dans la
RFC 2021.
8
Le serveur proxy (agent proxy)
9
Le modèle de communication
Le modèle de
communication IV
Le protocole de gestion de réseau fournit un moyen pour le gestionnaire, les objets gérés et leurs agents de
communiquer. Pour structurer le processus de communication, le protocole définit des messages spécifiques,
appelés requêtes, réponses et notifications.
Le gestionnaire utilise ces messages pour demander des informations de gestion spécifiques et l'agent les utilise
pour répondre.
Le modèle de communication SNMP définit les opérations de communication entre le gestionnaire SNMP
(NMS), les objets gérés et leurs agents. SNMP est un protocole de type Client/Serveur où les agents sont les
serveurs et le gestionnaire est le client. Il est basé sur l'échange de l'information de gestion.
Les opérations SNMP sont basées sur un échange de messages spécifiques de types requêtes – réponses : GET /
SET et notification Trap entre le manageur NMS et les agents. Le manageur utilise ces message pour demander
des informations de gestion et les agent les utilise pour répondre.
Un manageur NMS peut envoyer cinq types de messages à ses agents : elles sont utilisés pour collecter et
modifier les informations de gestion dans la MIB de l'agent SNMP.
- Get Request :
10
Le modèle de communication
- Cette commande sert principalement à la surveillance. elle permet de récupérer les valeurs des
objets dans la MIB d'un agent.
- Get-Next Request :
- On utilise cette commande à la suite d'une requête ‘Get', afin de récupérer la valeur de la variable
qui se trouve après celle qu'on a passé en paramètre. Autrement dit, elle permet de parcourir la
MIB d'un agent.
- Set Request :
- Elle permet de mettre à jour les valeurs des objets dans la MIB d'un agent.
- Get-bulk :
- Cette commande est implémenté dans la version SNMPv2, elle permet de récupérer les valeurs de
plusieurs variables par une seule requête.
- Inform :
- Cette commande est implémentée dans la version SNMPv2, elle permet à l'agent d'obtenir une
réponse à une Trap qu'il a émise, afin d'obtenir confirmation que le message Trap* a bien été
reçue et analysé.
- Get-Response :
- Trap Request :
- Elle représente un message d'alerte envoyé spontanément par l'agent sur l'équipement surveillé au
gestionnaire. Elle signale l'arriver d'un événement extraordinaire tel que (arrêt, température au-
dessus du seuil, ...).
SNMP est un protocole de la famille TCP*/IP*, et peut donc être utilisé sur tous les réseaux de type Internet.
SNMP suppose que le chemin de communication est un sous-réseau de communication sans connexion. En
d'autres termes, aucun chemin de communication préétabli n'est établi avant la transmission des données. Par
conséquent, SNMP ne donne aucune garantie quant à la fiabilité de la livraison des données; cependant, dans la
pratique, la plupart des messages passent et ceux qui ne peuvent pas être retransmis.
SNMP fonctionne au niveau 7 du modèle OSI mais il s'appuie directement sur le protocole UDP* (User
Datagram Protocol).
11
Le modèle de communication
Chacune de ces opérations a un format PDU* normalisé qui est utilisé par les gestionnaires et les agents pour
envoyer et recevoir des informations.
- Port 161 : Il est utilisé tant sur le gestionnaire que sur le nœud géré pour échanger les messages des
requêtes (set, get, getnext) vers l'agent qui répond sur le même port.
- Port 162 : pour l'échange des messages d'alerte (traps) émis par l'agent vers le gestionnaire (la station
d'administration).
La station de gestion NMS et le nœud administrable doivent donc disposer du couple protocolaire UDP-IP pour
envoyer et recevoir des messages SNMP sur le port 161 et recevoir les alertes (traps) sur le port 162.
Complément
12
Le modèle informationnel
Le modèle informationnel
V
Le protocole SNMP défini un modèle informationnel simple afin de fournir rapidement une infrastructure
opérationnelle de gestion de réseau. Ce modèle est décrit par deux RFCs*
- RFC 1213 : Il décrit la Base d'information de gestion (MIB* II). Ce RFC enrichie le RFC 1066 qui
décrit la première version de la MIB.
- RFC 1155 : une extension de RFC 1212, il décrit la structure et le nommage de l'information de
gestion SMI* (Structure of Management Information).
Dans cette partie, nous allons présenter l'essentiel de ces deux RFCs
13
Une MIB standard ressemble à la figure au dessous. Elle est composée d'une racine à laquelle sont liés tous les
nœuds, le nœud-racine de l'arbre n'est pas indiqué, mais il possède trois branches, à savoir la première
administrée par l'ITU-T* marqué CCITT*(0), la seconde administrée par l'ISO et marqué iso(1) et iso-ccitt(2)
administré par les deux à la fois.
Tous les objets dans la MIB sont référencés par un identifiant unique appelé Object IDentifier OID. Un OID*
est un chemin absolu (avec le « . » comme séparateur) qui se compose soit:
- Numériquement : Composé des différent index associés à chaque nœud parcourus à partir de la racine de
la MIB. Par exemple « .1.3.6.1.2.1 » représente l'entrée du nœud MIB II.
- Nominalement: Composé des noms associés aux nœuds parcourus à partir de la racine de la MIB. Par
exemple «.iso.org.dod.internet.mgmt » représente l'entrée du nœud management mgmt.
Exemple
Sur la figure, vous pouvez voir arborescence des OIDs qui constituent la MIB standard.
Exemple
MIB II = .iso(1).org(3).dod(6).internet(1).mgmt(2).MIBII(1)
interface : .iso(1).org(3).dod(6).internet(1).mgmt(2).MIBII(1).interface(2)
entreprise : .iso(1).org(3).dod(6).internet(1).private(4).entreprise(1)
Rappel
En SNMP, on se concentre sur les sous-arbres sous la branche Internet désignée par l'OID {.iso(1).org(3).dod
(6).internet(1)}.
14
En fait, les variables SNMP son les feuilles de la MIB,
elles sont rangés dans plusieurs groupes fonctionnels. Nous
présentons dans cette partie les plus essentiels.
15
Exemple : Le groupe fonctionnel System
Sur la figure au dessus vous pouvez voir les variables SNMP qui appartiennent au groupe système.
Remarque
Les objets utilisés par SNMP sont situés sous l'objet MIB II de sorte que leurs identificateurs commencent
toujours par {.1.3.6.1.2.1}.
Complément
L'autorité suprême de régulation de l'Internet IANA* (Internet Assigned Numbers Authority) attribue des codes
d'entreprise (VendorID) aux entreprises privées et les publie dans les RFC (actuellement RFC 1700). Ce code
d'entreprise lui fournit un espace de données au sein de l'arbre des MIBs.
16
Exemple
Les OID d'entreprise commencent par le préfixe {1.3.6.1.4.1}. Si nous prenons l'exemple de Cisco, dont
l'identifiant est 9, toutes les variables propres à Cisco ont un OID débutant par 1.3.6.1.4.1.9.
Définition
La structure des information de gestion, SMI (Structure of Management Information), définit comment chacun
des éléments d'information, qui concernent les équipements gérés, est représenté dans la base d'information de
gestion, la MIB (Management Information Base).
Autrement dit, toutes les variables SNMP contenus par la MIB sont définit selon le modèle SMI. Ce modèle est
spécifié par les RFCs 1155 et 2578.
- Les noms: Elles sont définis par le mécanismes de dénomination (Object IDentifier). Chaque élément est
identifié par son OID.
- La syntaxe: Elle est défini en utilisant le langage ASN.1* (Abstract Syntax Notation One).
- L'encodage: Les informations sont codées en utilisant les règles de codage basique BER (Basic Encoding
Rules).
17
3. SNMP et ASN.1 notation
Définition : Wikipédia
ASN.1 (Abstract Syntax Notation One) est un standard international spécifiant une notation destinée à décrire
des structures de données dans le secteur des télécommunications et des réseaux informatiques. La description
en ASN.1* d'une structure de données a pour but d'obtenir une spécification de la structure qui est
indépendante d'un encodage lié à un matériel particulier et sans ambiguïté. Ce standard est mis en œuvre dans
un grand nombre d'applications entre autre la gestion de réseaux, notamment dans le protocole SNMP.
Rappel
En termes de modèle ISO / OSI, la syntaxe ASN.1 est une fonction de couche Présentation (couche 6).
Rappelons que la couche Présentation définit le format des données stockées dans un système informatique
hôte.
L'objectif ici est de décrire les éléments de ASN.1* nécessaires pour l'appliquer à la gestion de réseau et au
SNMP. (SNMP utilise un sous-ensemble d'ASN.1 pour des raisons de simplicité.)
ASN.1 définit les éléments de base du langage et fournit des règles pour combiner les éléments en messages tel
que
- La définition de type,
- L'affectation de valeur,
- La définitions et évocation de macros pour combiner les éléments et,
- La définitions des modules.
Définition
Un type est une classe de données. Il définit la structure de données dont la machine a besoin pour comprendre
et traiter les informations. Le SMI* définit trois types: primitif, constructeur et défini.
INTEGER
Type primitif avec des valeurs distinctes (ou uniques) qui sont des nombres entiers positifs et négatifs, y
compris zéro. Le type INTEGER a deux cas spéciaux
- Le type enumerated integer: dans lequel les objets ont un nombre spécifique différent de zéro, par exemple
1, 2 ou 3.
- Le type integerbitstring: est utilisé pour les chaînes de bits courtes telles que (0..127).
18
OCTET STRING
Utilisé lorsque vous avez des données binaires multiples de 8 bits. Les valeurs ont 2 formes possibles binaire ou
hexadécimale délimitée par des guillemets simples suivis de B ou H, respectivement: binaire - '01100110'B ou
hexadécimal -' 66'H.
- Le type DisplayString, tous les octets sont des caractères ASCII imprimables .
- Le type octetBitstring, est utilisé pour les chaînes de bits de plus de 32 bits
- Le type PhysAddress. est utlisé pour l'addresse physique d'un hôte Par exemple 4E:FF:E6:12:AF:A5
Utilisé lorsque vous avez besoin d'un identifiant globalement unique pour quelque chose. Une valeur
d'identifiant d'objet est une liste d'identifiants de la racine à un nœud dans l'arborescence d'identifiant d'objet.
- Le type ObjectName, un cas particulier utilisé par SNMP, limité aux identificateurs des objets et sous-
arborescences dans la base de données MIB
NULL
Un type avec une valeur spécifique, également appelée null. Le null sert d'espace réservé, mais n'est pas
actuellement utilisé pour les objets SNMP.
il est utilisé lorsque vous avez besoin d'un espace réservé pour lequel il n'y a pas de valeur.
Les types de constructeur, SEQUENCE et SEQUENCE OF, définissent des tables et des lignes (entrées) dans
ces tables.
Par convention, les noms des objets de table se terminent par le suffixe Table, et les noms des lignes se
terminent par le suffixe Entry.
Par exemple :
Ils sont des noms alternatifs pour les types ASN.1 simples ou complexes et sont généralement plus descriptifs.
Ils comprennent :
- NetworkAddress
- IpAddress
- The Counter: représente un entier non négatif qui augmente de façon monotone jusqu'à atteindre une
valeur maximale, puis s'initialise et augmente à nouveau à partir de zéro.
- A Gauge: représente un entier non négatif. Il peut augmenter ou diminuer, mais il se verrouille à une
valeur maximale.
- TimeTicks: représente un entier non négatif qui compte le temps en centièmes de seconde depuis une
époque ou un point dans le temps
19
- Opaque: permet le passage de la syntaxe ASN.1 arbitraire.
- Par exemple, si une application utilise un type INTEGER et que les valeurs autorisées doivent
correspondre à un champ de 8 bits, la plage de valeurs possible doit être comprise entre 0 et 255. Vous
exprimeriez ceci comme: INTEGER (0..255). Les (..) sont le séparateur de plage et indiquent la validité
de toute valeur entière comprise entre 0 et 255.
20
3.4. Les modules
Le BER fait partie des premières règles édictées par le standard ASN.1 pour l'encodage d'informations
abstraites dans un flux de données. Les règles, connues dans le jargon ASN.1 comme la syntaxe de transfert,
qui définit la manière dont les données sont sérialisées pour la transmission. (Wikipédia)
Méthode
L'application de gestion générerait une requête SNMP, que le BER coderait et transmettrait sur le réseau.
Ensuite, la machine de destination reçoit les informations du réseau, les décode à l'aide des règles BER et les
interprète comme une commande SNMP.
21
- Chaque machine du système de gestion peut avoir sa propre représentation interne des informations de
gestion.
- La syntaxe ASN.1 décrit ces informations sous une forme standard.
La structure de codage utilisée pour la représentation externe est appelée encodage TLV* en référence à ses
trois composants Type-Length-Value.
Chaque élément de données est codé comme un identificateur de type, une description de longueur et les
éléments de données réels comme le montre la figure suivante.
Le sous-champ Forme (bit 6) indique la forme de l'élément de données. Le codage primitif forme = 0) signifie
que les octets de contenu représentent directement la valeur. Un codage constructeur (forme = 1) signifie que
les octets de contenu codent une ou plusieurs valeurs de données supplémentaires, comme une SEQUENCE.
22
Le numéro de tag apparaît dans le troisième sous-champ et est représenté en binaire.
Le premier octet contient souvent trois sous-champs: la classe, la forme et le numéro d'étiquette (Le Tag). Alors
que, le champ type contient un seul octet quand le numéro de Tag est compris entre 0 et 30, lorsque le numéro
de Tag est 31 ou supérieur, le champ Type contient plusieurs octets. comme montre l'exemple suivant.
23
Méthode : Le codage TLV Type-Length-Value : Le champ Valeur
Le champ Valeur contient zéro ou plusieurs octets, qui transmettent les valeurs de données. Elle peut contenir
un entier, un caractère ASCII ou un IDENTIFICATEUR D'OBJET.
4. Message SNMP
La position du message SNMP dans une trame transmise
24
Le message SNMP est divisé en deux parties
- Version: Identification de la version SNMP pour s'assurer que l'administrateur et l'agent utilisent la même
version du SNMP
- Communauté : authentification (contrôle d'accès: read-only, read-write)
25
Méthode : Format de la PDU: Trap
26
Conclusion
SNMP est un protocole de gestion de réseau largement utilisé. Un protocole de la couche application, il collecte des
statistiques sur la communication réseau à l'aide du logiciel agent intégré aux périphériques gérés. Le NMS interroge
l'agent pour fournir des informations de communication réseau. L'agent recherche ensuite la base d'informations de
gestion (MIB) et renvoie les informations requises au NMS.
27
Glossaire
Glossaire
IANA
L'Internet Assigned Numbers Authority (IANA) est un département de l'ICANN, une société américaine
privée à but non lucratif qui supervise l'allocation globale des adresses IP, l'allocation des numéros de
systèmes autonomes, la gestion de la zone racine dans les Domain Name System (DNS), (Wikipédia)
IETF
La IETF Internet Engineering Task Force est une organisation de normalisation ouverte, qui développe et
promeut des normes Internet volontaires, en particulier les normes qui composent la suite de protocoles
Internet. (https://ietf.org/)
RFC
Les RFC (Request for Comments) sont une série numérotée de documents officiels décrivant les aspects et
spécifications techniques d'Internet, ou de différents matériels informatiques. (Wikipedia)
Trap
Messages d'alertes
28
Signification des abréviations
Abréviations
ASN.1 : Abstract Syntax Notation One
IP : Internet Protocol
29