PR

 こんにちは,トゥワイズラボの山居です。前回までの第1部では,トラフィック管理技術の全体像について解説しました。今回からの第2部では,インターネット標準技術である「RMON」を使ったネットワーク管理について解説していきます。

SNMPとは何か

 まずは,RMONについて解説する前に,RMONの基盤技術であるSNMPについて簡単に説明しましょう。SNMP(Simple Network Management Protocol)は,インターネット標準のネットワーク管理用プロトコルです。SNMPは,管理ステーション内のマネージャが管理対象内のエージェントと通信して,MIB(Management Infomation Base)と呼ばれる一種のデータベースにアクセスすることにより管理を行います(図1)。

図1●SNMPの概要
図1●SNMPの概要 [画像のクリックで拡大表示]

 MIBの管理情報を読み出すことにより,管理対象の状態や設定を知ることができます。また,MIBの管理情報を書き換えることにより,管理対象を制御したり,設定を変更することができます。具体的に,管理情報には管理対象機器の製造メーカー名やインタフェースの動作状態,IPパケットの受信数などがあります。

 MIBは,管理の目的によってさまざまな種類(グループ)に分類できます。例えば,TCP/IPで通信する機器を標準的に管理するためのMIB(MIB-2),プリンタ管理のためのMIB,無停電電源装置(UPS)を管理するためのMIBなどです。その中の一つに,今回解説するネットワーク・トラフィックを管理するためのMIBである「RMON MIB」があります。

 具体的に,MIBはどんなデータ構造をしているのでしょうか。MIBは,個々の管理情報や管理情報の種類(グループ)を識別するために,「オブジェクト識別子」(OID)という一種の名前を使用します。OIDは,ファイル・システムのディレクトリのようなツリー構造になっています。ツリーの分岐点には,番号が振られています(図2)。

図2●OIDツリーの例
図2●OIDツリーの例  [画像のクリックで拡大表示]

 この分岐点の番号を"."(ドット)で区切り,個々の管理情報やグループの名前を指定します。例えば,システムの稼働時間を表す情報(sysUpTime)は,「1.3.6.1.2.1.1.3」という具合です。ただ,このような番号による表現では人間にとって不便なので,意味のある名前も同時に定義しています。1.3.6.1.2.1.1.3は,「iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3)」と表現できます。今回解説するRMON MIBは,iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).rmon(16)の配下に定義されています。

RMONは最新のSNMPv3での利用を推奨

 SNMPでは,マネージャはエージェントに対して取得したい管理情報のOIDを指定して取得リクエスト(GetRequestまたはGetNextRequest)を送信します。エージェントは,受け取ったリクエストに対して,該当する情報を応答します(GetResponse)。例えば,前述のsysUpTimeを指定すれば,エージェントが起動してからの経過時間を取得できます。マネージャからエージェントの制御や設定変更をする場合は,変更したい管理情報のOIDと値を指定して設定リクエスト(SetRequest)を送信します。結果は,エージェントから応答(GetResponse)で返ってきます。

 SNMPには,もう一つTRAP(トラップ)と呼ぶエージェントからマネージャに情報を通知するしくみがあります。これは,エージェント内での変化(エラー発生やインタフェースがダウンしたなど)を通知するものです。RMONの場合は,トラフィック量が設定した「しきい値」を越えた場合に,これを通知する目的などで使用します(図3)。

図3●管理情報の取得シーケンス
図3●管理情報の取得シーケンス  [画像のクリックで拡大表示]

 SNMPには,v1,v2,v3という三つのバージョンがあります。これらをSNMPの構成要素からみると,まず,管理情報をやりとりするためのプロトコルとMIB定義は,大きくv1とv2仕様に分けられます。最新のv3でもv2の仕様が利用されています。運用管理(アクセス制御をはじめとするセキュリティ機能)の面では,v1,v2,v3と三つの仕様があります。ただし,v2のセキュリティ機能は,その複雑さから規格が「歴史的仕様」となっており,実際には利用できません。

 このため,セキュリティ機能についてはv1の仕様に基づく「Community名」を使用して,プロトコルとMIB定義はv2の仕様を使う「SNMPv2c」(cはコミュニティを表す)と呼ばれる中間仕様が存在し,これが実際の機器では使われています。

 このように,SNMPには三つのバージョンがあり,それらがすべて今も現役で使われているという,標準的なTCP/IP上のプロトコルとしてはかなり珍しい状況になっています。RMONを利用するうえでは,きめ細かい設定が可能という点やセキュリティ機能の豊富さなどから最新のSNMPv3を使うことが望ましいと言えるでしょう。SNMPv1でももちろん使えますが,例えば高速ネットワーク用の拡張である「HCRMON」では,64ビットのカウンタが使用されているため,v2cまたはv3を使わないとアクセスできないMIBがあるなどの点に注意が必要です。

山居 正幸

(有)トゥワイズ・ラボ代表取締役
1961年北海道生まれ。北見工業大学卒業後,日立エンジニアリング,アスキー,ソリトンシステムズを経て,1999年7月トゥワイズ・ラボを設立。現在は,SNMP関連の管理ソフトや安価なWindows版侵入検知ソフトの開発を行っている。TCP/IPやSNMPに関連する著書もある。趣味はサッカー観戦で,浦和レッズを家族ぐるみで応援している。