はじめに
この実験では、Wireshark のコマンドラインツール tshark を使用して、大規模なパケットキャプチャファイルを処理する効率的な手法を学びます。-r で PCAP ファイルを開き、-c でパケットを制限し、-Y を使ってトラフィックをフィルタリングし、-w でサブセットをエクスポートする操作を練習します。
実践的な演習を通じて、パケット制限、プロトコルフィルタリング、ファイル分割を適用して大規模なデータセットを扱う方法を習得します。これらのスキルは、リソースの最適化と正確なデータ抽出が必要なネットワークトラブルシューティングのシナリオにおいて不可欠です。
-r large.pcap でファイルを開く
このステップでは、Wireshark のコマンドラインインターフェイス tshark を使用して、パケットキャプチャ (PCAP) ファイルを開き、調査する方法を学びます。PCAP ファイルには、ネットワークインターフェイスからキャプチャされたネットワークトラフィックデータが含まれています。-r オプションは「read(読み取り)」を意味し、tshark に処理するファイルを指定します。
まず、パケットキャプチャファイルが格納されているディレクトリに移動する必要があります。ターミナルで以下のコマンドを実行します。
cd ~/projectこれにより、作業ディレクトリが
large.pcapファイルが保存されている場所に変更されます。tsharkがファイルを見つけることができるように、正しいディレクトリにいることが重要です。次に、以下のコマンドを使用して
large.pcapの内容を開き、表示しましょう。tshark -r large.pcapこのコマンドはファイルを読み取り、パケットデータをターミナルに出力します。各行はキャプチャされた 1 つのネットワークパケットを表します。
出力には、各パケットに関するいくつかの重要な情報列が表示されます。
- パケット番号:キャプチャ内のパケットのシーケンス番号
- タイムスタンプ:パケットがキャプチャされた時刻
- 送信元と宛先の IP アドレス:パケットの送信元と宛先
- プロトコル:使用されているネットワークプロトコル(TCP、UDP、HTTP など)
- 長さ:パケットのサイズ(バイト)
- 情報:パケットに含まれる内容に関する追加の詳細
大きな PCAP ファイルは大量の出力を生成する可能性があるため、
lessコマンドにパイプすることで読みやすくすることができます。tshark -r large.pcap | lessこれにより、矢印キーを使用して出力をページごとにスクロールできます。ビューアを終了してコマンドプロンプトに戻りたい場合は、
qを押します。
-c 10000 で処理を制限する
このステップでは、大規模なパケットキャプチャファイルから処理するデータ量を制御する方法を探ります。ネットワーク分析を行う際には、数百万のパケットを含む非常に大きな PCAP ファイルにしばしば遭遇します。これらを一度にすべて処理すると、時間がかかり、リソースを大量に消費することがあります。このような場合に、tshark の -c オプションが役立ちます。
-c フラグを使用すると、ファイルの先頭から処理するパケット数を正確に指定できます。これは、分析手法をテストするときや、トラフィックの代表的なサンプルのみを調査する必要があるときに特に有用です。
まず、キャプチャファイルがある正しい作業ディレクトリにいることを確認しましょう。
cd ~/project次に、
large.pcapファイルの最初の 10,000 個のパケットのみを処理します。コマンド構造は簡単です。-rで入力ファイルを指定し、-cでパケット数の制限を指定します。tshark -r large.pcap -c 10000コマンドが完了すると、正確に 10,000 個のパケットが処理されたことが確認できます。出力には明確に以下のように表示されます。
10000 packets captured10,000 個のパケットでもかなりの出力が生成されるため、結果を
lessにパイプして見やすくすることができます。これにより、出力をページごとにスクロールできます。tshark -r large.pcap -c 10000 | lessパケット処理を制限することが有益な実際のシナリオには、以下のようなものがあります。
- 完全な処理を待たずに大きなファイルを迅速に分析する
- フィルタ構文をファイル全体に適用する前に正しく動作することを確認する
- トラフィックのサンプルのみが必要な場合にシステムリソースを節約する
- 分析スクリプトを大規模に適用する前に管理しやすいデータセットでテストする
-Y "ip" で IP トラフィックをフィルタリングする
このステップでは、Tshark の強力な表示フィルタオプション -Y を使用して、ネットワークトラフィックをフィルタリングし、IP パケットのみを表示する方法に焦点を当てます。これは、特定のプロトコルのトラフィックを迅速に分離する必要がある大きなキャプチャファイルを扱う際に特に有用です。
まず、キャプチャファイルが保存されているプロジェクトディレクトリに移動しましょう。これにより、正しいファイルを操作していることが保証されます。
cd ~/project次に、
-Yフィルタを使用して、キャプチャファイルから IP トラフィックのみを表示します。以下のコマンドは 'large.pcap' ファイルを読み取り、フィルタを適用します。tshark -r large.pcap -Y "ip"このコマンドを実行すると、出力には以下の条件を満たすパケットのみが表示されることに気づくでしょう。
- IPv4 または IPv6 プロトコルを使用する
- 構造内に適切な IP ヘッダーを含む
- ARP(アドレス解決プロトコル)や STP(スパニングツリープロトコル)などの非 IP トラフィックを除外する
大きなファイルをより適切に扱うために、このフィルタをこれまで学んだ他のオプションと組み合わせることができます。この例では、処理を 10,000 個のパケットに制限し、出力を
lessにパイプして見やすくしています。tshark -r large.pcap -c 10000 -Y "ip" | less-Yフィルタは Wireshark の表示フィルタ構文を使用しており、以下を含む多くの可能性を提供します。- プロトコルベースのフィルタリング(ip、tcp、udp)
- 送信元/宛先アドレスのフィルタリング(ip.src、ip.dst)
- ポート番号のフィルタリング(tcp.port、udp.port)
-w small.pcap でサブセットを保存する
このステップでは、大きなキャプチャファイルからネットワークトラフィックの特定の部分を抽出して保存する方法を学びます。これは、全体を分析するにはリソースを大量に消費する巨大な PCAP ファイルを扱う際に特に有用です。
まず、キャプチャファイルが保存されているプロジェクトディレクトリに移動します。これにより、すべてのファイル操作が正しい場所で行われることが保証されます。
cd ~/project次のコマンドは、複数の Tshark 機能を組み合わせて管理しやすいサブセットファイルを作成する方法を示しています。ここでは 'large.pcap' を読み取り、最初の 10,000 個の IP パケットのみを保持します。
tshark -r large.pcap -c 10000 -Y "ip" -w small.pcapこれを分解すると:
-r large.pcapは入力ファイルを指定します。-c 10000は最初の 10,000 個のパケットまでの処理を制限します。-Y "ip"は表示フィルタを適用して、IP トラフィックのみを含めます。-w small.pcapはフィルタリングされた結果を新しいファイルに書き込みます。
コマンドを実行した後、出力ファイルが正常に作成されたことを確認します。
lsコマンドに-lhフラグを付けると、ファイルサイズが人間が読みやすい形式(KB/MB など)で表示され、その他の詳細も表示されます。ls -lh small.pcapこれで、この小さくフィルタリングされたファイルをより効率的に扱うことができます。その内容を表示するには、出力を
lessにパイプして、パケットをスクロールできるようにします。tshark -r small.pcap | lessこれは、元の大きなファイルを処理するよりもはるかに高速で、指定した IP トラフィックのみを含んでいます。
まとめ
この実験では、Wireshark の tshark コマンドラインツールを使用して大きなパケットキャプチャファイルを効率的に処理するための重要な技術を学びました。-r でファイルを開き、-c でパケット数を制限し、-Y で表示フィルタを適用し、-w でサブセットをエクスポートすることで、大規模なデータセットを効果的に管理する方法を練習しました。
演習では、less を使用した出力のナビゲーションやターゲットとなるパケットの抽出など、ターミナルベースの分析に必要な実践的なスキルを示しました。これらの機能は、大量のトラフィックキャプチャを扱いながらシステムリソースの使用を最適化するネットワーク専門家にとって不可欠です。


