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
95
Open vSwitch ソースコードの全体像
oshothebig
1
230
Floodlightのモジュール機構
oshothebig
1
380
Other Decks in Technology
See All in Technology
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
180
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
Featured
See All Featured
Happy Clients
brianwarren
98
6.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Code Review Best Practice
trishagee
64
17k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Side Projects
sachag
452
42k
Become a Pro
speakerdeck
PRO
25
5k
Practical Orchestrator
shlominoach
186
10k
Faster Mobile Websites
deanohume
305
30k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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