
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 snmptrapd
para aceptar trampas public
solo 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 VINOD
en 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 public
o agregar otra authCommunity
línea a su snmptrapd.conf
archivo:
authCommunity log,execute,net VINOD