パケットキャプチャツールの世界標準ともいえるWiresharkを使いこなすことは、ネットワークエンジニアにとって非常に重要なスキルです。
本記事では、WiresharkでパケットキャプチャをするためのセットアップからGUIの基本操作・フィルタリング・統計情報の活用・グラフ表示・データのエクスポートまで、実践的な使い方を詳しく解説していきます。
Wiresharkの基本操作とインターフェース
それではまず、Wiresharkの基本操作とインターフェースについて解説していきます。
Wiresharkは機能が豊富ですが、基本的な操作フローは比較的シンプルです。
Wiresharkの基本的な操作フロー:
①Wiresharkを起動して利用可能なネットワークインターフェースを確認
②キャプチャするインターフェースを選択して開始ボタンをクリック
③必要な通信が発生するまで待つ・または問題を再現する
④停止ボタンをクリックしてキャプチャを終了
⑤表示フィルターで目的のパケットを絞り込んで解析する
Wiresharkのメニューとツールバー
Wiresharkの主要なメニューの機能を理解しておくことで、操作の効率が上がります。
「File」メニューではキャプチャファイルの開く・保存・エクスポートが行えます。
「Capture」メニューではキャプチャの開始・停止・インターフェースの設定が行えます。
「Analyze」メニューでは表示フィルターの適用・フォロー(TCP/UDPストリームの追跡)・Expert Informationの表示が行えるでしょう。
キャプチャインターフェースの選択
Wireshark起動直後の画面では、利用可能なネットワークインターフェースの一覧が表示されます。
各インターフェース名の横にはリアルタイムのトラフィック量がグラフ表示されており、アクティブなトラフィックが流れているインターフェースを素早く特定するのに役立ちます。
有線LANは「Ethernet」「ローカルエリア接続」、無線LANは「Wi-Fi」「無線ネットワーク接続」という名前で表示されることが多く、キャプチャしたい通信が流れているインターフェースを選択することが重要でしょう。
Wiresharkのフィルタリング機能の活用
続いては、Wiresharkのフィルタリング機能の活用を確認していきます。
Wiresharkで最も重要かつ強力な機能の一つがフィルタリングです。
表示フィルター(Display Filter)の使い方
Wiresharkの画面上部にあるフィルターバーに表示フィルター式を入力することで、膨大なパケットの中から目的のものを絞り込めます。
フィルター式が正しい構文の場合はフィルターバーが緑色になり、間違いがある場合は赤色になるためすぐに確認できます。
「ip.addr == 192.168.1.1」で特定IPアドレスのパケットに絞り込み・「tcp.port == 443」でポート443のTCPパケットに絞り込み・「http.response.code == 404」でHTTP 404エラーのパケットのみ表示するなどの活用が可能でしょう。
よく使うWireshark表示フィルター集:
・http → HTTPプロトコルのパケット
・dns → DNSプロトコルのパケット
・tcp.flags.reset == 1 → TCPリセット(接続拒否・異常切断)
・tcp.analysis.retransmission → TCP再送パケット
・frame.time_delta > 1.0 → 1秒以上の遅延があるパケット
・ip.src == 10.0.0.1 and ip.dst == 10.0.0.2 → 特定の送受信間
TCPストリームのフォロー機能
Wiresharkの「Follow TCP Stream」機能は、複数のパケットにまたがるTCPセッション全体の内容を会話形式で表示するとても便利な機能です。
解析したいパケットを右クリックして「Follow」→「TCP Stream」を選択すると、クライアントとサーバー間のやり取りが時系列で表示されます。
HTTP通信の場合はリクエストヘッダー・ボディ・レスポンスヘッダー・ボディが一目でわかる形で表示されるため、APIの動作確認やWebアプリケーションのデバッグに非常に役立つでしょう。
カラーリングルールの活用
Wiresharkは種類の異なるパケットを色分けして表示するカラーリングルールを持っており、問題のあるパケットを視覚的に識別するのに役立ちます。
赤・黒の背景はTCPの問題(再送・エラー)・緑はHTTPトラフィック・青紫はDNSトラフィックというデフォルトの配色が設定されています。
「View」→「Coloring Rules」からカスタムのカラーリングルールを追加・編集できるため、自分の分析目的に合わせた色分けを設定することが可能でしょう。
Wiresharkの統計機能とグラフ表示
続いては、Wiresharkの統計機能とグラフ表示を確認していきます。
Wiresharkには個々のパケット解析だけでなく、キャプチャデータ全体の傾向を把握するための統計・グラフ機能が充実しています。
IO Graphsによるトラフィック可視化
「Statistics」→「IO Graphs」を開くと、時間軸に沿ったパケット数・バイト数のグラフが表示され、トラフィックの変化をビジュアルに確認できます。
複数のフィルター条件を別々の色のグラフとして重ねて表示することもでき、「http && http.response.code >= 400」というフィルターでHTTPエラーのグラフを追加するなど、問題のある通信を視覚的に浮かび上がらせることが可能です。
トラフィックが急増・急減している時間帯を特定して、その時間帯のパケットを詳細に調査するというアプローチが有効でしょう。
プロトコル階層統計
「Statistics」→「Protocol Hierarchy」では、キャプチャデータ中の各プロトコルが占める割合をツリー形式で確認できます。
帯域幅のほとんどをどのプロトコルが消費しているか・想定外のプロトコルが大量に流れていないかを一目で把握できます。
通常はほとんどないはずのBroadcast・Multicastトラフィックが大量に発生している場合やUDPトラフィックが異常に多い場合など、ネットワーク問題の兆候を検出するのに役立つでしょう。
キャプチャデータのエクスポート
Wiresharkでは解析したパケットデータをさまざまな形式でエクスポートすることができます。
「File」→「Export Specified Packets」でフィルタリングされた特定のパケットのみをpcapファイルとしてエクスポートし、共有・再解析に活用できます。
「File」→「Export Packet Dissections」→「As CSV」または「As JSON」でパケット情報をCSVやJSON形式でエクスポートし、スプレッドシートやスクリプトでの自動分析に活用することも可能でしょう。
まとめ
本記事では、WiresharkでパケットキャプチャをするためのGUI操作・フィルタリング・TCPストリームフォロー・統計情報・グラフ表示・エクスポートについて詳しく解説しました。
表示フィルターによる目的パケットの絞り込み・TCP Streamフォローによるセッション全体の確認・IO Graphsによるトラフィックの可視化という3つの機能を使いこなすことで、Wiresharkの活用レベルが大きく向上します。
Wiresharkを継続的に使い込むことでプロトコルの理解も深まり、ネットワークトラブルシューティングと解析の実践的スキルが向上するでしょう。
Wiresharkの豊富な機能を習得することが、プロフェッショナルなネットワーク解析能力の獲得につながります。