Wie konfiguriert man snmptrapd zur Verarbeitung eingehender Traps von einem Juniper-Gerät?

Wie konfiguriert man snmptrapd zur Verarbeitung eingehender Traps von einem Juniper-Gerät?

Ich habe einen CentOS-Server (7.2). Ich versuche, diesen als SNMP-Trap-Empfänger zu konfigurieren.

In meiner snmptrapd-Konfiguration rufe ich ein sehr einfaches Shell-Skript auf, um festzustellen, ob der Trap empfangen wurde:

[root@centos-Main snmp]# cat /etc/snmp/snmptrapd.conf
 authCommunity   log,execute,net public
traphandle default /etc/snmp/mydummyhandler.sh

So sieht mydummyhandler.sh aus:

[root@centos-Main snmp]# cat mydummyhandler.sh
echo "Trap Received" >> /var/log/snmptraplog.txt

Aber wenn Traps vom Juniper-Router gesendet werden, verarbeitet mein snmptrapd diese nicht und schreibt nichts in /var/log/snmptraplog.txt.

Ich habe einige Test-Traps vom lokalen Host selbst gesendet und es funktioniert vollständig wie erwartet. Um dies zu überprüfen, habe ich außerdem versucht, einen Test-Trap von einem anderen CentOS-Server wie unten beschrieben zu senden:

snmptrap -v 2c -c public centos-Main .1.3.6.1.6.3.1.1.5.3 .1.3.6.1.6.3.1.1.5.3    \
> ifIndex i 2 ifAdminStatus i 1 ifOperStatus i 1

und es wurde auch wie erwartet verarbeitet:

[root@centos-Main snmp]# cat /var/log/snmptraplog.txt
Trap Received

Ich habe einen TCPdump auf Port 162 des Trap-Receiver-Servers ausgeführt und festgestellt, dass die vom Juniper-Switch gesendeten Traps den Server erreichen. Aus irgendeinem Grund ignoriert er jedoch stillschweigend die eingehenden Traps vom Juniper-Gerät ohne weitere Verarbeitung.

Folgendes wird angezeigt, wenn Traps von einem Juniper-Gerät gesendet werden:

[root@centos-Main snmp]# tcpdump -i enp0s3 port 162
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
16:54:14.521820 IP 192.168.0.91.58376 > centos-Main.snmptrap:  C=VINOD V2Trap(217)  system.sysUpTime.0=1768202 S:1.1.4.1.0=E:2636.4.13.0.1 E:2636.3.37.1.1.0="'Event-Trap'" E:2636.3.37.1.2.1.2.1="'event'" E:2636.3.37.1.2.1.3.1="''" E:2636.3.37.1.2.1.2.2="'message'" E:2636.3.37.1.2.1.3.1="''" S:1.1.4.3.0=E:2636.1.1.1.2.1

Außerdem füge ich zum Vergleich die TCPdump-Ausgabe des erfolgreichen Trap-Empfangs von einem anderen Server ein:

[root@centos-Main snmp]# tcpdump -i enp0s3 port 162
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
16:53:23.272673 IP 192.168.0.105.49182 > centos-Main.snmptrap:  V2Trap(87)  S:1.1.4.1.0=S:1.1.5.3 interfaces.ifTable.ifEntry.ifIndex=2 interfaces.ifTable.ifEntry.ifAdminStatus=1 interfaces.ifTable.ifEntry.ifOperStatus=1

Antwort1

Sie haben eingestellt, nur snmptrapdTraps mit Community-Namen zu akzeptieren public:

[root@centos-Main snmp]# cat /etc/snmp/snmptrapd.conf
authCommunity   log,execute,net public

Aber die Falle vom Juniper-Gerät verwendet VINODstattdessen den Community-Namen:

[root@centos-Main snmp]# tcpdump -i enp0s3 port 162
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
16:54:14.521820 IP 192.168.0.91.58376 > centos-Main.snmptrap:  C=VINOD V2Trap(217) ...
                                                               ^^^^^^^

Sie sollten entweder den Trap-Community-Namen des Juniper-Geräts auf konfigurieren publicoder authCommunityIhrer snmptrapd.confDatei eine weitere Zeile hinzufügen:

authCommunity  log,execute,net VINOD

verwandte Informationen