SNMP【Simple Network Management Protocol】

広告

広告

SNMPとは

最終更新
2006-01-13T23:28:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/snmp.html#what

SNMPTCP/IPネットワークに接続されている通信機器をネットワーク経由で監視や制御をするためのプロトコルです。1988年に開発されRFC1157で規定されています。SNMPはアプリケーション層プロトコルの1つでUDPポート番号161番及び162番)を利用し、更にこのUDPがIPを使うようになっています。

マネージャとエージェント

SNMPによるネットワーク管理は、管理対象となるネットワーク機器に常駐するエージェントと、管理する側の機器上のマネージャとのUDP通信により実現されます。具体的にやり取りされる情報には以下のものがあります。

情報の要求と応答
マネージャからエージェントに対象機器の情報を要求します。エージェントは情報をマネージャに応答します。
情報の設定要求と応答
マネージャからエージェントに対象機器の設定変更を要求します。エージェントは設定を変更し、結果をマネージャに応答します。
状態変化の通知
対象機器の状態変化をエージェントからマネージャに通知します。

また、マネージャエージェントの間で情報をやり取りする方法には、ポーリングトラップの2つがあります。

ポーリング

マネージャが定期的に要求を送信し、これにエージェントが応答をする方法です。エージェントから定期的に情報を抜き出し、その情報の推移からエージェントの状態を知るために使用します。UDP161番ポートが使われます。情報の重要度によって数分から数時間の感覚でマネージャはエージェントに対してOIDを指定し、情報を取得します。ポーリングはネットワークトラフィックの監視やディスクの使用率といったシステムリソースの監視などに利用されます。

トラップ

障害が発生した際など自らの状態に何らかの変化が起きた際に、エージェントが自発的にマネージャへ情報を通知する方法です。このため、エージェントは事前に指定された情報機器の情報を定期的に取得しておく必要があります。UDP162番ポートが使われます。トラップはリブートの検知や機器の温度上昇の検知などに利用されます。

コミュニティとは

SNMPマネージャエージェントと通信をする際には、コミュニティと呼ばれる文字列を指定します。コミュニティは管理したい機器をグループ化するために使われる概念で、マネージャとエージェントが同コミュニティの場合のみ通信が可能な仕様となっています。エージェントは複数のマネージャと通信することを視野に入れ、複数のコミュニティを設定可能となっています。また、エージェントはコミュニティに対して読み込み専用、書き込み専用、読み書き可能の3つの属性を指定することができます。

マネージャがコマンドを発行する際にコミュニティ名が一致しないと通信できないので、コミュニティに使われる文字列はアクセス制御のためのパスワードのような役割も持っています。ただ、SNMPではパケット暗号化されるわけではなく、コミュニティ名は平文のままネットワークを流れますので注意が必要です。

SNMPの仕組み

最終更新
2006-01-15T00:11:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/snmp.html#working

SNMPではコマンドのやり取りで機器やネットワークの管理を行います。ただ、Simpleと言う名が示す通り、SNMPのコマンドは非常に簡単なもので、基本的にはGetRequestGetNextRequestSetRequestGetResponseTrapと言う5つのオペレーションしかありません。マネージャエージェントの情報を知りたい場合は、指定したMIBOIDを送りそのOIDに格納されている情報を得ることとなります。

SNMPコマンド
コマンド意味
GetRequestMIB変数の値を要求する。
GetNextRequest指定し他MIBの次のMIB変数を読み込む。連続する範囲のMIB値を次々に読み出すことをMIB Walkと呼ぶ。
SetRequestMIB変数の値を更新する。
GetResponseGetRequestGetNextRequestSetRequestに対するエージェントからの応答。
Trapトラップ送信。
GetBulkRequestGetNextRequestの拡張コマンドで繰り返す回数を指定できる。
InformRequest複数のマネージャ間で情報交換用の通信に利用する。

上記コマンドは以下のSNMPメッセージとしてマネージャエージェントでやり取りされます。

SNMPメッセージ形式

SNMPメッセージ各フィールドの説明
フィールド説明
リクエストIDエージェントからの応答パケットがどのリクエストに対する応答かを判別するために使用する。
エラーステータスエージェントからのエラー通知情報。GetResponsePDUで利用される(詳細は下表)。
エージェントIPアドレスどのエージェントからのトラップかを判別するために使用。
一般トラップ番号トラップの種類を表す(詳細は下表)。この番号が7の場合は、その機器固有のトラップであり、同PDUの固有トラップ番号に別途そのトラップを識別する番号が付与される。
SNMPのエラーステータス
Status意味
0noErrorエラー無し。
1tooBig与えられた結果が大きすぎて管理エージェントが応答を作成できないことを表す。
2noSuchName可変結合フィールドで指定された名前(オブジェクト)が存在しないことを表す。
3badValue要求されたオブジェクトについて、指定値のフォーマットが正しくないことを表す。
4readOnlyMIBビューでRead-Onlyとなっているオブジェクトを変更しようとしたことを表す。
5genErrorその他エラーが発生したことを表す。
一般トラップ番号
Trap意味
1coldStartMIB設定値はクリアされ、エージェントが再起動した。
2warmStartMIB設定値は保存され、エージェントが再起動した。
3linkDown通信インターフェイスは使用不可である。
4linkUp通信インターフェイスは使用可である。
5authenticationFailure認証不可メッセージを受信した。
6egpNeighborLoss送信元エージェントがEGP隣接装置の1つのダウンを検出した。
7enterpriseSpecificベンダ固有のトラップである。

補足知識

最終更新
2006-01-15T01:31:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/snmp.html#supplement

SNMPUDPが利用されるのは、ネットワークの輻輳対策である。転送エラーが起こった際に、SNMP自らの責任で処理を行う事が出来、利用可能なリソースが増えて管理上の要求にも応じ易くなるため。また、ネットワークに余計な負荷をかけないメリットもある。

OSIプロトコルとの違い

OSIプロトコルはCMIP【Common Management Information Protocol】とCMIS【Common Management Information System】を指す。SNMPUDPサービスを利用するが、OSIプロトコルはコネクション型システムに依存する。また、SNMPはポーリングによって機器の状況を知るが、OSIプロトコルでは報告機構に依存し、装置から管理ステーションへ定期的に情報が送信される。

SNMP version 2

マネージャからマネージャへの通信をサポートし、GETNEXTの代わりとしてGETBULKを導入している。

SNMP v2cは論争の多かったSNMP v2の新しいセキュリティモデルを採用する代わりに、SNMP v1のコミュニティを改善している。

SNMP v2uはSNMP v2の複雑さを最低限にするために、セキュリティ機能を簡素化している。SNMP v3 のセキュリティの枠組みとして採用されている。

SNMP version 3

IETFSNMP v3の登場によって旧式のSNMPが不要になると考えている。

資料

SNMPデータタイプ
データタイプ説明
Counter負ではない整数で最大値は232-1。この値を使い切るとカウンタは0に復帰する。
Display StringTelnetで使える文字に制限されたオクテット列。
Gauge最大値を維持する負ではない整数。最大値は232-1。
Integer整数値。
IP Address4オクテットの列で表した32bitIP Address。
List他のデータタイプを順に並べたもの。
Network Addressプロトコルファミリーの1つでのアドレス。
NullNullオクテット列。
Object Identifier数値の列として表されるOID。
Octet Stringコミュニティ列等0〜255までの任意の値。
Opaque任意のデータをオクテット列として渡す。
Physical Address装置の物理アドレスをオクテット列として表す。
Tableリストを並べたもの。
Time Ticks任意の時刻を起点に1/100sec単位で経過時間を示すカウンタ。
オブジェクトのアクセス状態
状態意味
Read-Only使用するアクセスモードとは関係なくオブジェクトの読み出しのみ可能。
Read-Write使用するアクセスモードに応じてオブジェクトの読み出しと書き込みが可能。
Write-Onlyアクセスモードが適切であればオブジェクトの書き込みのみ可能。
Not-Accessible使用するアクセスモードとは関係なくオブジェクトは利用できない。
オブジェクトに求められる格付け
意味
Mandatory該当する場合は必ず実装しなければならない。
Optional実装はベンダーの自由。
Obsolete時代遅れとなり、別のオブジェクトに置き換えられている。

広告

当ページ作成にあたり、参考にさせてもらったリソース

Copyright (C) 2006 七鍵 key@do.ai 初版:2006年01月13日 最終更新:2006年01月15日