運用
Windowsネットワーク・プロトコルの理解と検証(第1回)

1.ネットワーク・モニタとは

デジタルアドバンテージ
2003/08/07

ネットワーク・プロトコル・アナライザ(ネットワーク・モニタ)とは?

 ネットワーク上を流れるパケットをキャプチャして、解析、表示するシステムを「ネットワーク・プロトコル・アナライザ」と呼ぶ。独立したハードウェア製品のものもあるし、各種のOS上で稼働するソフトウェア製品のものもある。価格や機能もさまざまで、手軽なキャプチャや解析に徹したものから、システム管理やネットワーク管理の一環として、モニタリング機能(ネットワーク監視)やネットワーク・アプリケーションのパフォーマンス解析などに役立つものまで、さまざまなものがある。今回は、Windows OSに用意されている「ネットワーク モニタ」を使って、ネットワーク・プロトコル・アナライザを使ったパケットのキャプチャや解析方法について解説する。

ネットワーク・モニタとは?

 「ネットワーク・モニタ」とは、Windows Server OSで利用できる、ネットワーク・パケットのキャプチャ/解析ソフトウェアである。もともとはMicrosoft Systems Management Software(以下SMSと省略)における管理ツールの1つとして用意されていたものであるが、現在では機能を限定したサブセット版がWindows 2000 Server、Windows Server 2003にも用意されている。以下、2種類のネットワーク・モニタについて、簡単にまとめておく。

■SMS版フル機能ネットワーク・モニタ
 SMS(Systems Management Server)は、コンピュータ・システムのインベントリ(資産)管理やOS/アプリケーションなどの導入、展開などを支援するためのシステムである。ネットワーク・モニタは、ネットワークの診断機能として用意されている。

 ネットワーク・モニタの機能としては、イーサネットやシリアル回線(PPPなど)を始めとする各種ネットワーク・インターフェイスを経由してパケットをキャプチャし、プロトコル階層別に分類して表示することができる。

■Windows 2000 Server/Windows Server 2003版ネットワーク・モニタ
 Windows 2000 ServerおよびWindows Server 2003には、SMS版のサブセットとなるネットワーク・モニタが提供されている。デフォルトではインストールされていないので、以下の手順で追加しておこう。

 まず[コントロール パネル]の[プログラムの追加と削除]を開き、左側のメニューから[Windowsコンポーネントの追加と削除]をクリックして[Windows コンポーネント ウィザード]を起動する。もしくは[スタート]メニューから[設定]−[ネットワークとダイヤルアップ接続]のダイアログを開き(Windows Server 2003の場合は[スタート]メニューから[すべてのプログラム]−[アクセサリ]−[通信]−[ネットワーク接続]を開く)、[詳細設定]メニューの[オプション ネットワーク コンポーネント]を起動する。そして[管理とモニタ ツール]を選択してから[詳細]ボタンをクリックするとインストールするプログラムの一覧が現れるので、その中から[ネットワーク モニタ ツール]を有効にして[OK]を押す。

 以上の操作で、[管理ツール]メニューに[ネットワーク モニタ]が現れるはずだ。

 それぞれのネットワーク・モニタの違いについて簡単にまとめておくと、次のようになる。

項目 Windows 2000 Server付属のネットワーク・モニタ Windows Server 2003付属のネットワーク・モニタ SMS 2.0のネットワーク・モニタ
バージョン表記 Microsoft ネットワーク モニタ 2.0(V5.00.2195) ネットワーク モニタ 2.1 Lite Version(V5.2.3718) ネットワーク モニタ 2.0(V5.00.943)
プロミスキャス・モード
×
×
基本プロトコル解析
サポート・プロトコル(パーサー・リストの表示項目数)
95
105(PPPoEなど、Windows Server 2003で新たにサポートされたプロトコルも含む) 115(PPPoEなどは含まれないが、MSRPCのうち、重要なものは解析できる)
リモート・ネットワークのキャプチャ(自分以外のマシンのトラフィックをキャプチャする)
×
×
ルータの検索
×
×
アドレスの検索
×
×
プロトコルの統計解析(エキスパート)
×
×
ネットワーク・モニタのバージョンによる違い
SMS版のネットワーク・モニタを元にして、現在ではWindows Server OSに標準で用意されるようになった。そのため、SMS版が一番機能が多い。だが通常の用途では非SMS版でも十分である。なおサポート・プロトコルの数は、パーサー・フィルタに表示されているプロトコルの総数を数えたものものである。実際にはサブプロトコルなどもあるので、必ずしも正確なサポート・プロトコル数ではないことに注意。
 

ネットワーク・モニタの用途について
 Windowsのネットワーク・モニタを使う上で、重要な制限が1つある。それは、「パケットをキャプチャしながら、そのパケットをリアルタイムに解析・表示することができない」ということである。管理者は、まずパケットのキャプチャ・モードを実行して必要なパケット(を含むネットワークのトラフィック)を一括してキャプチャし、その作業が終わってからデータを解析、表示しなければならない。パケットのキャプチャ中に表示されるのは、いくつのパケットをキャプチャしたか、ネットワークの使用帯域がどの程度であるか、などの情報だけである。ネットワークの現在の状態をリアルタイムに監視し、何か問題が起こればすぐに解析するというわけにはいかない。そのため、ネットワーク・モニタの利用目的は、定常的なネットワークの状態の監視というよりは、ある特定の事象(パケット)を捉えて、それを解析するという使い方が主になるだろう。どちらかというと、プログラムやシステムの開発、デバッグ、トラブル発生時に利用する、トラブルシューティング・ツールとしての意味合いが強い。またネットワーク・プロトコルの理解や勉強などで、パケットをキャプチャして詳しく調べたい、というような用途にも向くだろう。ネットワークの監視ならば、そのような目的に特化したさまざまな監視ツールが販売されているので、それらを使うのが望ましい。

ネットワーク・モニタの原理

 ネットワーク・モニタの基本原理は、次の図のように、ネットワークのドライバ(NDISドライバ)を経由して、ネットワーク上を流れるパケットをキャプチャし、それを解釈表示している。

 Windows OSでは、物理的なネットワーク・インターフェイス・カードに対して、NDISという統一仕様のインターフェイスを介してアクセスしている。どのネットワーク・カードでも、必ずこのNDISのドライバが用意されている。そしてTCP/IPやNetBEUIのような上位プロトコルは、NDISインターフェイスを呼び出して、実際のパケットの送受信を行っている。

 ネットワーク・モニタは、このNDISのインターフェイスを使ってネットワーク・ケーブルへ送信されるパケットをキャプチャ(横取り)したり、逆にネットワーク・ケーブルから入ってくる受信パケットをキャプチャしたりしている。上位のプロトコルから見ると、間にネットワーク・モニタ・ドライバが入っていることには気がつかず、まったく通常と同じようにパケットのやりとりが行われる。このような原理のため、ネットワーク・モニタは、自分自身から発信されるパケットも、ネットワーク・ケーブル上を流れるほかのマシン同士のやりとりもキャプチャすることができる。

 ただし最近ではツィスト・ペア・ケーブルを使ったイーサネットとスイッチング・ハブの普及により、自分のマシンとは関係のない通信トラフィック(つまりほかのマシン同士の通信内容)をキャプチャするのは困難になっている。必要ならばスイッチング・ハブではない、単なるリピータ・ハブを使ったり、キャプチャ用の特別なポート(特定のポートの内容をコピーして出力する「ミラー・ポート」)を持ったハブを使って、必要なパケットをキャプチャできるような環境を用意する必要がある。

 なおネットワーク・パケットをキャプチャ(横取り)するための特別なドライバを「ネットワーク モニタ ドライバ」というが、SMS版のネットワーク・モニタでは、このドライバをリモートのマシン上に配置することも可能になっている。これにより、どこか遠く離れたリモート環境にあるネットワークや、別のセグメント上にあるパケットもキャプチャして解析することができる。

ネットワーク・モニタとキャプチャ・ドライバ
ネットワーク・インターフェイスは、必ずNDISを経由して呼び出される。ネットワーク・モニタでは、NDISを経由してやりとりされるパケットをすべて「ネットワーク・モニタ・ドライバ」でキャプチャして、それをネットワーク・モニタに渡している。SMS版では、自マシン以外のやりとりもキャプチャできるし、リモートのマシン上に置かれたネットワーク・モニタ・ドライバを使って、リモートのネットワークのトラフィックをキャプチャすることもできる。Windows 2000 ServerやWindows Server 2003版のネットワーク・モニタでは、自分のマシンあてに送信されたパケットしかキャプチャできない(含むブロードキャスト)。

 なお、イーサネットでは、パケットのサイズは最小64bytesと決められている。そのため、受信したパケットのサイズは常に64bytes以上になっている。しかし送信パケットについてはこれよりも短い場合がある。図からも分かるように、ネットワーク・モニタでは、自分のマシンから送信されるパケットについては、送信前にキャプチャすることになる。そのため、64bytesよりも短い場合もある(最小で64bytesにするのは、ネットワーク・カード上のコントローラ・チップの仕事であり、上位レベルでダミー・データを用意することはない)。

プロミスキャス・モード

 SMS版のネットワーク・モニタでパケットをキャプチャするためには、各ネットワーク・インターフェイスは、「プロミスキャス(promiscuous、無差別な)モード」と呼ばれる特殊なモードをサポートしている必要がある(ネットワーク・モニタのヘルプでは「無作為モード」と訳されている)。

 通常のイーサネット・カードでは、自分に向けて送信されたパケットしか取り込むことができないが、SMS版のネットワーク・モニタでは、自分あてのパケットだけでなく、ほかのマシン同士が通信している内容もキャプチャすることができる。つまりイーサネット・フレーム中に記録されたあて先MACアドレスには関係なく、ケーブル上を流れているすべてのパケットをキャプチャすることができる。実はイーサネットのコントローラ・チップは、実際にはすべてのパケットを取り込んでみて、自分とは関係のないパケットは捨てるというふうに動作しているが、パケットを捨てずに、すべて上位のプロトコル・スタックに引き渡すようにするのがこのプロミスキャス・モードである。通常は、システムの負荷も増えるし、セキュリティ的にも望ましくないので、このような使い方はしないのであるが、ネットワーク・モニタのような特別なツールではすべてのパケットをキャプチャするために、このような機能を使っている。


 INDEX
  [運用]Windowsネットワーク・プロトコルの理解と検証
  第1回 ネットワーク・モニタの基本的な使い方
  1.ネットワーク・モニタとは
    2.ネットワーク・モニタの準備
    3.パケットのキャプチャ
    4.キャプチャしたパケットの解析
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間