Tcpreplay のススメ 
~tcpreplay-edit 編~ 
2014/10/31 
#pakeana 22 
@otsuka752 (@twovs)
agenda 
• 自己紹介 
• ping flood (again) 
•• ttccpprreeppllaayy--eeddiitt 
• お知らせ
about me 
• @twovs (masato.otsuka) 
• ネコ2人+奥さん1人+可愛い娘 
•• 無線LLAANN装置の開発((11999999~~22000044)) 
• オンラインゲームのシステム管理者(2004~) 
• ただし,ゲームには全く興味無し 
• ZFS 最高!!! beadm 便利!!!
ping flood (again) 
• Ver.3 で試したけど…(#pakeana 21) 
• http://www.slideshare.net/twovs/about-tcpreplay 
•• VVeerr..44 で高速化されてた!!!!!!
ping flood (again) 
• Raspberry Pi 
• MODEL B (not B+) 
• CPU 700[MHz] 
•• MMeemmoorryy 551122[[MMiiBB]] 
• NIC 100[Mbps] 
• Raspbian GNU/Linux 7 
• kernel 3.12.22+
ping flood (again) 
Ver.3 Ver.4 Ver.3 Ver.4 
[pps] [Mbps] 
• build-in NIC を10Mbps と100Mbps で 
• USB 接続の1Gbps も試した(140Mbpsくらい)
tcpreplay-edit 
• pcap ファイルを書き換えながら再送信(replay) 
• tcprewrite (後述)しながらtcpreplay 
• tcprewrite でpcap ファイルを生成して 
tcpreplay した方が高速に再送信できる
tcpreplay-edit(NO edit) 
• 何も書き換えず送信 
• NIC(eth0) とファイル(file.pcap) を指定 
# tcpreplay-edit -i eth0 file.pcap
tcpreplay-edit(L2) 
• SrcMAC を00:00:00:11:11:11 に 
• DstMAC を00:00:00:22:22:22 に書き換え送信 
# tcpreplay-edit -i eth0 ¥ 
--enet-smac=00:00:00:11:11:11 ¥ 
--enet-dmac=00:00:00:22:22:22 ¥ 
file.pcap
tcpreplay-edit(L3) 
• SrcIP を10.11.11.11 に 
• DstIP を10.22.22.22 に書き換え送信 
# tcpreplay-edit -i eth0 ¥ 
--srcipmap=0.0.0.0/0:10.11.11.11/32 ¥ 
--dstipmap=0.0.0.0/0:10.22.22.22/32 ¥ 
file.pcap
tcpreplay-edit(L4) 
• TCP/UDP Port を80 から8080 に 
• TCP/UDP Port を8080 から80 に書き換え送信 
# tcpreplay-edit -i eth0 ¥ 
--portmap=80:8080,8080:80 ¥ 
file.pcap
tcpreplay-edit(ALL) 
• L2/L3/L4 を書き換え 
# tcpreplay-edit -i eth0 ¥ 
--enet-smac=00:00:00:11:11:11 ¥ 
--enet-dmac=00:00:00:22:22:22 ¥ 
--srcipmap=0.0.0.0/0:10.11.11.11/32 ¥ 
--dstipmap=0.0.0.0/0:10.22.22.22/32 ¥ 
--portmap=80:8080,8080:80 ¥ 
file.pcap
tcpreplay-edit 
[pps] [Mbps] 
※何も書き換えなくてもtcpreplay-edit は速度減
高速送信したい? 
• tcpreplay-edit は使わない 
• tcprewrite で書き換えてからtcpreplay 
# tcprewrite [書き換えルール] ¥ 
--infile=file.pcap --outfile=newfile.pcap 
# tcpreplay -i eth0 newfile.pcap
お知らせ 
• 日本語サイト始めてみました! 
• http://tcpreplay.jp/ 
• https://github.com/otsuka752/ 
• 英語のサイト 
• http://tcpreplay.appneta.com/ 
• https://github.com/appneta/tcpreplay/
END

about tcpreplay-edit

  • 1.
    Tcpreplay のススメ ~tcpreplay-edit編~ 2014/10/31 #pakeana 22 @otsuka752 (@twovs)
  • 2.
    agenda • 自己紹介 • ping flood (again) •• ttccpprreeppllaayy--eeddiitt • お知らせ
  • 3.
    about me •@twovs (masato.otsuka) • ネコ2人+奥さん1人+可愛い娘 •• 無線LLAANN装置の開発((11999999~~22000044)) • オンラインゲームのシステム管理者(2004~) • ただし,ゲームには全く興味無し • ZFS 最高!!! beadm 便利!!!
  • 4.
    ping flood (again) • Ver.3 で試したけど…(#pakeana 21) • http://www.slideshare.net/twovs/about-tcpreplay •• VVeerr..44 で高速化されてた!!!!!!
  • 5.
    ping flood (again) • Raspberry Pi • MODEL B (not B+) • CPU 700[MHz] •• MMeemmoorryy 551122[[MMiiBB]] • NIC 100[Mbps] • Raspbian GNU/Linux 7 • kernel 3.12.22+
  • 6.
    ping flood (again) Ver.3 Ver.4 Ver.3 Ver.4 [pps] [Mbps] • build-in NIC を10Mbps と100Mbps で • USB 接続の1Gbps も試した(140Mbpsくらい)
  • 7.
    tcpreplay-edit • pcapファイルを書き換えながら再送信(replay) • tcprewrite (後述)しながらtcpreplay • tcprewrite でpcap ファイルを生成して tcpreplay した方が高速に再送信できる
  • 8.
    tcpreplay-edit(NO edit) •何も書き換えず送信 • NIC(eth0) とファイル(file.pcap) を指定 # tcpreplay-edit -i eth0 file.pcap
  • 9.
    tcpreplay-edit(L2) • SrcMACを00:00:00:11:11:11 に • DstMAC を00:00:00:22:22:22 に書き換え送信 # tcpreplay-edit -i eth0 ¥ --enet-smac=00:00:00:11:11:11 ¥ --enet-dmac=00:00:00:22:22:22 ¥ file.pcap
  • 10.
    tcpreplay-edit(L3) • SrcIPを10.11.11.11 に • DstIP を10.22.22.22 に書き換え送信 # tcpreplay-edit -i eth0 ¥ --srcipmap=0.0.0.0/0:10.11.11.11/32 ¥ --dstipmap=0.0.0.0/0:10.22.22.22/32 ¥ file.pcap
  • 11.
    tcpreplay-edit(L4) • TCP/UDPPort を80 から8080 に • TCP/UDP Port を8080 から80 に書き換え送信 # tcpreplay-edit -i eth0 ¥ --portmap=80:8080,8080:80 ¥ file.pcap
  • 12.
    tcpreplay-edit(ALL) • L2/L3/L4を書き換え # tcpreplay-edit -i eth0 ¥ --enet-smac=00:00:00:11:11:11 ¥ --enet-dmac=00:00:00:22:22:22 ¥ --srcipmap=0.0.0.0/0:10.11.11.11/32 ¥ --dstipmap=0.0.0.0/0:10.22.22.22/32 ¥ --portmap=80:8080,8080:80 ¥ file.pcap
  • 13.
    tcpreplay-edit [pps] [Mbps] ※何も書き換えなくてもtcpreplay-edit は速度減
  • 14.
    高速送信したい? • tcpreplay-editは使わない • tcprewrite で書き換えてからtcpreplay # tcprewrite [書き換えルール] ¥ --infile=file.pcap --outfile=newfile.pcap # tcpreplay -i eth0 newfile.pcap
  • 15.
    お知らせ • 日本語サイト始めてみました! • http://tcpreplay.jp/ • https://github.com/otsuka752/ • 英語のサイト • http://tcpreplay.appneta.com/ • https://github.com/appneta/tcpreplay/
  • 16.