1

技術的な質問ですが、2 つ以上の SNMP エージェントを同じポート (同じマシン) で実行できますか?

host:port はアプリケーションのインスタンスを識別するため、私の最初の本能は「いいえ」ですが、よくわかりません。

ありがとうございました!

4

5 に答える 5

2

IP アドレスが異なる場合は、同じホスト上で同じポートを使用して複数のエージェントを実行できます (そのために netsh スクリプトを使用できます)。

個人的には、nsoftware ddl : SecureSNMP V8 edition .NET を使用してこれを行います。この投稿を見ることができます:nsoftware dllを使用した複数のSNMPエージェント

于 2012-07-25T08:34:05.040 に答える
2

技術的には、OS がサポートしている場合、SO_REUSEADDR SO_REUSEPORT オプションをソケットに設定して、他のプロセスが同じアドレス/ポートにバインドできるようにし、複数のプロセスが同じアドレス/ポートでメッセージを受信できるようにすることができます。しかし、両方のプロセスでオプションを設定する必要があり、エージェントの実装でそれを行うとは思えません。なぜなら、そうすることは理にかなっていないからです。両方のエージェントが単一の要求に応答する可能性があるため、頭痛の種になるだけです。マネージャーはそれを処理する準備ができていません。

ただし、代わりにプライマリ アドレス/ポートで SNMP プロキシを実行し、クエリ、セキュリティ、または (SNMPv3 を使用して) コンテキスト/エンジン ID パラメーターに基づいて複数のエージェントの 1 つに要求を転送し、応答を転送するように構成できます。

また、AgentX を使用すると、SNMP マスター エージェントがプライマリ アドレス/ポートで実行され、1 つ以上の SNMP サブエージェントがマスター エージェントに接続されます。マスター エージェントは、必要に応じてサブエージェントに要求をディスパッチし、結果を 1 つの応答にマージして、外部からは 1 つのエージェントのように見えます。通常、各サブエージェントは、OID 空間の異なるブランチ (特定のモジュールを実装する 1 つのサブエージェント、他のモジュールを実装する別のサブエージェント) を処理します。

しかし、アドレス/ポートを排他的に所有することを意図した 2 つのエージェントを取り上げ、それらに REUSE オプションを介して強制的に共有させることは、可能かもしれませんが、賢明ではありません。

于 2009-11-27T20:38:21.993 に答える
1

いいえ、あなたが想定した理由により、2 つのエージェントを別々のアプリケーションとして同じポートで実行することはできません (脆弱なパケット スニッフィング ハックを除きます。これについては説明しません)。

ただし、実際のポートを処理し、MIB に基づいて要求を分散するメカニズムがあれば、同じポートを介して 2 つのエージェントにアクセスできます。たとえば、Windows SNMP サービスはこれを行い、レジストリ (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents) を介して任意の数の SNMP エージェントを "拡張機能" として追加できるようにします。プラットフォーム SDK の h ヘッダー。

于 2009-11-25T16:38:11.147 に答える
0

両方のエージェントがあなたによって設計された場合、答えは異なる可能性があります。

HTTP と FTP のケースを考えてみましょう。ホスト名を使用して同じポート上の複数のサイトを区別できますが、なぜ SNMP ではそれができないのでしょうか?

ポート 161 で着信トラフィックを監視するディスパッチャを作成できます。次に、複数の実際のエージェントを使用して、背後のトラフィックを処理します。見分け方は自由に設計できます。個人的には、FTP 仮想ホスト名の方法と使用方法を好みます | エージェントを区別する。

将来、 #SNMP Suiteのデモを作成できるかもしれません。

しかし、同じサーバー上の既存のエージェントと連携する必要がある場合、そのような柔軟性は失われます。

于 2009-11-26T02:56:36.377 に答える
0

その通りです。ポートは共有できません。

于 2009-11-25T16:37:39.167 に答える