snmptrap - デフォルト設定?

snmptrap - デフォルト設定?

私のUbuntu LTS 16.04サーバーが私のHP OVOサーバーにSNMPTrapを送信することを試みます。その理由は、エラーが発生したときにSNMP警告を送信することはできませんが、まだネットワークカードを介してアクセスできるいくつかの古いデバイスがネットワーク上にあるためです。したがって、私のUbuntuサーバーは、失敗したノードを評価するためにカードに接続されました。私はBashとExpectを使ってこれを達成しました。今私が望むのは、snmptrapスクリプトの一部として送信することです。私の質問は次のとおりです

質問

このsnmptrapコマンドにはデフォルト設定が必要ですか?それとも、私たち(または私だけかもしれませんが)は、コマンドを当然のtelnetようにコマンドラインで動作しますか?

この質問をする理由は、企業ネットワークでこれを実装しようとしていますが、現在私のOVOサーバーがトラップを受信して​​いないためです。だから、私はそれを絞り込み、いくつかのファイアウォールの1つであるのか、それとも前述の基本的な構成の問題であるのかを確認したかったのです。

コンテキスト:

私の予想スクリプトは、デフォルトでネットワーク接続カードによって管理されている各カードの状態を配列として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

受信側ではパケットが見えませんが、発信者から出てくるパケットが見えたら、ネットワークの何かがパケットをブロックしているのです。

おすすめ記事