SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
できる!trema-switch
Report
Hiroaki Kawai
Follow
Developer at Kobe
Aug. 1, 2014
•
0 likes
•
2,530 views
1
of
28
できる!trema-switch
Aug. 1, 2014
•
0 likes
•
2,530 views
Download Now
Download to read offline
Report
Technology
trema-switchの最近の動向についてまとめました。まず概要、次に開発者向け情報、最後に今後の相談について記載しています。
Hiroaki Kawai
Follow
Developer at Kobe
Recommended
Tremaとtrema edgeの違い
hiroshi oshiba
5.9K views
•
28 slides
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
hiroshi oshiba
4K views
•
32 slides
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
エイシュン コンドウ
2.6K views
•
23 slides
Kanazawa.js.Next
dynamis
1.6K views
•
84 slides
Nmap 9つの真実
abend_cve_9999_0001
15.3K views
•
90 slides
Doctrine2 odm-workshop-1
Hidenori Goto
1.9K views
•
31 slides
More Related Content
What's hot
ほんとにあったphantomjsのコワい話
Kohki Nakashima
10.9K views
•
24 slides
World plonedaylt
Atsushi Odagiri
1.2K views
•
12 slides
Nmapの真実(ゾクゾク)
Keigo Yamazaki
5.4K views
•
24 slides
プログラミング学習のための学習
siranon *
8.1K views
•
78 slides
neobundle.vimについて+おまけ
Shougo
283.9K views
•
34 slides
PNA3秒クッキング
wizstargaer
735 views
•
19 slides
What's hot
(20)
ほんとにあったphantomjsのコワい話
Kohki Nakashima
•
10.9K views
World plonedaylt
Atsushi Odagiri
•
1.2K views
Nmapの真実(ゾクゾク)
Keigo Yamazaki
•
5.4K views
プログラミング学習のための学習
siranon *
•
8.1K views
neobundle.vimについて+おまけ
Shougo
•
283.9K views
PNA3秒クッキング
wizstargaer
•
735 views
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
和弘 井之上
•
195 views
魔法少女 Laravel
Kenichi Mukai
•
7.5K views
Start!! Ruby
mitim
•
1.9K views
Python勉強会1-はじめに
理 小林
•
487 views
Javaクラスファイルの読み方
y torazuka
•
7.6K views
Fluentd in #tkrk10
SATOSHI TAGOMORI
•
3K views
心に残った名前ランキング
infinite_loop
•
1.2K views
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
•
2.9K views
Vimはこわくない
Yuichi Watanabe
•
3.6K views
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
•
3.4K views
【学習メモ#3rd】12ステップで作る組込みOS自作入門
sandai
•
4.1K views
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
•
23.2K views
人間たちとsystemd
Uchio Kondo
•
1.7K views
Testing PHP extension on Travis CI
Yoshio Hanawa
•
2.5K views
Viewers also liked
パケットキャプチャの勘どころ Ssmjp 201501
稔 小林
15.3K views
•
47 slides
Rgc.Deck.02.06.09
kenmorimoto
379 views
•
13 slides
Fikir Nasil Bulunur
Firat Yildiz
4.9K views
•
7 slides
Ohio Rapid Response Webinar 2
Timothy Theberge
566 views
•
51 slides
Village Relocation Conference Presenation
Andrew Mackenzie
717 views
•
31 slides
Cloudstack networking の内側
Hiroaki Kawai
906 views
•
16 slides
Viewers also liked
(20)
パケットキャプチャの勘どころ Ssmjp 201501
稔 小林
•
15.3K views
Rgc.Deck.02.06.09
kenmorimoto
•
379 views
Fikir Nasil Bulunur
Firat Yildiz
•
4.9K views
Ohio Rapid Response Webinar 2
Timothy Theberge
•
566 views
Village Relocation Conference Presenation
Andrew Mackenzie
•
717 views
Cloudstack networking の内側
Hiroaki Kawai
•
906 views
Nature
CK Tan
•
615 views
Massachusetts Rapid Response Set-Aside Program
Timothy Theberge
•
1.8K views
How to Keep Workers Happy on Your Toughest Jobsite
Jeff Pollard
•
206 views
CSC Leasing
coreyj1472
•
133 views
Portifolio 2009 - 3d illustration
ethip
•
470 views
4. Course Design: Putting it All Together
ISEAL Alliance
•
1.2K views
Sneeuwklassen Terugkomdag Deel 2
sint.al.jo
•
721 views
Lego creations
smoser3039
•
353 views
WIA Bootcamp - Governance - Boards Only
Timothy Theberge
•
1.1K views
Session 1.3 Notes on PLNs
TechISM09
•
349 views
Valentine
guestb947636
•
592 views
0119.El.Mandarin.De.Jose.Maria.Eca.De.Queiroz
Gustavo Ramirez
•
557 views
Knowing Our Clients Keable Stl
keableeb
•
349 views
Faith The Way To Happiness
Abdullah Baspren
•
401 views
Similar to できる!trema-switch
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
1.2K views
•
135 slides
Serverless Framework 使ってる話(node.js)
Naoto Teruya
2.1K views
•
46 slides
Openflow超解釈
Hiroaki Kawai
1.4K views
•
15 slides
Webサーバ勉強会 LT資料
学 松崎
4.7K views
•
15 slides
Ietf95 capport
Mariko Kobayashi
374 views
•
33 slides
Streaming Audio over HTTP 1.1 to Flask
Charles Heckroth
88 views
•
15 slides
Similar to できる!trema-switch
(20)
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
•
1.2K views
Serverless Framework 使ってる話(node.js)
Naoto Teruya
•
2.1K views
Openflow超解釈
Hiroaki Kawai
•
1.4K views
Webサーバ勉強会 LT資料
学 松崎
•
4.7K views
Ietf95 capport
Mariko Kobayashi
•
374 views
Streaming Audio over HTTP 1.1 to Flask
Charles Heckroth
•
88 views
RubyKaigi Lightning Talks TwYM episode2
Kuniaki Igarashi
•
1.5K views
Lagopus & NFV with Vhost (Tremaday#9)
Tomoya Hibi
•
1.2K views
Trema の紹介とネットワーク仮想化への応用
kazuyas
•
3.1K views
小さく始める Docker container の deploy
Yoshinori Teraoka
•
1K views
Opa - Cloud Language
Tozo Tanaka
•
556 views
DartPad+CodePenで、Flutterを体験してみよう
cch-robo
•
182 views
[Osaka]AMIMOTO(HHVM) hands-on #cmsdou
Hiromichi Koga
•
1.1K views
Web技術勉強会 第33回
龍一 田中
•
1.4K views
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。
Mitsuhiro Yamashita
•
396 views
Practical migration from JSP to Thymeleaf
Toshiki Iga
•
1K views
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
•
9.9K views
Lagopus performance
Masaru Oki
•
2.4K views
Scalaでのプログラム開発
Kota Mizushima
•
2.5K views
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
•
24.9K views
More from Hiroaki Kawai
Wireless openflow (english)
Hiroaki Kawai
1K views
•
19 slides
Play gopenflow (english)
Hiroaki Kawai
499 views
•
7 slides
Gopenflow demo v1 (english)
Hiroaki Kawai
385 views
•
7 slides
Play gopenflow
Hiroaki Kawai
673 views
•
7 slides
Gopenflow demo v1
Hiroaki Kawai
822 views
•
7 slides
Wireless openflow with stratosphere experimenter
Hiroaki Kawai
815 views
•
19 slides
More from Hiroaki Kawai
(14)
Wireless openflow (english)
Hiroaki Kawai
•
1K views
Play gopenflow (english)
Hiroaki Kawai
•
499 views
Gopenflow demo v1 (english)
Hiroaki Kawai
•
385 views
Play gopenflow
Hiroaki Kawai
•
673 views
Gopenflow demo v1
Hiroaki Kawai
•
822 views
Wireless openflow with stratosphere experimenter
Hiroaki Kawai
•
815 views
Openflow - Reactive? Proactive?
Hiroaki Kawai
•
999 views
Cloudstack networking2
Hiroaki Kawai
•
2.2K views
Metro Style Dev #01 IMAP Client
Hiroaki Kawai
•
12.7K views
Python geohash 紹介
Hiroaki Kawai
•
796 views
Webteko mysqlftppc
Hiroaki Kawai
•
877 views
Skype Api
Hiroaki Kawai
•
798 views
mysqlftppc 紹介
Hiroaki Kawai
•
1.6K views
Php File Upload
Hiroaki Kawai
•
1.2K views
Recently uploaded
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
39 views
•
31 slides
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
108 views
•
31 slides
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
151 views
•
16 slides
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
44 views
•
38 slides
テスト自動化.pdf
ssuserf8ea02
23 views
•
26 slides
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
134 views
•
12 slides
Recently uploaded
(12)
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
39 views
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
108 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
151 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
44 views
テスト自動化.pdf
ssuserf8ea02
•
23 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
134 views
画像生成AIの問題点
iPride Co., Ltd.
•
10 views
CatBoost on GPU のひみつ
Takuji Tahara
•
495 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 views
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
•
27 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
43 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
8 views
できる!trema-switch
1.
できる!trema-switch Hiroaki KAWAI <kawai@stratosphere.co.jp>
2.
Introducing myself ● Apache好き。Webをやっていた。OSS好き。 ● 関西在住 ● 現所属:株式会社ストラトスフィア ● ACCESSとIIJで設立 ● SDNの会社 ● 技術開発部 ● Ruby …は書けません
3.
Interop Tokyo 2013
SDN ShowCase ● OmniSphere 1.0 展示 Buffalo G301N Trema-switch / OpenWRT に書換
4.
Trema-switch
5.
Trema-switch ● Part of “trema-edge” ● Github
にリポジトリ ● https://github.com/trema/trema-edge ● Tremaとの差分は大きい。別物。 ● Openflow 1.3 software switch ● tremaテスト用スイッチ ● なぜかCで書かれている ● netdevがportになる ● Openflowベンダは1.3で一度歩調を合わせることに なっているので、好都合
6.
他の実装 C Open vSwitch CpqD ofsoftswitch13 Indigo (IVS) Erlang LINC Lagopus C
C C kernel module or netdev netdev netdev netdev dpdk Pantou系 OpenWRT対応
7.
Trema-switch ● buildは簡単 $ rake trema_switch $
gcc src/lib/*.c src/switch/*/*.c …実は 超簡単! ということで、こうなる
8.
OpenWRT feed ● Trema-switch feed ● https://github.com/iHiroakiKawai/trema-openwrt ● OpenWRT
の feeds.conf に行を足すだけ …ただし 一部自前パッチが必要。uClibcに足をひっぱられ …て
9.
Trema-switch ● 起動も簡単! $ sudo TREMA_HOME=/var/tmp/sw1
./trema-switch -i 1 -e veth0a,veth1a,veth2a -c 192.168.1.201 -p 6653 -l debug -t syslog,stdout OpenWRTだと 「ディスクに書くのが辛い」 …システムもあり Datapath_id: 1 veth0a veth1a veth2a tcp:192.168.1.201:6653
10.
Trema-switchはできる子 ● 仕様準拠 ● テストスイッチかくあるべし。 Ryu certification 8: CPU足りない 8:
テストケースの不備
11.
…ちなみに Open vSwitch CpqD ofsoftswitch13 Indigo (IVS) LINC
Lagopus 673 /318 657 /330 386 /605 535 /444 952 /27 OK /NG …ハードウェアスイッチは概してもっと悪いです PoC は trema-switch で → 涙をのんで実装落とし込み http://osrg.github.io/ryu/certification.html
12.
安価なOpenflowスイッチ機器 ● OpenWRTの敷居が高いと感じたら、こんな選択肢 も ● Raspberry Pi ● Intel NUC USB
NIC
13.
Inside trema-switch
14.
trema_switch開発 ● 現在までのコミット数 2013-01 2013-02 2013-03 2013-04 2013-05 2013-06 2013-07 2013-08 2013-09 2013-10 2013-11 2013-12 2014-01 2014-02 2014-03 2014-04 2014-05 2014-06 0 10 20 30 40 50 60 Date Commits このあたりから参加
15.
Flags ● 内部にいくつかフラグがある ● WITH_PCAP ● USE_PCAP_IMMEDIATE_MODE ● GROUP_SELECT_BY_HASH ● こんな感じで使う $ gcc -DWITH_PCAP
src/lib/*.{c,h} src/switch/*/*.{c,h} -lpcap ...
16.
WITH_PCAP ● Cコンパイル時に定義するとlibpcap対応化 ● 抽象レイヤで最適な方法を選択してくれる ● mmap TPACKET_V3 ● Linux 3
VLAN offloading ● Double taggingはKernel 3.14以降 + libpcap patch(#346) ● あるいはKernel 2 系 ● ポータビリティ
17.
USE_PCAP_IMMEDIATE_MODE ● 比較的新しいlibpcapで使える ● pcap_set_immediate_mode() を呼び出す ● TPACKET_V2/V3 の特性の違いへの対応 ● TPACKET_V3はスループット重視 ● 即時応答性重視ならTPACKET_V2に切り替える
18.
GROUP_SELECT_BY_HASH ● Group output で Bucket
SELECT だったとき ● 完全ランダムではなくEthernet フレーム情報に基づ いて振り分ける ● 連続順に転送が期待されているパケット列のため ● Out-of-orderが発生しないように 個人的にはデフォルトで有効でいいと 思う
19.
私の場合 ● こんな感じでビルドしています $ gcc -Wall
-std=gnu99 -D_GNU_SOURCE -DGROUP_SELECT_BY_HASH -DWITH_PCAP -DUSE_PCAP_IMMEDIATE_MODE -Isrc/lib -Isrc/switch/datapath -Isrc/switch/switch src/lib/*.c src/switch/*/*.c -lsqlite3 -lpthread -lrt -lpcap -o trema_switch
20.
signal ● 内部状態の確認ができます ● SIGUSR1 ● Flow table dump ● SIGUSR2 ● Group
table dump ● Info レベルのログとして出力される
21.
And more
22.
相談ネタ ● OpenWRT feedメンテナンス事情 ● 通常は「特定リリース」+「patch群」で管理する ● trema-edge にリリースが無いので、常に
HEAD から ビルド ● 安定した環境を提供できない ● snapshotを取って起点を作る(アーカイブサイトと …して別途配布する)という手はあるが そろそろリリースしませんか?
23.
相談ネタ ● Trema-switchでOpenflow仕様の未完部分 ● CONTROLLER meter ● Queue ● トンネルポート ● ポートの動的追加削除 ● Role ● AsyncConfig ● SSL ● Performance tuning ● Containers ● Packet
parser ● Thread safety コントローラとの接続に関するもの 起動引数?に追加が必要なもの (switch-managerとの兼ね合い)
24.
拡張の名前空間欲しいな ● “Open” repositoryが欲しい ● 「OSS向けのExperimenter ID」とかないものか ● TCP
SYN,ACK,FIN match field とか ● …サブの名前空間でもいいので、あるといいな
25.
trema or trema-edge ● …統合
?
26.
そんなこんなで Gopenflow ● Golang で実装してみています ● pthread
…はもう嫌 ● https://github.com/hkwi/gopenflow ● とりあえず何でも対応する方向で ● Pcap netdevの後にdpdkも対応したい ● パフォーマンスも見る ● 全体の中での各処理がどのぐらいの比重になるのが 妥当なのかを把握しておきたい ● Windowsでも動く ● 現状 Ryu certification OK(981) / ERROR(10)
27.
ところで
28.
関西でSDN勉強会とかしませんか?