メインコンテンツまでスキップ

パケットキャプチャ(Windows)

ネットワークの可視化、トラブルシューティング、セキュリティ監査など、パケットキャプチャはネットワーク技術者にとって不可欠なスキルです。本記事では、Windows環境でのパケットキャプチャに焦点を当て、netshコマンド、etl2pcapngツール、Wiresharkを使用したパケットキャプチャの方法について解説します。

パケットキャプチャの概要と目的

パケットキャプチャは、OSI参照モデルの第2層〜第4層における通信内容を取得・解析する技術です。主な目的は以下の通りです:

  • トラフィックの可視化と帯域分析
  • 通信障害の原因特定
  • プロトコルの挙動確認とデバッグ
  • セキュリティインシデントの調査

netshコマンドによるパケットキャプチャ

netshコマンドは、Windowsのネットワーク設定を管理するための強力なツールであり、パケットキャプチャも可能です。追加のインストールは不要ですので、Windowsの運用環境でパケットキャプチャについてはほぼこのツールだけで事足ります。管理者権限のコマンドラインから直接使用でき、非常に多くのオプションが用意されていますが、基本的な使用方法は以下のとおりです。

# キャプチャの開始
netsh trace start capture=yes
# キャプチャのステータス確認
netsh trace show status
# キャプチャの停止
netsh trace stop

キャプチャに使用できるオプションは netsh trace start /? で確認できますが、その中でも特に重要なオプションを以下に挙げておきます。

オプション説明
capture=yesパケットキャプチャを有効にします。
report=disabledキャプチャのレポートを生成しません。
maxsize=<サイズ>キャプチャするパケットの最大サイズを指定します。
filemode=circular循環ログを有効にします。
tracefile=<ファイル名>キャプチャ結果を保存するファイル名を指定します。デフォルトではNetTrace.etlが使用されます。

特に、report=disabledオプションは何故かインターネット上の記事ではほとんど言及されておらず影が薄い気がするのですが、キャプチャのパフォーマンスを向上させるために重要です。デフォルトは report=no なのですが、紛らわしいことにこれはレポートの収集を行わないようにするものではなく、HTML形式のレポートを生成しないためのもので、cabファイルに様々な情報を収集することになるので採取に時間がかかるだけでなくコンピューターのリソース負荷が高くなる可能性があります。コンピューターやネットワークアダプターの構成などトラブルシュートに必要な様々な情報を取得してくれるため便利なのですが、必要なものがパケットキャプチャのみの場合は、report=disabledを指定しておくことをお勧めします。netsh trace stop コマンドを実行したときの速さが全然違います。

以下は私がよく使用するコマンドの例で、パケットキャプチャのみを1GBの循環ログとして C:\temp\NetTrace.etl に保存するオプションになります。

# キャプチャの開始
netsh trace start capture=yes report=disabled tracefile=C:\temp\NetTrace.etl maxsize=1024 filemode=circular

キャプチャの開始と終了

etl2pcapngツールによるETLファイルの変換

etl2pcapngツールは、WindowsのETL(Event Tracing for Windows)形式で保存されたパケットキャプチャファイルをPCAPNG形式に変換するためのコマンドラインツールです。これにより、Wiresharkなどの一般的なパケット解析ツールでETLファイルを解析できるようになります。 このツールはGitHubリポジトリMicrosoft/etl2pcapngReleaseページからダウンロードできます。最新のリリースを選択し、etl2pcapng.exeをダウンロードしてください。

etl2pcapngのダウンロード

以下は基本的な使用方法です。(1.11.0から出力ファイル名を省略できるようになりました。)

etl2pcapng.exe input.etl

etl2pcapngの使用例

Wiresharkによるパケットキャプチャの解析

Wiresharkは、ネットワークトラフィックを解析するための強力なツールです。ETLファイルをPCAPNG形式に変換した後、Wiresharkを使用してパケットキャプチャを詳細に分析できます。

以下はWiresharkのインストール手順です。

  1. Wiresharkの公式サイトにアクセスします。
  2. 「Download」セクションから、プラットフォームに応じたWindows用の最新バージョンをダウンロードします。
  3. インストーラーを実行し、指示に従ってインストールを完了します。

以下は基本的な手順です。

  1. Wiresharkを起動し、変換したPCAPNGファイルを開きます。
  2. フィルタを使用して特定のプロトコルやIPアドレスを絞り込みます。
  3. パケットの詳細を確認し、必要に応じてエクスポートや保存を行います。

Wiresharkのパケット解析の様子