本文主要介绍Linux下三种包回放的适用场景:tomahawk、tcpreplay
tomahawk是一款基于Linux系统,用于测试入侵防御系统(IPS)的工具,工作在OSI模型的第二层,只能测试网桥型网络设备。
tomahawk工作在有三个网卡的机器上:一个用来管理,另外两个用来测试。我们可以使用tomahawk回放各种数据包,产生背景流量、大量的连接、模块稳定性、系统稳定性与模拟客户的数据流环境。
回放数据包
不改变数据包中IP地址
/root/tomahawk -i eth4 -j eth5 -l 1 -A 0 –f /root/a.pcap
改变数据包中IP地址(源地址、目的地址均改变)
/root/tomahawk -l 1 -i eth4 -j eth5 –A 1 –f /root/b.pcap
改变数据包中IP地址(源ip改为100.1.1.1,目的ip改为100.1.1.2)
/root/tomahawk -l 1 -a 100.1.1.1 -i eth4 -j eth5 –f /root/c.pcap
改变数据包中IP地址,并循环发送(源改为100.1.1.1-100.10.1.1 ,目的ip改为100.1.1.2-100.10.1.2)
/root/tomahawk -l 10 -a 100.1.1.1 -i eth4 -j eth5 –f /root/d.pcap
Tcpreplay是一个基于Linux系统的工具套件,用来测试各种网络设备,包括:交换机、路由器、防火墙和IPS等。tcpreplay允许你拆分客户端和服务端流量,重写2、3、4层头信息,最终将流量回放到网络中。3.4 版本包括以下部分:
tcpprep:将流量拆分为客户端和服务端两个方向,并存放为缓存文件
tcprewrite:重写pcap文件的TCP/IP层和数据链路层的头信息(即,MAC地址、IP地址、PORT)
tcpreplay:以可控的速度将pcap文件回放到网络中
使用tcpprep将pcap分成客户端和服务器,默认客户端
tcpprep -a client -i /root/test.pcap -o test.cache
使用tcpwrite修改数据包IP地址、MAC地址
tcprewrite -e 2.2.2.1:1.1.1.1 --enet-dmac=00:90:0b:2b:b1:92,00:90:0b:2b:b1:93 --enet-smac=00:90:FB:28:2D:84,00:90:FB:28:2D:85 -c /root/test.cache -i /root/test.pcap -o /root/test.pcap
使用tcpreplay发送数据包
tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap
-i 主网卡/服务器网卡 -t 以最快速率发送
-I 次网卡/客户端网卡
-l 循环次数
或者直接使用 tcpreplay --intf1=eth0 /root/a.pcap 从eth0口发出去包