= 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)[[BR]] 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) {{{ #!rst 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.[[BR]] 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: {{{ #!rst ■ /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. [[BR]] Il ne reste plus qu'à cliquer sur (séduisant non? :-) )[[BR]] [[Image(http://samirb5.free.fr/pfres/getif-parameters.gif)]][[BR]] Tous les champs grisés sont alors remplis comme par enchantement... [[BR]]Tout cela dans seulement une requête et une réponse?!? == Observations de la trace == === Trame '''1''' === Revenons sur nos 2 objets.[[BR]] Nous voyons que le client envoie un message getrequest contenant 8 variables de MIB.[[BR]] Nous avons finalement la demande des 8 valeurs de MIB (dans le cadre rouge de la photo précédentes) en une seule requête:[[BR]] {{{ #!rst 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.3.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):[[BR]] [[Image(http://samirb5.free.fr/pfres/MIB.gif)]] === 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.