20

私はSNMPについて学び、それを使用していくつかのアプリケーションを作成しています。プロトコルについていくつかの基本的な質問があります。

  1. エージェントはその状態をデバイス自体に保存しますか?
  2. エージェントにトラップが設定されている場合、同じOIDでポーリングを実行して、同じ情報を取得できますか?
  3. mibファイルを使用せずに、デバイスにすべての情報を一度に照会する方法はありますか?そうでない場合、そしてあなたがあなた自身のカスタマイズされたマネージャーを書いているなら、あなたはそれが前もって報告するものの構造を知る必要がありますか?
  4. レポートするエージェントを設定している場合、通常、トラップを送信する頻度を制御する方法はありますか?それとも、通常、何らかの条件が満たされるのと同じ頻度でトラップを送信しますか?
4

3 に答える 3

18

エージェントはその状態をデバイス自体に保存しますか?

最も一般的なシナリオでは、SNMPエージェントは監視するデバイスで実行されています。この場合、エージェントには他のオプションがなく、状態情報をデバイスに保存する必要があります。SNMPエージェントは、これらの情報を読み取るか設定するだけです。

エージェントにトラップが設定されている場合、同じOIDでポーリングを実行して、同じ情報を取得できますか?

たとえば、SNMPv2トラップIF-MIB::linkDownには3つのvarbindが含まれています-IF-MIB::ifIndex、IF-MIB :: ifAdminStatus、IF-MIB::ifOperStatus。この特定のケースでは、ifIndexはifTableの行を指定し、他の2つはポーリングできます。

mibファイルを使用せずに、デバイスにすべての情報を一度に照会する方法はありますか?

はい、snmp-walknet-snmpパッケージまたはget-nextを使用してデータをポーリングできるその他のsnmpツールから使用します。

そうでない場合、そしてあなたがあなた自身のカスタマイズされたマネージャーを書いているなら、あなたはそれが前もって報告するものの構造を知る必要がありますか?

デバイスMIBに何が含まれているかを知る必要があります。そのような情報がないと、数値のOIDと値しか取得できません。これは、開発者とユーザーの両方にとって意味がありません。より複雑なMIBの場合は、管理対象デバイスに関する多くの詳細を知る必要があります。MIBファイルに十分な情報が含まれることはほとんどありません。

于 2010-03-23T23:42:15.667 に答える
13

エージェントはその状態をデバイス自体に保存しますか?

デバイスのオンまたはオフにデータを保存できます。どちらも可能で、どちらも完了しています。リモート デバイスに関する (キャッシュされた) 状態情報を格納するエージェントの問題は、管理システムが、エージェント内の (キャッシュされた) データが許容できる最新のものであるかどうかを本当に認識できないことです。信頼できない場合は、マネージャーを使用して同期をトリガーするか、リモート デバイスの状態やエージェントとリモート デバイス間の通信リンクをポーリングする必要があります。このゲームに取り掛かると、リモート デバイスにサブエージェントを配置し、標準の SNMP プロトコルを使用して情報を取得する方がよい場合がよくあります。

エージェントにトラップが設定されている場合、同じ OID でポーリングを実行して同じ情報を取得できますか?

ほとんどの適切に設計された MIB は、実際には、変更された MIB オブジェクトをそのままトラップに入れます。そうすれば、SNMP マネージャーは念のためにエージェントをポーリングする必要はありません。

そうは言っても、Entity-MIB のトラップには状態変数がありません。ただし、その MIB はシェルフ、カード、ポートなどの物理的なインベントリを記述するために使用され、トラップは物理的な構成が変更された場合にのみスローされます。この場合、完全な新しい物理構成を取得するために、SNMP マネージャーにエンティティ MIB を再度ウォークさせる必要があります。

mib ファイルを使用せずに、デバイスのすべての情報を一度に照会する方法はありますか?

はい。独自のカスタム MIB を展開し、必要なものを入れます。デバイス構成全体を 1 つの MIB オブジェクトに入れることができます。これの欠点は、構造を解析するために SNMP マネージャーにパーサーを作成する必要があることです。構造が変更された場合は、現在の値と以前の値の違いの意味を理解する必要があります。 . つまり、SNMP MIB を再発明します。ただし、非常に小さな MIB の場合は、これを行う価値があります。

おそらく、SNMP GET-BULK を使用するか、オブジェクトが返されなくなるまで SNMP-GET-NEXT を連続して呼び出して MIB ウォークを実行する方がよいでしょう。

そうでない場合、独自のカスタマイズされたマネージャーを作成している場合、事前に報告する内容の構造を知る必要がありますか?

「カスタマイズされたマネージャー」をシンプルに保ちたい場合は、構造を前もって知っておく必要があります。柔軟性が必要な場合は、構造をエンコードするための構造記述言語が必要です。マネージャーは、エージェント データからこれをデコードしてマネージャーに入力し、マネージャーからデータを取得してエンコードできる必要があります。この形式でエージェントに送信します。つまり、SNMP/SMI、CMIP/CMISE、CIM、およびすでに展開されているその他の管理システムとプロトコルのホストを再発明します。

報告するようにエージェントを設定している場合、通常、エージェントがトラップを送信する頻度を制御する方法はありますか? それとも、通常、何らかの条件が満たされるたびにトラップを送信しますか?

これは良い質問です。ネットワークが最も必要なときにトラップ ストームによってネットワークが輻輳することがよくあるからです。そのため、プロビジョニングするネットワークの量を予測することは困難です。

トラップは慎重に使用してください。たとえば、Entity-MIB には 1 つのトラップしかなく、物理構造の変化を報告するため、そのトラップを使用する価値があります。Interfaces-MIB には、ポートごとに潜在的に多くのトラップがあります。この MIB では、物理ポートにバインドされたインターフェイスのトラップを有効にするだけで、下位層のインターフェイスの上にスタックされたインターフェイスのトラップを有効にするのが最善です。大規模なネットワークの場合、多くの場合、ポーリングと物理機器および物理インターフェイスのトラップを組み合わせて使用​​するのが最善です。こうすることで、通常の運用時またはネットワーク障害時に、管理トラフィックに使用されるネットワークの量を予測できます。

一部の標準 MIB では、トラップをスローできる頻度またはタイミングが指定されています。それでよろしければ、ご利用ください。マネージャが特定のトラップを抑制できる構成 MIB オブジェクトを使用して、独自のエンタープライズ MIB をいつでも展開できます。

于 2010-03-26T14:16:49.130 に答える
-1

エージェントはその状態をデバイス自体に保存しますか?

デバイスとアプリケーションによって異なります。ローカルに保存するデバイスもあれば、プロキシ エージェントを使用するデバイスもあります。

エージェントにトラップが設定されている場合、同じ OID でポーリングを実行して同じ情報を取得できますか?

はい。ただし、通常はトラップに情報を含めたほうがよいため、管理ステーションはデバイスに対して複数の「ラウンドトリップ」を行う必要がありません。たとえば、属性値の変更をトラップする場合は、トラップで古い値と新しい値を送信することをお勧めします。

mib ファイルを使用せずに、デバイスのすべての情報を一度に照会する方法はありますか? そうでない場合、独自のカスタマイズされたマネージャーを作成している場合、事前に報告する内容の構造を知る必要がありますか?

通常、いいえ... SNMP Get-next プリミティブは、まさにそのような場合のために設計されています。

報告するようにエージェントを設定している場合、通常、エージェントがトラップを送信する頻度を制御する方法はありますか? それとも、通常、何らかの条件が満たされるたびにトラップを送信しますか?

はい、いつトラップを送信するかはエージェント次第です。

独自のエージェントを開発している場合は、Net-SNMP を検討することを強くお勧めします。別の製品を使用することを選択した場合でも、Net-SNMP コードは非常に適切に設計および実装されています。さらに、エージェント (および管理システム) の開発とテストに役立つ多くの追加機能があります。

于 2010-03-25T13:28:28.560 に答える