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
100
Open vSwitch ソースコードの全体像
oshothebig
1
240
Floodlightのモジュール機構
oshothebig
1
390
Other Decks in Technology
See All in Technology
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
27
19k
AIの個性を理解し、指揮する
shoota
3
640
InsightX 会社説明資料/ Company deck
insightx
0
210
AI-ready"のための"データ基盤 〜 LLMOpsで事業貢献するための基盤づくり
ismk
0
120
触れるけど壊れないWordPressの作り方
masakawai
0
680
Databricks Free Editionで始めるMLflow
taka_aki
0
800
どうなる Remix 3
tanakahisateru
0
250
技術の総合格闘技!?AIインフラの現在と未来。
ebiken
PRO
0
160
日本のソブリンAIを支えるエヌビディアの生成AIエコシステム
acceleratedmu3n
0
130
実践マルチモーダル検索!
shibuiwilliam
3
580
次世代のメールプロトコルの斜め読み
hirachan
3
390
AIを使ってテストを楽にする
kworkdev
PRO
0
420
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
850
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Designing Experiences People Love
moore
142
24k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Navigating Team Friction
lara
190
15k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Embracing the Ebb and Flow
colly
88
4.9k
Fireside Chat
paigeccino
41
3.7k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Site-Speed That Sticks
csswizardry
13
940
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
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