ネットワーク監視に必須!SNMPとMIBとは?

SYNESISをはじめ多くのネットワーク機器は、SNMPによる監視が可能です。今回は、各ベンダーが利用しているこの「SNMP」プロトコルのアーキテクチャについて解説します。

なお、現在使用されているSNMPのバージョンはv1、v2c、v3の3種類存在します。特に断りがない場合はv2cをベースに解説してます。

SNMPとは

SNMP(Simple Network Management Protocol)とは、各種デバイスをネットワーク経由で監視や制御をするためのプロトコルです。SNMPを利用することで、ネットワーク機器やサーバなどは状態、リソース、パフォーマンスなどの監視が共通のプラットフォーム上で行えます。言い換えれば、SNMPを利用しないで検知を行おうとすると、各個別のベンダーごとに仕様を策定する必要が出てきますし、管理自体も非常に煩雑となります。ですので、最近では、連続した稼働が必要なネットワーク機器はたいていSNMPに対応しています。

SNMPv1、SNMPv2cは、SNMPエージェントとSNMPマネージャで構成されています。SNMPマネージャは、各SNMPエージェントからの情報を表示する機器(もしくはソフトウェア)です。大規模なネットワークに対応した有償の製品から、無償で手軽に使用できるものまで様々あります。SNMPエージェントは、SNMPによる監視を行う対象を指します。
SNMPの通信は、マネージャからの要求に対してエージェントが回答する「SNMPポーリング」と、エージェントが自発的にマネージャに情報を送信する「SNMPトラップ」の2種類があります。エージェントとマネージャの間で情報のやりとりは、MIB(Management Information Base)を介して行います。

ポーリングの場合、マネージャからOID(Object Identifier)を指定して、エージェントのMIB情報を取得もしくは変更します。

SNMPポーリング

SNMPポーリング

トラップの場合、イベントを検知したエージェントがイベントに関連するMIB情報をマネージャへ送信します。

SNMPトラップ

SNMPトラップ

v3では概念が変わり、「SNMPマネージャ」や「SNMPエージェント」という用語ではなく「SNMPエンティティ」という名称に統一されています。

SNMPのバージョン

それぞれのバージョンの特長を簡単にまとめました。

バージョン 説明
v1 Get RequestGetNext RequestSet RequestGet ResponseTRAPの5つのSNMPメッセージが定義
認証は、コミュニティ名による平文認証のみ
v2c v1の5つのメッセージに加え、GetBulk RequestInform Requestの2つのSNMPメッセージが追加
認証はv1同様、コミュニティ名による平文認証のみ
v3 v2c同様、7つのメッセージが可能
認証は、USM(User-based Security-Model)による平文または暗号化認証が可能

各バージョンを共存する際の注意点などは、BCP74としてRFC3584に記載があります。SNMPは記載内容やバージョンによりRFCがわかれています。(実は、SNMPに関連するRFCは20以上もあります!)
どのRFCになにが書いてあるかの記載もありますので、まずはこちらで確認されると便利です。

MIBの構造

MIBは、OIDによる木構造のような作りになっていて、SNMPにおいて管理対象のネットワーク機器が保持している情報を定義します。ASN.1(Abstract Syntax Notation 1)という標準化されたフォーマットで、「iso(1)」-「org(3)」「dod(6)」-「internet(1)」というように分かれていきます。
MIBには大きく分けて2つの種類があります。

MIB 説明
標準MIB 各ベンダーの機器で共通して使用できる汎用的なMIB
拡張MIB 各ベンダーが独自に作成したMIB

実際のSYNESISから送信するSNMPトラップのデコードはこのようになっています。

SYNESISのSNMPトラップのデコード画面

SYNESISからのSNMPトラップのOIDは「1.3.6.1.4.1.36875.xx.xx...」が定義されていますが、これは当社で使用する拡張MIBとなっています。
「1.3.6.1.4.1」からはじまる木構造は拡張MIBを表し、「36875」は当社のPrivate Enterprise Numberとなっています。
この番号はベンダーごとに異なっていて、IANA - Private Enterprise Numbers (PENs)で発行や管理を行っています。

覚えておきたいsnmpwalkコマンド

SNMPの概要をつかんだら、snmpwalkコマンドを使用して実際にデータのやりとりを見てみましょう。
snmpwalkコマンドを使うと、Linux端末から指定したSNMPエージェントの情報取得が可能です。SNMPエージェントが動作しているかどうかを確認したいときなど、SNMPマネージャを別途用意することなく手軽に確認できる便利なコマンドです。
なお、snmpwalkコマンドを使用するためには、別途net-snmp関連のパッケージインストール及び設定が必要です。検索するとたくさん出てきますのでここでは手順は割愛しますが、ディストリビューションによりコマンドが異なりますのでご注意ください。

$ snmpwalk [option] <host> <comunity name> [OID]

代表的なオプションと使い方は以下のとおりです。なお、ホストと同時にポート番号も指定可能ですが、指定しない場合はUDP 161番が使用されます。

# 「SNMPv1」を使用し、ホスト名が「192.168.0.1」でコミュニティ名が「public」のSNMPエージェントからOID「1.3.6.1.2.1.1.1.0」情報を取得する場合
$ snmpwalk -v 1 -c public 192.168.0.1 1.3.6.1.2.1.1.1.0

# 「SNMPv2c」を使用し、ホスト名が「192.168.0.1」でコミュニティ名が「public」のSNMPエージェントから全ての情報を取得してファイルに保存する場合
$ snmpwalk -v 2c -c public 192.168.0.1 > snmp_results.txt

# 「SNMPv3」を使用し、ホスト名が「192.168.0.1」ユーザー名が「myuser」、認証プロトコルが「MD5」、認証パスワードが「mypassword」、暗号化プロトコルが「DES」、暗号化パスワードが「myencryptionpass」のSNMPエージェントから特定のOID「1.3.6.1.2.1.1.1.0」情報を取得する場合
$ snmpwalk -v 3 -u myuser -a MD5 -A mypassword -x DES -X myencryptionpass 192.168.0.1 1.3.6.1.2.1.1.1.0

なお、オプションの詳細はLinuxのディストリビューションやSNMPのバージョンにより異なる場合がありますので、ヘルプやmanコマンド等で確認してください。

SYNESISの新バージョンMIB

パケットキャプチャ製品「SYNESIS」のVer.8.0が今月リリースされます。このバージョンでは、SYNESISの監視機能が強化されており、MIBが改良されておりOIDによるSNMPトラップ管理が可能です。
SYNESISは、キャプチャしているネットワーク上で異常を検知するアラート機能が充実しています。各種項目のしきい値をあらかじめ設定しておくことで、ネットワークが過負荷になっている、再送が頻発されている、などの異常を検知し、SNMPトラップを送信する機能があります。
また、キャプチャ中リンクダウンが発生したり、pcapの保存先へ書き込みができなかったりといった、外部の要因でSYNESISが正常に動作しない場合にもSNMPトラップを送信する機能があります。

今まではSYNESISから発するSNMPトラップのOIDは同じでメッセージで内容を判断する必要がありましたが、Ver.8.0以降はイベントごとに異なるOIDのSNMPトラップが送信可能です。
そのためには、SNMPマネージャに更新されたSYNESISのMIBを追加する必要があります。

SYNESISのMIBは、ヘルプボタンから開く「SYNESIS 文書一覧 & 配布ファイル」よりダウンロードが可能です。なお、SNMPマネージャに登録する際は、MIBファイルに依存関係がありますので、「TOYO mibファイル」と「TOYO SYNESIS mibファイル」の両方を設定する必要があります。

SYNESIS_mib

SYNESISをお持ちの方は、ぜひVer.8.0へアップグレードをおすすめします。SYNESISのSNMP監視がより一層使いやすくなります。お持ちの機器がアップグレード可能かどうか不明な場合は、以下よりお問い合わせください。

SYNESIS お問い合わせ

あとがき

SYNESISのMIBが更新されより使いやすくなったということで、「SNMP」と「MIB」について改めてまとめてみました。古くから使用されているプロトコルのひとつですので、利用されている方はたくさんいることでしょう。

またSYNESISのMIBの配布方法についてもあわせてご紹介しました。ネットワーク機器によっては、ファームのアップグレードによりMIBが更新されている場合があります。ベンダーにより配布方法が異なりますので、詳細は各ベンダーのホームページ等で確認してください。ファームだけではなくMIBも定期的に見直すことでより効率的なネットワーク監視が実現できます。