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

2.ネットワーク・モニタの準備

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

ネットワーク・ドライバの選択

 それではさっそくネットワーク・モニタを使ってみよう。どのバージョンでも使い方は同じなので、ここではWindows 2000 Server版を例にして解説を進めることにする。

 ネットワーク・モニタを起動するには、[スタート]メニューの[管理ツール]−[ネットワーク モニタ]を選択する。最初に起動すると、ネットワークを選択する画面が表示されるはずである。もし表示されない場合は、[キャプチャ]メニューから[ネットワーク]を選択する(この[キャプチャ]メニューは、アクティブ・ウィンドウが[キャプチャ ウィンドウ]でなければ表示されないので注意。「解析・表示」モードのウィンドウがアクティブ・ウィンドウの場合は、[キャプチャ ウィンドウ]を選択してアクティブにすること)。

ネットワークの選択を促すダイアログ・ボックス
ネットワーク・モニタを起動すると、最初の1回だけはこのようなダイアログが表示される。
  これをクリックすると、ネットワークの選択ダイアログが表示される。

 以上の画面で[OK]をクリックすると、次のようなネットワークを選択する画面が表示される。ネットワーク・モニタでは、システムに装着されている物理的/論理的ネットワーク・インターフェイスを使ってパケットをキャプチャする。Windowsシステムは、物理的なネットワーク・インターフェイスだけでなく、内部的にはリモート・ダイヤルアップといった仮想的なネットワーク・インターフェイスも(デフォルトで)持っているので、どのインターフェイスを利用するかを選択しなければならない。なおこのような構成からも分かるように、ネットワーク・モニタでは同時に複数のインターフェイスからパケットをキャプチャすることはできない。必ずどれか1つのインターフェイスだけを選択して、そのインターフェイスからキャプチャする必要がある。

ネットワークの選択ダイアログ
最初に、キャプチャに利用するネットワーク・インターフェイスを選択する。システムに複数のインターフェイスが装着されているとそれらがすべて表示されるし、ダイヤルアップ接続のような論理的なインターフェイスも表示される。なおこれはSMS版ネットワーク・モニタの例であり、Windows 2000 ServerやWindows Server 2003のネットワーク・モニタでは、の[リモート]以下の項目は表示されない。
  ローカルのネットワーク・インターフェイス群。すべて「ETHERNET」となっているが、仮想ダイヤルアップ・インターフェイスも含まれている。
  キャプチャしたいインターフェイスをクリックして選択すると、右側のペインにそのインターフェイスの概要が表示される。
  こちらはリモートのネットワーク・インターフェイス(ネットワーク・モニタ・ドライバ)を使って、リモート・キャプチャする場合に使用する。SMS版でのみ利用可能。Windows 2000 ServerやWindows Server 2003のネットワーク・モニタでは、これは表示されない。
  最初はこの行しか表示されていない。ダブルクリックするとサーバ名を入力するダイアログ・ボックスが表示される。リモートのサーバ名を入力すると、下側に、そのサーバに装着されているネットワーク・モニタ・ドライバのインターフェイスの一覧が表示される(プロミスキャス・モードをサポートしているもののみ)。
  リモートで利用できるインターフェイスの一覧。ローカルのインターフェイスと同様に利用できる。
  ダイヤルアップ接続インターフェイスの場合は、この「Dial-up Connection(ダイヤルアップ接続)」の値が「TRUE」になる。通常のイーサネット・インターフェイスの場合は「FALSE」となるので区別することができる。またダイヤルアップ接続の場合は、「LinkSpeed(リンクスピード)」が0になっていることでも区別できる。
  ネットワーク・カードのMACアドレス(12桁の16進数値)。ダイヤルアップ接続の場合は仮想的なダイヤルアップ・インターフェイス名をエンコードしたものとなる。

 このように、ネットワークの選択ダイアログには、システムに装着されているすべてのネットワーク・インターフェイスが表示されるので(SMS版では、さらにリモートのネットワーク・インターフェイスも表示されるので)、その中から目的のインターフェイスを見つけ出して、選択する必要がある。通常は、[スタート]メニューの[設定]−[接続]−[ネットワークとダイヤルアップ接続]ウィンドウを開くと、ネットワーク・インターフェイスには「ローカル エリア 接続」とか「ローカル エリア 接続」という名前が付けられているだろう。だがこのネットワーク・モニタにおける選択ダイアログではそれらの名称は表示されないので、ダイアログの右側ペインに表示されるMACアドレスなどを基にして目的のインターフェイスを選択する。実際のネットワーク・インターフェイスのMACアドレスを確認するには、例えばコマンド・プロンプト上で「ipconfig /all」コマンドなどを実行して確認していただきたい。ただし、ネット・インターフェイスが1つしか存在しないのならば、「ダイヤルアップ接続インターフェイスでない方」を選択するという方法でも十分だろう。

 なおWindows Server 2003版のネットワーク・モニタでは、「ローカル エリア接続」や「ダイヤルアップ接続またはVPN」など、元の名称がそのまま表示されるので、使いやすくなっている。

Windows Server 2003におけるネットワークの選択ダイアログ
Windows Server 2003では、ネットワーク・インターフェイスごとに付けられた名前でネットワーク・モニタ・ドライバを選択することができる。
  この名前は[ネットワーク接続]で指定されている名称。
  右側ペインに表示される情報も日本語で分かりやすくなっている。

 もしPPPといったダイヤルアップ接続が有効な場合は、それらに対応する。

ネットワーク・モニタ・ドライバのインストール

 ネットワーク・モニタを利用するためには、「ネットワーク・モニタ・ドライバ」という、パケットをキャプチャするためのドライバをインストールしておく必要がある。といっても、Windows 2000 ServerやWindows Server 2003で[ネットワーク モニタ]をインストールした場合は、このドライバは自動的にインストールされているはずである。だが、SMS版のネットワーク・モニタを利用してリモート・キャプチャを行う場合は、リモート・マシン上に「ネットワーク・モニタ・ドライバ」をインストールしておく必要がある。このためには、各ネットワーク・インターフェイスのプロパティ画面で、「ネットワーク モニタ ドライバ」という「プロトコル」をインストールしておく。なお、このリモートのキャプチャを行うためには、対象となるマシンに対して、管理者権限が必要である。

ネットワーク・モニタ・ドライバのインストール
リモート・キャプチャを行うためには、対象となるマシン上に、プロミスキャス・モードをサポートしたネットワーク・インターフェイスとネットワーク・モニタ・ドライバのインストールが必要。
  インストールされたドライバ。このインターフェイスで利用したくない場合は、左側のチェック・ボックスをオフにする。
  ネットワーク・モニタ・ドライバをインストールするためには、この[インストール]をクリックして、[プロトコル]コンポーネントの一覧から[ネットワーク モニタ ドライバ]を選択する。どれか1つのインターフェイスにこのドライバをインストールすると、デフォルトでは、同じマシン上のすべてのインターフェイスでこのドライバが有効になる。

キャプチャ・バッファ・サイズの指定

 ネットワーク・モニタを起動したら、次はキャプチャ・バッファのサイズ、およびキャプチャするパケットの長さの指定をしておこう。キャプチャ・バッファは、ネットワーク・インターフェイスから取り込んだパケット(イーサネット用語では「フレーム」という)を一時的に格納しておくためのバッファ領域である。これが少ないと一度に取り込むことのできるパケット数が少なくなるので、解析する対象のネットワーク・トラフィックに応じて、適切に設定しておく。

 [キャプチャ]メニューにある[バッファの設定]を選択すると、次のようなダイアログが表示される。

バッファ・サイズの指定
キャプチャしたデータを一時的に格納しておくためのバッファ・サイズの指定。解析したい対象をすべてキャプチャできるように、十分に大きな領域を指定しておきたい。ただし大きくすると、その分だけメモリやディスクを消費するし、解析対象のパケットが多くなりすぎるので注意が必要。少なくとも10Mbytes、可能なら数10Mbytesにしておく。
  バッファ・サイズの指定。実際にはキャプチャしたデータはディスク上に保存されるので、このサイズがすべて必要メモリ量になるわけではない。
  パケット(イーサネット・フレーム)の一部分だけをキャプチャするようにして、メモリを節約することもできる。「FULL」はパケット全体をキャプチャするという指定。

 バッファ・サイズはデフォルトでは1Mbytesになっている。例えば100Mbpsのイーサネット(100BASE-TX)の帯域をフルに使っているとすると、わずか0.08秒でいっぱいになってしまう計算である。パケット・サイズが64bytesという、イーサネットにおける最小サイズだとすると、だいたい1万5000パケットしかキャプチャできない。実際には帯域をフルに使うことは少ないので、ここまでは短くはないだろうが、現実的には必要なキャプチャを行うには不十分だといえる。せめて10Mbytes、できることなら数十Mbytes程度までバッファ・サイズを増やしておきたい。ただし当然のことならが、このサイズを増やすとネットワーク・モニタの占有するメイン・メモリ・サイズも増えるので(実際にはディスクに書き込みながらキャプチャするので、このサイズがすべてメモリ消費量になるわけではない)、必要ならメイン・メモリのサイズを増やすなどの対応をしておいていただきたい。

 「フレーム サイズ」は、イーサネットのパケット(フレーム)のうち、先頭からどの部分までをキャプチャするかを指定するためのものである。デフォルトではパケット全体をキャプチャするようになっているが、メモリを節約して、より多くのパケットをキャプチャさせることもできる。イーサネットのパケット長は、最小64bytes(これに満たない場合でも、64bytesになるようにダミーのデータを埋める)から最大で1514bytes(あて先アドレス6bytes、送信元アドレス6bytes、タイプ2bytes、データ1500bytesの合計)までさまざまなサイズがあるが、パケットの構造などを解析するだけなら、先頭の方だけでも十分な場合が多い。ネットワーク・プロトコルは階層的に構築されているが、その階層ごとのヘッダ部分のデータは前の方に集中しているからだ。先頭の方だけを保存するようにすれば、同じバッファ容量でも、キャプチャできるパケットの総数を増やすことができる。実際にどの程度あればよいかは対象となるプロトコルによっても大きく変わるが、ヘッダだけなら64bytesもあれば十分である(例えばイーサネット・ヘッダは14bytes、IPヘッダ+TCPヘッダは通常は40bytes、などとなっている)。だがデータ部分もいくらかは揃っていた方が解析作業が行いやすいので、先頭の128bytesとか256bytes程度をキャプチャすればよい。単純に計算すると、256bytesだけキャプチャするようにすれば、1500bytes全体をキャプチャする場合と比べて、約6倍も多くキャプチャすることができる。通常は「FULL(パケット全体をキャプチャするという指定)」にしておき、どうしても多くのパケットをキャプチャしたい場合には、フレーム・サイズを変更するようにすればよいだろう。


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


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間