エス‐エヌ‐エム‐ピー【SNMP】
SNMP
読み方:エスエヌエムピー
SNMPとは、ネットワーク管理のためのプロトコル(通信規約)のことで、ネットワークに接続されたルーターやハブなどの通信機器を、ネットワークを通じて監視あるいは制御するためのものである。TCP/IP接続のネットワークに用いられるが、TCPではなくUDP上で用いられることが一般的となる。
監視や制御の対象となる通信機器はMIB(Management Information Base)と呼ばれるデータベースに管理されており、MIBの規定に従って、モデムの利用状況を調べたり、あるいは設定をリセットしたりといった機器の設定管理を行なうことができる。
SNMP 関数
導入
要件
Unix 上で SNMP 関数を使用するためには、» NET-SNMP パッケージをインストールする必要があります。 Windows 上ではこれらの関数は NT 上でのみ利用可能であり、 Win95/98 では利用できません。インストール手順
重要: UCD SNMP パッケージを使用するには、コンパイル前に NO_ZEROLENGTH_COMMUNITY を 1 に定義する必要があります。UCD SNMP のコンフィグレーションを行った後で config.h あるいは acconfig.h を編集し、NO_ZEROLENGTH_COMMUNITY を探してください。 #define の行のコメントを外してください。 これにより、次のようになるはずです。#define NO_ZEROLENGTH_COMMUNITY 1それから、--with-snmp[=DIR] をつけて PHP をコンパイルします。
SNMP コマンドと組み合わせた場合に奇妙なセグメンテーションフォールトが 生じる場合は、上の指示に従っていないと思われます。UCD SNMP を再コンパイル したくない場合は、この不具合に対処するため、PHP を --enable-ucd-snmp-hack スイッチをつけてコンパイルしてください。
Windows 版は、SNMP サポート用ファイルが mibs ディレクトリにあります。このディレクトリを DRIVE:\usr\mibs に移動する必要が あります。DRIVE は、PHP がインストールされているドライブに置き換えなければ なりません。例: c:\usr\mibs
実行時設定
設定ディレクティブは定義されていません。リソース型
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。- SNMP_OID_OUTPUT_FULL (integer)
- 5.2.0 以降
- SNMP_OID_OUTPUT_NUMERIC (integer)
- 5.2.0 以降
- SNMP_VALUE_LIBRARY (integer)
- SNMP_VALUE_PLAIN (integer)
- SNMP_VALUE_OBJECT (integer)
- SNMP_BIT_STR (integer)
- SNMP_OCTET_STR (integer)
- SNMP_OPAQUE (integer)
- SNMP_NULL (integer)
- SNMP_OBJECT_ID (integer)
- SNMP_IPADDRESS (integer)
- SNMP_COUNTER (integer)
- SNMP_UNSIGNED (integer)
- SNMP_TIMETICKS (integer)
- SNMP_UINTEGER (integer)
- SNMP_INTEGER (integer)
- SNMP_COUNTER64 (integer)
目次
- snmp_get_quick_print — UCD ライブラリの quick_print の現在の設定値を取得する
- snmp_get_valueretrieval — SNMP の値が返される方法を返す
- snmp_read_mib — アクティブな MIB ツリーの中に MIB ファイルを読み込んでパースする
- snmp_set_enum_print — すべての enum を、実際の整数値ではなく enum 値とともに返す
- snmp_set_oid_numeric_print — 指定したオブジェクト内の全てのオブジェクトを、対応するオブジェクト ID を含めて返す
- snmp_set_oid_output_format — OID の出力形式を設定する
- snmp_set_quick_print — UCB SNMP ライブラリで quick_print の値を設定する
- snmp_set_valueretrieval — SNMP の値が返される方法を設定する
- snmpget — SNMP オブジェクトを取得する
- snmpgetnext — SNMP オブジェクトを取得する
- snmprealwalk — 指定したオブジェクトに関するオブジェクト ID を含むすべてのオブジェクトを返す
- snmpset — SNMP オブジェクトを設定する
- snmpwalk — エージェントから全ての SNMP オブジェクトを取得する
- snmpwalkoid — ネットワークエンティティに関する情報ツリーを検索する
Simple Network Management Protocol
(SNMP から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/12 00:01 UTC 版)
ナビゲーションに移動 検索に移動通信プロトコル | |
OSI階層 | アプリケーション層 |
---|---|
ポート | 161, 162(トラップ) |
RFC | 3411–3418 |
通信プロトコル | |
OSI階層 | アプリケーション層 |
---|---|
ポート | 10161, 10162(トラップ) |
RFC | 6353 |
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
Simple Network Management Protocol(簡易ネットワーク管理プロトコル、またはシンプル ネットワーク マネージメント プロトコル、SNMP)は、DARPAモデルに準じたIPネットワーク上のネットワーク機器を監視(モニタリング)・制御するための情報の通信方法を定める通信プロトコルである。
概要と基本コンセプト
巨大なネットワーク上で、数多くの機器の状態を把握するためには、この規格化されたプロトコルを使い、機器からの情報を集めて監視や制御を行う。コンピュータ等の能動的な機器以外にもルータやハブなどもSNMPを使って監視することが出来る。
プロトコルを管理情報の構造から分離することにより、SNMPはネットワーク上の非常に多種多様なサブシステムを容易にモニターできるようになった。それはOSI参照モデルの全ての層を超えて、データベースやe-mail、J2EE参照モデルなどにまでその範囲を拡大している。
SNMPのフレームワークの構造は、マスターエージェント、サブエージェント、マネージャからなる3つの主要な要素から構成されている。
- マスターエージェント
- IPアドレスによって特定可能なネットワーク上のノード上のシステムで、ルータやホストといったようなものがマスターエージェントと呼ばれる。典型的なマスターエージェントはプロトコルの構文解析や出力の整形などを行うのみである。
- サブエージェント
- あるシステム内に複数の管理可能なサブシステムが含まれている場合、マスターエージェントは受け取った要求を、一つまたは複数のサブエージェントに渡す。各サブエージェントはそれぞれがサブシステムに対応していて、サブシステムに対する監視や管理のインタフェースとなっている。マスターエージェントとサブエージェントが外部から見たときに単純な一つのエージェントとみなせるような場合には、それらの役割はまとめて扱われることもある。
- マネージャ
- クライアント・サーバ型で言うところのクライアントに相当する。管理者やアプリケーションによる管理操作はここからリクエストとして送出される他、各エージェントからのトラップを受信したりする。
管理情報ベース(= Management Information Base, MIB)
アーキテクチャ
SNMP v1 (SNMP version 1) で、次の5つのProtocol Data Unit (PDU) が定義されている。
- GET REQUEST: 一部の管理情報を取得するときに使用する
- GETNEXT REQUEST: 連続する管理情報を取得するときに使用する
- GET RESPONSE
- SET REQUEST: 管理するサブシステムに対して変更を加えるときに使用する
- TRAP (トラップ): 管理するサブシステムに関する警告や非同期イベントの通知に使用する
それ以降のバージョンで、次のPDU が追加されている。
- GETBULK REQUEST: 高速に複数の管理情報を取得するときに使用する
- INFORM: マネージャからマネージャへの通信するときに使用する
SNMP は、OSI参照モデルのアプリケーション層 (第7層) に相当する。
SNMP は、下位プロトコルとしてUDP を使用する。一般的に、エージェントが161番ポートを、マネージャが162番ポートを使用している。
エージェント
管理対象の機器をエージェントと呼ぶ (スイッチ、ルータ、ホストなど)。
エージェントは、その役割から次の2つに分類される。
- マスター・エージェント
- サブ・エージェント
マスター・エージェントは、1つ以上のサブ・エージェントを監視することができる。
エージェントは、Management Information Base(MIB; 管理情報ベース) と呼ばれる一種のデータベースを持つ。
マネージャ
ネットワークを管理するシステムをマネージャ (管理ステーション) と呼ぶ。これはクライアント・サーバ型のクライアントに相当する。
マネージャは、主に次のような管理操作を行う。
- エージェントへリクエスト (要求) を送信し、そのレスポンス (応答) を受信する
- エージェントからトラップ (通知) を受信する
SNMP version 1
SNMP v1 は、主に次のRFCで定義されている。
- RFC 1065 - TCP/IPネットワーク上の管理情報の種類と構造
- RFC 1066 - TCP/IPネットワーク管理のためのMIBの最初の定義
- RFC 1156 - RFC1066の改訂
- RFC 1158 - MIB-II と呼ばれるネットワーク機器の持つべき標準データ構造の定義
- RFC 1213 - RFC1158の改訂
- RFC 1067 - 簡易ネットワーク管理プロトコル (SNMP)の最初の定義(現在はobsoleted)
- RFC 1157 - 簡易ネットワーク管理プロトコル (SNMP) RFC1067を置き換えてこちらが現在の標準
SNMP v1 は、パスワードに相当するコミュニティ文字列がクリア・テキストで通信されるため、セキュリティの脆弱性が指摘されている。
SNMP version 2
SNMP v2、SNMP v2p (RFC 1441 - RFC 1452) は、機能性、セキュリティ、機密性が改善され、マネージャからマネージャへの通信をサポートしている。SNMP v2は、GETNEXT の代わりとしてGETBULK を導入した。しかし、SNMP v2 のセキュリティ・システムは複雑であり、広く採用されていない。
SNMP v2c (RFC 1901 - RFC 1908) は、論争の多かったSNMP v2 の新しいセキュリティ・モデルを採用する代わりに、SNMP v1 のコミュニティを改善している。このドラフト案がSNMP v2 のデファクトスタンダードとなっている。
SNMP v2u (RFC 1909 - RFC 1910) は、SNMP v2 の複雑さを受けないように、セキュリティに最大限の妥協を試みている。この変形はSNMP v2* として商品化され、SNMP v3 のセキュリティの枠組みとして採用されている。
SNMP version 3
SNMP v3 (RFC 3411 - RFC 3418, STD0062) は、SNMP の最新版である (2004年現在)。IETF は、SNMP v3 の登場によって旧式のSNMP が不要 (Obsolete) になると考えている。
実際にSNMP を実装するときは、複数のバージョンをサポートすることが多い (RFC 3584 参照)。
補足事項
- 典型的なマスター・エージェントはプロトコルの構文解析や出力の整形などを行うのみである。
- マスター・エージェントとサブ・エージェントが外部から見たときに単純な一つのエージェントとみなせるような場合には、それらの役割はまとめて扱われることもある。
- プロトコルを管理情報の構造から分離することにより、SNMP は多種多様なサブシステムを容易に監視できるようになった。それはOSI参照モデルの全ての層を超えて、データベースや電子メール、J2EE参照モデルなど、その範囲を拡大している。
- Request for Comments (RFC) は、Internet Engineering Task Force (IETF) によって公開されている規格文書である。
- 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"である。
参考文献
- SNMPバイブル―インターネット管理への実践ガイド (Professional Computing Series), William Stallings,アジソンウェスレイパブリッシャーズジャパン, 1994/11, ISBN 978-4795296510
- 入門SNMP ダグラス・R. マウロ (著), ケビン・J. シュミット オライリー・ジャパン, 2002/7/1, ISBN 978-4873110905
- 実践SNMP教科書―ネットワーク管理ツールの開発と活用 (IT TEXT), 山居 正幸, CQ出版, 2005/3, ISBN 978-4789818759
- マスタリングTCP/IP SNMP編, 緒方亮・鈴木暢・矢野ミチル(共著), オーム社, 2005/9, ISBN 978-4274066078
外部リンク
- 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 (すべて英文):
- RFC 1065 - Obsolete -Structure and Identification of Management Information for TCP/IP-based internets
- RFC 1066 - Obsolete - Management Information Base for Network Management of TCP/IP-based internets
- RFC 1067 - Obsolete - A Simple Network Management Protocol
- RFC 1098 - Obsolete - A Simple Network Management Protocol (SNMP)
- RFC 1155 - Structure and Identification of Management Information for TCP/IP-based Internets
- RFC 1156 - Management Information Base for Network Management of TCP/IP-based internets
- RFC 1157 - A Simple Network Management Protocol (SNMP)
- RFC 1158 - Obsolete - Management Information Base for Network Management of TCP/IP-based internets: MIB-II
- RFC 1441 - Introduction to version 2 of the Internet-standard Network Management Framework
- RFC 1448 - Obsolete - Protocol Operations for version 2 of the Simple Network Management Protocol (SNMPv2)
- RFC 1449 - Obsolete - Transport Mappings for version 2 of the Simple Network Management Protocol (SNMPv2)
- RFC 1213 - Management Information Base for Network Management of TCP/IP-based internets: MIB-II
- RFC 1905 - Obsolete - Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)
- RFC 1906 - Obsolete - Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)
- RFC 1907 - Obsolete - Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)
- RFC 2262 - Obsolete - Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
- RFC 2265 - Obsolete - View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
- RFC 2271 - Obsolete - An Architecture for Describing SNMP Management Frameworks
- RFC 2272 - Obsolete - Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
- RFC 2275 - Obsolete - View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
- RFC 2570 - Obsolete - Introduction to Version 3 of the Internet-standard Network Management Framework
- RFC 2571 - Obsolete - An Architecture for Describing SNMP Management Framework
- RFC 2572 - Obsolete - Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
- RFC 2573 - Obsolete - SNMP Applications
- RFC 2574 - Obsolete - User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)
- RFC 2575 - Obsolete - View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
- RFC 2576 - Obsolete - Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework
- RFC 2741 - Memo - Agent Extensibility (AgentX) Protocol Version 1
- RFC 3410 - Informational - Introduction and Applicability Statements for Internet Standard Management Framework
- RFC 3411 - Standard 62 - An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks
- RFC 3412 - Standard 62 - Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
- RFC 3413 - Standard 62 - Simple Network Management Protocol (SNMP) Application
- RFC 3414 - Standard 62 - User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)
- RFC 3415 - Standard 62 - View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
- RFC 3416 - Standard 62 - Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)
- RFC 3417 - Standard 62 - Transport Mappings for the Simple Network Management Protocol (SNMP)
- RFC 3418 - Standard 62 - Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)
- RFC 3512 - Informational- Configuring Networks and Devices with Simple Network Management Protocol (SNMP)
- RFC 3584 - Best Current Practice- Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework
関連項目
- SNMPのページへのリンク