¿Cómo configurar snmptrapd para procesar trampas entrantes desde un dispositivo Juniper?

¿Cómo configurar snmptrapd para procesar trampas entrantes desde un dispositivo Juniper?

Tengo un servidor CentOS (7.2). Estoy intentando configurar esto como un receptor de capturas SNMP.

En mi configuración de snmptrapd, estoy llamando a un script de shell muy básico solo para identificar si se recibió la trampa:

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

Así es como se ve mydummyhandler.sh:

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

Pero cuando se envían trampas desde el enrutador Juniper, mi snmptrapd no las procesa y no escribe nada en /var/log/snmptraplog.txt.

Envié algunas trampas de prueba desde el propio localhost y está funcionando completamente como se esperaba. Además, para comprobar esto, intenté enviar una trampa de prueba desde otro servidor CentOS como se muestra a continuación:

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

y también se procesó como se esperaba:

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

Ejecuté un tcpdump en el puerto 162 del servidor receptor de trampas y descubrí que las trampas enviadas desde el conmutador Juniper están llegando al servidor. Pero por alguna razón, ignora silenciosamente las trampas entrantes del dispositivo Juniper sin ningún procesamiento adicional.

Esto es lo que veo cuando se envían trampas desde el dispositivo Juniper:

[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

Además, a modo de comparación, estoy pegando la salida tcpdump de la recepción exitosa de trampas desde otro servidor:

[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

Respuesta1

Ha configurado snmptrapdpara aceptar trampas publicsolo con el nombre de la comunidad:

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

Pero la trampa del dispositivo Juniper usa el nombre de la comunidad VINODen su lugar:

[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) ...
                                                               ^^^^^^^

Debe configurar el nombre de la comunidad de captura del dispositivo Juniper en publico agregar otra authCommunitylínea a su snmptrapd.confarchivo:

authCommunity  log,execute,net VINOD

información relacionada