snmptrap - 기본 구성?

snmptrap - 기본 구성?

내 Ubuntu LTS 16.04 서버가 내 HP OVO 서버에 SNMPTrap을 보내도록 하려고 합니다. 그 이유는 오류 발생 시 SNMP 경고를 보낼 수 없지만 여전히 네트워킹 카드를 통해 액세스할 수 있는 일부 오래된 장치가 네트워크에 있기 때문입니다. 따라서 내 Ubuntu 서버는 실패한 노드를 평가하기 위해 카드에 연결되었습니다. 저는 Bash와 Expect를 사용하여 이를 달성했습니다. 이제 제가 원하는 것은 snmptrap스크립트의 일부로 보내는 것입니다. 내 질문은 다음과 같습니다

질문

snmptrap명령에는 기본 구성이 필요합니까? 아니면 우리(혹은 나뿐일지도 모르지만)가 명령을 telnet당연하게 여기는 것처럼 명령줄에서 작동합니까?

이 질문을 하는 이유는 회사 네트워크에서 이것을 구현하려고 하는데 현재 내 OVO 서버가 트랩을 수신하지 못하고 있기 때문입니다. 그래서 범위를 좁혀 여러 방화벽 중 하나인지, 아니면 앞서 언급한 기본 구성 문제인지 확인하고 싶었습니다.

문맥:

내 예상 스크립트는 기본적으로 네트워크 연결 카드에서 관리하는 각 카드의 상태를 배열로 bash에 반환합니다. 0은 OK를 의미하고 1은 의미합니다.응답 없음. 그래서 Bash는 다음을 수행합니다.

errors=$((expect ~/assets/connect))
for i in ${!errors[@]}:
do
    if [[ ${errors[$i]} -eq 1 ]]:
        then:
        snmptrap #stuff goes here; the relevant source IP is saved elsewhere & available - I want the SNMP trap to send a "node $i" down. 
    fi
done

답변1

snmptrap특정 구성이 필요하지 않습니다.

스크립트가 트랩을 보내고 있는지 확인하려면 tcpdump를 사용하여 트래픽을 모니터링할 수 있습니다. SNMP 트랩은 UDP이며 일반적으로 포트 162로 전송되므로 다음과 같이 작동합니다.

tcpdump -i <interface> udp dst port 162

그런 다음 다른 화면이나 터미널에서 먼저 로컬에서 snmptrap 명령을 테스트한 다음 스크립트에 포함시켜 테스트합니다.

snmptrap -v 2c -c public ov.example.com '' 1.3.6.1.4.1.6032.1 1.3.6.1.4.1.6032.1 s "this is just a generic message" 

다음과 유사한 출력이 표시됩니다.

14:52:32.966387 IP server.example.com.43066 > ov.example.com.snmp-trap:  V2Trap(114)  system.sysUpTime.0=31777102 S:1.1.4.1.0=E:6032.1 E:6032.1="this is just a generic message"

출력이 표시되면 패킷이 시스템을 떠나기 때문에 localhost에서 실행되고 있음을 tcpdump알 수 있습니다 . snmptrap이 경우 tcpdump수신기에서 동일한 명령을 실행하여 트랩을 수신하는지 확인하십시오. 여러 소스에서 트랩을 수신하는 경우 다음과 같은 경우 호스트별로 필터링하는 것이 편리할 수 있습니다.

tcpdump -i <interface> udp and src host <sender name/ip> dst port and dst port 162

수신측에서는 패킷이 보이지 않지만 발신자에게서 나가는 패킷이 보인다면 네트워크의 무언가가 패킷을 차단하고 있는 것입니다.

관련 정보