パケットキャプチャーとは、ネットワークを流れる実際のデータ(パケット)を見ること。表面には見えていない症状を見付けて、原因の発見につなげる。

 医者の診察に当てはめて考えるとわかりやすい。パケットキャプチャーは、医者が病気にかかった人を診察するときの血液検査みたいなものだ。このときの医者はネットワーク管理者、病気にかかった人はトラブルが発生した企業ネットワークに当たる。

 診察ではまず、問診を行って症状を聞き出す。そして体温計を使って熱を測ったり、聴診器で体内の音を聞いたりする。これは、管理者がユーザーからトラブルの症状を詳しく聞き出して、それを基にネットワークコマンドを実行したり、設定を確認したり、機器のステータスランプを見たりすることだ。これで病気を特定できなければ、血液検査を行うことがある。血液内の成分を調べることで、目に見えない体の内部で起こっている変化を発見できるかもしれないからだ。パケットキャプチャーでは、流れるデータの内容を見て、正常時との違いを見付けてそこからトラブルの原因を探る。

 本特集ではネットワークでよく起こるトラブルをいくつか取り上げて、管理者がパケットキャプチャーを使ってその原因を探す方法を紹介していく。第1回は、パケットキャプチャーを実施するための準備を行う。

キャプチャーはツールを使って実行

 パケットキャプチャーを実行するには、専用ソフトウエアを利用するのが一般的である。パケット・キャプチャー・ツールやLANアナライザー、ネットワークアナライザーと呼ばれるものである。

図1●パケット・キャプチャー・ツールを使うと流れるデータを解析しやすい
図1●パケット・キャプチャー・ツールを使うと流れるデータを解析しやすい
データを解析するまでに必要な三つの機能を備えている。
[画像のクリックで拡大表示]

 パケット・キャプチャー・ツールは、パケットキャプチャーに必要な三つの機能を備えている(図1)。それは、(1)データ収集、(2)データ変換、(3)データ分析──である。

 (1)のデータ収集とは、ネットワークを流れるデータを収集する作業のこと。アプリケーションは通常、OSが用意する仕組みを使ってNICと通信データをやりとりする。そのため、別のアプリケーションが通信データを直接受け取るのは難しい。そこでパケット・キャプチャー・ツールは、NICを直接管理するドライバー機能を持っているか、別途用意したドライバーと組み合わせて利用するようになっている。

 このドライバーには、もう一つ大きな役割がある。ネットワークで利用するイーサネットの仕様では、NICに届いたデータのうち自身あてのものしか受け取らないことになっている。パケット・キャプチャー・ツールが使うドライバーは、自身あてでないデータも受け取れるようになっている。これをプロミスキャスモードと呼ぶ。パケット・キャプチャー・ツールはプロミスキャスモードを使い、図1のようにケーブルを流れるデータをのぞき見ることができるようになっている。

 (2)のデータ変換は、人が目で見てわかるデータに変換することである。ケーブル内の流れるデータは、「19A6B7DC54F6…」といった具合の数列でしかない。このデータをパケット単位に切り出し、あて先/送信元IPアドレスやあて先/送信元ポート番号、プロトコルの種類などを表示する。

 (3)のデータ分析は、各パケットのデータを特定の相手との通信や特定のプロトコルだけに限定し、そのうえで統計データを作ることである。リアルタイムに分析するだけでなく、収集したデータをいったん保存して、保存データから分析することも可能だ。

 こういったパケット・キャプチャー・ツールは、pingやnetstatといったネットワークコマンドのように、OSに標準で用意されているわけではない。そのため、ユーザーが別途ソフトを用意してインストールする必要がある。

 パケット・キャプチャー・ツールには、有償で販売される商用製品だけでなく、無料で利用できるフリーソフトもある。本特集では、フリーソフトでありながら多機能で広く使われている「Wireshark」を取り上げる。

 Wiresharkには、パケットキャプチャーしたデータから異常を検知したときに警告を発したり、そのネットワークを隔離したりするといった機能はない。これが、商用製品との主な違いだ。しかし、トラブルが発生したときにその原因を探るための十分な機能を備えている。また、システム要件は128Mバイト以上のメインメモリーと75Mバイトのインストール領域と、導入のハードルが低い。そこで、適当なパソコンにあらかじめ導入しておけば、トラブル発生時にあわてずに済む。

Wiresharkを起動してスキャンする

 では、Wiresharkを使ってみよう。

図2●Wiresharkを使ってみる
図2●Wiresharkを使ってみる
簡単な手順ですぐにキャプチャーを始められる。画面はバージョン1.4.0のもの。
[画像のクリックで拡大表示]

 標準でスタートボタンから起動できるプログラムメニューか、Quick起動(タスクバーの左側にあるランチャーボタン)にWiresharkの起動アイコンが入る。これをクリックすると、Wiresharkが起動する(図2)。

 Wiresharkのメイン画面が開いたら、早速パケットキャプチャーを実行してみよう。最初に、メイン画面の左上にある「List the available capture interface」ボタンをクリックする(図2の(1))。

 すると、Wiresharkをインストールしたコンピュータが搭載するNICの一覧が表示される。ここから、キャプチャーを実行するNICを選ぶ。各NICは1行単位で表示されており、スキャンしたいNICの右側の「Start」ボタンをクリックする(同(2))。

 メイン画面が切り替わり、指定したNICがやりとりしたパケットの情報が、一番上のペインに順番に表示される(図2下)。これを停止するには、メイン画面上部の左から4番目の「Stop the running live capture」ボタンをクリックする。ウインドウの右上の端にある終了ボタン「×」をクリックすると、Wiresharkの終了時の警告画面が表示される。キャプチャーしたデータを保存するか尋ねられるので、必要であれば「Save」、必要がなければ「Quit without saving」をクリックする。