ネットワーク用語 > SNMP
SNMP = Simple Network Management Protocol
SNMPとは【Simple Network Management Protocol】 - IT用語辞典
SNMP 【Simple Network Management Protocol】
読み :エスエヌエムピー
TCP/IPネットワークにおいて、ルータやコンピュータ、端末など、ネットワークに接続された通信機器をネットワーク経由で監視・制御するためのプロトコル。
制御の対象となる機器はMIBと呼ばれる管理情報データベースを持っており、管理を行う機器は対象機器のMIBに基づいて適切な設定を行う。
Simple Network Management Protocol - Wikipedia
Simple Network Management Protocol(シンプル ネットワーク マネージメント プロトコル、SNMP)は、DARPAモデルに準じたIPネットワーク上のネットワーク機器を監視(モニタリング)・制御するための情報の通信方法を定めるプロトコルである。
概要
巨大なネットワーク上で、数多くの機器の状態を把握するためには、この規格化されたプロトコルを使い、機器からの情報を集めて監視や制御を行なう。
コンピュータ等の能動的な機器以外にもルータやハブなどもSNMPを使って監視することが出来る。
プロトコルを管理情報の構造から分離することにより、SNMPはネットワーク上の非常に多種多様なサブシステムを容易にモニターできるようになった。
それはOSI参照モデルの全ての層を超えて、データベースやe-mail、J2EE参照モデルなどにまでその範囲を拡大している。
SNMPのフレームワークの構造は、マスターエージェント、サブエージェント、マネージャからなる3つの主要な要素から構成されている。
SNMP v1 (SNMP version 1) で、次の4つのProtocol Data Unit (PDU) が定義されている。
それ以降のバージョンで、次のPDU が追加されている。
SNMP は、OSI参照モデルのアプリケーション層 (第7層) に相当する。
SNMP は、下位プロトコルとしてUDPを使用する。
一般的に、エージェントが161番ポートを、マネージャが162番ポートを使用している。
管理対象の機器をエージェントと呼ぶ (スイッチ、ルータ、ホストなど)。
エージェントは、その役割から次の2つに分類される。
マスター・エージェントは、1つ以上のサブ・エージェントを監視することができる。
エージェントは、Management Information Base(MIB; 管理情報ベース) と呼ばれる一種のデータベースを持つ。
ネットワークを管理するシステムをマネージャ (管理ステーション) と呼ぶ。
これはクライアント・サーバ型のクライアントに相当する。
マネージャは、主に次のような管理操作を行う。
SNMPはTCP/IPネットワークに接続されている通信機器をネットワーク経由で監視や制御をするためのプロトコルです。
1988年に開発されRFC1157で規定されています。
SNMPはアプリケーション層プロトコルの1つでUDP(ポート番号161番及び162番)を利用し、更にこのUDPがIPを使うようになっています。
SNMPによるネットワーク管理は、管理対象となるネットワーク機器に常駐するエージェントと、管理する側の機器上のマネージャとのUDP通信により実現されます。
マネージャとエージェントの間で情報をやり取りする方法には、ポーリングとトラップの2つがあります。
SNMPでマネージャがエージェントと通信をする際には、コミュニティと呼ばれる文字列を指定します。
コミュニティは管理したい機器をグループ化するために使われる概念で、マネージャとエージェントが同コミュニティの場合のみ通信が可能な仕様となっています。
エージェントは複数のマネージャと通信することを視野に入れ、複数のコミュニティを設定可能となっています。
また、エージェントはコミュニティに対して読み込み専用、書き込み専用、読み書き可能の3つの属性を指定することができます。
マネージャがコマンドを発行する際にコミュニティ名が一致しないと通信できないので、コミュニティに使われる文字列はアクセス制御のためのパスワードのような役割も持っています。
ただ、SNMPではパケットが暗号化されるわけではなく、コミュニティ名は平文のままネットワークを流れますので注意が必要です。
SNMPではコマンドのやり取りで機器やネットワークの管理を行います。
ただ、Simpleと言う名が示す通り、SNMPのコマンドは非常に簡単なもので、基本的にはGetRequest、GetNextRequest、SetRequest、GetResponse、Trapと言う5つのオペレーションしかありません。
マネージャがエージェントの情報を知りたい場合は、指定したMIBのOIDを送りそのOIDに格納されている情報を得ることとなります。
コマンド | 意味 |
GetRequest | MIB変数の値を要求する。 |
GetNextRequest | 指定し他MIBの次のMIB変数を読み込む。連続する範囲のMIB値を次々に読み出すことをMIB Walkと呼ぶ。 |
SetRequest | MIB変数の値を更新する。 |
GetResponse | GetRequest、GetNextRequest、SetRequestに対するエージェントからの応答。 |
Trap | トラップ送信。 |
GetBulkRequest | GetNextRequestの拡張コマンドで繰り返す回数を指定できる。 |
InformRequest | 複数のマネージャ間で情報交換用の通信に利用する。 |
上記コマンドは以下のSNMPメッセージとしてマネージャとエージェントでやり取りされます。
フィールド | 説明 |
リクエストID | エージェントからの応答パケットがどのリクエストに対する応答かを判別するために使用する。 |
エラーステータス | エージェントからのエラー通知情報。GetResponseのPDUで利用される。 |
エージェントIPアドレス | どのエージェントからのトラップかを判別するために使用。 |
一般トラップ番号 | トラップの種類を表す。 |
一般トラップ番号が7の場合は、その機器固有のトラップであり、同PDUの固有トラップ番号に別途そのトラップを識別する番号が付与される。
値 | Status | 意味 |
0 | noError | エラー無し。 |
1 | tooBig | 与えられた結果が大きすぎて管理エージェントが応答を作成できないことを表す。 |
2 | noSuchName | 可変結合フィールドで指定された名前(オブジェクト)が存在しないことを表す。 |
3 | badValue | 要求されたオブジェクトについて、指定値のフォーマットが正しくないことを表す。 |
4 | readOnly | MIBビューでRead-Onlyとなっているオブジェクトを変更しようとしたことを表す。 |
5 | genError | その他エラーが発生したことを表す。 |
値 | Trap | 意味 |
1 | coldStart | MIB設定値はクリアされ、エージェントが再起動した。 |
2 | warmStart | MIB設定値は保存され、エージェントが再起動した。 |
3 | linkDown | 通信インターフェイスは使用不可である。 |
4 | linkUp | 通信インターフェイスは使用可である。 |
5 | authenticationFailure | 認証不可メッセージを受信した。 |
6 | egpNeighborLoss | 送信元エージェントがEGP隣接装置の1つのダウンを検出した。 |
7 | enterpriseSpecific | ベンダ固有のトラップである。 |
SNMP(Simple Network Management Protocol)
http://www.n-study.com/network/snmp.htm
@IT:監視を自動化するSNMP(1)
http://www.atmarkit.co.jp/fnetwork/rensai/snmp01/01.html
ITmedia エンタープライズ:SNMPによるネットワークモニタリング「第2版」
http://www.itmedia.co.jp/enterprise/special/0705/snmp/