Simple Network Management Protocol

Simple Network Management Protocolは、DARPAモデルに準じたIPネットワーク上のネットワーク機器を監視・制御するための情報の通信方法を定める通信プロトコルである。

1. 概要と基本コンセプト
-------------

巨大なネットワーク上で、数多くの機器の状態を把握するためには、この規格化されたプロトコルを使い、機器からの情報を集めて監視や制御を行う。コンピュータ等の能動的な機器以外にもルータやハブなどもSNMPを使って監視することが出来る。

SNMPに関する最初のRFCは1988年に登場した。

プロトコルを管理情報の構造から分離することにより、SNMPはネットワーク上の非常に多種多様なサブシステムを容易にモニターできるようになった。それはOSI参照モデルの全ての層を超えて、データベースやe-mail、J2EE参照モデルなどにまでその範囲を拡大している。

SNMPのフレームワークの構造は、マスターエージェント、サブエージェント、マネージャからなる3つの主要な要素から構成されている。

マスターエージェント : IPアドレスによって特定可能なネットワーク上のノード上のシステムで、ルータやホストといったようなものがマスターエージェントと呼ばれる。典型的なマスターエージェントはプロトコルの構文解析や出力の整形などを行うのみである。 サブエージェント : あるシステム内に複数の管理可能なサブシステムが含まれている場合、マスターエージェントは受け取った要求を、一つまたは複数のサブエージェントに渡す。各サブエージェントはそれぞれがサブシステムに対応していて、サブシステムに対する監視や管理のインタフェースとなっている。マスターエージェントとサブエージェントが外部から見たときに単純な一つのエージェントとみなせるような場合には、それらの役割はまとめて扱われることもある。 マネージャ : クライアント・サーバ型で言うところのクライアントに相当する。管理者やアプリケーションによる管理操作はここからリクエストとして送出される他、各エージェントからのトラップを受信したりする。

2. 管理情報ベース
----------------------------------------------

3. アーキテクチャ
----------

SNMP v1  で、次の5つのProtocol Data Unit  が定義されている。

GET REQUEST: 一部の管理情報を取得するときに使用する
GETNEXT REQUEST: 連続する管理情報を取得するときに使用する
GET RESPONSE
SET REQUEST: 管理するサブシステムに対して変更を加えるときに使用する
TRAP : 管理するサブシステムに関する警告や非同期イベントの通知に使用するそれ以降のバージョンで、次のPDU が追加されている。

GETBULK REQUEST: 高速に複数の管理情報を取得するときに使用する
INFORM: マネージャからマネージャへの通信するときに使用するSNMP は、OSI参照モデルのアプリケーション層  に相当する。

SNMP は、下位プロトコルとしてUDP を使用する。一般的に、エージェントが161番ポートを、マネージャが162番ポートを使用している。

3.1. エージェント
-----------

管理対象の機器をエージェントと呼ぶ 。

エージェントは、その役割から次の2つに分類される。

マスター・エージェント
サブ・エージェントマスター・エージェントは、1つ以上のサブ・エージェントを監視することができる。

エージェントは、Management Information Base と呼ばれる一種のデータベースを持つ。

3.2. マネージャ
----------

ネットワークを管理するシステムをマネージャ  と呼ぶ。これはクライアント・サーバ型のクライアントに相当する。

マネージャは、主に次のような管理操作を行う。

エージェントへリクエスト  を送信し、そのレスポンス  を受信する
エージェントからトラップ  を受信する

3.3. SNMP version 1
-------------------

SNMP v1 は、主に次のRFCで定義されている。

1065}} - TCP/IPネットワーク上の管理情報の種類と構造
1066}} - TCP/IPネットワーク管理のためのMIBの最初の定義
1156}} - RFC1066の改訂
1158}} - MIB-II と呼ばれるネットワーク機器の持つべき標準データ構造の定義
1213}} - RFC1158の改訂
1067}} - 簡易ネットワーク管理プロトコル の最初の定義
1157}} - 簡易ネットワーク管理プロトコル  RFC1067を置き換えてこちらが現在の標準SNMP v1 は、パスワードに相当するコミュニティ文字列がクリア・テキストで通信されるため、セキュリティの脆弱性が指摘されている。

3.4. SNMP version 2
-------------------

SNMP v2、SNMP v2p  は、機能性、セキュリティ、機密性が改善され、マネージャからマネージャへの通信をサポートしている。SNMP v2は、GETNEXT の代わりとしてGETBULK を導入した。しかし、SNMP v2 のセキュリティ・システムは複雑であり、広く採用されていない。

SNMP v2c  は、論争の多かったSNMP v2 の新しいセキュリティ・モデルを採用する代わりに、SNMP v1 のコミュニティを改善している。このドラフト案がSNMP v2 のデファクトスタンダードとなっている。

SNMP v2u  は、SNMP v2 の複雑さを受けないように、セキュリティに最大限の妥協を試みている。この変形はSNMP v2* として商品化され、SNMP v3 のセキュリティの枠組みとして採用されている。

3.5. SNMP version 3
-------------------

SNMP v3  は、SNMP の最新版である 。IETF は、SNMP v3 の登場によって旧式のSNMP が不要  になると考えている。

実際にSNMP を実装するときは、複数のバージョンをサポートすることが多い 。

SNMPv3は以下の点でセキュリティレベルがSNMPv2cと比較して向上している。

メッセージの完全性
認証
暗号化

4. 補足事項
-------

典型的なマスター・エージェントはプロトコルの構文解析や出力の整形などを行うのみである。
マスター・エージェントとサブ・エージェントが外部から見たときに単純な一つのエージェントとみなせるような場合には、それらの役割はまとめて扱われることもある。
プロトコルを管理情報の構造から分離することにより、SNMP は多種多様なサブシステムを容易に監視できるようになった。それはOSI参照モデルの全ての層を超えて、データベースや電子メール、J2EE参照モデルなど、その範囲を拡大している。
Request for Comments  は、Internet Engineering Task Force  によって公開されている規格文書である。
SNMP に関する最初のRFC は1988年に提出された。
SNMP v2 はセキュリティに関する意見の不一致によって、広く採用されていない。
SNMP v2c は"Community-Based Simple Network Management Protocol version 2"であり、非公式だがSNMP v1.5 として知られていた。
SNMP v2u は"User-Based Simple Network Management Protocol version 2"である。

5. 参考文献
-------

SNMPバイブル―インターネット管理への実践ガイド , William Stallings,アジソンウェスレイパブリッシャーズジャパン, 1994/11, ISBN 978-4795296510
入門SNMP ダグラス・R. マウロ , ケビン・J. シュミット オライリー・ジャパン, 2002/7/1, ISBN 978-4873110905
実践SNMP教科書―ネットワーク管理ツールの開発と活用 , 山居 正幸, CQ出版, 2005/3, ISBN 978-4789818759
マスタリングTCP/IP SNMP編, 緒方亮・鈴木暢・矢野ミチル, オーム社, 2005/9, ISBN 978-4274066078

6. 外部リンク
--------

[1]
[2]
[3]
[4]
RFC :
1065}} - //Obsolete// -Structure and Identification of Management Information for TCP/IP-based internets
1066}} - //Obsolete// - Management Information Base for Network Management of TCP/IP-based internets
1067}} - //Obsolete// - A Simple Network Management Protocol
1098}} - //Obsolete// - A Simple Network Management Protocol 
1155}} - Structure and Identification of Management Information for TCP/IP-based Internets
1156}} - Management Information Base for Network Management of TCP/IP-based internets
1157}} - A Simple Network Management Protocol 
1158}} - //Obsolete// - Management Information Base for Network Management of TCP/IP-based internets: MIB-II
1441}} - Introduction to version 2 of the Internet-standard Network Management Framework
1448}} - //Obsolete// - Protocol Operations for version 2 of the Simple Network Management Protocol 
1449}} - //Obsolete// - Transport Mappings for version 2 of the Simple Network Management Protocol 
1213}} - Management Information Base for Network Management of TCP/IP-based internets: MIB-II
1905}} - //Obsolete// - Protocol Operations for Version 2 of the Simple Network Management Protocol 
1906}} - //Obsolete// - Transport Mappings for Version 2 of the Simple Network Management Protocol 
1907}} - //Obsolete// - Management Information Base for Version 2 of the Simple Network Management Protocol 
2262}} - //Obsolete// - Message Processing and Dispatching for the Simple Network Management Protocol 
2265}} - //Obsolete// - View-based Access Control Model  for the Simple Network Management Protocol 
2271}} - //Obsolete// - An Architecture for Describing SNMP Management Frameworks
2272}} - //Obsolete// - Message Processing and Dispatching for the Simple Network Management Protocol 
2275}} - //Obsolete// - View-based Access Control Model  for the Simple Network Management Protocol 
2570}} - //Obsolete// - Introduction to Version 3 of the Internet-standard Network Management Framework
2571}} - //Obsolete// - An Architecture for Describing SNMP Management Framework
2572}} - //Obsolete// - Message Processing and Dispatching for the Simple Network Management Protocol 
2573}} - //Obsolete// - SNMP Applications
2574}} - //Obsolete// - User-based Security Model  for version 3 of the Simple Network Management Protocol 
2575}} - //Obsolete// - View-based Access Control Model  for the Simple Network Management Protocol 
2576}} - //Obsolete// - Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework
2741}} - //Memo// - Agent Extensibility  Protocol Version 1
3410}} - Informational - Introduction and Applicability Statements for Internet Standard Management Framework
3411}} - Standard 62 - An Architecture for Describing Simple Network Management Protocol  Management Frameworks
3412}} - Standard 62 - Message Processing and Dispatching for the Simple Network Management Protocol 
3413}} - Standard 62 - Simple Network Management Protocol  Application
3414}} - Standard 62 - User-based Security Model  for version 3 of the Simple Network Management Protocol 
3415}} - Standard 62 - View-based Access Control Model  for the Simple Network Management Protocol 
3416}} - Standard 62 - Version 2 of the Protocol Operations for the Simple Network Management Protocol 
3417}} - Standard 62 - Transport Mappings for the Simple Network Management Protocol 
3418}} - Standard 62 - Management Information Base  for the Simple Network Management Protocol 
3512}} - Informational- Configuring Networks and Devices with Simple Network Management Protocol 
3584}} - Best Current Practice- Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework

7. 関連項目
-------

管理情報ベース
オブジェクト識別子