2016-11-08 27 views
2

私はnet-snmpライブラリ(c/C++)を使ってsnmpトラップ送信者を書いています。基本的なオブジェクトタイプの場合は、トラップにオブジェクトを追加することは非常に簡単です:「MibNameは」OID、「MIBValue」文字列と「MIBType」ASN型として値であるSNMPトラップでテーブルを送信することはできますか?


snmp_varlist_add_variable(notification_vars, MibName, length, MIBType, MIBValue, len); 

ところ。 これは、索引付けされた表に対してこれを行う方法です。これに対するサポートはありますか?要素を含むすべての行をトラップに追加するにはどうすればよいですか?

さらに簡単な方法がありますか?

答えて

1

SNMPトラップ内でSNMPテーブル全体を送信することは悪い習慣です。通常、SNMPテーブルはOIDインスタンス数の点でかなり大きいです。問題は、SNMPがトランスポートプロトコルとしてUDPを使用していることです。 SNMPでは、ネットワークのMTUまでのPDUのサイズを設定できます。バッファは予想される最大のパケットと同じくらい大きくなければならないので、可能であればMTUに相当するはずです。たとえば、イーサネットでは最大1500バイトのフレームペイロードを使用できます。

したがって、PDUの最大サイズは、通常、平均で最大10個の可変バインドです。

ここでは、何か変わった/起こったことをユーザーに通知するSNMPトラップを送信することを想定しています。ユーザーは、このイベントの詳細を取得するために、トラップ受信時にGet-Next/Get-Bulkを使用してテーブルからデータをフェッチする必要があります。

関連する問題