SlideShare a Scribd company logo
Tcpreplay のススメ 
~概要編~ 
2014/09/22 
#pakeana 21 
@twovs
agenda 
• 自己紹介 
• Tcpreplay の紹介 
•• ppiinngg fflloooodd してみた
about me 
• @twovs (masato.otsuka) 
• ネコ2人+奥さん1人+可愛い娘 
•• 無線LLAANN装置の開発((11999999~~22000044)) 
• オンラインゲームのシステム管理者(2004~) 
• ただし,ゲームには全く興味無し 
• ZFS 最高!!! beadm 便利!!!
Tcpreplay(1) 
• Tcpreplay は 
• pcap ファイルを再送信(replay) 
•• ppccaapp ファイルを編集((rreewwrriittee)) 
• TCP の双方向通信も可能!!!
Tcpreplay(2) 
• Tcpreplay は 
• オープンソース/GPLv3 
•• UUNNIIXX 系OOSS で動作
• Windows はCygwin 上で動作
Tcpreplay(3) 
• Tcpreplay は 
• IDS/IPS/FireWall/Router/Switch など 
ネットワーク機器の開発で使われている
• netmap 対応で10GbE ワイヤーレート対応 
http://info.iet.unipi.it/~luigi/netmap/
Tcpreplay(4) 
• Tcpreplay (T が大文字)はツール群の総称 
• ツール/コマンド 
11.. ttccpprreeppllaayy 
2. tcpreplay-edit 
3. tcpliveplay 
4. tcpprep 
5. tcprewrite 
6. tcpcapinfo 
7. tcpbridge
1.tcpreplay 
• pcap ファイルを再送信(replay) 
• 任意のスピードで再送信 
•• MMbbppss//ppppss 指定
• 元のpcap ファイルのn倍速 
• 最大パケット間隔指定 
• 最大速!!!
1.tcpreplay 
# tcpreplay -i eth0 --mbps=510.5 smallFlows.pcap 
Actual: 14261 packets (9216531 bytes) sent in 0.144495 seconds. 
Rated: 63784428.5 Bps, 510.27 Mbps, 98695.45 pps 
Flows: 1209 flows, 8367.07 fps, 14243 flow packets, 18 non-flow 
Statistics for network device: eth0 
Attempted packets: 14261 
Successful packets: 14261 
Failed packets: 0 
Truncated packets: 0 
Retried packets (ENOBUFS): 0 
Retried packets (EAGAIN): 0 
http://tcpreplay.appneta.com/wiki/tcpreplay.html から抜粋
1.tcpreplay 
# tcpreplay -i eth0 -tK -l1000 --netmap smallFlows.pcap 
Switching network driver for eth0 to netmap bypass mode... done! 
File Cache is enabled 
Actual: 14261000 packets (9216531000 bytes) sent in 7.07 seconds. 
Rated: 1193506409.4 Bps, 9548.05 Mbps, 1846746.34 pps 
Flows: 1209 flows, 156.56 fps, 14243000 flow packets, 1188000000 nnoonn--ffllooww 
Statistics for network device: eth0 
Attempted packets: 14261000 
Successful packets: 14261000 
Failed packets: 0 
Truncated packets: 0 
Retried packets (ENOBUFS): 0 
Retried packets (EAGAIN): 0 
Switching network driver for eth0 to normal mode... done! 
http://tcpreplay.appneta.com/wiki/tcpreplay.html から抜粋
2.tcpreplay-edit 
• pcap ファイルを書き換えながら再送信(replay) 
• tcprewrite (後述)しながらtcpreplay 
• tcprewrite でpcap ファイルを生成し 
tcpreplay した方が高速に再送信
3.tcpliveplay 
• pcap ファイルを元にTCP 双方向通信を再現 
• TCP のSEQ/ACK を書き換えながら双方向通信 
• 現在はLinux だけ対応(その他環境も近々対応)
4.tcpprep 
• (複雑な処理用/使わなくても色々できる) 
• tcpreplay やtcprewrite の処理のための 
事前処理((pprree--pprroocceessssoorr)) 
• client/server の決定や 
使用するNIC などの定義ファイルを作成
5.tcprewrite 
• pcap ファイルを読み込み 
各種ヘッダ(など)を追加・削除・変更し 
pcap ファイルに書き出す 
• DLT(DataLinkType)変換 
• IEEE802.3 <-> IEEE802.11 
• Ethernet <-> Loopback 
• などなど
5.tcprewrite 
• Src/Dst MAC Address 
• IEEE802.1q (VLAN Tag) 
• Src/Dst IP Address 
• IPv4 Headers(TTOOSS//DDiiffffSSeerrvv//EECCNN)) 
• IPv6 Headers(Traffic Class/Flow Label) 
• TCP/UDP PortNum 
• IP/TCP/UDP Checksums の付与 
• MTU 指定でtruncate
6.tcpcapinfo 
• pcap ファイルの各種情報を表示 
• pcap ファイルを読み書きするアプリケーション 
を作る開発者向けのツール
• tcprewrite のbug を直す時に作られた
7.tcpbridge 
• 2つのネットワークをブリッジ 
• パケットを書き換えながらブリッジ 
•• ttccpprreewwrriittee と同じ書き換え機能を持つ
ping flood(1) 
• 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(2) 
① 標準のping コマンド(iputils-sss20101006) 
$ sudo ping -f -s 1472 192.168.0.1 
② hping3 version 3.0.0-alpha-2 
$ sudo hping3 --flood -1 -d 1472 192.168.0.1 
③ tcpreplay version: 3.4.3 (build 2375) 
$ sudo tcpreplay --topspeed -K -i eth0 -l 0 sample.pcap
ping flood(3) 
[pps] [Mbps]
ping flood(4) 
$ uname -a 
Linux raspi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 
armv6l GNU/Linux 
$ sudo tcpreplay --topspeed -K -i eth0 -l 10000 ping-1472.pcap 
Actual: 10000 packets (15140000 bytes) sent in 1.64 seconds 
Rated: 9231707.0 bps, 70.43 Mbps, 6097.56 pps 
Statistics for network device: eth0 
Attempted packets: 10000 
Successful packets: 10000 
Failed packets: 0 
Retried packets (ENOBUFS): 0 
Retried packets (EAGAIN): 0
memo 
• http://tcpreplay.appneta.com/ 
• https://github.com/appneta/tcpreplay 
• 4.0.5 が最新(2014/09/22 時点) 
• http://tcpreplay.synfin.net/ は3.x の情報
END

More Related Content

What's hot

Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
Yagi Shinnosuke
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwardingMasakazu Asama
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
tetsusat
 
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
Tetsuya Hasegawa
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
Takaaki Hoyo
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
npsg
 
レシピの作り方入門
レシピの作り方入門レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStack
Akira Yoshiyama
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
 
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidl_b__
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
Etsuji Nakai
 
SRv6 study
SRv6 studySRv6 study
SRv6 study
Hiro Mura
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
 
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
Yuki Tamura
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
信之 岩永
 

What's hot (20)

Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
レシピの作り方入門
レシピの作り方入門レシピの作り方入門
レシピの作り方入門
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStack
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
 
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroid
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
 
SRv6 study
SRv6 studySRv6 study
SRv6 study
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
 

Similar to about Tcpreplay

Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)Panda Yamaki
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshiJanogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshiKeisuke Ishibashi
 
Ia 2016-12-15
Ia 2016-12-15Ia 2016-12-15
Ia 2016-12-15
Ruo Ando
 
SCPコマンドについて
SCPコマンドについてSCPコマンドについて
SCPコマンドについて
iPride Co., Ltd.
 
Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違い
Masakazu Asama
 
20060520.tcp
20060520.tcp20060520.tcp
20060520.tcp
Ken SASAKI
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
ykuga
 
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Panda Yamaki
 
自宅サーバーを立てる話
自宅サーバーを立てる話自宅サーバーを立てる話
自宅サーバーを立てる話
naba0123
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-mainShotaro Uchida
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
mganeko
 
最近遊んだLinuxボードたち
最近遊んだLinuxボードたち最近遊んだLinuxボードたち
最近遊んだLinuxボードたち
t n
 
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
Yuuki Takano
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)
Panda Yamaki
 
PIC RoR Heroku
PIC RoR HerokuPIC RoR Heroku
PIC RoR Heroku
mgwsuzuki
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
 

Similar to about Tcpreplay (20)

Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshiJanogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
 
Ia 2016-12-15
Ia 2016-12-15Ia 2016-12-15
Ia 2016-12-15
 
SCPコマンドについて
SCPコマンドについてSCPコマンドについて
SCPコマンドについて
 
Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違い
 
20060520.tcp
20060520.tcp20060520.tcp
20060520.tcp
 
#pakeana 14
#pakeana 14#pakeana 14
#pakeana 14
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
 
自宅サーバーを立てる話
自宅サーバーを立てる話自宅サーバーを立てる話
自宅サーバーを立てる話
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 
最近遊んだLinuxボードたち
最近遊んだLinuxボードたち最近遊んだLinuxボードたち
最近遊んだLinuxボードたち
 
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)
 
PIC RoR Heroku
PIC RoR HerokuPIC RoR Heroku
PIC RoR Heroku
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
 

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
 
about tcpreplay-edit
about tcpreplay-editabout tcpreplay-edit
about tcpreplay-edit
@ 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
 
about tcpreplay-edit
about tcpreplay-editabout tcpreplay-edit
about tcpreplay-edit
 
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
超簡単!? Punycode 変換 ~国際化・日本語ドメイン~
 
毎日 dig ったら分かったこと ~新 gTLD~
毎日 dig ったら分かったこと ~新 gTLD~毎日 dig ったら分かったこと ~新 gTLD~
毎日 dig ったら分かったこと ~新 gTLD~
 
萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
 

Recently uploaded

論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (9)

論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

about Tcpreplay

  • 1. Tcpreplay のススメ ~概要編~ 2014/09/22 #pakeana 21 @twovs
  • 2. agenda • 自己紹介 • Tcpreplay の紹介 •• ppiinngg fflloooodd してみた
  • 3. about me • @twovs (masato.otsuka) • ネコ2人+奥さん1人+可愛い娘 •• 無線LLAANN装置の開発((11999999~~22000044)) • オンラインゲームのシステム管理者(2004~) • ただし,ゲームには全く興味無し • ZFS 最高!!! beadm 便利!!!
  • 4. Tcpreplay(1) • Tcpreplay は • pcap ファイルを再送信(replay) •• ppccaapp ファイルを編集((rreewwrriittee)) • TCP の双方向通信も可能!!!
  • 5. Tcpreplay(2) • Tcpreplay は • オープンソース/GPLv3 •• UUNNIIXX 系OOSS で動作 • Windows はCygwin 上で動作
  • 6. Tcpreplay(3) • Tcpreplay は • IDS/IPS/FireWall/Router/Switch など ネットワーク機器の開発で使われている • netmap 対応で10GbE ワイヤーレート対応 http://info.iet.unipi.it/~luigi/netmap/
  • 7. Tcpreplay(4) • Tcpreplay (T が大文字)はツール群の総称 • ツール/コマンド 11.. ttccpprreeppllaayy 2. tcpreplay-edit 3. tcpliveplay 4. tcpprep 5. tcprewrite 6. tcpcapinfo 7. tcpbridge
  • 8. 1.tcpreplay • pcap ファイルを再送信(replay) • 任意のスピードで再送信 •• MMbbppss//ppppss 指定 • 元のpcap ファイルのn倍速 • 最大パケット間隔指定 • 最大速!!!
  • 9. 1.tcpreplay # tcpreplay -i eth0 --mbps=510.5 smallFlows.pcap Actual: 14261 packets (9216531 bytes) sent in 0.144495 seconds. Rated: 63784428.5 Bps, 510.27 Mbps, 98695.45 pps Flows: 1209 flows, 8367.07 fps, 14243 flow packets, 18 non-flow Statistics for network device: eth0 Attempted packets: 14261 Successful packets: 14261 Failed packets: 0 Truncated packets: 0 Retried packets (ENOBUFS): 0 Retried packets (EAGAIN): 0 http://tcpreplay.appneta.com/wiki/tcpreplay.html から抜粋
  • 10. 1.tcpreplay # tcpreplay -i eth0 -tK -l1000 --netmap smallFlows.pcap Switching network driver for eth0 to netmap bypass mode... done! File Cache is enabled Actual: 14261000 packets (9216531000 bytes) sent in 7.07 seconds. Rated: 1193506409.4 Bps, 9548.05 Mbps, 1846746.34 pps Flows: 1209 flows, 156.56 fps, 14243000 flow packets, 1188000000 nnoonn--ffllooww Statistics for network device: eth0 Attempted packets: 14261000 Successful packets: 14261000 Failed packets: 0 Truncated packets: 0 Retried packets (ENOBUFS): 0 Retried packets (EAGAIN): 0 Switching network driver for eth0 to normal mode... done! http://tcpreplay.appneta.com/wiki/tcpreplay.html から抜粋
  • 11. 2.tcpreplay-edit • pcap ファイルを書き換えながら再送信(replay) • tcprewrite (後述)しながらtcpreplay • tcprewrite でpcap ファイルを生成し tcpreplay した方が高速に再送信
  • 12. 3.tcpliveplay • pcap ファイルを元にTCP 双方向通信を再現 • TCP のSEQ/ACK を書き換えながら双方向通信 • 現在はLinux だけ対応(その他環境も近々対応)
  • 13. 4.tcpprep • (複雑な処理用/使わなくても色々できる) • tcpreplay やtcprewrite の処理のための 事前処理((pprree--pprroocceessssoorr)) • client/server の決定や 使用するNIC などの定義ファイルを作成
  • 14. 5.tcprewrite • pcap ファイルを読み込み 各種ヘッダ(など)を追加・削除・変更し pcap ファイルに書き出す • DLT(DataLinkType)変換 • IEEE802.3 <-> IEEE802.11 • Ethernet <-> Loopback • などなど
  • 15. 5.tcprewrite • Src/Dst MAC Address • IEEE802.1q (VLAN Tag) • Src/Dst IP Address • IPv4 Headers(TTOOSS//DDiiffffSSeerrvv//EECCNN)) • IPv6 Headers(Traffic Class/Flow Label) • TCP/UDP PortNum • IP/TCP/UDP Checksums の付与 • MTU 指定でtruncate
  • 16. 6.tcpcapinfo • pcap ファイルの各種情報を表示 • pcap ファイルを読み書きするアプリケーション を作る開発者向けのツール • tcprewrite のbug を直す時に作られた
  • 17. 7.tcpbridge • 2つのネットワークをブリッジ • パケットを書き換えながらブリッジ •• ttccpprreewwrriittee と同じ書き換え機能を持つ
  • 18. ping flood(1) • Raspberry Pi • MODEL B (not B+) • CPU 700[MHz] •• MMeemmoorryy 551122[[MMiiBB]] • NIC 100[Mbps] • Raspbian GNU/Linux 7 • kernel 3.12.22+
  • 19. ping flood(2) ① 標準のping コマンド(iputils-sss20101006) $ sudo ping -f -s 1472 192.168.0.1 ② hping3 version 3.0.0-alpha-2 $ sudo hping3 --flood -1 -d 1472 192.168.0.1 ③ tcpreplay version: 3.4.3 (build 2375) $ sudo tcpreplay --topspeed -K -i eth0 -l 0 sample.pcap
  • 21. ping flood(4) $ uname -a Linux raspi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l GNU/Linux $ sudo tcpreplay --topspeed -K -i eth0 -l 10000 ping-1472.pcap Actual: 10000 packets (15140000 bytes) sent in 1.64 seconds Rated: 9231707.0 bps, 70.43 Mbps, 6097.56 pps Statistics for network device: eth0 Attempted packets: 10000 Successful packets: 10000 Failed packets: 0 Retried packets (ENOBUFS): 0 Retried packets (EAGAIN): 0
  • 22. memo • http://tcpreplay.appneta.com/ • https://github.com/appneta/tcpreplay • 4.0.5 が最新(2014/09/22 時点) • http://tcpreplay.synfin.net/ は3.x の情報
  • 23. END