observations sur l'envoi d'un message SNMPv2 getrequest
Constitution de la trace
On observe un échange SNMP entre un switch (agent SNMP) et une machine ayant l'adresse 10.40.3.2 (serveur3.ent2.com)
2 types de messages échangés: get-request A et get-response.
Etapes priliminaires
Configurer le switch
Lors d'un accès via Telnet au switch, on doit activer l'agent d'administration SNMPv2 et créer une communauté ("catégorie" d'utilisateurs ayant accès au serveur SNMP en lecture ou en lecture/écriture)
enable snmp access # active le serveur snmp enable snmp traps lldp ports all # on active les alertes (traps en anglais) sur tous les ports. configure snmp add community readwrite ent2 # ajout d'une communauté d'utilisateur "ent2" ayant accès en lecture écriture à la MIB. configure snmp add trapreceiver 10.40.3.2# qui receptionnera les alertes? c'est le serveur1 mais on peut en ajouter d'autres. configure snmp sysContact samir@ent2.com # qui s'occupe du switch? configure snmp sysLocation Paris # où se trouve le switch? configure snmp sysName Switch_as4 # on attribue un nom au switch.
REMARQUE: Habituellement, sur tous les agents SNMP, il existe une communauté public par defaut. Celle-ci à accès en lecture seule à la MIB.
Configurer le client SNMP
Dans le cas présent, j'ai utilisé le logiciel freeware getif v2.3.1 pour Windows. Il est très utilisé car gratuit et de bonne facture.
De plus, il connait une multitude de MIB (base de données SNMP), et surtout, nous avons une interface graphique simplissime.
Pour les pro-Linux, il aurait été possible d'utiliser les utilitaires du paquetage "net-snmp" pour accéder à une MIB. à l'aide d'un terminal, on peut alors utiliser les commandes:
■ /usr/bin/snmpget. # Obtenir des informations de la MIB. ■ /usr/bin/snmpset. # Mettre des informations dans la MIB (Si on a le droit). ■ /usr/bin/snmpnetstat. # Fournis le statut réseau en utilisant SNMP (similaire à la commande netstat). ■ /usr/bin/snmpwalk. # Requêtes successives de la MIB à un (sous-)arbre.
Mise en marche
En ayant configuré les machines concernées, on lance getif, on introduit le nom complet du switch, et le nom de la communauté ent2 que nous avons créé précédemment.
Il ne reste plus qu'à cliquer sur <start> (séduisant non? :-) )
Tous les champs grisés sont alors remplis comme par enchantement...
Tout cela dans seulement une requête et une réponse?!?
Observations de la trace
Trame 1
Revenons sur nos 2 messages.
Nous voyons que le client envoie une requête getrequest contenant 8 variables de MIB.
Nous avons à l'interieur de celle-ci la demande des 8 valeurs de MIB (dans le cadre rouge de la photo précédentes):
1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.2.0 ... 1.3.6.1.2.1.1.7.0 1.3.6.1.2.1.2.1.0
Schématiquement, On peut représenter la MIB pour voir les valeurs demandées (voir cases grisées):
Trame 2
L'agent SNMP répond par un Get-response contenant les 8 valeurs demandées.
Visuellement, cela se traduit par la complétion dans l'interface de l'application avec ces valeurs.