Juniper 장치에서 들어오는 트랩을 처리하도록 snmptrapd를 구성하는 방법은 무엇입니까?

Juniper 장치에서 들어오는 트랩을 처리하도록 snmptrapd를 구성하는 방법은 무엇입니까?

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

트랩 수신자 서버의 포트 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

관련 정보