【プロトコル】SNMP ~ 機器監視プロトコル ~

【1】SNMP

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

SNMPに関するその他の事項

* OSI参照モデルでは、第7層・アプリケーション層に属する
* UDPのポート(ポーリングで161番、トラップで162番)が使用される
 => SNMPマネージャ(後述)は、レスポンスを受け取ることができない時は、
  リクエストを再発行すればいいので、信頼性は重要ではないため、
  TCPでなく、UDPでいい

【2】注意点

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

【3】関連用語

1)ポーリング

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

2)トラップ

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

3)コミュニティー

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

【4】SNMP のバージョン

1)SNMPv1 : RFC1157

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

2)SNMPv2c : RFC1901

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

3)SNMPv3 : RFC3410

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

参考文献
http://www.itmedia.co.jp/enterprise/articles/0705/16/news011_2.html

【5】基本構成

SNMPは、大きく分けて4つで構成されている
 [1] SNMPエージェント(監視対象。監視される側) 例:ルータなど
 [2] SNMPマネージャ(監視する側)
 [3] SNMP
 [4] MIB(監視するための情報)

1)構成イメージ

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

2)MIB

* MIB (Management Information Base) で「ミブ」と読む
* SNMPエージェントが保持している機器の管理情報

その他の事項

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

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

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

【6】SNMPパケット

1)構成イメージ

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

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

1)SNMPパケットの構成

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

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

* Protocol Data Units

1)PDUタイプ

GetRequest

* SNMPマネージャがSNMPエージェントの情報をリクエストする

GetNextRequest

* SNMPマネージャが前回リクエストした情報の次の情報をリスエストする

GetBulkRequest

* SNMPマネージャが一度に多くの情報をリクエストする

GetResponse

* SNMPエージェントが、SNMPマネージャにレスポンスを送る

SetRequest

* SNMPマネージャが、SNMPエージェントの設定を変更する

Trap

* SNMPエージェントが、SNMPマネージャに
 ネットワーク機器の状態を通知する

【8】SNMPトラップ

1)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

参考資料

http://ash.jp/net/snmp.htm
http://www.itmedia.co.jp/enterprise/articles/0705/21/news015.html