ブログ

tcpdumpでキャプチャしたパケットを、tcpreplayで再送する

at_takuya.sasaki
2015年4月1日 13時56分

以前、tcpdumpでArmadillo-840が受信したパケットをキャプチャする方法をご紹介しました。
Armadillo-840でtcpdumpを使う

このキャプチャしたデータを再送するためのツールに、tcpreplayというものがあります。
今回、こちらを使って見ましたので、ご紹介します。

1. ATDE5を起動する

パケットを再送信するのは、ATDE5からにしますので、ATDE5を用意します。
以下を参照してください。
http://manual.atmark-techno.com/armadillo-810/armadillo-810_product_manual_ja-1.4.0/ch04.html#sct.before-work.setup-atde5

2. libpcap-devのインストール

以下のコマンドで libpcal-devパッケージをインストールします。

atmark@atde5:~$ sudo apt-get install libpcap-dev


3. tcpreplayのインストール

以下のコマンドで tcpreplayパッケージをインストールします。

atmark@atde5:~$  sudo apt-get install tcpreplay


4. 再送する

キャプチャしたパケットを再送するだけでしたら、以下のコマンドで可能です。

atmark@atde5:~$ sudo tcpreplay -i eth0 dump.cap


tcpreplayの詳細は、以下が詳しいようです。
http://tcpreplay.jp/

5. キャプチャファイルのMACアドレスを書き換える

送信先がキャプチャしたArmadilloと同一であればよいのですが、異なるArmadilloの場合に、送信先のMACアドレスを書き換えたい ことがあるかもしれません。
その場合、tcprewriteというコマンドが使えます。以下は送信先のMACアドレスを変更して、dump_mac.capというファイルに保存しています

atmark@atde5:~$  tcprewrite --enet-dmac=xx:xx:xx:xx:xx:xx --infile=dump.cap --outfile=dump_mac.cap

以上