ほぷしぃ

Ethereal

プログラムを裏側から読もう /  Filemon /  Regmon /  Ethereal

Ethereal 〜 ネットワークパケットを記録し、解析するツール 〜

更新日:2005年06月08日

Etherealは、イーサネット上のパケットを解析するツールです。 パケットを取得し、プロトコルの種別ごとに判定し、内容を判りやすく表示します。

ネットワークプログラムのデバッグや、重いサイトのボトルネックの解析などに力を発揮します。

○ダウンロード

下記のサイトから取得できます

www.ethereal.com

Etherealのダウンロード

※Etherealとは別にWinPcapのダウンロードも必要です(後記)

1. www.ethereal.com のサイトを表示させます。

2.左のメニューの[Resources]から[Download]をクリック

3.表示されたページの中程の[Windows 98/ME/2000/XP/2003 Installers]の
 下のミラーサイトのリンク(例えばJapan)のいずれかをクリック

4.表示されたページの最下部のファイル一覧より[ethereal-setup-0.10.11.exe]をクリック

5.ファイルのダウンロードのダイアログが表示されるので、画面に従ってファイルを保存します。

WinPcapのダウンロード

上記の[ethereal-setup-0.10.11.exe]と同じ場所にある[WinPcap_3_0.exe]をクリックし、
画面の指示に従って保存します。
※WinPcapは、パケットをキャプチャするライブラリです。

○インストール

1.WinPcapを先にインストールします。
 ダウンロードしたファイル[WinPcap_3_0.exe]をクリックして、画面に従いインストールします。

2.次にEtherealをインストールします。
 ダウンロードしたファイル[ethereal-setup-0.10.11.exe]をクリックして、
 画面に従いインストールをします。
 全てデフォルトの設定でかまいません。

3.念のため、PCを再起動させます。

○使い方

起動

スタートボタンから起動します。
スタート→プログラム→Ethereal→Etherealで起動します。

下記の様な画面が表示されます
Etherealの初期画面

準備

(1) メニュー [Edit]→[Preferences]を選択。

(2)[Preferences]のダイアログが表示されます。
 左側から[Capture]を選択。

(3)右上の[Default Interface:]に、使用しているネットワークカードが表示されていることを確認。
 [Update list of packets in real time]にチェックをつけます。

Ethereal 設定画面

(4)右下の[Save]ボタンをクリックし、[OK]をクリック

(5)メニュー[File]→[Quit]で一旦Etherealを終了させ、再度起動します。

パケットのキャプチャ開始

(1) メニュー[Capture]→[Start]を選択

(2) パケットのキャプチャが開始されます。
 この間[Capture]ダイアログが表示されます。

Etherealのキャプチャダイアログ

(3) ブラウザなどで適当なサイトをアクセスするとパケットの流れが表示されます。

Etherealの動作画面

パケットのキャプチャ終了

表示されている[Capture]ダイアログの[Stop]ボタンをクリックします。

パケットしたデータのバイナリ形式の保存

(1) メニュー[File]→[Save] を選択

(2) 保存用の[SaveCaptureFile As]ダイアログが表示されるので
 Name:のテキストボックスにファイル名を記入して
 [Save]ボタンをクリックします

 例 c:\aaa.eth と入力して、[OK]ボタンをクリック

EtherealのSave画面

パケットしたデータのテキスト形式での保存

※ファイルにプリントアウトする事で実現します

(1) メニュー[File]→[Print]を選択

(2) [Print]ダイアログが表示されます。

Etherealの印刷画面

(3) 下記の用に設定

Format: [Plain Text]を選択(デフォルト)
Output to File: チェックをつけ、ファイル名にセーブするファイル名を入力
(例)c:\ethereal.out

(4) [Print]ボタンをクリックするとファイルに出力されます。

Etherealの見方

画面は3つの部分から構成されます。

Etherealのペインの説明

 トップペイン: パケットの一覧を表示
 ミドルペイン: トップペインで選択されたパケットの内容を表示
 ボトムペイン: トップペインで選択されたパケットをダンプ表示

トップペイン

送受信されるパケットの一覧が表示されます
項目は左から下記のようになります。

No キャプチャしたパケットの番号
Time キャプチャしたパケットの時間
表示形式は通常の時刻、キャプチャ開始時からの時間、前のパケットからの相対時間などオプションで 選択できます。
Source パケット送信元
IPアドレスかドメイン形式かをオプションで選択できます。
Destination パケット受信先
IPアドレスかドメイン形式かをオプションで選択できます。
Protocol パケットのプロトコルの種別を表示します
Info その他の情報を表示します

※オプションで[パケット長][送信元ポートアドレス][受信先ポートアドレス]なども追加できます

ミドルペイン

パケットの中身を表示します
HTTPの場合下記の下記の5個のセクションから構成されます

Frame 情報 フレームの情報が表示されます。
フレームの到着時刻、サイズ、など
ethernetII イーサネットのネットワーク層の情報が表示されます。
送信元MACアドレス、受信先MACアドレス、上位プロトコル種別(IP,ARPなど)
IP(InternetProtocol) IPプロトコルの情報が表示されます。
送信元IPアドレス、受信先IPアドレス、パケット長やフラグ、上位プロトコルの種別(TCP,ICMPなど)
TCP(Transmission Control Protocol) TCPプロトコルの情報が表示されます。
送信元ポート番号、受信先ポート番号、シーケンス番号、ACK番号、フラグなど
HTTP(Hypertext Transfer Protocol) HTTPプロトコルの情報が表示されます。
HTTPのバージョン、コード、日付などのヘッダ情報の後にHTMLのデータが表示されます。

ボトムペイン

パケットの中身を16進数でダンプ表示します。
ミドルペインの項目を選択すると該当箇所が反転表示されます。

○こつ

Etherealは非常に便利なツールですが、下記の設定で更に使い勝手が良くなります。

異常パケットの検出

(1)メニューの[Edit]→[Prefarence]を選択すると[Prefarence](設定)ダイアログが表示した後、
 左の[protocols]の[+]をクリックしてプロトコルを一覧表示させます。
 その中から、[TCP]を選択します。

EtherealのTCP設定画面

(2)右側のチェックボックスのうち下記の2つにチェックをします

 [Analyze TCP sequence numbers]
 [Relative sequence numbers and window scaling]

(3)[Save]ボタンをクリック後、[OK]ボタンをクリックします。
 一度etherealを終了して、再起動します。

この設定をすると、パケットでエラーが発生すると、トップペインのパケット一覧の[Info]で、
エラーパケットに[TCP Zero Winodow]などの文字列が付加されます。

異常パケットの色づけ

Etherealには特定の文字を含むパケットに色を付けることができます。
異常パケットに色を付ける事で異常の場所が一目でわかります。

(1)メニューの[View]→[Coloring Rules]を選択すると
 [Coloring Rules]ダイアログが表示されます。

(2)左側の[New]ボタンをクリックすると、[Edit Color Filter]ダイアログが更に表示されます。

(3)さらに [Expression] ボタンをクリックすると[Filter Expression] ダイアログが表示されます。
 そこの[Field name] から [TCP] を探し、左の [+] をクリックしてツリーを展開します。

Ethereal TCPフィルタ設定画面

(4)そこで tcp.analysis.XXX を選択すると Ethereal が解析したエラーなどが選択できます。
 ここでは [tcp.analysis.zero_window -Zero Window...]を選択し、[OK]をクリックします

(5)[EditColor Filter]の[Name]に適当な名称をいれ、且つ、[String]の末尾のゴミ[Filter]の文字列を削除し、
 [Foreground Color]ボタン、[Background Color]ボタンをクリックして、前景色、背景色を決めて、[OK]ボタンをクリックします。

Etherealカラーフィルタ画面

(6)[Coloring Rules]ダイアログに設定が反映されているのを確認し[Save]ボタンをクリックし、
 [OK]ボタンをクリックしてダイアログを終了させます。

Ethereal色設定画面

(7)Etherealをいったん終了させ、再起動させます。

この設定をして、遅いサイトに対してパケットをキャプチャすると[TCP Zero Window]の異常パケットに色が付いていることが判ります。

Ethereal色づけサンプル画面

前のページへ ページのトップへ