Linux下Pcap包重放工具Tcpreplay的簡單使用


Tcpreplay是一種pcap包的重放工具, 它可以將tcpdump和Ethereal/Wireshark等工具捕捉到的網絡流量包進行編輯修改和重放. 重寫Layer 2、3、4層數據包,並將流量重新發送至目標網絡, 這樣通過重放網絡流量包從而實現復現問題情景以定位bug

tcpreplay本身包含了幾個輔助工具(tcpprep、tcprewrite、tcpreplay和tcpbridge等等)

» tcpreplay:以任意速度將pcap文件重播到網絡上

» tcprewrite:編輯pcap文件並創建一個新的pcap文件

» tcpreplay-edit:編輯pcap文件並重放到網絡上

» tcpprep:創建tcpreplay / tcprewrite使用的客戶端/服務器定義緩存文件

» tcpbridge:使用tcprewrite的功能橋接兩個網段

» tcpliveplay:以服務器識別的方式重放TCP pcap文件

» tcpcapinfo:raw pcap文件解碼器和調試器

下面只簡單介紹使用tcpreplay重放syslog UDP報文

1、先使用tcpdump抓取一段syslog的報文

tcpdump -i eth0 -s 0 -v -w syslog.pcap port 514

2、yum install tcpreplay進行安裝,需要使用EPEL源

3、who 以及arp 命令查看本機的IP地址192.168.60.106 MAC地址為74:d4:35:88:68:e6

然后利用tcprewire重寫目標IP地址和MAC地址

tcprewrite --infile=syslog.pcap --outfile=rsyslog_1.pcap --dstipmap=0.0.0.0/0:192.168.60.106 --enet-dmac=74:d4:35:88:68:e6

4、當然也可對源IP地址以及源MAC地址進行改寫

tcprewrite --infile=rsyslog_1.pcap --outfile=rsyslog_2.pcap --srcipmap=0.0.0.0/0:172.16.11.5 --enet-smac=00:11:32:12:33:8e

5、更新數據包的校驗和

tcprewrite --infile=rsyslog_2.pcap --outfile=rsyslogfinal.pcap --fixcsum

6、完成數據包重寫后,重放最終的數據包

tcpreplay -v -i eth0 -M 1000 rsyslogfinal.pcap

上圖Kiwi Syslog Server中可以看到重放到本機192.168.60.106的syslog報文,說明重放成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM