
У меня есть сервер 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