Simple Network Management Protocol (SNMP) について
Simple Network Management Protocol(SNMP)は、IPネットワーク上の機器を監視・制御するためのプロトコルです。ネットワーク上の様々な機器の状態を把握し、効率的な管理を可能にするために設計されました。
SNMPの概要
SNMPは、ネットワーク機器の状態を監視し、必要に応じて設定変更を行うための標準化された
通信プロトコルです。これにより、ネットワーク管理者は、ルータ、スイッチ、サーバーなどの多様な機器を一元的に管理することができます。初期のRFCは
1988年に登場し、プロトコルと管理情報の構造を分離することで、様々なサブシステムを柔軟に監視できるようになりました。その適用範囲は、
OSI参照モデルの各層を超え、
データベース、メール、J2EEにも及んでいます。
SNMPのアーキテクチャ
SNMPは、以下の3つの主要要素で構成されています。
マスターエージェント: IPアドレスを持つネットワークノード上のシステムで、ルータやホストなどが該当します。主にプロトコルの構文解析や出力の整形を行います。
サブエージェント: マスターエージェントの管理下にあるサブシステムで、各サブシステムに対応した監視・管理インタフェースを提供します。マスターエージェントとサブエージェントは、外部からは単一のエージェントとして扱われることもあります。
マネージャ: クライアントに相当し、管理者やアプリケーションからリクエストを送信したり、エージェントからのトラップを受信したりします。
管理情報ベース (MIB)
SNMPエージェントは、管理情報ベース(MIB)と呼ばれるデータベースを持ちます。MIBには、管理対象機器の様々なパラメータや状態に関する情報が格納されており、マネージャはこの情報に基づいて監視や制御を行います。
SNMPのプロトコルデータユニット (PDU)
SNMPは、以下のPDUを使用して通信を行います。
SNMP v1 で定義されたPDU:
GET REQUEST: 特定の管理情報を取得する際に使用します。
GETNEXT REQUEST: 連続した管理情報を取得する際に使用します。
GET RESPONSE: GET REQUESTまたはGETNEXT REQUESTに対する応答として使用します。
SET REQUEST: 管理対象のサブシステムの設定を変更する際に使用します。
TRAP: 管理対象のサブシステムで発生した警告や非同期イベントを通知する際に使用します。
それ以降のバージョンで追加されたPDU:
GETBULK REQUEST: 大量の管理情報を高速に取得する際に使用します。
INFORM: マネージャ間で情報を交換する際に使用します。
SNMPの各要素
エージェント: 管理対象の機器(スイッチ、ルータ、ホストなど)を指し、マスターエージェントとサブエージェントに分類されます。マスターエージェントは複数のサブエージェントを監視できます。
マネージャ: ネットワークを管理するシステムで、エージェントにリクエストを送信し、レスポンスを受信したり、エージェントからトラップを受信したりします。
SNMPのバージョン
SNMP v1:
初期バージョンで、コミュニティ文字列がクリアテキストで通信されるため、セキュリティ上の脆弱性がありました。
主にRFC 1065, 1066, 1156, 1158, 1213, 1067, 1157で定義されています。
SNMP v2:
機能性、セキュリティ、機密性が改善され、マネージャ間の通信がサポートされました。
GETNEXTの代わりにGETBULKを導入しました。
セキュリティシステムが複雑で広く採用されませんでした。
SNMP v2c: SNMP v1のコミュニティを改善したもので、事実上の標準となっています。
SNMP v2u: セキュリティを最大限に妥協したもので、SNMP v3のセキュリティフレームワークの基礎となりました。
SNMP v3:
最新バージョンで、メッセージの完全性、認証、暗号化などのセキュリティ機能が強化されました。
複数のバージョンをサポートすることが推奨されています。
SNMPのセキュリティ
SNMP v1: パスワードに相当するコミュニティ文字列がクリアテキストで通信されるため、セキュリティ上の脆弱性が指摘されています。
SNMP v2: セキュリティ機能が改善されましたが、複雑なため広く採用されませんでした。
SNMP v3: メッセージの完全性、認証、暗号化を導入し、セキュリティレベルが大幅に向上しました。
補足事項
マスターエージェントは、プロトコルの構文解析や出力整形のみを行うことが多いです。
マスターエージェントとサブエージェントは、外部からは1つのエージェントとして見える場合があります。
SNMPは、プロトコルと管理情報の構造を分離することで、多様なサブシステムを監視できます。
Request for Comments(RFC)は、IETFが公開する規格文書です。
SNMP v2はセキュリティに関する意見の不一致により、広く採用されませんでした。
SNMP v2cは、非公式にSNMP v1.5として知られていました。
SNMP v2uは、User-Based Simple Network Management Protocol version 2です。
参考文献
SNMPバイブル―インターネット管理への実践ガイド, William Stallings
入門SNMP, ダグラス・R. マウロ, ケビン・J. シュミット
実践SNMP教科書―ネットワーク管理ツールの開発と活用, 山居 正幸
マスタリングTCP/IP SNMP編, 緒方亮・鈴木暢・矢野ミチル
外部リンク
RFC-Editor Webpage (英文)
SNMP old FAQ part 1, 2 Jul 2003 (英文)
SNMP old FAQ part 2, 2 Jul 2003(英文)
Simple Network Management Protocol FAQ, 2017 (英文)
RFC (すべて英文)
関連項目
管理情報ベース(Management Information Base, MIB)
オブジェクト識別子(Object IDentifier, OID)