パケットキャプチャツール「Wireshark」の使い方(前編)
〜リピーターハブを使ってLAN上のパケットをキャプチャし解析〜

Wiresharkの画面

■ Wiresharkとは

Wireshark(ワイヤーシャーク)はオープンソースで開発され誰でも自由に使用することができ、様々なレイヤにおいてEthernetフレームからHTTPメッセージまで、LAN上を流れるデータをキャプチャして情報を確認、解析できるパケットキャプチャツールです。
  • ソフトウェアが実際にどのような通信を行っているのか
  • 外部と不審な通信を行っていないか
  • 通信先はどこで、どのような内容が送信されているのか
などを確認することで、ネットワークトラブルの原因追及、開発現場でのデバッグ、マルウェア対策、ネットワーク通信の学習など幅広く利用され、ネットワークエンジニアの定番ツールと言われています。
試してみましょう。LAN内から特定のIPアドレスにアクセスしている端末を調べたいとします。Wiresharkで[27.133.130.186]にアクセスした端末を探すと[192.168.1.12][192.168.1.129]、2つの端末がアクセスしていることがわかりました。
[27.133.130.186]にアクセスした端末を探すと[192.168.1.12][192.168.1.129]、2つの端末を特定しました
[192.168.1.12]は固定IPでデスクトップPC、[192.168.1.129]はDHCPなので別のツールで確認するとiPhoneであることが分かりました。
Advanced IP Scannerで[192.168.1.129]を確認するとiPhoneと判明しました
逆に特定のデバイスがアクセスしているIPアドレスを探してみましょう。IoTスイッチ(コンセント)のIPアドレスは[192.168.1.80]、アクセスしているIPアドレスは[34.210.19.179][54.187.112.38]にアクセスしていることが分かります。[192.168.1.129]=iPhoneが操作していることも分かります。
IoTスイッチがアクセスしているIPアドレスは[34.210.19.179][54.187.112.38]と判明しました
このようにWiresharkを利用するとLAN上を流れるデータをキャプチャして情報を確認、解析することができます。

■ パケットキャプチャにあると便利なリピーター機能搭載ハブ

このように、ある機器がどのようなパケットを発して、どことどのような通信をしているかを確認したいなど、ネットワークを流れる情報をすべて見て確認したいと思うことはないでしょうか。
自分が使用しているPCならば入れているソフトも把握できますが、アプリがたくさんインストールされたスマートフォンやIoT機器のなかには、通信先がわからず不安になることもあります。情報セキュリティという面でも、把握しておきたいと思う人がいるでしょう。
ですが、WiresharkをインストールしたPCをスイッチングハブに接続しても、他のPCがアクセスしているサイトのIPアドレスやIoTスイッチがアクセスしているIPアドレスを知ることはできません。理由は現在普及しているハブはスイッチングハブと呼ばれるもので、必要な経路(ポート)だけしかデータが流れず、通信に関係のないポートにはデータを流さないようになっているからです。
スイッチングハブでは、必要なポート間しかデータが流れません
図のようにパソコンAがNASからデータをダウンロード、パソコンBがインターネットにアクセスしても、パケットキャプチャ用のパソコンのポートにはデータが流れてきません。
昔(2000年以前)はリピーターハブと呼ばれるハブが主流で、リピーターハブはすべてのポートにデータを送って、そのデータが必要な端末が受け取っていました。その後ネットワーク経路を処理するチップが普及しコストも下がり2000年以降はスイッチングハブが一般化され、現在ではほとんどのハブはスイッチングハブとなっています。
リピーターハブの時代は、例えばパソコンAがNASからデータをダウンロード、パソコンBがインターネットにアクセスしたとすると、細かくパケット化されたデータは(パソコンA)(パソコンB)(パソコンA)(パソコンB)……と順番に処理されていましたが、スイッチングハブは通信経路を判断して、「パソコンAがNASからデータをダウンロード」と「パソコンBがインターネットにアクセス」を同時に処理することができます。
ネットワークの効率化を実現したスイッチングハブですが、経路以外にはパケットが流れないことになり、経路外からは通信を確認することができず、通信の監視がしづらくなっています。
監視方法の1つとしてスマートスイッチと呼ばれるスイッチングハブにはポートミラーリングという機能があります。例えばポート1につないだ端末のパケットをポート16にミラーリングし、ポート16にパケットキャプチャするPCを接続して監視することができます。調べたい環境にスマートスイッチが導入されていることが前提となりますし、ネットワークエンジニアが訪問先で作業を行う場合は、設置されたネットワーク機器メーカーのツールをインストールしたりパスワードを教えてもらったりする必要があります。
スマートスイッチでポートミラーリングの設定例
設定にはメーカー専用ツールのインストールやパスワードが必要です
もっと手軽にパケットキャプチャする方法は、リピーター機能搭載ハブの利用です。リピーターハブと同様、1つのポートに入ったデータをすべてのポートに送ることができます。下図のようにパソコンBがインターネットにアクセスしたデータがNASにもアクセスポイントにもパケットキャプチャ用PCにも送られますので、Wiresharkなどのツールで解析することが可能です。
リピーター機能搭載ハブ「FXG-05RPT2」を利用するとすべてのポートのデータがキャプチャできます
リピーター機能搭載ハブ「FXG-05RPT2」はWiresharkなどパケットキャプチャツールを利用するためのハブで「FXG-05RPT」の後継機となります。
リピーター機能搭載ハブ「FXG-05RPT2」
従来製品の「FXG-05RPT」は2013年発売のロングセラー製品で多くのエンジニアにご利用いただきました。ネット上のコメントを見ると、特定の用途でお役に立っていたと思われます。
従来製品の「FXG-05RPT」に対するコメント
「FXG-05RPT2」は樹脂ケースを採用し約80gと大幅な軽量化を実現。金属ケースだった従来機の160gから半分の重さになりました。USB Type-Cポートによる給電に対応。付属のUSBケーブルは「Type-A−Type-C」「Type-C−Type-C」の2種類を付属しています。汎用性を高めたことで、給電用USBケーブルの断線、紛失などがあっても、コンビニや百均で調達が可能です。また、電源供給用のUSBケーブルと本体を収納できる専用ポーチも付属し、ネットワークエンジニアが持ち歩く際の携帯性を向上させました。

■ Wiresharkをインストールしよう

「Wireshark」は無料で利用でき、ユーザーが多く情報もたくさんあります。「Wireshark 本」で検索すると解説本が数多く出版されていて、人気が高く奥が深いことがうかがえます。
2023年7月、執筆時の最新バージョンは4.0.6です(2023年9月時点で4.08)。バージョンによってデザインや機能が変わっていますが、イーサネットアダプターの違いなど一部の環境では動かない例もあるようで、その場合はバージョン3を使うこともできます。
ソフトウェア自体はWiresharkのWebサイトからダウンロードできます。最新の4.0.6も、以前の3.6.xxも安定版として配布されていますので、安心して使うことができます。
インストールは、途中でオプションの設定がありますが、基本的にはすべてデフォルトのまま進めて問題ありません。
ダウンロードした実行形式のファイルからインストールを開始します
コンポーネントを選ぶ画面。デフォルトのままで問題ありません
実行のためのショートカットの作成も、デフォルトのままで大丈夫です
Npcapはインストールする。これもデフォルトのままで大丈夫です
USBキャプチャは今回の使い方ではインストールしなくても大丈夫です
Npcapのインストールもデフォルトのままで進めます

■ Wiresharkを実行してみよう

インストールが終わったら実行してみましょう。最初にどのイーサネットをキャプチャするか選びます。PCの構成によって複数のイーサネットがある場合は選択し「イーサネット」をダブルクリックします。有線LANポートがひとつしかない場合は「イーサネット」を選べばモニターが開始されます。
最初の画面。イーサネットが2つあり今回モニターするのは「イーサネット2」になります
自分PCからのパケットも表示されますので、大量のパケット表示が流れていく様子に戸惑うかもしれません。キャプチャを停止するときは左上の赤い四角をクリックします。キャプチャしたパケットからフィルター機能を使って目当てのものを絞り込んで解析していくことになります。
モニターを開始すると、みるみるうちに画面が埋まってキャプチャしたパケットがスクロールしていきます
キャプチャを停止するときは左上の赤い四角をクリックします
Wiresharkの画面表示の説明をしましょう。まずはパケット表示の上段の項目です。
@ No. キャプチャしたパケットの番号
A Time デフォルトはキャプチャ開始からの秒数
B Source 送信元。IPアドレス(または名前)で表示
C Destination 送信先。IPアドレス(または名前)で表示
D Protocol プロトコル
E Length パケットのフレームの長さをバイトで表示
F Info パケットの情報
各エリアの表示内容は以下のとおりです。
A 操作やメニューのエリア
B 表示フィルター。表示させる条件を記載する
C パケット表示エリア
D パケットの情報。左端の「>」をクリックするとさらに詳細を表示
E パケットの生データを16進数で表示
前編はここまで。後編は実際にWiresharkを実行、フィルターを利用して必要なパケットをキャプチャする方法などを紹介します。

ネットワークをもっと快適に

関連製品