GNU/Linux >> Linux の 問題 >  >> Linux

Mergecap と Tshark:パケット ダンプのマージとネットワーク トラフィックの分析


Michael_P 提供の写真

この記事は Balakrishnan M によって書かれました
 
しばらく前に、editcap ユーティリティを使用してネットワーク ダンプを取得する方法に関する 11 の例を確認しました。この記事では、mergecap ユーティリティと tshark コマンドを確認します。
 
Mergecap は、複数のダンプを 1 つのダンプ ファイルに結合するパケット ダンプ結合ツールです。タイムスタンプに基づいて、パケットは順番に出力ファイルに書き込まれます。デフォルトでは、出力ファイルは libpcap 形式で書き込まれます。ただし、me​​rgecap オプションを使用すると、wireshark ツールでサポートされているものを含む、さまざまな異なる形式で出力を生成できます。

mergecap は、wireshark パッケージで利用できます。 mergecap を使用するには、wireshark/ethereal パッケージがインストールされていることを確認してください。

2 つのダンプ ファイルを 1 つの output_dump ファイルに結合

input_dump1 と input_dump2 のキャプチャ ファイルを結合し、output_dump ファイルに書き込みます。

# mergecap -v input_dump1 input_dump2 -w output_dump

 

この例では、input_dump2 には、input_dump1 の後にキャプチャされたパケットが含まれています。 output_dump には、最初に intput_dump2 パケットが含まれ、その後に intput_dump1 パケットが続きます。

# mergecap input_dump1 input_dump2 -w output_dump -a

出力ダンプ ファイルを標準出力に出力

2 つのネットワーク ダンプ ファイルを結合し、出力をファイルに書き込む代わりに標準出力に出力します。

# mergecap -v input1_dump input2_dump -w -

出力ファイルを特定のカプセル化形式で出力

以下に示すように、オプション -T を使用して、目的のカプセル化形式で出力ファイルを取得します。

# mergecap -v -T ether -w merge_cap capture1 capture2 capture3

3.特定の長さのパケットをマージ

この例では、output_dump に最大 100 バイト長のパケットが含まれています。

# mergecap -v -s 100 dump1 dump2 dump3 -w output_dump

Tshark – パケット キャプチャ ツール

Tshark はネットワーク パケットをキャプチャするための強力なツールであり、ネットワーク トラフィックの分析に使用できます。 Wireshark ネットワーク アナライザ ディストリビューションが付属しています。
 

ネットワーク キャプチャを継続的にキャプチャ

次の例では、ネットワーク パケットを 60 秒間連続してキャプチャします。キャプチャの 60 秒後、自動的に停止します。 capture_out には、最後の 60 秒間にネットワークを流れたパケットが含まれます。

# tshark -q -w capture_out -a duration:60

 
次の例では、パケットが画面に出力され、同時に出力ファイルに書き込まれます。

# tshark -S -q -w capture_out -a duration:10

tshark を使用してネットワーク統計を取得する

特定の間隔でネットワークを流れるパケットの数を確認するには、次のコマンドを使用します。

# tshark -q -w capture_duration1 -a duration:1 -z io,stat,1

特定のホストのネットワーク パケットをキャプチャ

次の例を使用して、特定のホストのパケット フロー (送信および受信パケット) をキャプチャします。この例では、ホスト 192.168.1.185 のネットワークで毎秒いくつのパケットが流れているかがわかります。

#  tshark -S -q -w capture_duration6 -a duration:6 -z io,stat,1,ip.addr==192.168.1.150
After capturing all the packets for 6 seconds duration, it will print the statistics as like the following,
145 packets dropped
19749 packets captured
IO Statistics
Interval: 1.000 secs
Column #0: ip.addr==192.168.1.185
|   Column #0
Time       	      |frames|  bytes
000.000-001.000    2733    545242
001.000-002.000    2991    583374
002.000-003.000    3310    650716
003.000-004.000    3236    641896
004.000-005.000    3518    690860
005.000-006.000    3310    654988
006.000-007.000     638    122812

特定のポートでネットワーク パケットをキャプチャする

この例では、ssh パケットのみをキャプチャします。

# tshark -f “tcp port 22” -w capture_out

特定の期間のネットワーク パケットをキャプチャする

次の例では、パケットを特定の期間 (5 秒) キャプチャし、キャプチャ ファイルのサイズが特定のサイズ (1000KB) に達すると、次のファイルに切り替えます。

# tshark -a filesize:1000 -a duration:5 -a files:5 -w ethcap1

サイズの出力キャプチャ ファイル名の例:

ethcap1_00001_20090216174203 -   1000K
ethcap1_00002_20090216174205 -  1000K
ethcap1_00003_20090216174207 -  835K

その他の tshark キャプチャ コマンド

オプション -c を使用して、特定のパケット数までパケットをキャプチャします。次の例では、10 パケットのみで ethcap1 ファイルを作成します。

# tshark -c 10  -w ethcap1

 

オプション -r を使用して、からネットワーク パケットを圧縮ファイルとして読み取ります。

# tshark -r capture_dump.gz

 

オプション -r を使用して、特定のパケット タイプのみを表示します。次の例では、ネットワーク アナライザーで rtp パケットのみを使用してファイル capture_dump を作成します。

# tshark -R “rtp” -r capture_dump

 

以下のフィルタを使用して、ポート 1720 に流れる tcp パケットをキャプチャします。

# tshark -f “tcp port 1720”

 
次の例では、ポート 1720 または 1721 に着信するパケットをキャプチャします。

# tshark -f  “port 1720 or port 1721”	 -w capture_dump

 

デフォルトでは、tshark は eth0 デバイスを使用してパケット キャプチャを行います。以下に示すように、オプション -i を使用して特定のイーサネット アダプタを指定することもできます。

# tshark -i eth1 -w -a duration:10 capture_dump

 

この記事は Balakrishnan Mariyappan によって書かれました。 彼は bk Systems (p) Ltd で働いており、オープン ソースへの貢献に関心があります。 The Geek Stuff は、あなたのヒントやゲスト記事を歓迎します。


Linux
  1. 6tcpdumpネットワークトラフィックフィルターオプション

  2. Editcap ガイド:ネットワーク パケット ダンプを効果的に処理するための 11 の例

  3. vnStat を使用して Linux でネットワーク トラフィックを監視およびログに記録する方法

  1. tcpdump – -G、-W、および -C を使用してキャプチャ ファイルをローテーションします

  2. ユーザー (およびそのアプリ) を 1 つのネットワーク インターフェイスに制限できますか?

  3. それらのパケットが自分のものではない場合でも、NIC へのすべての着信パケットをキャプチャする方法

  1. Linuxネットワークのトラブルシューティングとデバッグ?

  2. tcpdumpでパケットをキャプチャする

  3. 接続数が多く、小さなパケットのトラフィックが多いギガビット ネットワークでの TCP パフォーマンスの向上