以前tcpdump用的比較多,主要用在診斷的時候。tcpreplay則是把tcpdump記錄下來的包原樣發回去這樣tcpreplay就可以用來以極快的速度複現記錄下來的資料從而實現壓力測試,好處在於資料比較真實
先是在實際環境中用tcpdump記錄資料用於複現
例如記錄發往某ip某埠的報文一百萬個
先是在實際環境中用tcpdump記錄資料用於複現
例如記錄發往某ip某埠的報文一百萬個
1
|
tcpdump 'dst aa.aa.aa.aa and dst
port xxx' -c 1000000 -w log.pcap
|
假設這些報文要在機器bb.bb.bb.bb上複現然後發給cc.cc.cc.cc,從bb.bb.bb.bb發往cc.cc.cc.cc的源mac地址為bb:bb:bb:bb:bb:bb
目的mac位址為cc:cc:cc:cc:cc:cc
首先tcpprep預處理下
1
|
tcpprep
-p --pcap=log.pcap --cachefile=input.cache
|
先修改mac位址使之有效
1
|
tcprewrite
--enet-dmac="cc:cc:cc:cc:cc:cc" --enet-smac="bb:bb:bb:bb:bb:bb" --infile=log.pcap --outfile=pcap.tmp
|
然後修改ip位址使之有效
1
|
tcprewrite
--cachefile=input.cache --endpoints="cc.cc.cc.cc:bb.bb.bb.bb" --infile=pcap.tmp --outfile=replay.pcap
|
然後就可以用來複現了 -l參數是說迴圈多少次 -p參數是說每秒發多少個包 -i是說從那個網卡發
1
|
tcpreplay
-l 10 -p 1000 -i eth0 replay.pcap
|
沒有留言:
張貼留言