図 SNMPの主な特徴とやりとりの例
図 SNMPの主な特徴とやりとりの例
[画像のクリックで拡大表示]

 SNMP(Simple Network Management Protocol)は、サーバーやネットワーク機器といった、IPネットワークにつながった機器をネットワーク越しに監視するための通信プロトコル。その名前の通り、SNMPの通信手順はとてもシンプルだ。監視する側の「SNMPマネジャー」と監視対象の「SNMPエージェント」が、UDPを使ってパケットをやりとりするだけである(図)。

 まずSNMPマネジャーがSNMPエージェントに対して、知りたい情報(管理情報)を指定した要求パケット(GetRequestまたはGetNextRequest)を送る。SNMPエージェントは要求パケットを受け取ると、指定された管理情報を探し、その情報を含む応答パケット(GetResponse)をSNMPマネジャーに返す。これが基本手順である。

 監視対象の機器で異常が発生したときは、その旨をSNMPエージェントからSNMPマネジャーへ通知する「Trap」と呼ぶ仕組みも用意している。「エージェントが再起動した」「ポートがダウンした」「ポートがアップした」といったときに、Trapパケットを送る。SNMPの通常の通信はUDPの161番ポートを使うが、TrapではUDPの162番ポートを使う。

 管理情報は、「MIB」(Management Information Base)と呼ばれる仮想的なデータベースで定義されている。MIBはツリー構造になっており、上位から各オブジェクトに番号を割り振っている。この番号をピリオドでつなげた数列を「オブジェクトID」という。SNMPマネジャーはオブジェクトIDで、どの管理情報を要求するかを指定する。

 MIBは大きく、「標準MIB」と「拡張MIB」に分けられる。標準MIBは、多くのネットワーク機器やサーバーなどが共通で回答できる、まさに“標準的”な情報だ。一方の拡張MIBは、ネットワーク機器ベンダーなどが独自の管理情報を定義したものである。標準MIBには正確には「MIB-I」と「MIB-II」があるが、現在はMIB-IIを指すのが一般的だ。その場合、標準MIBのオブジェクトIDは、「1.3.6.1.2.1」から始まる数列となる。

 SNMPマネジャー機能を備え、収集した管理情報を使って異常の発生を通知したり、それらを集計したりするソフトを、「ネットワーク監視ツール」と呼ぶ。ネットワーク監視ツールの多くは標準MIBを収録しているが、拡張MIBはすべてを収録しているわけではない。収録していない拡張MIBを使いたい場合は、そのベンダーが用意する情報をあらかじめ登録する必要ある。