Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OpenFlowとは何か
Search
Sho Shimizu
June 24, 2012
Technology
2
140
OpenFlowとは何か
Python Developers Festival 2011.10で発表した内容
Sho Shimizu
June 24, 2012
Tweet
Share
More Decks by Sho Shimizu
See All by Sho Shimizu
OpenFlowコントローラとその実装
oshothebig
1
130
OpenFlowコントローラを取り巻く状況とその実装
oshothebig
1
99
Open vSwitch ソースコードの全体像
oshothebig
1
240
Floodlightのモジュール機構
oshothebig
1
390
Other Decks in Technology
See All in Technology
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
360
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
170
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
170
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.6k
本が全く読めなかった過去の自分へ
genshun9
0
660
AI導入の理想と現実~コストと浸透〜
oprstchn
0
130
Model Mondays S2E03: SLMs & Reasoning
nitya
0
220
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
180
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.2k
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
160
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
570
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
120
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
It's Worth the Effort
3n
185
28k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
The Language of Interfaces
destraynor
158
25k
For a Future-Friendly Web
brad_frost
179
9.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Transcript
OpenFlowͱԿ͔ @oshothebig
͓લ୭Αʁ • ਗ਼ਫɹᠳ (Twitter: @oshothebig) • ࢜௨ݚڀॴ • ίΞωοτϫʔΫͷݚڀ •
࠷ۙɺωοτϫʔΫͷলిྗԽ • Pythonͱͷؔ: NetworkXͳ͍ͱࠔΔ
͓લ୭Αʁ • ਗ਼ਫɹᠳ (Twitter: @oshothebig) • ࢜௨ݚڀॴ • ίΞωοτϫʔΫͷݚڀ •
࠷ۙɺωοτϫʔΫͷলిྗԽ • Pythonͱͷؔ: NetworkXͳ͍ͱࠔΔ NetworkX Love
࠷ॳʹ͓அΓ ࠓͷ༰ɺ Python΄΅ؔͳ͠
OpenFlow
ฉ͍ͨ͜ͱ͋Δਓʁ
OpenFlow • ελϯϑΥʔυେֶͷNick McKeownڭतͷݚڀά ϧʔϓΛத৺ʹ։ൃ͞Εͨ৽͍͠ωοτϫʔΫΞʔΩ ςΫνϟ • ࠓʹೖͬͯɺඪ४ԽஂମͷOpen Networking Foundation
(ONF)͕ઃཱ
NEC͕ରԠΛൃද
ಛ • ੍ޚͱసૹͷ (Control / Forwarding Separation) • ϓϩάϥϚϏϦςΟ (Software
Defined Network: SDN)
͜Ε·Ͱͷϧʔλ ੍ޚ෦ సૹ෦ •ϧʔςΟϯάϓϩτίϧ •ܦ࿏ΛܾΊΔ •IOS (Cisco), Junos (Juniper) •ύέοτͷϑΥϫʔσΟϯά
•ओʹϋʔυΣΞͷྖҬ
੍ޚ෦ͱసૹ෦Λ ੍ޚ෦ సૹ෦ OpenFlow ϓϩτίϧ OpenFlowίϯτϩʔϥ ɹεΠονͷಈ࡞Λܾఆ OpenFlowεΠον ɹ͓͔ ɹࢦࣔ͞Εͨ௨Γʹಈ͘
͜Ε·Ͱ
͜Ε·Ͱ
͜Ε·Ͱ OpenFlow
εΠονͷಈ࡞ ϑϩʔͷఆٛʹϚον͢ΔΞΫγϣϯΛ࣮ߦ ϑϩʔʁ ΞΫγϣϯ ύέοτͷసૹɺഁغɺϑΟʔϧυͷมߋ
ύέοτͷసૹ
ύέοτͷసૹ
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ 2. Ϛον͢Δϑϩʔ͕͋ͬͨ
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ 2. Ϛον͢Δϑϩʔ͕͋ͬͨ 3. ࢦఆͷΞΫγϣϯΛ࣮ߦ
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ 2. Ϛον͢Δϑϩʔ͕͋ͬͨ 3. ࢦఆͷΞΫγϣϯΛ࣮ߦ ίϯτϩʔϥհࡏ͠ͳ͍
ύέοτͷసૹ
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ 2. Ϛον͢Δϑϩʔ͕ͳ͍
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ 2. Ϛον͢Δϑϩʔ͕ͳ͍ 3. ίϯτϩʔϥʹ͍߹Θͤ Packet In
ύέοτͷసૹ 1. Ϛον͢ΔϑϩʔΛݕࡧ 2. Ϛον͢Δϑϩʔ͕ͳ͍ 3. ίϯτϩʔϥʹ͍߹Θͤ 4. ίϯτϩʔϥ͕సૹํ๏Λ ܾఆ͠ɺεΠονʹ௨
ίϯτϩʔϥ͕հࡏ͢Δ Packet In
Կ͕͏Ε͍͔͠ʁ • ύέοτͷసૹํ๏Λࣗ༝ʹܾΊΒΕΔ • ࠓ·Ͱ੍ޚ෦ɾసૹ෦͕ඇެ։ɾີ݁߹ • ඪ४Խ͞ΕͨΦʔϓϯͳΠϯλʔϑΣΠε • ίϯτϩʔϥҰछͷαʔόʔιϑτΣΞ •
ϑϨΩγϒϧɾϓϩάϥϚϏϦςΟ͕͋Δ
ಛʹ͞Ε͍ͯΔྖҬ • σʔληϯλʔ෦ͷωοτϫʔΫͷద༻ • ͳ͔ͥʁ • ωοτϫʔΫͷԾԽ • Tag VLANͷݶք
(12bit = 4096ͷࣝผࢠ) • ࣗಈԽʹΑΔӡ༻ཧͷলྗԽ
੍ޚ෦ సૹ෦ OpenFlow ϓϩτίϧ ΞϓϦέʔγϣϯ ΞϓϦέʔγϣϯ APIΛنఆ ίϯτϩʔϥ εΠον
ࣅͨߏΛݟͨ͜ͱ͕ʁ
OS PC ΞϓϦέʔγϣϯ ΞϓϦέʔγϣϯ APIΛنఆ
ίϯτϩʔϥ = OS
εΠον = PC
ίϯϐϡʔλɺ OSແ͚Ελμͷശ
OpenFlow ίϯτϩʔϥແ͚Ε λμͷശ
ίϯτϩʔϥ͕ॏཁ
ίϯτϩʔϥ͕ॏཁ
OpenFlowίϯτϩʔϥ࣮ • NOX (Nicira) • Core: C++, PythonͰΞϓϦέʔγϣϯهड़Մೳ • Trema
(NEC) • Core: C, RubyͰΞϓϦέʔγϣϯهड़Մೳ • Beacon (Stanford (and Big Switch Networks?)) • Java
ίϯτϩʔϥಈ͔ͯ͠ ༡ͼ͍ͨʂ
NOX •http://noxrepo.org/ •MacͰϏϧυग़དྷͳ͍ orz •ͬ͘͞ͱɺ͖͋ΒΊ
Trema •http://trema.github.com/trema/ •MacͰϏϧυग़དྷͳ͍ orz •ͬ͘͞ͱɺ͖͋ΒΊ
Beacon • http://www.openflowhub.org/display/ Beacon/ • MavenͰϏϧυͰ͖ͣ orz • ϑΥʔϥϜʹ࣭ͨ͠Β •
EclipseͬͯʂMavenࠓ͑ͳ͍
͑ͬʂʁ
ϏϧυͷͨΊ͚ͩʹ Eclipseͱ͔ɻɻɻ
ʔ͍͍ʂ
ಈ͘ͷ͕ͳ͍ͳΒ ࣗͰ࡞Δ͠ʂ
Galibier OpenFlow Controller •https://github.com/oshothebig/ galibier •໊લɿΨϏϦΤಕ͔Β •Java
Python͡Όͳ͍ͷʁ
openflowj
ελϯϑΥʔυͷਓ ͋Γ͕ͱ͏
Netty
Trustin Lee ͋Γ͕ͱ͏
ଞਓͷ;ΜͲ͠Ͱ ͝ΊΜͳ͍͞
Controller Performance ? http://www.openflow.org/wk/index.php/ Controller_Performance_Comparisons
ϕϯνϚʔΫπʔϧ cbench͕Ϗϧυग़དྷͳ͍ orz
͡ΌɺϕϯνϚʔΫ
Netty͛͢ʔ
େมͩͬͨ͜ͱ •༷ॻͷهड़͕݁ߏ͍ •໌֬ʹهड़͞Ε͍ͯͳ͍Օॴ ͕͋Δ
ϒϩά • 300ߦΒͣͰॻ͚ΔJavaʹΑΔOpenFlowί ϯτϩʔϥ (http://bit.ly/qXoMGM) • OpenFlowͷϕϯνϚʔΫϓϩάϥϜΛJavaͰ ॻ͘ (http://bit.ly/pbI3Or)
Python͍ʹ • Pure Pythonͷίϯτϩʔϥ࣮ʁ • OpenFaucet https://github.com/midokura/ openfaucet
·ͱΊ • OpenFlow͕͞Ε͍ͯΔ • ίϯτϩʔϥ͕Ұ൪ॏཁ • ͍͍ײ͡ͰMacͰಈ͘ͷͳ͔ͬͨ • ίϯτϩʔϥͱϕϯνϚʔΫ࡞ͬͯΈͨ
Thank you