LAN技術研究室(LANに関心がある人のために情報を提供しているサイト)

このページでは、SNMPSimple Network Management Protocol)の基礎について初心者向けに解説しています。



LANの初歩

SNMPの概要

SNMPSimple Network Management Protocol)とは、LANを構成しているすべての機器が正常に作動しているかどうかをネットワーク管理者が把握できるように、機器の状態を監視するためのプロトコルを言います。
SNMPに関しては、バージョンが全部で3つあり、それらは、SNMPv1SNMPv2、及び、SNMPv3です。
SNMPv2以降では、セキュリティ面の強化がなされていますが、基本的にはどれも変わりありません。
SNMPv1RFC1157SNMPv2RFC1901SNMPv3RFC3410にそれぞれ記載されています。
RFC1157など、RFCの詳細は、以下のサイトで御覧下さい。

IETF RFC Page
JPNIC RFC-JP(社団法人:日本ネットワークインフォメーションセンター)
RFC1157(英文)
RFC1901(英文)
RFC3410(英文)

SNMPは、ネットワーク管理プロトコルと呼ばれるプロトコルで、SNMPマネージャーと呼ばれるソフトウェアでSNMPエージェント機能がある機器を一括して管理できます。
SNMPマネージャーで管理される機器は、MIBManagement Information Base)と呼ばれる管理情報データベースを持っています。
MIBは、ミブと読みます。
スイッチルーターやコンピュータなど、ネットワーク上にある管理対象の機器がSNMPエージェントとなります。
SNMPエージェントとして機能するスイッチは、インテリジェントハブとかインテリジェントスイッチと呼ばれているスイッチです。
レイヤ3スイッチL3スイッチ)でもかまいません。
コンピュータでは、Windows® 2000やLinuxなどがSNMPエージェントになれます。
ただし、PCの場合、SNMPエージェントのソフトをインストールしたり、設定を行う必要があります。
Windows® 2000などの場合は、SNMPエージェントを利用できるようにするだけで済みます。
Linuxの場合は、以下のucd-snmpというソフトをインストールして利用できるように環境設定も行います。
ダウンロードしてインストールするには、以下をクリックしてucd-snmpをクリックするとダウンロードできます。

SOURCEFORGE.net [ ucd-snmp download ]

これらの他には、ネットワーク対応のプリンターなどもSNMPエージェント対応の機種があります。

SNMPエージェントは、以下の図に示したようにUDPの上位プロトコルに位置し、161というポート番号を使用して、SNMPマネージャーと呼ばれるソフトウェアがインストールされているPCと通信を行います。
そして、各機器に組み込まれているSNMPエージェントが機器情報をこのPCに送ります。

OSI参照モデルにおけるSNMPのレイヤ(階層)
OSI参照モデルにおけるSNMPレイヤ階層

SNMPマネージャーと呼ばれるソフトウェアは、各SNMPエージェントから機器情報を集めます。
そのため、ネットワーク管理者は、ネットワークに接続されているすべてのSNMPエージェント対応機器の状態を監視することができます。
SNMPマネージャーをインストールした管理用PCがあれば、ネットワーク管理者は、すべての機器の状態を把握できるようになります。
何れかの機器に異常があれば、ポート番号が162のポートを通してTrapトラップ)と呼ばれる機器異常通知メッセージが管理用PCに送られてきます。
Trapは、SNMPエージェントからSNMPマネージャーへ一方的に送られる機器異常通知メッセージです。

ページトップ



MIBの構造

SNMPエージェントの機能がある機器は、MIBManagement Information Base)と呼ばれる管理情報データベースを内部に持っています。
SNMPエージェントは、このデータベースに書き込まれている値をSNMPマネージャーをインストールした管理用PCとの間でやりとりします。
MIBは、木の枝のような構造になっています。
STPスパニング・ツリー・プロトコル)やWindows®のマイコンピュータも似たようなツリー構造になっています。
家系図なども同様です。
ツリー状になっている仕組みは、身の回りで時々見かけます。階層化されていて見てもわかりやすいです。
階層化されたこのようなMIBの構造をMIBツリーまたはグローバルネーミングツリーと言います。
これは、ASN.1という言語で書かれています。
ASN.1は、Abstruct Syntax Notation Oneの略で、日本語で抽象構文記法1と言い、エーエスエヌワンまたはアセンワンと読みます。
ASN.1は、OSI参照モデルプロトコルを記述するために考案された言語です。
ASN.1は、ISO国際標準化機構)で規定されました。
国際標準化機構は、民間の非営利団体で電気の分野を除いた工業分野の標準規格を策定している国際機関です。
ここでは国際的な標準規格が策定されいます。
ASN.1は、コンピュータ言語として世界中の多くのプログラマーが使用しているオブジェクト指向言語のC++を連想させるような高級言語で、オブジェクトと呼ばれる変数とインスタンスと呼ばれる実体まであります。
INTEGERやREALなどのオブジェクトの型もある高級言語です。
MIBは、この言語で記述されています。
この中身を見ていきましょう。
MIBツリーを辿っていく際の出発点は、木の根っことなる root で、下図のようにここから下へ辿って目的のオブジェクトへ向かいます。

MIBの階層木構造
MIB階層木構造

上の図はまるで木のような構造をしていて、枝を辿っていくとオブジェクトと呼ばれるリーフ(葉)にぶつかります。
このオブジェクトには上の図のように番号が付けられています。
探したい目的のオブジェクトまで辿り着く過程で番号と番号の間にドットを入れます。
こうして、目的のオブジェクトまで辿り着くと、番号とドットから成る文字列ができあがります。
これがオブジェクトIDで、OIDと書くこともあります。
例えば、上の図の一番右下の snmp というオブジェクトまで辿っていくと、このオブジェクトのIDを根っこから正しく書くと以下のように書きます。
その下にオブジェクトの名前も並べてみます。

.1.3.6.1.2.1.11
.iso.org.dod.internet.mgmt.mib-2.snmp

mib-21.3.6.1.2.1)というオブジェクトグループの下の階層にある11個のオブジェクトグループは、標準MIBと言います。
この標準MIBは、MIB−2とも言います。
現在の標準MIBは、このMIB−2の原型となったMIB−1から拡張されました。

ところで、internet1.3.6.1)の下にprivate1.3.6.1.4)があり、さらにその下にenterprises1.3.6.1.4.1)というオブジェクトのグループがあります。
このオブジェクトグループの配下にあるすべてのオブジェクトは、メーカーが自由に書き込める拡張MIBです。
これによって、製品固有の情報を書き込むことができます。
enterprises1.3.6.1.4.1)以下は、IANAInternet Assigned Numbers Authority)という国際組織が管理しています。
IANAは、アイアナと読みます。
IANAという組織は、IPアドレスの管理も行っているので有名です。
拡張MIBには、企業のコードがオブジェクトとしてたくさん登録されています。
例えば、シスコシステムズならcisco1.3.6.1.4.1.9)というオブジェクトIDです。
拡張MIBに含まれる一番末端のリーフ(葉)の番号は 9 です。
他にもいろいろな種類のMIBのグループがあります。
詳しくは、RFCに書かれています。

MIB−1RFC1156MIB−2RFC1213にそれぞれ記載されています。
RFC1156など、RFCの詳細は、以下のサイトで御覧下さい。

IETF RFC Page
JPNIC RFC-JP(社団法人:日本ネットワークインフォメーションセンター)

また、MIBの中身について非常に詳しく書いていて、色分けされて綺麗にまとまっているホームページを以下に紹介します。

@IT:監視を自動化するSNMP(3)

ページトップ



SNMPマネージャーについて

SNMPマネージャーは、LANに接続されているSNMPエージェント対応機器の情報を一元管理できるソフトウェアです。
ネットワーク管理者は、どこか管理端末かサーバーを設置して、そこにSNMPマネージャーのソフトウェアをインストールします。
このソフトウェアで、SNMPエージェントからの情報を収集したり、収集した情報を解析したり、解析結果を表やグラフに表示したり、SNMPエージェントにある情報を書き換えたりできます。
このソフトウェアは、これらの作業を行うために、SNMPエージェントSNMPというプロトコルに従った通信を行います。
SNMPマネージャーのソフトウェアには、いろいろ格差があります。
有料の高価なソフトからフリーソフトまで様々です。
それでも基本的な機能に関して言えば、どれも持っています。
しかし、表示機能や拡張機能などで差が出てきます。
基本機能は、SNMPエージェントとの通信、SNMPエージェントからの情報収集、収集した情報の解析、解析結果の表示です。
収集した情報を表示し、LANトラフィック情報をグラフ化するくらいのシンプルなソフトから、複雑な解析結果をもあります。
それでは、SNMPマネージャーのソフトを幾つか紹介します。
私(ケロ丸)が知る限り、フリーソフトのSNMPマネージャーとしては、MRTGMulti Router Traffic GrapherTWSNMPマネージャ試作SNMPマネージャー [ snmpman ]の3つがあります。
この中で、Windows® 2000などのWindows NT®系のWindows®のDOS環境でコマンドを実行して使用できるタイプのSNMPマネージャーsnmpman)を紹介します。
snmpmanの簡単な使い方の説明が以下のサイトにあります。

SNMPマネージャー [ snmpman ] でMIBを眺める
また、以下のサイトには、snmpmanのプログラム自体と開発ツールまで公開されております。

試作SNMPマネージャー [ snmpman ]

Windows NT®系のWindows®には、snmpapi.dllmgmtapi.dll というモジュール(DLLファイル)があります。
DLLファイルは、Windows®用の部品のようなプログラムです。
これらのDLLファイルを使用したソフトが、snmpmanです。
開発ツールも公開されていて、SNMPマネージャーのソフト開発を行いたい人は、参考になるかもしれません。

次は、TWSNMPマネージャというソフトです。
これも無料のSNMPマネージャーソフトです。
以下のサイトにあり、ダウンロードできます。

TWSNMPマネージャ

MIBブラウザ(MIB階層構造を一覧できるツール)、Trapの受信、障害検出時のメール通知やプログラム起動、ポーリングのグラフ表示など様々な機能があり、フリーソフトとしては高機能です。
ポーリングとは、同期などの目的のために、ネットワーク上に存在するコンピュータやネットワーク機器に定期的に一つ一つ問い合わせを行う方式を言います。
SNMPマネージャーは、まさにこの方式で通信を行っています。
TWSNMPマネージャは、SNMPv3にも対応しているようです。
高価なソフトがなくても高機能ならフリーソフトで十分な場合もあります。
試しに使ってみる価値は十分あると思います。

次は、MRTGです。
これは、非常に有名なSNMPマネージャーのソフトで、収集した情報を表示し、LANトラフィック情報をグラフ化するタイプのソフトです。
MRTGのソフト一式(Windows®用)の圧縮ファイルは、以下のサイトにあり、リンク切れでない限りすぐダウンロードできます。

mrtg-2.9.17.tar.gz

また、Windows®用のMRTGのインストールについて以下のサイトに説明があります。
このサイトは、snmpmanのダウンロードサイトと同じです。

MRTGのWindows® 2000へのインストール

LinuxなどのUNIX系OS用を希望される方は、以下のサイトからお探し下さい。

MRTG

有料のSNMPマネージャーソフトは、かなり高価で、最近では低価格なレイヤ3スイッチが20万円を割る価格で販売されていますが、それよりはるかに高価です。
ケロ丸が知っている製品では、アライドテレシス株式会社CentreNET Swim Managerがあります。
以下のサイトに製品の説明が記載されています。

ネットワークマネージメントソフトウェア|CentreNET Swim Manager Ver.3.0

立体円グラフ、棒グラフ、折れ線グラフなど、多くのグラフ機能、ネットワーク構成マップなど、非常に多くの機能があります。
そのために30万円以上します。
他にどんな製品があるのかケロ丸はあまり知りません。

Google


ページトップ



SNMPメッセージについて

SNMPメッセージは、SNMPv1では以下の表に示した5つだけあります。

SNMPメッセージ説明
GetRequest指定のオブジェクトIDに対応した情報を貰いたいと要求する。
GetNextRequest次のオブジェクトIDに対応した情報を貰いたいと要求する。
SetRequest指定のオブジェクトIDに対応した情報を書き換えたいと要求する。
GetResponse要求に対応した情報を返す。
Trap故障などの機器異常通知メッセージを返す。

これらのSNMPメッセージをSNMPマネージャーSNMPエージェントの間でやりとりするだけですが、私(ケロ丸)がMacintosh用のプロトコルアナライザーを開発した時SNMPメッセージを解析するプログラムを作りましたが、メッセージの中身は結構複雑です。
前述のASN.1という言語で書かれていますので、Perlのようなプログラム言語のインタプリタを作っているような感じがしました。
さらに、多くのプロトコルを一つずつ解析してプログラムにしていくのは大変な作業でした。

それでは、実際にSNMPメッセージをどのようなイメージでやりとりするのかを図で見ましょう。

欲しい情報の要求と応答
欲しい情報の要求と応答

GetRequestというメッセージは、SNMPマネージャーからSNMPエージェントへ送信され、その応答としてGetResponseというメッセージがSNMPエージェントからSNMPマネージャーへ返されます。
GetNextRequestは、直前に送信したGetRequestGetNextRequestオブジェクトIDの次のオブジェクトIDに対応する情報を要求します。
GetNextRequestは繰り返し送信でき、最後まで繰り返した場合はエラーが通知されます。
これもGetRequestと同じ相手に送ります。
この応答もGetRequest同様GetResponseメッセージがSNMPエージェントからSNMPマネージャーへ返されます。
GetResponseというメッセージは、先に送信したGetRequestなどのメッセージに対する応答で、要求されたオブジェクトに対応するデータをメッセージに設定してSNMPマネージャー側に返します。

指定の情報の書き換え要求と応答
指定の情報の書き換え要求と応答

SetRequestというメッセージは、書き換えたいデータがSNMPエージェント側の機器にある場合に送信されます。
この場合、書き換えたいオブジェクトオブジェクトIDと書き換えるデータを指定して、SetRequestメッセージを送信します。
このメッセージも、SNMPマネージャーからSNMPエージェントへ送信され、その応答としてGetResponseというメッセージがSNMPエージェントからSNMPマネージャーへ返されます。

機器異常通知メッセージ
機器異常通知メッセージ

Trapというメッセージは、機器の故障などのような機器の異常を通知するメッセージです。
Trapメッセージには、実際に異常が発生した時刻なども含まれています。

SNMPでは、以上のような通信を行うことがわかったと思います。
また、SNMPv2では、上記以外にさらに新しいSNMPメッセージが2つ加わりました。
それらは、GetBulkRequestInformRequestです。
GetBulkRequestは、GetNextRequestを拡張したメッセージで、繰り返す回数を指定できます。
InformRequestは、SNMPマネージャー同士の通信に利用されます。

それでは、これらのSNMPメッセージの中身はどうなっているのでしょうか。
それを見ていきましょう。
SNMPというプロトコルについてもう一度図を見て思い出してみましょう。

OSI参照モデルにおけるSNMPのレイヤ(階層)
OSI参照モデルにおけるSNMPレイヤ階層

上の図のように、SNMPは一番上のレイヤです。
SNMPメッセージは、赤い矢印のように流れます。
この中身は、IPパケットとして見ると以下のようになっています。

SNMPメッセージのIPパケット
IPヘッダーUDPヘッダーデータ

SNMPメッセージは、ちょうど黄色の背景の部分にあるデータの位置に入ります。
SNMPメッセージのフォーマットは、以下のようになっています。

SNMPメッセージのフォーマット
PDUタイプPDUの長さSNMPバージョンコミュニティSNMPコマンド

PDUは、Protocol Data Unitの略で、プロトコルのデータ単位を指します。
例えば、イーサーネットPDUならフレームで、IPPDUならパケットで、ATMPDUならセルです。
SNMPメッセージのPDUは、上の表の黄色の背景の部分にあるSNMPコマンドに相当します。
SNMPメッセージは、IPパケットにも含まれるので、結果的にPDUは入れ子構造になります。
コミュニティ名は、SNMPマネージャーSNMPエージェントの間の認証に使用されます。
コミュニティ名は、パスワードとなっています。
SNMPバージョンのフィールドには、SNMPのバージョンが設定され、例えばSNMPv1なら0が設定されているはずです。
PDUの長さのフィールドには、PDU全体の長さがオクテット単位で設定されます。
PDUタイプには、16進数で30が設定されます。
このフィールドは、1オクテットの長さなので16進数なら2桁しか入りません。
30の意味は、値が複数あり、一連のフィールドの集合が複数組み合わされて入れ子の構造を成していることを示しています
PDUタイプの詳細については後述します。
SNMPメッセージは、基本的にはこのような構成になっています。
上の方でRFCのダウンロードサイトとその説明をしましたが、SNMPメッセージフォーマット(書式)に関しては、RFC1157で定められています。
詳しくは、RFC1157を参照して下さい。
このページでもある程度詳しく説明します。
SNMPメッセージの実体は、ASN.1オブジェクトと言いまして、これは上の方で述べたASN.1という言語で書かれています。
ASN.1オブジェクトは、OSI参照モデルにおけるレイヤ6のプレゼンテーション層に相当し、このレイヤは情報の書式を担当しています。
ASN.1オブジェクトのフォーマットは、以下のような3つのフィールドを持ち、BERBasic Encoding Rules)と呼ばれる符号化規則に従って書かれています。
BERは、バーと読みます。
Tag(タグ)と Length(長さ)と Value(値)の3つのフィールドから成り立っているため、TLV形式と言います。
PDUタイプ(値の型)が16進数で30の場合は、このTLVが複数組み合わされて入れ子になっています。つまり、階層化されています。
値のフィールドを見たらまたTLVがあり、その値を見たらまたTLVがあったという感じで下へ下へと階層化されています。

TLV形式
タグ(値の型)値の長さ

タグのフィールドは、値の型を表し、これは前述のPDUタイプに相当し、1オクテット(8ビット)の長さがあります。
値の長さのフィールドは、前述のPDUの長さに相当し、可変長でMSBMost Significant Bit)が0なら1バイトのフィールドになり、すぐその後ろがのフィールドになりますが、MSBが1だと値の長さのフィールド長が設定され、後続のフィールドは上の表のではなく、本来値の長さのフィールドに設定されている値の長さ自体が設定されます。
値の長さのフィールドが複数続く場合があります。
どこまで続くかは、値の長さの先頭のフィールドの値のMSBを0にしてしまえばわかるようになっています。
MSBとは、最上位ビットのことで、2進数で一番大きい桁を指し、符号ビットとして使われこともあります。
ちなみに、最下位ビットはLSBLeast Significant Bit)と言います。
値の長さのフィールドに関しては、後続の値の長さのフィールドがあっても、一つ一つはオクテット単位です。
一番最後の値の長さのフィールドの次のフィールドがようやくのフィールドになります。
のフィールドも可変長で、オクテット単位です。
のフィールドには、前述のSNMPバージョン、コミュニティ名、SNMPコマンドなどが設定されます。
これで3つのフィールドについての説明を終わります。
具体的な内容がまだイメージできないかもしれませんが、この後を徐々に読み続けていくとその内わかるようになると思います。
一番先頭の値の型は、SNMPコマンドとそれ以外に分類できます。
以下の表にまとめてみました。

値の型に対応する数値
値の型(コマンド)数値(16進数2桁)
GetRequestA0
GetNextRequestA1
GetResponseA2
SetRequestA3
TrapA4
GetBulkRequestA5
InformRequestA6
SNMPv2-TrapA7
ReportA8
値の型(コマンド以外)数値(16進数2桁)
Boolean01
Integer02
Bit String03
Octet String04
Null05
Object ID06
Object Descriptor07
External08
Real09
Enumerated0A
UTF8String0C
Sequence , Sequence of10
Set , Set of11
NumericString12
PrintableString13
TeletexString14
VideotexString15
IA5String16
UTC Time17
GeneralizedTime18
Combination30
Time32
IP Address40
Counter41
Gauge Counter42
Time Ticks43

上記の表にある値の型の意味に関しては、このページでは省略します。
この表に書いてある内容に関して、もっと詳しく知りたい方は、以下の3つのサイトを御覧下さい。

  1. ASN.1 バイナリ変換規則 (BER)

  2. ASN.1

  3. 上記の2つのサイトは、ASN.1についてだけを解説した専門サイトで、BERBasic Encoding Rules)と呼ばれる符号化規則について詳しく書かれています。
    前述の値の長さのフィールドに関しては、長さのフィールドが連続した場合の説明が言葉で書いただけだったので、少しわかりずらかったかもしれませんが、上記のサイトや以下のサイトでは、図を交えて丁寧に説明しています。
    当サイト(ネットワーク技術研究室)では、ネットワークに直接関係ない内容に関しては簡単な説明にとどめています。予め御了承下さい。
    SNMPメッセージを分解して画面に表示しなければならないプログラムを作成する方は、上記のサイトも以下のサイトもお勧めです。
    上記の2つのサイトだけでは、一部不十分な内容もあり、それを補う内容が以下のサイトにあります。
  4. PC View : Network : ネットワークモニタリングツールを製作する−第2回 SNMPパケットのフォーマット

  5. このサイトは、SNMPMIBについての記述もあります。

次は、前述のSNMPコマンドの内部がどうなっているのかを見ていきましょう。
SNMPコマンドとそれに続くデータは、上の方で表の中に示したように、コミュニティ名に続いていました。
SNMPコマンドとそれに続くデータから、また前述のASN.1オブジェクトのフォーマットの領域が入れ子のようになっていくことに注意して下さい。
それでは、一般的なSNMPコマンドとそれに続くデータのフォーマットを以下に示します。

SNMPコマンド(Trap以外の場合)
PDUタイプPDUの長さリクエストIDエラーステータスエラーインデックス要求時または応答後のMIBデータ

PDUタイプは、タグのフィールドに相当し、値の型が設定されます。
上のフォーマットの場合は、1オクテットの長さのSNMPコマンドです。
SNMPメッセージは、普通リクエスト(要求)のメッセージに対するレスポンス(応答)のメッセージがあり、この二つのメッセージが対になっています。
そこで、この対応関係がわかるように、リクエストIDという番号があります。
リクエストIDの次にフィールドがエラーステータスで、以下の表に示したようにエラーの番号は18個あります。

エラーステータス
エラーステータス名 エラーステータスの数値 意味
noError 0 エラーなし。
tooBig 1 データサイズが大きすぎてPDUに値を設定できません。
noSuchName 2 指定のMIBがないか、または、書き込みができませんでした。
badValue 3 設定した値が不正です。
readOnly 4 書き込みができませんでした。
genError 5 数値が0〜4以外のエラーが発生しました。
noAccess 6 アクセスできないMIBに対してセットしようとしました。
wrongType 7 MIBで必要なタイプと違うタイプです。
wrongLength 8 MIBで必要なデータ長と違う長さです。
wrongEcoding 9 ASN.1の符号が不正です。
wrongValue 10 MIB値が不正です。
noCreation 11 該当するMIBがありません。
inconsistentValue 12 現在何か理由があって値が設定できません。
resourceUnavailable 13 リソースが利用できません。
commitFaild 14 値の更新に失敗しました。
undoFaild 15 値の更新に失敗した時に、更新された値を元に戻せませんでした。
notWriteable 17 書き込むことができません。
inconsistentName 18 該当するMIBがないため、作成できません。

エラーステータスの次のフィールドは、エラーインデックスで、これはエラーの位置を示している番号です。
エラーインデックスに続く領域には、要求時または応答後のMIBデータが設定されますが、この領域の構造は以下のようなフォーマットで記述されています。
この領域も、先ほどのBERBasic Encoding Rules)と呼ばれる符号化規則に従って記述されるため、実際はまた3つのフィールドから構成されているレコードとなります。
PDUタイプが16進数で30だと、さらに入れ子の構造になっていて、レコードの階層が深くなります。

MIBデータを入れるための入れ子構造のレコード
(1) PDUタイプ(2) PDUの長さ(3) MIBデータを入れるためのレコード

PDUタイプには、上の表「値の型に対応する数値」の何れかが設定されます。
PDUの長さには、前述のBERBasic Encoding Rules)と呼ばれる符号化規則に従った値が設定されます。
最後(3番目)のフィールドは、入れ子の最下位階層でないなら、上の表のフォーマットのレコードが収まる領域になります。
こうして、PDUタイプの値が30である限り、階層がどんどん深くなります。
この3番目のフィールドが入れ子の最下位階層なら、以下のフォーマットになります。

最下位階層にあるMIB値を入れるためのレコード

PDUタイプPDUの長さオブジェクトIDMIB

PDUタイプには、上の表「値の型に対応する数値」の何れかが設定されます。
PDUの長さには、前述のBERBasic Encoding Rules)と呼ばれる符号化規則に従った値が設定されます。
オブジェクトIDには、SNMPエージェントに要求して取得したい対象のオブジェクトID、または、SNMPエージェントからの応答で返ってきたオブジェクトのIDが設定されます。
MIB値は、オブジェクトの値そのものです。
これを取りたいためにSNMPエージェントに要求します。

これまでは、Trapトラップ)以外のSNMPコマンドのSNMPメッセージについて説明しましたが、今度はTrapです。
前述しましたが、Trapというメッセージは、機器の故障などのような機器の異常を通知するメッセージです。
このメッセージのフォーマットは以下の通りです。

Trapコマンドのフォーマット
PDUタイプPDUの長さ オブジェクトID エージェントアドレス Trap番号 拡張Trap番号 Trap発生時間 Trap関連MIB情報

PDUタイプには、上の表「値の型に対応する数値」のTrapを表す16進数のA4という値が設定されます。
PDUの長さには、前述のBERBasic Encoding Rules)と呼ばれる符号化規則に従った値が設定されます。
オブジェクトIDには、SNMPエージェントとなっている機器のベンダーIDが設定されます。
エージェントアドレスには、この機器のIPアドレスが設定されます。
Trap番号には、Trapの種類を表す識別番号が設定されます。
拡張Trap番号には、前述のTrap番号を補うための番号が設定されます。
Trap発生時刻には、実際に機器異常が発生した時間が設定されます。
この時間は、機器を起動してからの経過時間です。
このフィールドの後ろにTrap関連のMIB情報が付いてきます。


ページトップ
SNMPRMONについて[メニュー]へ戻る
サイトマップ(LAN技術研究室の案内図)
ネットワーク技術用語集へ行く
LAN技術研究室のトップページ




© 2007 Toyozi Masuda All rights reserved.