運用
|
|
|
ネットワーク・プロトコル・アナライザ(ネットワーク・モニタ)とは?
ネットワーク上を流れるパケットをキャプチャして、解析、表示するシステムを「ネットワーク・プロトコル・アナライザ」と呼ぶ。独立したハードウェア製品のものもあるし、各種の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版でも十分である。なおサポート・プロトコルの数は、パーサー・フィルタに表示されているプロトコルの総数を数えたものものである。実際にはサブプロトコルなどもあるので、必ずしも正確なサポート・プロトコル数ではないことに注意。 |
ネットワーク・モニタの用途について |
ネットワーク・モニタの原理
ネットワーク・モニタの基本原理は、次の図のように、ネットワークのドライバ(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.キャプチャしたパケットの解析 | ||
運用 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|