SNMP関連 RFC

SNMPは TCP/IPプロトコル群に含まれるプロトコルなので、IETF(Internet Engineering Task Force:インターネット技術特別調査委員会)がRFC(Request For Comments)として具体的な仕様を管理・公開しています。RFCの原文は、IETFのWebサイトで検索と参照が可能です。SNMP関連のRFCを以下に示します。

RFC1155

Structure and Identification of Management Information for TCP/IP-based Internets.
TCP/IPベースネットワーク用の管理情報の構造と識別
MIBに含まれる管理オブジェクトの定義方法の記述

RFC1157

A Simple Network Management Protocol (SNMP).
簡易ネットワーク管理プロトコル(SNMPバージョン1)
MIBオブジェクトを管理するために使用するプロトコル

RFC1213

Management Information Base for Network Management of TCP/IP-based internets: MIB-II.
TCP/IPベースネットワークの管理のMIB
MIBに含まれる管理オブジェクトに関する記述

RFC1445

Administrative Model for version 2 of the Simple Network Management Protocol (SNMPv2).
簡易ネットワーク管理プロトコル バージョン2(SNMPv2)の管理モデル。

RFC1901

Introduction to Community-based SNMPv2
コミュニティに基づいたSNMPv2入門

RFC1902

Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv2の管理情報ベース(MIB)の構造

RFC1903

Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv2のMIBモジュールで使用するテキスト表現に関する規約

RFC1904

Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv2の適合性ステートメント

RFC1905

Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv2のプロトコル操作

RFC1906

Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv2のトランスポート層(UDPなど)のマッピング

RFC1907

Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv2のMIB

SNMPの構成要素と動作

SNMPの構成要素

SNMPは、ネットワーク上でデータを蓄積する「SNMPエージェント」と、それらのデータを収集・管理する「SNMPマネージャ」で構成されます。

SNMPエージェント

SNMPエージェントは、ルータなどの上で動作し、MIB(Management Information Base:RFC1902などで定義)と呼ばれる情報を管理しています。

SNMPマネージャ

SNMPマネージャは、管理用PC上で動作するアプリケーションプログラムで、HP Openview、Novell NMS、IBM NetView、Sun Net Managerなどが有名です。

SNMPエージェントとマネージャ間の3動作(情報取得・情報設定・事象通知)

SNMPマネージャとSNMPエージェントとの間では、情報取得・情報設定・事象通知という3つの動作があります。情報取得・情報設定・事象通知の要求・応答メッセージは、SNMPのバージョンによりメッセージが異なります。

情報取得

SNMPマネージャからSNMPエージェントに対して情報取得が要求されると、SNMPエージェントは管理しているMIBの情報を、SNMPマネージャに返却します。

情報設定

SNMPマネージャからSNMPエージェントに対して情報設定が要求されると、SNMPは管理しているMIBの情報を更新し、SNMPマネージャに結果を報告します。

事象通知

SNMPエージェントで、なんらかの事象が発生した際に、SNMPマネージャに対して、情報を送信します。事象通知は、情報取得や情報設定とは異なり、SNMPエージェントから自律的に送信されます。

SNMPv1メッセージ

SNMPv1(Simple Network Management Protocol Version 1)のメッセージ一覧、メッセージフォーマット、メッセージフィールドを説明します。

SNMPv1メッセージ一覧

SNMPv1の3つの動作(情報取得、情報設定、事象通知)と メッセージの一覧を以下に示します。GetRequest,GetNextRequest,SetRequestメッセージはUDPポート161を、TrapメッセージはUDPポート162を使用します。

動作= 情報取得

メッセージ名= GetRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= GetNextRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= GetResponse, SNMPマネージャ ← SNMPエージェント

動作= 情報設定

メッセージ名= SetRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= GetResponse, SNMPマネージャ ← SNMPエージェント

動作= 事象通知

メッセージ名= Trap, SNMPマネージャ ← SNMPエージェント

SNMPv1メッセージフォーマット

SNMPv1メッセージフォーマット(フィールドの説明)を下図に示します。

SNMPv1メッセージ

SNMPv1メッセージフィールド

SNMPv1メッセージフィールドの説明を以下に示します。

フィールド= バージョン

SNMPのバージョン。SNMPv1では、「0」が設定されます。

フィールド= コミュニティ

SNMPのセキュリティで使用する名称で、メッセージをやり取りする相手が正当な権限を持っているか否かを判定するためのものです。一般的には、public, tei_admin, administrator などの名称が使用されます。

フィールド= PDUタイプ

メッセージの種類を表すコード。
 0: GetRequest
 1: GetNextRequest
 2: GetResponse
 3: SetRequest
 4: Trap
PDUは Protocol Data Unitの略で、SNMPメッセージでのフォーマットを表す単語です。

フィールド= 要求ID

複数のメッセージを識別するために、要求ごとに異なるIDが設定されます。

フィールド= エラー・ステータス

SNMPマネージャからの要求をSNMPエージェントが処理する際に異常が発生した場合に、設定されます。
 0: noError (正常)
 1: tooBig (PDUサイズがローカル上限値を超えている)
 2: noSuchName(オブジェクト名称が不正)
 3: badValue (SetRequestに不正な値)
 4: readOnly (読み取り専用)
 5: genErr (明示されていない一般的なエラー)

フィールド= エラー・インデックス

エラー・ステータスが0(noError: 正常)以外の場合に、変数バインディングのどの変数がエラーを起こしたかを表すインデックスが設定されます。

フィールド= 変数バインディング

変数名と値の配列。

フィールド= エンタープライズ

Trapを発生させたオブジェクトのタイプ。

フィールド= エージェントアドレス

Trapを発生させたSNMPエージェントのIPアドレス。

フィールド= generic-trap番号

標準で提供されるTrapメッセージのタイプ。
 0: coldStart
 1: warmStart
 2: linkDown
 3: linkUp
 4: authenticationFailure
 5: egpNeiborLoss
 6: enterpriseSpecific

フィールド= specific-trap番号

generic-trap番号に6:enterpriseSpecific(独自仕様のTrap)が設定された場合に、その詳細を表すコード。

フィールド= タイムスタンプ

SNMPエージェントが最後に初期化されてからTrapを発生するまでの経過時間(sysUpTimeと等しい)。

SNMPv2メッセージ

SNMPv2(Simple Network Management Protocol Version 2)のメッセージ一覧、メッセージフォーマット、メッセージフィールドを説明します。

SNMPv2メッセージ一覧

SNMPv2の3つの動作(情報取得、情報設定、事象通知)とメッセージの一覧を以下に示します。

動作= 情報取得

メッセージ名= GetRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= GetNextRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= InformRequest, SNMPマネージャ → SNMPマネージャ
メッセージ名= GetBulkRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= Response, SNMPマネージャ ← SNMPエージェント

動作= 情報設定

メッセージ名= SetRequest, SNMPマネージャ → SNMPエージェント
メッセージ名= Response, SNMPマネージャ ← SNMPエージェント

動作= 事象通知

メッセージ名= SNMPv2 Trap, SNMPマネージャ ← SNMPエージェント

SNMPv2メッセージフォーマット

SNMPv2メッセージフォーマット(フィールド)の説明を下図に示します。

SNMPv2メッセージ

SNMPv2メッセージフィールド

SNMPv2メッセージフィールドの説明を以下に示します。

フィールド= バージョン

SNMPのバージョン。SNMPv2では、「1」が設定されます。

フィールド= コミュニティ

SNMPのセキュリティで使用する名称で、メッセージをやり取りする相手が正当な権限を持っているか否かを判定するためのものです。一般的には、public, tei_admin, administrator などの名称が使用されます。

フィールド= PDUタイプ

メッセージの種類を表すコード。
 0: GetRequest
 1: GetNextRequest
 2: Response
 3: SetRequest
 5: GetBulkRequest
 6: InformRequest
 7: SNMPv2 Trap

フィールド= 要求ID

複数のメッセージを識別するために、要求ごとに異なるIDが設定されます。

フィールド= エラー・ステータス

SNMPマネージャからの要求をSNMPエージェントが処理する際に異常が発生した場合に、設定されます。
 0: noError
 1: tooBig
 2: noSuchName
 3: badValue
 4: readOnly
 5: genErr
 6: noAccess
 7: wrongType
 8: wrongLength
 9: wrongEncoding
 10: wrongValue
 11: noCreation
 12: inconsistentValue
 13: resourceUnavailable
 14: CommitFailed
 15: undoFailed
 16: authorizationError
 17: notWritable
 18: inconsistentName

フィールド= エラー・インデックス

エラー・ステータスが0(noError: 正常)以外の場合に、変数バインディングのどの変数がエラーを起こしたかを表すインデックスが設定されます。

フィールド= 変数バインディング

変数名と値の配列。

フィールド= ノンリピータ

変数バインディング(リスト)の中に返却する変数の開始番号。

フィールド= 最大リピート数

変数バインディング(リスト)の中に返却する変数の個数。

SNMPv2は SNMPv1と比較して、以下の点が異なります。
・InformRequestの追加
・GetBulkRequestの追加
・GetResponse が Responseに変更
・Trap が SNMPv2 Trapに変更

MIB (Management Information Base)の概要

これまでの説明で、狭義のSNMPであるプロトコルについての説明は終わり、ここからはSNMPのデータ構造(MIB,OID)について説明します。

MIB(Management Information Base)とは

SNMPではMIB(Management Information Base:管理情報ベース)と呼ばれるデータ構造を使用します。MIBを改良・拡張した MIB-II、RMON、RMON2という管理情報ベースもあります。ネットワーク上に存在するネットワーク機器の情報は MIB として、ネットワーク機器(= SNMPエージェント)ごとに管理されます。MIBには様々な情報が「オブジェクト」として格納されていて、オブジェクトには「タイプ」「値」が存在します。SNMPエージェントは、MIB内のオブジェクト(タイプ、値)を管理し、SNMPマネージャからの要求に応じて、それらの情報を提供したり(Get)、更新したり(Set)しています。MIBのオブジェクトは、階層的に定義されていて、一般には「MIBツリー」と呼ばれています。RFC1156で定義されるMIBには、114種類のオブジェクトがあります。

OID(Object IDentifier) とは

MIB は複数のオブジェクトで構成されますが、それぞれのオブジェクトを一意に識別するためにOID(Object IDentifier:オブジェクト識別子)と呼ばれる番号があります。OIDは、サブ識別子と呼ばれる整数の配列で表記されます。すべてのMIBオブジェクトは、「iso.org.dod.internetオブジェクトグループ」の配下に配置されます。例えば、MIB-II のipグループ(オブジェクト)のipDefaultTTLオブジェクト(IPヘッダ内のTTLに設定される既定値)のOIDは、{1.3.6.1.2.1.4.2 }と記述されます。

MIBの階層

MIBは 複数のオブジェクトで構成され、それぞれのオブジェクトは OID で一意に識別されます。また、オブジェクトは「iso.org.dod.internetオブジェクトグループ」の配下に階層的に定義されていて、一般的には「MIBツリー」と呼ばれています。

MIB ツリー

MIB-IIグループ

MIB-IIは RFC1213で定義された MIBの一種です。MIB-IIは「mib-2」({1.3.6.1.2.1})という名称で、MIBツリーinternetオブジェクト・mgmtオブジェクトの下にあります。MIB-IIオブジェクトで、プロトコルごとの設定情報・統計情報が監視できます。

オブジェクト名(OID)= system (1)

システムに関する全体的な情報を格納するオブジェクト。SNMPエージェントが動作する機器の識別情報や、初期化後の経過時間など。

オブジェクト名(OID)= interfaces (2)

システムとサブネットワーク間の各インターフェイスに関する情報を格納するオブジェクト。物理アドレスなどの静的な情報と、フレーム送受信オクテット数などの統計情報など。

オブジェクト名(OID)= at (3)

ネットワークアドレスから物理アドレスへの変換テーブル情報を格納するオブジェクト。MIB-IIでは、非推奨(deprecated)のオブジェクトです。

オブジェクト名(OID)= ip (4)

IP(Internet Protocol)の実装や動作状況に関する情報を格納するオブジェクト。

オブジェクト名(OID)= icmp (5)

ICMP(Internet Control Message Protocol)の実装や動作状況に関する情報を格納するオブジェクト。

オブジェクト名(OID)= tcp (6)

TCP(Transmission Control Protocol)の実装や動作状況に関する情報を格納するオブジェクト。

オブジェクト名(OID)= udp (7)

UDP(User Datagram Protocol)の実装や動作状況に関する情報を格納するオブジェクト。

オブジェクト名(OID)= egp (8)

EGP(Exterior Gateway Protocol:ネットワーク間のルーティングに使用するリンクステート型プロトコル)の実装や動作状況に関する情報を格納するオブジェクト。

オブジェクト名(OID)= transmission (10)

システムの各インターフェイスについての情報(伝送方式、アクセスプロトコルなど)を格納するオブジェクト。

オブジェクト名(OID)= snmp (11)

SNMP(Simple Network Management Protocol)の実装や動作状況に関する情報を格納するオブジェクト。SNMPメッセージ統計、取得したMIBオブジェクト数、送信SNMP Trap数など。

オブジェクト名(OID)= rmon (16)

MIB-IIよりも詳細かつ統計的な情報を格納するRMON(Remote Network Monitoring:リモートネットワークモニタリング)情報を格納するオブジェクト。

RMONとRMON2

RMON(Remote Network Monitoring:リモートネットワークモニタリング)は RFC1757で定義された MIBです。RMONオブジェクトには、ネットワークの帯域使用率などの統計的な情報や、履歴情報が格納されます。RMONオブジェクト情報収集で、ネットワークごとの負荷状態や設定情報が監視できます。

RMON2(Remote Network Monitoring version 2:リモートネットワークモニタリング・バージョン2)は、RFC2021で定義された MIBです。RMONでは、MACアドレスレベルでしか情報収集・監視できませんが、RMON2では、IPアドレスレベルで情報収集・監視することができます。RMON2は、RMONのすべてのオブジェクトを含み、10のオブジェクトを追加しています。

RMON/RMON2 共通

オブジェクト名(OID)= stastistics (1)

SNMPエージェント(RMONプローブ)が監視しているサブネットワークの帯域使用率やエラー統計などを格納するオブジェクト。

オブジェクト名(OID)= history (2)

一定期間ごとの統計サンプルを記録するオブジェクト。

オブジェクト名(OID)= alarm (3)

SNMPエージェントによって記録されるカウンタ・整数値に対して、サンプリング間隔、アラーム、しきい値を設定するためのオブジェクト。

オブジェクト名(OID)= host (4)

サブネットワークに接続されているコンピュータ、ネットワーク接続機器などのホストごとの統計情報を格納するオブジェクト。

オブジェクト名(OID)= hostTopN (5)

hostテーブル内の上位を占めるホスト統計情報を格納するオブジェクト。

オブジェクト名(OID)= matrix (6)

任意の2ホスト間におけるエラーや使用率などの情報を格納するオブジェクト。

オブジェクト名(OID)= filter (7)

あるフィルタに適合するパケットをモニタリングするためのオブジェクト。

オブジェクト名(OID)= capture (8)

モニタリング装置がどのようにパケットを取り込むかなどを設定するオブジェクト。

オブジェクト名(OID)= event (9)

SNMPエージェントによって生成されるイベント情報を制御するオブジェクト。

RMON2 のみ

オブジェクト名(OID)= protocolDir (11)

SNMPエージェント(RMONプローブ)で監視できるプロトコルのリストを格納するオブジェクト。

オブジェクト名(OID)= protocolDist (12)

プロトコルの分布(送信サイズ、パケット数、使用帯域幅など)を格納するオブジェクト。

オブジェクト名(OID)= addressMap (13)

IPアドレスとMACアドレスのマッピングを格納するオブジェクト。

オブジェクト名(OID)= nlHost (14)

OSI参照モデルのネットワーク層レベルでのホスト情報を格納するオブジェクト。

オブジェクト名(OID)= nlMatrix (15)

OSI参照モデルのネットワーク層レベルでの送信元ホスト-送信先ホスト間の情報を格納するオブジェクト。

オブジェクト名(OID)= alHost (16)

OSI参照モデルのアプリケーション層レベルでのホスト情報を格納するオブジェクト。

オブジェクト名(OID)= alMatrix (17)

OSI参照モデルのアプリケーション層レベルでの送信元ホスト-送信先ホスト間の情報を格納するオブジェクト。

オブジェクト名(OID)= usrHistory (18)

alarm(3)オブジェクトとhistory(2)オブジェクトを結合して、ユーザ固有の履歴を提供するオブジェクト。

オブジェクト名(OID)= probeConfig (19)

SNMPエージェント(RMONプローブ)の各種操作パラメータを設定するためのオブジェクト。

オブジェクト名(OID)= rmonConformance (20)

RMON2 MIBに準拠するための要件を示すオブジェクト。



風水吉凶方位 風水吉凶方位 |  奇門遁甲 奇門遁甲 |  金運神社 金運神社 |  仏像 仏像 |  論語 論語 |  般若心経 般若心経 |  二十四節気 二十四節気 |  菜根譚 菜根譚 |  SharePoint活用 SharePoint |  OneNote活用 OneNote |  ICT活用 ICT