SNMPとは?簡易ネットワーク管理プロトコルの定義・仕組み・用途
SNMPとは?定義・仕組み・用途を図解で分かりやすく解説。ルーターやスイッチの監視・管理手法から実践設定まで紹介。
SNMP(Simple Network Management Protocol)は、インターネットプロトコルスイートの一部です。SNMPは、ネットワーク管理システムで、機器の状態を監視し、また問題を発見するために使用されます。SNMPは、アプリケーション層プロトコル、データベーススキーマ、データオブジェクトのセットなど、ネットワーク管理のための一連の標準規格で構成されています。
SNMPは、管理対象システム上の変数という形で管理データを公開し、システム構成を説明します。これらの変数は、管理アプリケーションから照会(場合によっては設定)することができます。ルーター、スイッチ、サーバーなどのデバイスを管理するための標準規格です。
仕組みの概要
SNMPは「マネージャ(管理ステーション)」と「エージェント(管理対象デバイス)」の2つの主要な役割で構成されます。エージェントはデバイス上の管理情報を保持し、マネージャはその情報を取得して監視・制御を行います。管理情報はMIB(Management Information Base)という定義済みのデータ構造で表現され、各項目はOID(Object Identifier)という一意の識別子で参照されます。
主要コンポーネント
- マネージャ(管理局):監視・管理を行うソフトウェア(例:ネットワーク管理システム)。
- エージェント:ルーターやスイッチ、サーバーなどに組み込まれたSNMPプロセス。管理情報を提供し、要求に応答する。
- MIB(Management Information Base):管理可能な変数の集合。標準MIBに加え、ベンダー固有の拡張MIBが存在する。
- OID(Object Identifier):MIB内の各変数を識別するための階層的な番号。例:.1.3.6.1 は ISO → org → dod → internet の一部。
主要なPDU(メッセージ)
- Get:指定したOIDの現在値を取得する。
- GetNext:MIBツリーの次のオブジェクトを順に取得する(テーブル走査に利用)。
- GetBulk(SNMPv2以降):大量の連続したデータを効率的に取得する。
- Set:エージェント上の変数を書き換える(設定変更)。
- Response:Get/GetNext/Setなどに対するエージェントの応答。
- Trap:エージェント側からマネージャへ非同期に送られる通知(例:故障発生)。
- Inform:Trapに対して通知の受信確認を期待するメッセージ(信頼性向上)。
プロトコルとポート・トランスポート
SNMPは通常UDPをトランスポート層に用い、デフォルトでポート161(エージェント)と162(Trap/Inform受信)を使用します。UDPは軽量ですが信頼性が低いため、重要な通知や設定変更には確認応答(Informやアプリ側のリトライ)を考慮する必要があります。実装によってはTCPやSNMP over TLSなどの代替方式をサポートする場合もあります。
SNMPのバージョンとセキュリティ
- SNMPv1:初期版。認証は平文のコミュニティ文字列(community string)で行われるためセキュリティは弱い。
- SNMPv2c:機能強化(GetBulkなど)を追加したが、認証はv1同様コミュニティベース。
- SNMPv3:認証(ユーザー認証)と暗号化(プライバシー)をサポートし、セキュリティが大幅に改善された。推奨される運用方式はSNMPv3の導入です。
用途・利用例
- ネットワーク機器の稼働監視(インタフェースのUP/DOWN、エラー数、トラフィック量など)。
- サーバーやアプリケーションの基本的な状態監視(CPU、メモリ、ディスク使用率など、対応するMIBがあれば取得可能)。
- 障害通知の受信(Trap/Informを使ったアラート)。
- 簡易なリモート設定(Setを用いたパラメータ変更。ただし慎重に運用する必要あり)。
- ベンダー独自のMIBを利用した詳細なハードウェア情報の取得。
導入時の注意点とベストプラクティス
- 可能な限りSNMPv3を使用し、認証と暗号化を有効にする。
- コミュニティ文字列やユーザー情報はデフォルトのままにせず、強固な値を設定する。
- 監視に必要なOIDのみを許可するACLやファイアウォールルールを設定する。
- Trap受信の可用性確保(別経路の通知やInformの活用)を検討する。
- MIBを理解し、必要に応じてベンダーMIBを取り込んで監視項目を拡張する。
利点と制約
利点としては、広く普及しているため多くの機器で標準サポートされ、軽量で実装が容易という点があります。制約としては、初期バージョンのセキュリティ問題、UDPベースによる信頼性の限界、そしてMIBの把握やOID管理の手間が挙げられます。
まとめ
SNMPはネットワーク機器の監視・管理において長年標準として利用されてきたプロトコルです。最新の運用ではSNMPv3による認証・暗号化の適用、必要なMIBの把握、Trap/Informの適切な取り扱いが重要です。大規模環境やセキュリティ要件が高い場合は、SNMP単独に頼るのではなく、ログ管理やエージェントベースの詳しい監視ツールと組み合わせるのが望ましい運用方法です。
概要と基本コンセプト
一般的なSNMPの使用方法では、管理対象となるシステムが複数あり、それらを管理するシステムが1つ以上存在します。エージェントと呼ばれるソフトウェアコンポーネント(下記参照)は、管理対象の各システム上で実行され、SNMPを介して管理システムに情報を報告します。
SNMPエージェントは、管理対象システムの管理データを変数として公開します(「空きメモリ」、「システム名」、「実行中のプロセス数」、「デフォルトルート」など)。しかし、このプロトコルでは、新しい設定の変更や適用など、能動的な管理作業も可能です。管理システムは、GET、GETNEXT、GETBULKのプロトコル操作によって情報を取得することができますし、エージェントはTRAPやINFORMのプロトコル操作を使って聞かれることなくデータを送信します。管理システムはまた、システムを能動的に管理するために、SETプロトコル操作を通じて構成の更新や制御要求を送ることができる。設定と制御の操作は、ネットワークに変更が必要な場合にのみ使用される。監視オペレーションは、通常定期的に実行される。
RFC
- RFC 1155 - TCP/IPベースのインタネットのための管理情報の構造と識別
- RFC 1156 - TCP/IPベースのインターネッツのネットワーク管理のための管理情報ベース
- RFC 1157 - 簡易ネットワーク管理プロトコル(SNMP)
- RFC 1441 - インターネット標準のネットワーク管理フレームワークのバージョン2について紹介します。
- RFC 1213 - TCP/IP ベースのインターネッツのネットワーク管理のための管理情報ベース。MIB-II
- RFC 3410 (Informational) - インターネット標準管理フレームワークの紹介と適用性ステートメント
- RFC 3411 (Standard 62) - SNMP (Simple Network Management Protocol) 管理フレームワークを記述するためのアーキテクチャ
- RFC 3412 (標準62) - SNMP (Simple Network Management Protocol)のメッセージ処理とディスパッチング
- RFC 3413 (Standard 62) - SNMP (Simple Network Management Protocol)アプリケーション
- RFC 3414 (Standard 62) - 簡易ネットワーク管理プロトコル(SNMPv3)バージョン3のためのユーザーベースセキュリティモデル (USM)
- RFC 3415 (Standard 62) - SNMP (Simple Network Management Protocol)のためのビューベースアクセスコントロールモデル(VACM)
- RFC 3416 (Standard 62) - Simple Network Management Protocol (SNMP) のプロトコル操作のバージョン2
- RFC 3417(標準62)-簡易ネットワーク管理プロトコル(SNMP)用トランスポートマッピング
- RFC 3418 (標準 62) - SNMP (Simple Network Management Protocol) のための管理情報ベース (MIB)
- RFC 3584 (Best Current Practice) - インターネット標準のネットワーク管理フレームワークのバージョン1、バージョン2、バージョン3間の共存について
- RFC 3826 (提案) - SNMPユーザーベースセキュリティモデルにおけるAdvanced Encryption Standard (AES) 暗号アルゴリズム
百科事典を検索する