Bonjour,
je voudrai envoyer des traps snmp à partir d'un script Perl. Pour cela, je me suis tourné vers la librairie Net::SNMP (documentation).
J'ai tout d'abord créer un utilisateur (dans /etc/snmp/snmptrapd.conf) sur le serveur qui doit recevoir les traps :
Ensuite, je me suis attaqué au script à proprement parlé et j'ai déjà un souci avec l'ouverture d'une sessioncreateUser -e 0x0102030405 myuser SHA mypassword AES myotherpassword
Voici le code :
A l'exécution de ce bou de script, j'ai l'erreur suivant :#!/usr/bin/perl
use SNMP;
use Class::Struct;
use Net::SNMP;
my $NMS = "192.168.0.153";
($session, $error) = Net::SNMP->session(
-hostname => $NMS,
-port => '162',
-version => 'snmpv3',
-username => 'myuser',
-authprotocol => 'sha',
-authpassword => 'mypassword',
-privprotocol => 'aes',
-privpassword => 'myotherpassword');
Apparemment l'utilisateur n'est pas reconnu... Ce qui est étrange car si j'utilise la commande Linux :Received usmStatsUnknownUserNames.0 Report-PDU with value 1 during synchronization
sa marche !!!snmptrap -e 0x0102030405 -v 3 -u myuser -a SHA -A mypassword -x AES -X myotherpassword -l authPriv localhost 40 1.3.6.1.4.1.32569.1.2.2.1.6.1
Autre chose que j'ai remarqué : un tcpdump sur le port 162 révèle les échanges suivant :
Pourquoi y a-t-il un double envoie de message de type "inform" ?!?10:42:33.129365 IP 192.168.0.153.41858 > 192.168.0.153.162: F=r U= E= C= GetRequest(13) [|snmp]
10:42:33.129654 IP 192.168.0.153.162 > 192.168.0.153.41858: F= U= [|snmp][|snmp]
10:42:33.133520 IP 192.168.0.153.41858 > 192.168.0.153.162: F=apr U=myuse [|snmp][|snmp]
10:42:33.133936 IP 192.168.0.153.162 > 192.168.0.153.41858: F= U=myu [|snmp][|snmp]
En bref, je ne sais pas trop comment m'en sortir donc si une bonne âme peut m'aiguiller
Merci
Partager