测试原理图:
系统版本: Ubuntu16.04
Tcpreplay安装:apt-get install tcpreplay
(此版本网卡名称不叫eth0和eth1,下面配置对着修改)
eth0对应ens33网卡:IP:172.20.60.166 MAC:ec:a8:6b:82:32:c1
eth1对应ens32网卡:IP:172.20.60.165 MAC:00:13:3b:0f:6a:fb
测试第一步:预处理生成Cache,命令为:
tcpprep -a client -i rzxSJ.pcap -o rzx.cach
这条命令将PCAP文件分成客户端和服务端,默认为客户端。发送时packet将分别从客户端和服务端发出。
测试第二步:重写IP地址和MAC地址,命令为:
tcprewrite -e 172.20.60.166:172.20.60.165 --enet-
dmac=00:13:3b:0f:6a:fb,ec:a8:6b:82:32:c1 --enet-
smac=ec:a8:6b:82:32:c1,00:13:3b:0f:6a:fb -c rzx.cach -i rzxSJ.pcap -o 111.pcap
这条命令重写了IP和MAC,可通过wireshark等工具打开111.pcap,查看修改是否成功。
测试第三步:重放packet,重放命令为:
tcpreplay -i ens33 -I ens32 -l 100 -t -c rzx.cach 111.pcap
ens33端口对应原理图eth0 ens32端口对应原理图eth1