Administration des réseaux avec SNMP & LDAP

SNMPv1 & SNMPv2

Trame


Figure 5 - Trame SNMP

La trame SNMP ce décompose en 3 parties :

Le Packet Data Unit est lui aussi décomposé en plusieurs parties qui sont expliqués une à une ci-dessous.

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

Type de PDU Nom
0 GetRequest
1 GetNextRequest
2 SetRequest
3 GetResponse
4 Trap

Tableau 1 - Valeurs associées pour le PDU Type

Le Request ID permet à au manager d'associer les réponses à ses requêtes.

Le Error Status est l'indicateur du type d'erreur. Si aucune erreur ne s'est produite, ce champ est mis à zéro.

Type de PDU Nom
NoAccess Accès refusé
WrongLength Erreur de taille
WrongValue Mauvaise valeur
WrongType Mauvais type
WrongEncoding Mauvais encodage
NoCreation Objet non créé
ReadOnly Lecture seule
NoWritable Pas d'accès en écriture
AuthorisationError Accès refusé

Tableau 2 - Types d'erreurs pour le Error Status

Le Error Index indique, en cas d'erreur, ou celle-ci se situe dans la requête.

La Varbin 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 :

Faiblesses de SNMPv1

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. En effet, la communauté circule en clair sur le réseau, et donc n’importe qu’elle personne mal intentionnée pourrais facilement la récupérer, et par la suite, récupérer ou modifier des données sur les équipements du réseau. De plus, les données renvoyés par les agents ne sont pas cryptés, il est donc très facile de lire ces informations si on arrive à récupérer un paquet SNMP.

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.


Figure 6 - Exemple d'utilisation de GetNextRequest

Améliorations de SNMPv2

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 PDU du paquet SNMP jusqu'à ce qu'il n'y ai plus de place) lorsque le manager demande un objet complexe.


Figure 7 - Exemple d'utilisation de GetBulkRequest