SNMP(MIB:管理情報ベース)

 SNMPに対応したネットワーク機器は、MIB(Management Information Base)と呼ばれるネットワーク機器についての管理情報を蓄積したデータベースを持っています。

 MIBに格納されている個々の管理情報のことをオブジェクト(Object)と呼び、オブジェクトは管理情報を一意に識別するための固有のOID(Object IDentifier)を持っています。

MIBのオブジェクトは、下図のように階層構造で管理されています。

OIDは、ピリオドで区切られた数字で表現します。

 例えば、機器についての説明文字列を意味するsysDescrは、「.1.3.6.1.2.1.1」、ノードの管理者の情報を意味するsysContactは、「.1.3.6.1.2.1.4」のように表現します。

 エージェントは、マネージャからの要求に対してMIBの情報を通知したり、エージェントからマネージャに機器の状態の変化を通知するTrapで通知を行います。

マネージャは、これらの通知でネットワークの状態を監視できるようになっています。

SNMP(ポーリング/トラップ)

SNMPは、以下の3種類の動作でネットワークの状態を監視できるようになっています。

  • マネージャからエージェントへの要求とその応答
  • マネージャからエージェントへの管理情報の更新要求とその応答
  • エージェントからマネージャへの状態変化を通知

 SNMPは、マネージャがコマンドを発行して、エージェントがそれに応答するポーリングが基本動作になっていますが、監視対象機器に指定しておいたイベントが発生した場合や、しきい値を超えた時にエージェント側から行うTrapという通知を行なうこともできるようになっています。

また、マネージャからエージェントに情報の更新を要求することもできます。

SNMP(メッセージ)

種類の機能を5つのコマンドで実行

 SNMPでは、マネージャとエージェント間で、SNMPメッセージをやり取りすることで、ネットワークを管理しています。このSNMPメッセージには、SNMPのバージョンやコミュニティ名、PDU(Protocol Data Units)が含まれています。

SNMPのバージョンには、v1、v2、v3などがあります。

 コミュニティ名は、マネージャとエージェント間のパスワードのような役割をする文字列のことで、管理したい機器をグループ化するために使用します。コミュニティ名が一致しないと通信できないようになっています。

PDUには、SNMPのコマンドに当たるデータで下表のように5種類あります。

マネージャからエージェントへのPDU
SNMPメッセージ説明
GetRequest1つないし複数のオブジェクトをOIDで指定し、オブジェクトの情報取得を要求する。
GetNextRequest1つないし複数のオブジェクトをOIDで指定し、階層的に次のオブジェクトの情報取得を要求する。
SetRequest1つないし複数のオブジェクトをOIDで指定し、オブジェクトの情報変更を要求する。
エージェントからマネージャへのPDU
SNMPメッセージ説明
GetResponseマネージャからの要求(GetRequest,GetNextRequest,SetRequest)に対する返答
Trap指定したイベントを検出した時、エラーが発生した時、しきい値を超えた時に自発的に行う通知

マネージャからエージェントへの要求とその応答

GetRequestによる要求

 マネージャは、GetRequestにより、1つないし複数のオブジェクトをOIDで指定し、オブジェクトの情報取得を要求します。エージェントは、GetResponseで応答します。

GetNextRequestによる要求

 マネージャは、GetNextRequestにより、1つないし複数のオブジェクトをOIDで指定し、階層的に次のオブジェクトの情報取得を要求します。エージェントは、GetResponseで応答します。

マネージャからエージェントへの管理情報の更新要求とその応答

 マネージャは、SetRequestにより、1つないし複数のオブジェクトをOIDで指定し、オブジェクトの情報変更を要求します。エージェントは、GetResponseで応答します。

エージェントからマネージャへの状態変化を通知

 エージェントは、指定したイベントを検出した時、エラーが発生した時、しきい値を超えた時に自発的にマネージャに対してTrapで通知を行います。