SlideShare a Scribd company logo
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

More Related Content

What's hot

コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
Azaika At
 
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときunique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
Shintarou Okada
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
Takako Miyagawa
 
VR近未来サウンドデザイン
VR近未来サウンドデザインVR近未来サウンドデザイン
VR近未来サウンドデザイン
Takashi Tanaka
 
about Tcpreplay
about Tcpreplayabout Tcpreplay
about Tcpreplay
@ otsuka752
 
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidl_b__
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
Kota Mizushima
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
 
Windows の標準コマンドでパケット キャプチャ
Windows の標準コマンドでパケット キャプチャWindows の標準コマンドでパケット キャプチャ
Windows の標準コマンドでパケット キャプチャ
彰 村地
 
nginx入門
nginx入門nginx入門
nginx入門
Takashi Takizawa
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれ
NakanoYosuke1
 
Bot勉強会プレゼン
Bot勉強会プレゼンBot勉強会プレゼン
Bot勉強会プレゼン
Shuhei Sawamura
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
 
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
エピック・ゲームズ・ジャパン Epic Games Japan
 
етичні та правові основи захисту даних
етичні та правові основи захисту данихетичні та правові основи захисту даних
етичні та правові основи захисту даних
Tamara tamara
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
morihisa
 
GoogleのSHA-1のはなし
GoogleのSHA-1のはなしGoogleのSHA-1のはなし
GoogleのSHA-1のはなし
MITSUNARI Shigeo
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面
KentaEndoh
 
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
ToshiharuSakai
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
 

What's hot (20)

コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
 
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときunique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
VR近未来サウンドデザイン
VR近未来サウンドデザインVR近未来サウンドデザイン
VR近未来サウンドデザイン
 
about Tcpreplay
about Tcpreplayabout Tcpreplay
about Tcpreplay
 
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroid
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
Windows の標準コマンドでパケット キャプチャ
Windows の標準コマンドでパケット キャプチャWindows の標準コマンドでパケット キャプチャ
Windows の標準コマンドでパケット キャプチャ
 
nginx入門
nginx入門nginx入門
nginx入門
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれ
 
Bot勉強会プレゼン
Bot勉強会プレゼンBot勉強会プレゼン
Bot勉強会プレゼン
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論
 
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
 
етичні та правові основи захисту даних
етичні та правові основи захисту данихетичні та правові основи захисту даних
етичні та правові основи захисту даних
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
 
GoogleのSHA-1のはなし
GoogleのSHA-1のはなしGoogleのSHA-1のはなし
GoogleのSHA-1のはなし
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面
 
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
 

More from @ otsuka752

NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53
@ otsuka752
 
OLD_LT_DNS_OLD
OLD_LT_DNS_OLDOLD_LT_DNS_OLD
OLD_LT_DNS_OLD
@ otsuka752
 
OLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLDOLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLD
@ otsuka752
 
Hijack the domain name
Hijack the domain nameHijack the domain name
Hijack the domain name
@ otsuka752
 
Route53 で親子同居
Route53 で親子同居Route53 で親子同居
Route53 で親子同居
@ otsuka752
 
reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)
@ otsuka752
 
DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)
@ otsuka752
 
raspi + soracom #pakeana33
raspi + soracom #pakeana33raspi + soracom #pakeana33
raspi + soracom #pakeana33
@ otsuka752
 
192.0.0.4 on android
192.0.0.4 on android192.0.0.4 on android
192.0.0.4 on android
@ otsuka752
 
a little more about CaptureFilter
a little more about CaptureFiltera little more about CaptureFilter
a little more about CaptureFilter
@ otsuka752
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定
@ otsuka752
 
how to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorturehow to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorture
@ otsuka752
 
how to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servershow to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servers
@ otsuka752
 
WireEdit のススメ
WireEdit のススメWireEdit のススメ
WireEdit のススメ
@ otsuka752
 
Measurement of Maximum new NAT-sessions per second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packetsMeasurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessions per second / How to send packets
@ otsuka752
 
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
@ otsuka752
 
毎日 dig ったら分かったこと ~新 gTLD~
毎日 dig ったら分かったこと ~新 gTLD~毎日 dig ったら分かったこと ~新 gTLD~
毎日 dig ったら分かったこと ~新 gTLD~
@ otsuka752
 
萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)
@ otsuka752
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
@ otsuka752
 

More from @ otsuka752 (20)

NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53
 
OLD_LT_DNS_OLD
OLD_LT_DNS_OLDOLD_LT_DNS_OLD
OLD_LT_DNS_OLD
 
OLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLDOLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLD
 
Hijack the domain name
Hijack the domain nameHijack the domain name
Hijack the domain name
 
Route53 で親子同居
Route53 で親子同居Route53 で親子同居
Route53 で親子同居
 
reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)
 
DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)
 
raspi + soracom #pakeana33
raspi + soracom #pakeana33raspi + soracom #pakeana33
raspi + soracom #pakeana33
 
192.0.0.4 on android
192.0.0.4 on android192.0.0.4 on android
192.0.0.4 on android
 
a little more about CaptureFilter
a little more about CaptureFiltera little more about CaptureFilter
a little more about CaptureFilter
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定
 
how to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorturehow to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorture
 
how to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servershow to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servers
 
WireEdit のススメ
WireEdit のススメWireEdit のススメ
WireEdit のススメ
 
Measurement of Maximum new NAT-sessions per second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packetsMeasurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessions per second / How to send packets
 
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
 
毎日 dig ったら分かったこと ~新 gTLD~
毎日 dig ったら分かったこと ~新 gTLD~毎日 dig ったら分かったこと ~新 gTLD~
毎日 dig ったら分かったこと ~新 gTLD~
 
萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
 
how to GET GET
how to GET GEThow to GET GET
how to GET GET
 

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/UDP Port を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. END