| [Network] | |||||||||||
netcapコマンドでネットワーク・パケットをキャプチャする
|
|||||||||||
|
|||||||||||
| 解説 |
ネットワークに関するトラブルが発生した場合、トラブル・シューティングの方法にはさまざまな手段がある。だが、最も確実で素早く原因を特定し、対策を行うことができる手法としては、ネットワーク・ケーブル上を流れるパケットをキャプチャしてそれを解析するという方法があげられるだろう。例えば通信ができなくなった2台のコンピュータ間の通信をキャプチャすれば、その原因が、(どちらかの事情による)タイムアウト待ちなのか、それとも接続要求が相手側から拒否されているのか、もしくはまったく異なる相手と通信しようとしているのか、などが簡単に分かるからだ。通信の内容も細かく調べることができるので、相手に渡そうとしているデータや応答の内容が不正であるなども直ちに分かるだろう。
だがネットワークをキャプチャするためには、「ネットワーク・パケット・アナライザ」と呼ばれる専用のハードウェア、もしくはWindows OSなどの上で使用できるアプリケーションが必要となる(プロトコルに関する知識も必要であるが、それについてはここでは触れない)。Windows 2000 Serverならば「ネットワーク・モニタ」という管理ツールが付属しており、これを使ってネットワーク・パケットのキャプチャ、解析が行える。ただし自分自身のホストに対する通信(自分自身から発信されるパケットと、自分自身に向けて送信されているユニキャストとブロードキャストの通信)しかキャプチャできない。
これに対し、Microsoft Systems Management Server(SMS)にはこのネットワーク・モニタのフル機能バージョンが含まれており(Windows 2000 Serverのネットワーク・モニタは、これのサブセットとなっている)、ネットワーク・ケーブル上を流れるほかのホスト同士の通信もキャプチャして解析することができる。ただしスイッチング・ハブを使っていると、自ホストに関係のない通信は届かないのでキャプチャすることができず、必要ならば非スイッチング・ハブ(いわゆるリピータ・ハブ)を使うなどの工夫が必要である。なおSMS版のネットワーク・モニタは、リモートのネットワークをキャプチャする機能も持っているので、必要ならばこれを使って遠くのコンピュータ上のパケットをキャプチャすることもできる。この場合、キャプチャを実際に行うコンピュータには「ネットワーク モニタ ドライバ」というエージェントを導入しておく。このエージェントは、クライアントOSであるWindows 2000 ProfessionalやWindows XP Professionalにも導入することができる。
ネットワーク上のパケットをキャプチャして解析するためには、通常はこのような専用のアプリケーションなどが必要になるが、Windows XP Professional/Home Editionなら、パケットのキャプチャに限定すれば単体でも実行することができる。Support Toolsに用意されているnetcap.exeというコマンドを使うのである。このコマンドライン・ツールを使ってキャプチャしたパケットは、Windows 2000 ServerやWindows Server 2003のネットワーク・モニタもしくは、SMSのネットワーク・モニタ・ツールに取り込んで解析することができる。ネットワーク上の別のマシンからパケットをキャプチャするのと違って、直接そのマシンに対して送受信されているパケットを取り込むことができるので、正確にすべてのパケットをキャプチャできる。また、ネットワーク・モニタなどがインストールされているマシンがない環境や、客先などで急遽ネットワークのキャプチャを行う必要が生じた場合、telnet経由でしかシステムにアクセスできないような場合でも、このコマンドだけならば約50Kbytesと非常にサイズが小さいので、簡単にインストールして実行することができる。
| 操作方法 |
Support Toolsのインストール
Support Toolsとは、Windows XP ProfessionalおよびWindows XP Home EditionのインストールCD-ROMにある、\SUPPORT\TOOLS中に用意されている各種の補助ツールのことを指す。この中にnetcap.exeというツールが含まれている。同フォルダの中にあるSETUP.EXEを実行すると、デフォルトでは「C:\Program Files\Support Tools」に各種ツール類がインストールされ、環境変数PATHにもこのフォルダが追加される。そのため、コマンド・プロンプトを開いてnetcapと入力すれば、すぐに実行することができる。
netcapの事前設定
netcapを使うためには、最初に、ネットワーク・インターフェイスの指定方法とキャプチャしたデータを格納するためのフォルダの指定方法について知っておく必要がある。
まずはコマンド・プロンプトを起動して、「netcap /?」と入力してみる。実行するフォルダはどこでもよい。これにより、netcapの使い方を示す簡単な表示が得られるが、最後の部分に注意していただきたい。この部分だけは環境ごとに異なるメッセージが表示されている。
C:\>netcap /? ……使い方を表示させる ↓↓↓ここから下は環境ごとに異なったものが表示されている…最初のイーサネット…2つ目のイーサネット…IEEE1394インターフェイス
|
最後の「Use the following ……」という部分には、ネットワーク・インターフェイスの番号とMACアドレス、インターフェイス名などが表示されている。システムに装着されているネットワーク・インターフェイスの情報やMACアドレスは、「ipconfig /all」コマンドで得ることができる。ただしこのヘルプの表示では、WANインターフェイス(仮想的なダイヤルアップ用インターフェイス。未使用時でもシステム内部には存在している)も表示されているので、ipconfigよりも多く表示されている。
netcapではこの左端に表示されている「0」や「1」、「2」などという数字を利用してキャプチャするインターフェイスを指定する。デフォルトでは一番上の「0(この場合はWANインターフェイス)」が利用される。もしインターフェイスを明示的に指定せずにnetcapを起動すると、この場合はWANインターフェイスのトラフィックをキャプチャしようとしてしまい、何もキャプチャできないということになる。netcapを使う場合は、必ずこのヘルプ・メッセージでインターフェイスを確認し、さらにipconfig /allで表示されている結果(MACアドレス情報)と比べて、目的のインターフェイスを選択していただきたい。もし1番のインターフェイスを使うなら、netcapに「/n:1」というオプションを付ける。
もう1つ注意する点として、キャプチャしたデータの格納フォルダの指定がある。デフォルトでは各ユーザーのTMP環境変数の場所に作成される。だがこれでは使いにくいだろうから(あとでネットワーク・モニタで解析する場合、ファイルの場所を指定するのが面倒になる)、常に固定的な場所にファイルを格納するように事前に設定しておくとよい。例えばc:\captureフォルダを使うのなら、「netcap /tcf:c:\capture」を実行して、フォルダの場所を変更しておく。この設定はユーザーごとに1回行えば、以後ずっとこの場所が利用される。
パケットをキャプチャする
netcapの最も単純な使い方は、ネットワーク・インターフェイスを指定してnetcapコマンドを実行することである。デフォルトではキャプチャするパケットの最大量は1Mbytes分となっており、バッファがいっぱいになれば実行を終了し、コマンド・プロンプトへ制御が戻ってくる。途中でキャプチャを中断したければ、スペース・キーを押せばよい。キャプチャ中はキャプチャしたパケットの量(バッファの使用量を%で表す)が表示されており、終了時には、キャプチャしたデータを格納したファイルの名前が表示される。
C:\>netcap /n:1 …インターフェイスを指定してキャプチャを開始する |
netcapを実行すると、初回だけは「Installing the Network Monitor dirver」というメッセージが表示されることがある。これは、システムに「ネットワーク モニタ ドライバ」というキャプチャ用のエージェントをインストールしているというメッセージである。各ネットワーク・インターフェイスのプロパティ設定において、ユーザーがすでに手動でこのドライバをインストールしている場合は表示されないが、そうでない場合は、netcapコマンドが自動的にインストールを行ってくれる。このエージェントを削除するには、「netcap /remove」を実行すればよい。
キャプチャしたファイルは、ネットワーク・モニタなどのプロトコル・アナライザを使って解析すればよい。例えば次のようになる。
netcapのそのほかのオプション
netcapには次に示すようにいくつかオプションがある。
■バッファ・サイズの指定
デフォルトでは1Mbytes分しかキャプチャしないが、/bオプションを使うと、より多くのパケットをキャプチャすることができる。例えば「netcap /b:100」とすると、100Mbytesまでキャプチャすることになる。バッファ・サイズは1Mbytes単位で指定し、最大で1000(=1Gbytes)まで増やすことができる。また、「/t n」と指定すると、バッファがいっぱいになっても停止せず、古いものから順番に上書きされる。この場合は、必要なパケットをキャプチャした時点でスペース・キーを押し、キャプチャを停止すればよい。
■キャプチャの停止条件の指定
デフォルトではバッファがいっぱいになるか、スペース・キーが押されるまでキャプチャを行うが、キャプチャ時間を指定するか、特定の条件に一致した時点でキャプチャを停止させることもできる。
キャプチャ時間を指定するには、/l:HH:MM:SSというオプションを使用する。例えば「netcap /l:00:10:00」とすれば、10分経過した時点でキャプチャが自動停止する。
/tオプションを使うと、ある特定のパターンに一致するパケットだけをキャプチャすることができる。詳しくはnetcap /?で表示されるメッセージを見ていただきたいが、指定する条件としてはあまり融通が利かない。次のフィルタ指定ファイルを使う方法で、必要なパケットだけをキャプチャするのがよいだろう。
■フィルタ・オプションを使った特定パケットのキャプチャ
/fオプションで「キャプチャ・フィルタ・ファイル」を指定すると、条件に一致する特定のパケットだけをキャプチャすることができる。このキャプチャ・フィルタ・ファイルは、Windows 2000 ServerやWindows Server 2003、もしくはSMSのネットワーク・モニタ・ツールで作成可能だ。特定のアドレス(IPアドレスもしくはMACアドレスなど)とのやりとりや、パケット中の特定の位置に、指定された値が含まれるパケット(つまり特定のプロトコル)のみに限定してキャプチャすることができる。![]()
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |








