一 需求
1.用wireshark抓了一段rtp包,需要对它进行回放,反复调试;
2.需要将这个rtp的pcap包,可以发送到两个不同的ip地址
二 tcpreplay
官网:
https://tcpreplay.appneta.com/
https://tcpreplay.appneta.com/wiki/installation.html
Tcpreplay 是一套免费的开源实用程序,用于编辑和重放以前捕获的网络流量。 最初设计用于将恶意流量模式重播到入侵检测/预防系统,它已经经历了许多演变,包括重播到 Web 服务器的功能。
主要用到tcpreplay和tcprewrite:
» tcpreplay:以任意速度在网络上重放 pcap 文件
» tcprewrite:编辑 pcap 文件并创建一个新的 pcap 文件
三 安装tcpreplay
3.1 ubuntu
环境:
ubuntu
安装命令:
sudo apt install tcpreplay
安装成功
~/work/cap$ tcpreplay -V
Warning in interface.c:get_interface_list() line 94:
May need to run as root to get access to all network interfaces.
tcpreplay version: 4.2.6 (build git:v4.2.6) (debug)
3.2 centos
下载源码
./configure
make
sudo make install
$ sudo cp /usr/local/bin/tcprewrite /usr/bin/
$ sudo cp /usr/local/bin/tcpreplay /usr/bin/
四 回放pcap报文
安装抓包的内容,发送到pcap中内容,再次回放。
#-p 一秒中回放1000个包
sudo tcpreplay -i eth0 -p 1000 in.pcap
#抓包时的速率回放
sudo tcpreplay -i eth0 in.pcap
-p表示一秒钟发送多少个包体。
五 修改pcap目的ip
将in.pcap中目的地址为192.168.158.111的ip,改为192.168.158.222
tcprewrite -i in.pcap -D 192.168.158.111:192.168.158.222 -o out.pcap
tcprewrite -i in.pcap -S 192.168.158.181:192.168.160.1 --enet-smac=2c:53:4a:03:10:d4 -o 160to57.pcap