ネットワークを利用するユーザからすると、「ネットワークは正常に稼働していて当たり前」だ。しかし、ネットワークがうまくつながらなくて、いらいらしてしまったような経験は誰にでもあるだろう。そこで、ネットワークを正常に稼働し続けられるようにするためには、適切なネットワーク管理が重要なのだ。

本稿では、以前よりよく利用されているネットワーク管理用のプロトコルであるSNMP(Simple Network Management Protocol)について前編・後編の2回構成で解説する。前編は、SNMPの基本的な仕組みについてだ。後編では、NETGEAR社のスイッチとSNMPマネージャソフトウェア「NMS300」を利用した具体的な設定を解説する。

ネットワーク管理の基本

「ネットワークを管理する」といっても、具体的にどんなことを行えばよいかピンとこないかもしれない。そこで、OSI参照モデルで有名なISOではネットワークを管理するためのフレームワークを作成し、以下のような5つの管理項目を定めている。

・構成管理
ネットワーク機器の制御、識別、データ収集を行ったり、管理用ホストへ収集したデータの提供を行ったりするための管理方法及び管理項目を定める
・障害管理
ネットワーク環境の異常な状態を検知し、切り分け、対策実施するための手順及び管理項目を定める
・性能管理
通信の状態を監視し、性能改善を行うための方法や、目標値を評価するための管理項目を定める
・機密管理
ネットワーク機器やシステム上で利用されている資産の機密を、保護するために必要なセキュリティの各種機能や管理項目を定める
・課金管理
ネットワーク機器に対する課金を行ったり、適切な資産の割り当てを行ったりするための方法や項目を定める

上記の管理項目の中で、特に重要なものが構成管理だ。簡単にいえば、構成管理とはネットワークの「あるべき正常な状態」を詳細に把握しておくことだ。

ネットワークがあるべき正常な状態のときの

・ネットワーク構成
・ネットワーク機器の設定
・トラフィックの統計情報

を管理者が詳細に把握しておいてはじめて「ネットワークを正常に稼働させ続ける」ことが可能になる。

SNMPの仕組み

SNMPの概要

SNMPはOSI管理フレームワークで重要な構成管理に利用できるプロトコルだ。SNMPによって、ネットワークを構成するルータ、レイヤ2/レイヤ3スイッチなどのさまざまなネットワーク機器の設定や状態を確認できる。また設定を変更することも可能であり、さらには、ネットワークに障害が発生するなどの何らかのイベントを管理者に通知することもできる。

SNMPはOSI参照モデルのアプリケーション層に位置するプロトコルで、下位のトランスポート層にはUDPを利用する。SNMPのポート番号は161と162だ。

SNMPの要素

SNMPでは、以下の4つの要素を組み合わせる。

・マネージャ
マネージャとは、NETGEAR NMS300といったネットワーク管理アプリケーション。マネージャは定期的にネットワーク機器(エージェント)にSNMPによって問い合わせをして、各ネットワーク機器のデータを収集する。マネージャは、収集したデータをGUIでグラフィカルに表示できる
・SNMP
マネージャとエージェントの間でさまざまなデータをやり取りするためのプロトコル
・エージェント
監視対象のネットワーク機器上に存在し、管理用のデータを収集するプログラム。エージェントが収集したデータはMIBに格納されている。エージェントはマネージャからのMIBの情報への要求に返答したり、ある特定のイベントの発生に従ってTrapメッセージをマネージャに通知したりする
・MIB(Management Information Base)
エージェントが収集したデータや各種設定情報を格納するためのデータベース。MIBはデータをツリー状に格納している。MIBに格納されている情報として、標準化されている標準MIBと各ベンダ独自のプライベートMIBがある。標準MIBに含まれる情報には、エージェントのIPアドレス、受信したパケットの数やサイズ、ネットワークの利用率などがある。MIBに格納された情報は個別のオブジェクトIDで識別する。オブジェクトIDは、MIBツリーを上からたどって「.(ピリオド)」で区切って表記する。たとえば、システムの名前を示す情報(sysName)のオブジェクトIDは「1.3.6.1.2.1.1.5」となる。

図 1 SNMPの要素

図 2 MIBの構造

SNMPの動作

SNMPでは、マネージャとエージェントの間でSNMPを利用してエージェントのMIBを操作する。それにより、エージェント、すなわちネットワーク機器の設定を確認・変更したり、トラフィックの統計情報を把握する。

マネージャとエージェント間でやり取りする主なSNMPメッセージは以下のとおりだ。

・Get-Request
・Get-Next-Request :
・Set-Request
・Get-Response
・Trap

「Get-Request」「Get-Next-Request」「Get-Response」はMIB情報の参照に使う。Get-RequestでMIBのオブジェクト識別子を指定して、SNMPエージェントに送ると、その返事としてGet-Responseが返す。これにより、マネージャは要求したエージェントの情報を参照することができる。 そして、「その次の情報を参照したい」ということをGet-Next-Requestで要求する。同じように返事として、Get-Responseが返ってくる。

図 3 MIBの参照

次に何かMIB情報の内容を変更したいというときに、「Set-Request」を使う。変更したいMIBのオブジェクト識別子と変更したい情報をSet-RequestでSNMPエージェントに送る。その返事がGet-Responseで返ってくる。

図 4 MIBの変更

ここまでは、SNMPマネージャが主導となっている。しかし「Trap」は、SNMPエージェント主導だ。Trapによって、SNMPエージェントからマネージャに対するイベント通知を行うことができる。エージェント側にあらかじめ検出したいイベントを登録しておく。たとえば、「特定のリンクのUp/Down」や「リンクの利用率が70%を超えた」などだ。こうしたイベントに対応するMIBの項目のしきい値を設定しておき、そのしきい値を超えると、TrapメッセージによってSNMPエージェントからマネージャに通知する。

図 5 Trapメッセージ

ここで、SNMPメッセージのうちTrapだけがエージェントから自発的に送信するメッセージだ。Trapのメッセージを送信するときにUDPポート番号162を利用する。そのほかのメッセージ、つまりマネージャが主導になっているメッセージではUDPポート番号161を利用する。パケットフィルタリングを行っているときは、SNMPのポート番号の使い分けとマネージャからエージェントあるいはエージェントからマネージャというSNMP通信の方向をきちんと理解しておかないと、SNMPで正しくネットワーク機器の管理を行うことができなくなってしまう。

以上がSNMPの基本的な仕組みとなる。後編となる次回では、NETGEAR社のスイッチ製品とSNMPマネージャソフトウェアについてSNMPの設定を実際に行っていく。

まとめ

・ネットワークを管理するためには、「あるべき正常な状態」を詳細に把握しておくことが重要
・SNMPによって、ネットワーク機器の設定情報や機器が転送するデータ量などのトラフィックの統計情報を収集できる
・SNMPマネージャがSNMPエージェント上のMIBを参照・変更してネットワーク機器の設定情報を管理する
・SNMPエージェントから事前に登録したイベントを検出するとTrapメッセージでマネージャに通知する