Como configurar o snmptrapd para processar traps recebidos de um dispositivo Juniper?

Como configurar o snmptrapd para processar traps recebidos de um dispositivo Juniper?

Eu tenho um servidor CentOS (7.2). Estou tentando configurar isso como um receptor de trap SNMP.

Na minha configuração do snmptrapd, estou chamando um script de shell muito básico apenas para identificar se a armadilha foi recebida:

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

Esta é a aparência de mydummyhandler.sh:

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

Mas quando as armadilhas são enviadas do roteador Juniper, meu snmptrapd não as processa e não grava nada em /var/log/snmptraplog.txt.

Enviei algumas armadilhas de teste do próprio localhost e está funcionando perfeitamente conforme o esperado. Além disso, para verificar isso, tentei enviar uma armadilha de teste de outro servidor CentOS como abaixo:

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

e também foi processado conforme o esperado:

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

Executei um tcpdump na porta 162 do servidor receptor de trap e descobri que os traps enviados do switch Juniper estão chegando ao servidor. Mas, por algum motivo, ele ignora silenciosamente as armadilhas recebidas do dispositivo Juniper sem processamento adicional.

Aqui está o que vejo quando as armadilhas são enviadas do 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

Além disso, para comparação, estou colando a saída tcpdump da recepção de trap bem-sucedida de outro 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

Responder1

Você configurou snmptrapdpara aceitar armadilhas publicapenas com nome de comunidade:

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

Mas a armadilha do dispositivo Juniper usa o nome da comunidade VINOD:

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

Você deve configurar o nome da comunidade trap do dispositivo Juniper como publicou adicionar outra authCommunitylinha ao seu snmptrapd.confarquivo:

authCommunity  log,execute,net VINOD

informação relacionada