Как настроить snmptrapd для обработки входящих ловушек с устройства Juniper?

Как настроить snmptrapd для обработки входящих ловушек с устройства Juniper?

У меня есть сервер CentOS (7.2). Я пытаюсь настроить его как приемник SNMP-ловушек.

В моей конфигурации snmptrapd я вызываю очень простой скрипт оболочки, чтобы просто определить, была ли получена ловушка:

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

Вот как выглядит mydummyhandler.sh:

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

Но когда трапы отправляются с маршрутизатора Juniper, мой snmptrapd не обрабатывает их и ничего не записывает в /var/log/snmptraplog.txt.

Я отправил несколько тестовых ловушек с самого localhost, и это полностью работает, как и ожидалось. Далее, чтобы проверить это, я попробовал отправить тестовую ловушку с другого сервера CentOS, как показано ниже:

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

и он тоже был обработан, как и ожидалось:

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

Я запустил tcpdump на порту 162 сервера-получателя трапов и обнаружил, что трапы, отправленные с коммутатора Juniper, достигают сервера. Но по какой-то причине он молча игнорирует входящие трапы с устройства Juniper без дальнейшей обработки.

Вот что я вижу, когда ловушки отправляются с устройства 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

Также для сравнения я вставляю вывод tcpdump успешного приема ловушки с другого сервера:

[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

решение1

Вы настроили snmptrapdприем ловушек publicтолько с именем сообщества:

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

Но ловушка от устройства Juniper 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) ...
                                                               ^^^^^^^

Вам следует либо настроить имя сообщества ловушек устройства Juniper на public, либо добавить еще одну authCommunityстроку в свой snmptrapd.confфайл:

authCommunity  log,execute,net VINOD

Связанный контент