【ネットワーク】【プロトコル】SNMP ~IPネットワーク機器監視プロトコル~

SNMP (IPネットワーク機器監視プロトコル、Simple Network Management Protocol)

SNMPとは

 * ネットワークで接続された機器の情報をネットワークで取得し、
   管理および監視(モニタリング)するためのプロトコル

SNMPに関するその他の事項

 * OSI参照モデルでは、第7層・アプリケーション層に属する
 * UDPのポート(ポーリングで161番、トラップで162番)が使用される
  →SNMPマネージャ(後述)は、レスポンスを受け取ることができない時は、
   リクエストを再発行すればいいので
      信頼性は重要ではないため、TCPでなく、UDPでいい(UDPは以下の関連記事を参照のこと)
http://blogs.yahoo.co.jp/dk521123/31343326.html

注意点

 * トラップに頼る監視運用はやめた方がいい
  →UDPだから信頼性はいまいち。
  →基本はGet-Requestによる定期監視。

関連用語

ポーリング

 * マネージャからエージェントに対して、リクエストを送り情報を得る行為

トラップ

 * オブジェクトの値が事前に指定した状態に変化した場合、その旨をマネージャに通知する機能

コミュニティー

 * SNMPでマネージャがエージェントに対して通信する際に、コミュニティー名という文字列を使ってやり取りする


SNMP のバージョン

SNMPv1 : RFC1157

 * コミュニティ名による平文の認証
 * SNMPトラップでの再送確認なし

SNMPv2c : RFC1901

 * コミュニティ名による平文の認証
 * SNMPトラップでの再送確認あり

SNMPv3 : RFC3410

 * コミュニティ名による暗号化された認証
 * SNMPトラップでの再送確認あり

参考文献

http://www.itmedia.co.jp/enterprise/articles/0705/16/news011_2.html

基本構成

SNMPは、大きく分けて4つで構成されている

 [1] SNMPエージェント(監視対象。監視される側) 例:ルータなど
 [2] SNMPマネージャ(監視する側)
 [3] SNMP
 [4] MIB(監視するための情報)

構成イメージ

 SNMPエージェント <===========> SNMPマネージャ
                       SNMP                  MIB
                        ↑                    ↑
              PDUという単位でやりとり     SNMPエージェントが持っている機器情報も元に監視

SNMPパケット

構成イメージ

 |<-------->|<----- SNMPヘッダ ---->|<------- PDU --------->|

 +----------+-----------+-----------+-----------+-----------+
 |          |           |           |           |           |
 |          |           |           |           |           |
 |          |           |           |           |           |
 |   [1]    |   [2-1]   |   [2-2]   |   [3-1]   |   [3-2]   |
 |          |           |           |           |           |
 |          |           |           |           |           |
 |          |           |           |           |           |
 +----------+-----------+-----------+-----------+-----------+

SNMPパケットの構成

 [1] UDPヘッダ
 [2] SNMPヘッダ
  [2-1] バージョン
  [2-2] コミュニティ
 [3] プロトコル・データ・ユニット(PDU)
  [3-1] PDUタイプ(メッセージの種類を示す符号)
  [3-2] メッセージに応じた情報

プロトコル・データ・ユニット(PDU)

 * Protocol Data Units

PDUタイプ

 * GetRequest     : SNMPマネージャがSNMPエージェントの情報をリクエストする
 * GetNextRequest : SNMPマネージャが前回リクエストした情報の次の情報をリスエストする
 * GetBulkRequest : SNMPマネージャが一度に多くの情報をリクエストする
 * GetResponse    : SNMPエージェントが、SNMPマネージャにレスポンスを送る
 * SetRequest     : SNMPマネージャが、SNMPエージェントの設定を変更する
 * Trap           : SNMPエージェントが、SNMPマネージャにネットワーク機器の状態を通知する

SNMPトラップ

SNMPトラップの種類

coldStart

送信プロトコルエンティティの再初期化を検知した。
そのためエンティティの実装が変更された可能性がある

warmStart

送信プロトコルエンティティの再初期化を検知したが、エンティティの実装に変更はない

linkDown

通信linkの障害を検知

linkUp

通信linkの回復を検知

authenticationFailure

コミュニティー名の一致しないSNMPメッセージの受信

egpNeighborLoss

EGPピアのノードダウン

enterpriseSpecific

Genericに定義されていないTrap
http://www.itmedia.co.jp/enterprise/articles/0705/31/news042_2.html

MIB

MIB(ミブ、Management Information Base)とは

 * SNMPエージェントが保持している機器の管理情報

その他

 * CMIP用、SNMP用がある
 * MIB1.0 ... RFC1156で規定
 * MIB2.0 ... RFC1213で規定(★こっちが一般的)

OID(オブジェクト識別子、Object Identifier)

 * MIBに格納されている個々の管理情報のことを、オブジェクト(Object)と呼ぶ
 * OID(Object IDentifier)とは、ひとつひとつのオブジェクトを区別するために振られた識別子