5

SNMPエージェントを作成していますが、MIB定義にUnsigned32タイプのOIDが含まれています。

エージェントのUnix実装は、Net-SNMPを使用し、ASN_UNSIGNED32がないため、OIDをタイプASN_UNSIGNEDとして設定します。WiresharkでGET応答を見ると、「Gauge32」値としてデコードされます。RFC 1902によると、Unsigned32とGauge32は同じであるため、これは一見して理にかなっています。

Windowsの実装はWindowsのSnmpAPI.libに基づいており、OIDをASN_UNSIGNED32として設定し、WiresharkでGET応答を見ると、「Unsigned32」としてデコードされます。それは私にはさらに良く見えます。

どうして2つの実装がネットワーク上で異なる結果を生み出すのですか?

どちらが正しいバージョンであり、両方の実装から同じものを取得するにはどうすればよいですか?

4

2 に答える 2

5

Net-SNMPはUnsigned32とGauge32が同一である現在のRFC1902エンコーディングを使用しているのに対し、WindowsはUnsigned32とGauge32のエンコーディングが異なる廃止されたRFC1442エンコーディングを使用していることがわかりました。

于 2012-05-29T09:40:21.703 に答える
1

WiresharkキャプチャをWindowsに保存してから、UnixのWiresharkで開く場合。次に、それが示すタイプが何であるかがわかります。Unsigned32とGauge32は、標準で定義されている互換性があるため、すべてのSNMP実装でまったく違いはありません。回線上では、同じバイトを転送する必要があります。

于 2012-05-26T10:16:18.227 に答える