本文主要介紹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口發出去包