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
140
2
Share
OpenFlowとは何か
Python Developers Festival 2011.10で発表した内容
Sho Shimizu
June 24, 2012
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
PyCon JPに学ぶ『決め方の決め方』: TechLead Conference 2026
terapyon
1
280
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.9k
AndroidアプリとCopilot Studioの統合
nakasho
0
180
Google Cloud Next '26 の裏でこっそりリリースされたCloud Number Registry & Cloud Hub コスト分析 を試してみた
hikaru1001
0
120
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
150
Arcana: Production-Ready RAG in Elixir @ ElixirConf EU 2026
georgeguimaraes
0
120
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.4k
基盤を育てる 外部SaaS連携の運用
gamonges_dresscode
1
120
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
200
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
10
2.6k
AgentCore Managed Harness を使ってみよう
yakumo
2
270
Building a Standalone Programming Environment
harukasan
PRO
1
420
Featured
See All Featured
The browser strikes back
jonoalderson
0
990
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
210
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Unsuck your backbone
ammeep
672
58k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
For a Future-Friendly Web
brad_frost
183
10k
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