如何配置 snmptrapd 来处理来自 Juniper 设备的传入陷阱?

如何配置 snmptrapd 来处理来自 Juniper 设备的传入陷阱?

我有一台 CentOS 服务器(7.2)。我正在尝试将其配置为 SNMP 陷阱接收器。

在我的 snmptrapd 配置中,我调用一个非常基本的 shell 脚本来确定是否收到陷阱:

[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 写入任何内容。

我从本地主机本身发送了一些测试陷阱,它完全按预期工作。此外,为了检查这一点,我尝试从另一个 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

我在陷阱接收服务器的端口 162 上运行 tcpdump,发现从 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,或在文件中添加另一authCommunitysnmptrapd.conf

authCommunity  log,execute,net VINOD

相关内容