Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
220
原理から解き明かす AIと人間の成長 - Progate BAR
teba_eleven
2
300
21st ACRi Webinar - Univ of Tokyo Presentation Slide (Shinya Takamaeda)
nao_sumikawa
0
110
日本Rubyの会の構造と実行とあと何か / hokurikurk01
takahashim
4
740
Docker, Infraestructuras seguras y Hardening
josejuansanchez
0
150
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
3
330
手動から自動へ、そしてその先へ
moritamasami
0
240
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
260
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
530
GitLab Duo Agent Platformで実現する“AI駆動・継続的サービス開発”と最新情報のアップデート
jeffi7
0
180
計算機科学をRubyと歩む 〜DFA型正規表現エンジンをつくる~
ydah
3
110
たかが特別な時間の終わり / It's Only the End of Special Time
watany
27
6.3k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Practical Orchestrator
shlominoach
190
11k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Designing for humans not robots
tammielis
254
26k
How to Ace a Technical Interview
jacobian
280
24k
Optimizing for Happiness
mojombo
379
70k
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