如何配置 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

相關內容