日経NETWORK 2005.6 『製品研究室パケット・キャプチャ・ソフトP74~P81』 by pingpan
普段ネットワークを使う分にはあまりお目にかかりませんが、ネットワークにトラブルが発生したり、ネットワークについて詳しく勉強したりする時に大いに役立つのが、今回紹介されている『パケット・キャプチャ・ソフト』です。
既によく利用してるよぉ~~なんていう方もたくさんいるでしょう!パケット・キャプチャ・ソフトの代表的なフリーソフトである『Ethereal(http://www.ethereal.com)』という名前を聞けば、パケット・キャプチャ・ソフトがどんなものか予想がつく方も多いのではないでしょうか??
今回の記事では、パケット・キャプチャ・ソフトの基本的な使い方と基本機能、またフリーソフトと商用ソフトにおける違いについて紹介されていました。では、まずパケット・キャプチャ・ソフトの基本的な使い方や動作原理、基本機能について簡単にまとめみます。
そもそも、パケット・キャプチャ・ソフトとはどういったものかといいますと
『ネットワークに流れるパケットを収集してその内容を表示してくれるもの』
です。
ただパケットの内容を表示してくれるだけはなくて、フィルタ機能を用いて目的のパケットだけを取り出して表示したり、商用製品の中には、取り込んだ情報を視覚的に統計表示してくれたり、取り込んだパケット内のデータを再現してコンテンツを再現してくれたり、ラダー表示といってコンピュータ同士でやりとりしたパケットの流れを順番に表示してくれたりするものもあります。
では、具体的にどのように利用していくかといいますと、単にキャプチャ・ソフトをパソコンにインストールして、パソコンをLANなどのネットワーク上に設置するだけです。
あとは、キャプチャ・ソフトを起動して取り込み開始ボタンをクリックするだけ!とても簡単です。
しかし、ただ単に取り込んだだけでは自分にとってほしくないパケット(自分に無関係なブロードキャストパケットなど)も取り込んでしまいますので、キャプチャ・ソフトのフィルタ機能を利用して、自分がほしいパケットだけを取り出す必要があります。
この時フィルタの条件には、送信元・先のIPアドレスやプロトコルなどを指定することができます。(この辺はキャプチャ・ソフトによって違います。)
しかし、ここで注意点があります。
通常、コンピュータは自分宛のパケットだけを取り込んで、自分宛でないパケットは破棄してしまいます。
それでは、LAN上に流れるすべてのパケットの解析を行うことができません。従って、LAN上に流れるすべてのパケットの解析を行いたい場合は、LANアダプタが自分宛以外のパケットも取り込むように『プロミスキャス・モード』と呼ばれるモードで動作するように設定する必要があります。
ここまで簡単にパケット・キャプチャ・ソフトの使い方について説明しました。では、次にもう少し実践的な使い方について説明したいと思います。実際に、パケット・キャプチャを行うパソコンをネットワークにつなぐにはいくつか注意しなければならない点があります。
パソコンをLAN上につなぐとき、最近はスイッチを介してつなぐのが一般的だと思います。スイッチは各ポートにつながっているパソコンのMACアドレスを記憶していて、受け取ったパケットのあて先MACアドレスを見て適切なポートのみにパケットを転送します。
この機能がパケット・キャプチャにとって非常に厄介になります。パケット・キャプチャをするためには、LAN上に流れるすべてのパケットを取り込む必要があるのですが、スイッチの親切な機能のおかげで他のコンピュータあてに流れるデータを取り込むことができません。そこで、これを解消する方法として本誌には3つの方法が紹介されていました。
- リピータ・ハブを使う。
- LANスイッチのミラーリング機能を使う。
- タップを使う
です。
1つ目のリピータ・ハブを使うですが、これはあまり現実的ではありません。リピータ・ハブは受け取ったパケットをすべてのポートに転送してくれるのでキャプチャ・ソフトをいれたパソコンに全パケットが届くようになり問題解決となるところですが、リピータ・ハブを置いたLANセグメントは半2重通信となり、通信パフォーマンスが著しく低下してしまいます。
2つ目はLANスイッチのミラーリング機能です。ミラーリング機能とは、LANスイッチの特定のポートに出入りするパケットを別のポートにコピーしてくれる機能です。コピー先のポートにキャプチャ・マシンをつないで利用するので、手軽でよさそうなのですが、欠点もあります。というのは、1つのポートの入出力パケット両方をミラーポートに送ることになるので、監視ポートには2倍のトラフィックが流れることになります。したがって、監視ポートの持つスループット以上のパケットが流れ込んだ時にすべてのパケットをコピーできずに取りこぼしが発生してしまうのです。これでは、肝心のパケットがキャプチャできてなかったなんていう問題が発生しちゃいますね。
そこで、そうした取りこぼしを無くすための方法として3つ目のタップを利用するという方法があります。
タップとは、タップ内を通過する送受信パケットを分岐して別々のポートにコピーして送ってくれる機能をもった装置です。送信・受信のパケットを別々のポートに送ってくれるの、取りこぼすといった心配はなくなりますね。しかし、キャプチャ・マシンは2つのポートから出てくるパケットを受信する必要があるので、2つLANポートを用意しなければなりません。ちなみに、本誌の写真を見る限りタップは普通のスイッチと変わらぬ形態をしています。
といった感じで、パケット・キャプチャ・ソフトの実践的な使い方についてざっと紹介しました。先にも紹介しましたが、商用のキャプチャ・ソフトは統計表示機能が非常に充実していて、送り出したパケットの数が多いコンピュータをグラフ表示してくれたり、パケットをやり取りしたコンピュータのペアを線で結んで表示してくれたりする機能を持ったものもあります。
なかには、キャプチャしたデータから画像や音声を再現してくれる機能を持った製品もあったりします。(ただし、かなりの高額です。)こうした製品は、なかなか個人では手に入れにくいのであまり目にすることはないかもしれませんが、フリーの『Ethereal』ならいつでも手に入れることができます。
まだ、『Ethereal』に触れたことが無い方は、この機会にぜひ導入してみてはどうでしょうか?
お手持ちのパソコンに入れておけば、なにかと役に立つことがありますよ!!
ちなみに、ワタクシpingpanは暇があれば『Ethereal』を立ち上げてパケットをキャプチャして遊んでいます。眺めているだけで通信の仕組みが見えたりして、ネットワークのお勉強に最適ですので、おすすめですよ!
pingpan
『SEの玉子の卵のタマゴのBlog~日記編』
※pingpanさん、ありがとうございます。実際にネットワークを流れるパケットを見てみると、通信プロトコルの階層構造がよくわかっていいですよね!(Gene)
日経NETWORKの詳細、購読申し込みはこちら↓