見出し画像

RMON MIBによる管理

「実践SNMP教科書」の今年最後の復刻記事です。

RMON MIBは、LANアナライザーのように、ネットワークを流れるパケットを全てキャプチャし内容を解析することにより、ネットワークのトラフィックに関する管理情報を提供するものです。ネットワーク接続の主流が、スイッチングHUBではなかった時代(シェアードLANの時代)には、RMONプローブと呼ばれるネットワーク機器に実装されていました。しかし、スイッチングHUBによるネットワーク接続では、RMONプローブによってネットワークを流れる全てのパケットをキャプチャすることができません。このため、最近のスイッチングHUBでは、RMONプローブ機能を内蔵しているものがあります。しかし、全てのRMON MIBをサポートしている訳ではなく、サブセットのみの実装となっています。NET-SNMPにもRMON MIBのサンプルソースコードが含まれています。コメントを読むと、パケットのキャプチャ部分は、実装されていないことになっています。RMONには、上位バージョンが存在します。RMON2と呼ばれるもので、IPなどのプロトコルレベルの解析が可能となっています。高機能なスイッチングHUBの場合、RMON2までサポートしている製品もあります。

実践SNMP教科書原稿
+--rmon(16)
   |
   +--statistics(1)
   |  |
   |  +--etherStatsTable(1)
   |
   +--history(2)
   |  |
   |  +--historyControlTable(1)
   |  |
   |  +--etherHistoryTable(2)
   |
   +--alarm(3)
   |
   +--hosts(4)
   |  |
   |  +--hostControlTable(1)
   |  |
   |  +--hostTable(2)
   |  |
   |  +--hostTimeTable(3)
   |
   +--hostTopN(5)
   |  |
   |  +--hostTopNControlTable(1)
   |  |
   |  +--hostTopNTable(2)
   |
   +--matrix(6)
   |  |
   |  +--matrixControlTable(1)
   |  |
   |  +--matrixSDTable(2)
   |  |
   |  +--matrixDSTable(3)
   |
   +--filter(7)
   |  |
   |  +--channelTable(2)
   |
   +--capture(8)
   |  |
   |  +--bufferControlTable(1)
   |  |
   |  +--captureBufferTable(2)
   |
   +--event(9)
      |
      +--eventTable(1)
      |
      +--logTable(2)

statisticsグループ

トラフィックの統計情報をモニタするグループです。
モニタするネットワークI/Fに関して、設定を行わないとモニタを行いません。設定は、etherStatsTableに行を追加します。etherStatsIndexにインデックス番号、etherStatsDataSourceに、モニタするネットワークI/FをifIndexのOIDで指定します。1番目のI/Fならば、ifIndex.1を設定します。etherStatsOwnerに作成者の名前、etherStatsStatusにcreateRequestを書き込めば、行の追加が可能です。etherStatsStatusがvalidの状態の時は、変更ができません。しかし、スイッチングHUBに内蔵されているRMONプローブでは、デフォルトでモニタ設定が登録されているので、上記の行の追加を行わなくてもモニタを行うことができます。モニタを開始すれば、受信したパケット数やエラーの種類別のパケット数、サイズ別のパケット数などの統計情報がカウントされます。

実践SNMP教科書原稿
+--statistics(1)
   |
   +--etherStatsTable(1)
      |
      +--etherStatsEntry(1)
         |  Index: etherStatsIndex
         |
         +-- -R-- Integer32 etherStatsIndex(1)
         |        Range: 1..65535
         +-- CR-- ObjID     etherStatsDataSource(2)
         +-- -R-- Counter   etherStatsDropEvents(3)
         +-- -R-- Counter   etherStatsOctets(4)
         +-- -R-- Counter   etherStatsPkts(5)
         +-- -R-- Counter   etherStatsBroadcastPkts(6)
         +-- -R-- Counter   etherStatsMulticastPkts(7)
         +-- -R-- Counter   etherStatsCRCAlignErrors(8)
         +-- -R-- Counter   etherStatsUndersizePkts(9)
         +-- -R-- Counter   etherStatsOversizePkts(10)
         +-- -R-- Counter   etherStatsFragments(11)
         +-- -R-- Counter   etherStatsJabbers(12)
         +-- -R-- Counter   etherStatsCollisions(13)
         +-- -R-- Counter   etherStatsPkts64Octets(14)
         +-- -R-- Counter   etherStatsPkts65to127Octets(15)
         +-- -R-- Counter   etherStatsPkts128to255Octets(16)
         +-- -R-- Counter   etherStatsPkts256to511Octets(17)
         +-- -R-- Counter   etherStatsPkts512to1023Octets(18)
         +-- -R-- Counter   etherStatsPkts1024to1518Octets(19)
         +-- CR-- String    etherStatsOwner(20)
         |        Textual Convention: OwnerString
         |        Size: 0..127
         +-- CR-- EnumVal   etherStatsStatus(21)
                  Textual Convention: EntryStatus
                  Values: valid(1), createRequest(2), underCreation(3), invalid(4)

このグループは、SNMP対応の安価なSW-HUBでも対応しています。

etherStatsTableの取得例

TWSNMP FCのRMON管理画面で表示すると

RMON管理画面

のような感じです。

historyグループ

statisticsグループは、現在のモニタ情報ですが、historyグループは、モニタ情報の履歴です。historyControlTableによって、履歴の取得に関する設定を行うとetherHistoryTableに履歴情報が格納されます。

実践SNMP教科書原稿

alarmグループ

alarmグループは、モニタした情報に関して閾値を設定して、異常検出を行うためのグループです。

実践SNMP教科書原稿

hostsグループ

hostsグループは、モニタしたパケットからネットワークに接続されているホストの一覧を作成するためのグループです。ホストの一覧には、アドレス順に並べたhostTableと発見した順に並べたhostTimeTableがあります。

実践SNMP教科書原稿

hostTopNグループ

hostTopNグループは、発見したホストを送信パケット数、送信バイト数、送信エラーパケット数などの上位Nまでをリストアップするためのグループです。元にする情報等の設定は、hostTopNControlTableで行います。リストは、hostTopNTableに登録されます。

実践SNMP教科書原稿

matrixグループ

matrixグループは、パケットの宛先、送り元の組み合わせを一覧するためのグループです。

実践SNMP教科書原稿

filterグループ

filterグループは、キャプチャするパケットのフィルタ設定を行うためグループです。

実践SNMP教科書原稿

captureグループ

captureグループは、LANアナライザーのようにパケットをキャプチャして、その結果を提供するためのグループです。

実践SNMP教科書原稿

eventグループ

eventグループは、アラームを検出した場合に実行するログへの記録、SNMP TRAPによる通知などのイベントを登録するためのグループです。

実践SNMP教科書原稿

RMONには、ネットワーク層のプロトコルモニタできるRMON2という仕様があります。しかし、高速なネットワーク環境をモニタするには問題が多すぎるためだと思いますが、完全にRMON、RMON2に対応したSW-HUBなどを見かけることはないです。ネットワーク通信プロトコルをモニタするには、NetFlowのほうがよいと思います。

TWRMONとTWSNMP FCのRMON管理

去年、RMONのプローブも復刻しました。実用には耐えないと思いますが、紹介しておきます。

このRMONプローブエージェントを動作させれば、TWSNMP FCのRMON管理からネットワークのさまざまな情報が取得できます。


statisticsグループ
hostsグループ
matrixグループ
RMON2のプロトコルグループ
RMON2のアドレスマップ
RMON2のIPホスト
RMON2のアプリケーションレイアホスト
RMON2のアプリケーションレイアマトリックス

ここから先は

0字
SNMPの仕様について解説した本やサイトは、沢山あると思います。 独自の拡張MIBを自分で設計してMIBファイルやエージェントを作る方法を解説した教科書はないと思います。

20年近く前に書いた「実践SNMP教科書」を現在でも通用する部分だけ書き直して復刻するマガジンです。最近MIBの設計で困っている人に遭遇し…

期間限定 PayPay支払いすると抽選でお得に!

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。