Example Reference
TCP 流量
录制 Clien Hello
回放 Client Hello
tcpreplay是一系列工具的集合。包括(tcpprep、tcprewrite、tcpreplay和tcpbridge) 其中tcpreplay是真正实现流量回放功能的工具,其他几个工具可以看作tapreplay的辅助工具,作为流量重放前期的准备工作,比如 tcpprep可以划分哪些包是client的, 哪些是server的, 一会发包的时候client的包从一个网卡发, server的包可能从另一个网卡发。 tcprewrite可以就是修改2层, 3层, 4层报文头部,也就是可以将IP,MAC等信息修改为你期望的值。
官网: http://tcpreplay.appneta.com/
Quick started
tcpprep
tcpprep:根据pcap文件,生成一个cache文件。将pacp数据包分解为客户端和服务器端。这个cache文件中保存着tcprewrite怎么修改报文,以及tcpreplay怎么发送报文的规则。也就是说,在你捕获的报文中有很多报文,这些报文可能有不同的源和目的(可能单播,可能广播),现在要确立一套规则,来规定你所捕获的报文,怎么个分发流程。
tcprewrite
https://tcpreplay.appneta.com/wiki/tcprewrite
最少有两个参数
—infile = input.pcap。原始数据包。 —outfile=output.pcap。修改之后的数据包。
修改木洞主机MAC和源MAC
tcprewrite —enet-dmac=00:55:22:AF:C6:37 —enet-smac=00:44:66:FC:29
—infile=input.pcap —outfile=output.pcap802.1Q VLAN tag信息的处理
删除:tcprewrite —enet-vlan=del —infile=input.pcap —outfile=otput.pcap 添加:tcprewrite —enet-vlan=add —enet-vlan-tag=40 —enet-vlan-cfi=1 —enetvlan-pri=4 —infile=input.pcap —outfile=output.pcap
修改IP地址
将10.0.0.0/8网段的IP替换为172.16.0.0/12,将192.168.0.0/16网段IP替换为172.168.0.0/12。 tcprewrite —pnat=10.0.0.0/8:172.16.0.0/12,192.168.0.0/16:172.168.0.0/12 —infile=input.pcap —outfile=output.pcap 随机生成源IP: tcprewrite —seed=423 —infile=input.pcap —outfile=output.pcap
修改端口号 tcprewrite —portmap=80:8080,22:8022 —infile=input.pcap —outfile=output.pcap tcpprep -p —pcap=vxlan_test1.pcap —cachefile=test1.cache
tcprewrite —cachefile=test1.cache —endpoints=“192.168.252.18:192.168.252.17” —infile=vxlan_test1.pcap —outfile=testvx1.pcap