追加ツールが無くてもTCPトレースを取得する方法(Windows)


再現性のあるHULFT通信エラーが発生したとします。
そのHULFT通信エラー発生時のTCP通信状況をWindowsOSで確認する際、Wiresharkを使用する方法が考えられます。

しかしながら、通信エラーが発生したHULFT導入先WindowsOSが本番運用や業務用であれば、運用ポリシー上WiresharkによりTCPトレースを取得できない事も考えられます。
その場合、本記事の技術が役に立ちます。


ここでは、HULFT導入先WindowsOSへWiresharkといったツール追加無でTCPトレースを取得する方法を記載します。
また、取得したTCPトレースの内容を本番運用や業務用とは別マシンのWindowsOSによりWiresharkで読み取り可能なpcapng形式へ変換する方法も記載します。


1)[対象マシン:HULFT導入先WindowsOS]で実施するコマンド・手順
[1)]では、HULFT通信エラー発生時のTCPトレース(etl形式のファイル)をコマンドプロンプトにて取得します。

1-1) コマンドプロンプトを管理者権限で起動します。
1-2) 任意のTCPトレースを取得するフォルダを作成し、作成したフォルダに移動します。
※本手順では、TCPトレースの取得先フォルダを「C:¥work」とします。

図1-2
mkdir C:\work && cd /d C:\work

1-3) TCPトレース取得を開始します。
図1-3
netsh trace start capture=yes tracefile=capture.etl

1-4) HULFTによるファイル転送を行い、通信エラーを再現させます。
1-5) TCPトレース取得を終了します。
※「netsh trace stop」終了は数分程度時間がかかります。

図1-5
netsh trace stop

1-6) [1-3)]~[1-5)]で取得した「C:¥work¥capture.etl」を、後述する[2)]の手順実施対象となるクライアントPCの任意のフォルダにコピーします。
※本手順では、クライアントPCへのコピー先フォルダを「C:¥test」とします。


2) [対象マシン:クライアントPC]で実施するTCPトレース変換・内容確認手順
[1)]で取得したetlファイルを、ネットワーク解析ソフト(Wiresharkなど)で読み込み可能なpcapng形式へ変換します。
クライアントPCへ「etl2pcapng.exe」をダウンロードすることで、HULFT導入先WindowsOSへのツール追加が不要となります。


2-1) 事前に下記URLより「etl2pcapng.exe」をダウンロードします。
(URL)
https://github.com/microsoft/etl2pcapng/releases


2-2) [2-1)]でダウンロードした「etl2pcapng.exe」を、[1-6)]で保存したTCPトレースファイルと同じフォルダに配置します。
2-3) [2-2)]で「etl2pcapng.exe」を配置したフォルダに移動します。
図2-3

2-4) 読み取り可能なpcapng形式に変換したTCPトレースを作成します。
図2-4
etl2pcapng.exe capture.etl capture.pcapng

2-5) [2-4)]のコマンドにより作成された「C:¥test¥capture.pcapng」をネットワーク解析ソフトで調査します。






【HULFTファミリー専用お問い合わせフォーム】 HULFTファミリー プロダクト/サービス お問い合わせ