技術Tips
第5回:PCAPファイルの情報をCSVで出力する
PCAPファイルの情報をCSVで出力する
ネットワークの解析およびトラブルシューティングの現場においては、パケットキャプチャ製品で収集したPCAPファイルの情報を、エクセルなどの外部のソフトウェアを用いてレポート用に加工したい、といったケースがあります。
今回のWireshark使いこなしTips では、Wireshark本体およびWiresharkに同梱されているコマンドラインツールのひとつの”tshark.exe”を用いてのCSV出力の方法についてご紹介します。今回使用するサンプルのキャプチャファイルは、Wiresharkのサイトからダウンロード可能なサンプルのキャプチャファイル(https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=get&target=SIP_CALL_RTP_G711)にあるSIP_CALL_RTP_G711.pcapを用います。
PCAPファイルをCSVで出力する2通りの方法
WiresharkでPCAPファイルをCSVで出力するには、以下の2通りの方法があります。
それではこれら2つの方法についてご紹介します。
1. WiresharkのGUIからPCAPファイルの内容をCSVで出力する
SIP_CALL_RTP_G711.pcapファイルをWiresharkで見ると、様々なプロトコルを含む計4,269のパケットが存在します。ここでは表示フィルタ機能を用いて、SIPを含むパケットのみに注目し、その内容をCSVで出力することとします。表示フィルタ機能適用後は、Figure1のように計14個のパケットに絞り込むことが出来ます(Wiresharkにおける表示フィルタ機能の使い方につきましては、Wireshark使いこなしTips第3回:表示フィルタを使いこなす をご参照下さい)。
これらの14個のパケットの一覧画面の情報をCSVで出力するには、Wireshark上で、「ファイル」→「エキスパートパケット解析」→「CSVとして」を選択します。選択後にはFigure2のような画面が表示されます。
Figure2 画面左下の「Packet Range」では、下記の設定が可能です。
ここでは、表示フィルタで絞り込まれた全14個のパケットのすべてをCSVで出力することとし、Figure2の通り、「All packets」を選択します。
注)画面右下の「Packet Format」につきましては、現行のWiresharkのリリース(最新版は2.4.5(2018年3月時点))では、「Packet summary line」(パケット一覧の画面の情報)のみCSV出力が可能のようです。
「ファイル名」の欄で、ここでは例として「SIP_RTP_G711_sip_only」というファイル名を付与し、「保存」ボタンを押すと、画面上部の「保存する場所」で指定したフォルダ内にCSVでデータが出力・保存されます。
このファイルをエクセルで開いてみます。エクセルでファイルを開く際に、CSV形式のファイルを開く際の設定を行なった後は、Figure1と同じ内容の情報をエクセル上で表示することができました(Figure3)。
2. Wiresharkに同梱されているコマンドラインツールのtshark.exeを用いてCSVで出力する
次に、上記と同じSIP_CALL_RTP_G711.pcapファイルに対し、tshark.exeでCSV出力を行なってみます。
2-1 tshark.exeのありか
Wiresharkをインストールすると、Wiresharkがインストールされているディレクトリと同じディレクトリ内にいくつかの*.exeファイルが存在しており、そのうちのひとつにtshark.exeがあります(Figure4)。
2-2 tshark.exeの各種コマンドオプション機能
tshark.exeには下記の表のような各種のコマンドオプションが用意されており、これらを用いながらコマンドを実行します。
(注)tshark.exeのコマンドオプションの一覧および詳しい使用方法につきましては、Wireshark上からアクセス可能なtsharkのマニュアル(英語版)をご参照下さい(Wireshark上で「ヘルプ」 → 「マニュアルページ」 → 「tshark」)
コマンド オプション |
説明 | コマンドオプションの使用例 |
---|---|---|
-r | CVSに変換するPCAPファイルが存在するフォルダおよびファイルを指定します。 | -r C:\demo\SIP_CALL_RTP_G711.pcap |
-Y | 表示フィルタの適用の有無を指定します。 | -Y "sip" (sipで表示フィルタを指定) |
-T | 出力時のフォーマットを定義します。fieldを指定し、かつ下記の-Eおよび-eオプションと共に使用します。 | -T fields |
-E | separatorオプションと共に使用し、CSV出力時のセパレータに用いる文字を指定します。 | -E separator="," (セパレータの文字に”,”を指定) |
-e | -Tオプションでfieldが指定された場合には、_ws.col.オプションと共に使用し、表示させたいfieldのカラムを指定します。 | -e_ws.col.No. (パケット番号の表示) -e_ws.col.Time (時間の表示) -e_ws.col.Source (ソース・アドレスの表示) -e_ws.col.Destination (ディスティネーション・アドレスの表示) |
コマンド オプション |
説明 | コマンドオプションの使用例 |
---|---|---|
-r | CVSに変換するPCAPファイルが存在するフォルダおよびファイルを指定します。 | -r C:\demo\SIP_CALL_RTP_G711.pcap |
-Y | 表示フィルタの適用の有無を指定します。 | -Y "sip" (sipで表示フィルタを指定) |
-T | 出力時のフォーマットを定義します。fieldを指定し、かつ下記の-Eおよび-eオプションと共に使用します。 | -T fields |
-E | separatorオプションと共に使用し、CSV出力時のセパレータに用いる文字を指定します。 | -E separator="," (セパレータの文字に”,”を指定) |
-e | -Tオプションでfieldが指定された場合には、_ws.col.オプションと共に使用し、表示させたいfieldのカラムを指定します。 | -e_ws.col.No. (パケット番号の表示) -e_ws.col.Time (時間の表示) -e_ws.col.Source (ソース・アドレスの表示) -e_ws.col.Destination (ディスティネーション・アドレスの表示) |
2-3 tshark.exeの各種コマンドオプション機能
上記のコマンドオプションを使用し、CSVの出力先フォルダはC:\demo、出力時のファイル名はSIP_CALL_RTP_G711_sip_only.csvとし、下記およびFigure5の通りコマンドを実行します。
C:\Program Files\Wireshark\tshark -r C:\demo\SIP_CALL_RTP_G711.pcap -Y "sip" -T fields -E separator="," -e_ws.col.No. -e_ws.col.Time -e_ws.col.Source -e_ws.col.Destination -e_ws.col. -e_ws.col.Protocol -e_ws.col.Length -e_ws.col.source > C:\demo\SIP_CALL_RTP_G711_sip_only.csv
コマンド実行後にC:\demo\SIP_CALL_RTP_G711_sip_only.csvをエクセルで開いてみると、Figure3と同じ内容の情報をエクセル上で表示することができました(Figure6)。
最後に
tshark.exeはWiresharkのコマンドライン版として、実に多彩なコマンドオプションが揃えられています。これらを駆使することにより、コマンドライン上でPCAPファイルの編集・加工が可能です。
今回ご紹介した2つのCSVファイルへの出力方法を使用することにより、エクセル上で様々な統計処理を行なったり、レポートのためのデータの加工作業を柔軟に行っていただくことが可能となります。
アルチザネットワークスの自社開発製品であるetherExtractorは、10GbE/1GbE Full-Duplex(双方向)上で転送されるワイヤーレートの最短パケット(64バイト)の連続キャプチャを保証し、ネットワーク上で生じるさまざまな事象の全てをパケットロスすることなくキャプチャを実行するパワフルなキャプチャ専用機です。
アルチザネットワークスでは、etherExtractorで取得した貴重なPCAPファイルを、Wireshark上で快適に、そして便利に解析いただくためのさまざまなヒントや利用方法を、今後も「Wireshark使いこなしTips」のコーナーで多角的にご紹介してまいります。