Suche senden
Hochladen
SDN Framework Ryu Internal
•
5 gefällt mir
•
2,316 views
Satoshi KOBAYASHI
Folgen
Pure Python で書かれた SDN Framework (OpenFlow コントローラ) Ryu の設計資料。
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 24
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
OpenFlow OAM ツール - OKINAWA Open Days 2014 Day1
OpenFlow OAM ツール - OKINAWA Open Days 2014 Day1
Satoshi KOBAYASHI
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
hiroshi oshiba
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
Ryu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみよう
Masaru Oki
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switch
Masaru Oki
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
deep dive distributed tracing
deep dive distributed tracing
Takayoshi Tanaka
Empfohlen
OpenFlow OAM ツール - OKINAWA Open Days 2014 Day1
OpenFlow OAM ツール - OKINAWA Open Days 2014 Day1
Satoshi KOBAYASHI
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
hiroshi oshiba
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
Ryu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみよう
Masaru Oki
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switch
Masaru Oki
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
deep dive distributed tracing
deep dive distributed tracing
Takayoshi Tanaka
Lagopus performance
Lagopus performance
Masaru Oki
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
Masaru Oki
Lagopus どれだけ速いのか
Lagopus どれだけ速いのか
Masaru Oki
Lagopusとvagrant
Lagopusとvagrant
Masaru Oki
Tremaとtrema edgeの違い
Tremaとtrema edgeの違い
hiroshi oshiba
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何か
do_aki
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
さくらインターネット株式会社
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
Masaru Oki
仮想ネットワークを実現するOpenVNet
仮想ネットワークを実現するOpenVNet
Akira Yokokawa
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
Akira Yokokawa
Openflow実験
Openflow実験
Yahoo!デベロッパーネットワーク
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
Yoshiaki Shibutani
Clojureによるログ収集と解析
Clojureによるログ収集と解析
Yoshitaka Kawashima
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
Python勉強会1-はじめに
Python勉強会1-はじめに
理 小林
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行
kunihikokaneko1
ROS Tutorial 02 - CIT
ROS Tutorial 02 - CIT
Daiki Maekawa
NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明
Yuki Ito
SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門
Masashi Umezawa
JVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメ
Yoshiaki Shibutani
2015-ShowNetステージ-SDN/NFV
2015-ShowNetステージ-SDN/NFV
Interop Tokyo ShowNet NOC Team
Lagopus Switch Usecases
Lagopus Switch Usecases
Sakiko Kawai
Weitere ähnliche Inhalte
Was ist angesagt?
Lagopus performance
Lagopus performance
Masaru Oki
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
Masaru Oki
Lagopus どれだけ速いのか
Lagopus どれだけ速いのか
Masaru Oki
Lagopusとvagrant
Lagopusとvagrant
Masaru Oki
Tremaとtrema edgeの違い
Tremaとtrema edgeの違い
hiroshi oshiba
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何か
do_aki
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
さくらインターネット株式会社
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
Masaru Oki
仮想ネットワークを実現するOpenVNet
仮想ネットワークを実現するOpenVNet
Akira Yokokawa
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
Akira Yokokawa
Openflow実験
Openflow実験
Yahoo!デベロッパーネットワーク
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
Yoshiaki Shibutani
Clojureによるログ収集と解析
Clojureによるログ収集と解析
Yoshitaka Kawashima
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
Python勉強会1-はじめに
Python勉強会1-はじめに
理 小林
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行
kunihikokaneko1
ROS Tutorial 02 - CIT
ROS Tutorial 02 - CIT
Daiki Maekawa
NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明
Yuki Ito
SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門
Masashi Umezawa
JVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメ
Yoshiaki Shibutani
Was ist angesagt?
(20)
Lagopus performance
Lagopus performance
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
Lagopus どれだけ速いのか
Lagopus どれだけ速いのか
Lagopusとvagrant
Lagopusとvagrant
Tremaとtrema edgeの違い
Tremaとtrema edgeの違い
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何か
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
仮想ネットワークを実現するOpenVNet
仮想ネットワークを実現するOpenVNet
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
Openflow実験
Openflow実験
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
Clojureによるログ収集と解析
Clojureによるログ収集と解析
メタプログラミングって何だろう
メタプログラミングって何だろう
Python勉強会1-はじめに
Python勉強会1-はじめに
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行
ROS Tutorial 02 - CIT
ROS Tutorial 02 - CIT
NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明
SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門
JVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメ
Ähnlich wie SDN Framework Ryu Internal
2015-ShowNetステージ-SDN/NFV
2015-ShowNetステージ-SDN/NFV
Interop Tokyo ShowNet NOC Team
Lagopus Switch Usecases
Lagopus Switch Usecases
Sakiko Kawai
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS Virtualized Infrastructure Operators group ARCHIVES
Lagopus Router v19.07.1
Lagopus Router v19.07.1
Tomoya Hibi
Mr201304 open flow_security_jpn
Mr201304 open flow_security_jpn
FFRI, Inc.
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
Tomoya Hibi
Lagopus, raw socket build
Lagopus, raw socket build
Masaru Oki
"OPEN NETWORKING" に向けた Management / Data Plane の動向
"OPEN NETWORKING" に向けた Management / Data Plane の動向
Kentaro Ebisawa
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
2016-ShowNetステージ-バックボーンの機能としてのSDN/NFV
2016-ShowNetステージ-バックボーンの機能としてのSDN/NFV
Interop Tokyo ShowNet NOC Team
OpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみよう
Kimihiko Kitase
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tomoya Hibi
Tremaで試すFirewall
Tremaで試すFirewall
M Hagiwara
Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)
Akihiro Motoki
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
Sho Shimizu
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
npsg
OpenFlow
OpenFlow
Takashi Ohmoto
Mk network programmability-03
Mk network programmability-03
Miya Kohno
What's new in open shift container platform 4.7 japan_20210318
What's new in open shift container platform 4.7 japan_20210318
Yuhki Hanada
OSC 2014 Tokyo fall plone_terada
OSC 2014 Tokyo fall plone_terada
Manabu Terada
Ähnlich wie SDN Framework Ryu Internal
(20)
2015-ShowNetステージ-SDN/NFV
2015-ShowNetステージ-SDN/NFV
Lagopus Switch Usecases
Lagopus Switch Usecases
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS06: OpenFlowによるネットワーク構築と実証事件
Lagopus Router v19.07.1
Lagopus Router v19.07.1
Mr201304 open flow_security_jpn
Mr201304 open flow_security_jpn
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
Lagopus, raw socket build
Lagopus, raw socket build
"OPEN NETWORKING" に向けた Management / Data Plane の動向
"OPEN NETWORKING" に向けた Management / Data Plane の動向
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
2016-ShowNetステージ-バックボーンの機能としてのSDN/NFV
2016-ShowNetステージ-バックボーンの機能としてのSDN/NFV
OpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみよう
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tremaで試すFirewall
Tremaで試すFirewall
Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
OpenFlow
OpenFlow
Mk network programmability-03
Mk network programmability-03
What's new in open shift container platform 4.7 japan_20210318
What's new in open shift container platform 4.7 japan_20210318
OSC 2014 Tokyo fall plone_terada
OSC 2014 Tokyo fall plone_terada
SDN Framework Ryu Internal
1.
SDN Framework Ryu Internal Satoshi
Kobayashi 2013/11/11
2.
What is Ryu? • SDN
Framework • • • 主に OpenFlow Controller それ以外のプロトコルにも対応 特徴 • • Pure Python OpenFlow 1.3 Support
3.
Motivation • 自分用の設計資料 • • 説明すると理解が深まる コントリビューションの一貫 • 興味を持つ人が増えるといいな
4.
What is OpenFlow? Control
Plane OpenFlow Controller OpenFlow Channel Packet OpenFlow Protocol OpenFlow Switch FlowTable Data Plane Routing Table Ryu はココ Forwarding Packet
5.
What is OpenFlow? • プレーンの分離 • • • コントロール
(制御): OpenFlow Controller データ (転送): OpenFlow Switch TCP/IP のレイヤに依存しないフォワーディング • パケットをマッチしてインストラクションを実行
6.
Overview WSGIApplication Ryu AppManager Spawn Context Context Context Instantiate / Inject SERVICE_BRICK WSGIServer Handler
Handler RyuApp RyuApp RyuApp ! Msg ! User Defined Event Communicate ユーザはココを作る Dispatch Spawn OpenFlowController Datapath Datapath Datapath ! Msg ! ! ! OpenFlow ! Event OpenFlow ! Event OpenFlow Event
7.
Overview • 主要コンポーネントは一枚に収まる • • シンプル ユーザはアプリケーションを作る • それ以外の部分は Ryu が提供する
8.
Event model SERVICE_BRICK Handler OFPHandler Handler Handler Handler Built-in
App Built-in App ! Msg ! OpenFlow Event OFPHandler は OpenFlow プロトコルに 必ず必要な処理を担当する Datapath Your App Your App アプリケーションは 同じスーパークラス RyuApp を親にもつ Datapath は OpenFlow Switch を表現している
9.
Event model • イベントドリブン • OpenFlow メッセージ毎にイベントが発生する • • データパス
-> アプリのイベントハンドラ イベント • OpenFlow メッセージ毎に定義
10.
Protocol Parser Handler RyuApp Python object of1.0 O/F
Event of1.2 Parser of1.3 Datapath socket Binary パーサは OpenFlow プロトコルのネゴシエーション によって選択される socket OpenFlow Channel (over TCP, SSL)
11.
Protocol Parser • 対応 OpenFlow
プロトコルバージョン • 1.0, 1.2, 1.3 • パーサはネゴシエーションで決定 • 前述の OFPHandler が担当
12.
Component Communication 一方向イベント (返り値なし) 双方向イベント (返り値あり) Your App A User-defined Event User-defined Request User-defined Reply Your
App B Your App C
13.
Component Communication • アプリケーション間の通信 • イベントをやり取りする • • 一方向 / 双方向 イベント • ユーザが必要に応じて定義する
14.
Context AppManager Instantiate Inject Context Handler Use RyuApp
15.
Context • アプリで共通に使われるユーティリティなど • • コンストラクタにインジェクトされる 例 • DPSet • • 接続中の Datapath 一覧 WSGIApplication •
HTTP サーバを作るためのクラス
16.
WSGI Support Instantiate AppManager WSGIApplication Call Inject Register Handler WSGIServer Connect HTTP Client RyuApp Dispatch Configure ControllerBase
17.
WSGI Support • WSGI (Web
Service Gateway Interface) • Python 用 Web インターフェース • 多くの Web フレームワークが準拠する • Web API やアプリを作ることができる
18.
Eventlet • Ryu の並行処理に用いられているライブラリ • • OpenStack でも利用されている 類似したものに
Gevent など
19.
Eventlet: thread • ライブラリ Greenlet
を使った協調スレッド • • a.k.a グリーンスレッド スレッドの割り込みが発生しない • • 切り替えのタイミングは I/O 待ちだけ 切り替えをプログラマが把握・管理できる • • スレッドセーフに作りやすい ネイティブスレッドはカーネルのスケジュール次第
20.
Eventlet: thread Cooperative Save Hub thread 2 threads thread
1 Restore Save thread 3 Run I/O 待ち Restore thread 5 thread4 Run
21.
Eventlet: I/O • • ノンブロッキング I/O モンキーパッチを使う • • • • 既存のブロックするコードの挙動を変更 アプリケーションからは透過的に利用できる ブロックするコードの混入に配慮が不要 唯一の注意点は
C 拡張モジュール • モンキーパッチ不能なため
22.
Eventlet: I/O Monkey Python 標準パッケージ patching (blockable) os Eventlet select アプリケーションからは 透過的にノンブロックになる socket threading Use time Application ※
ネイティブスレッドも 協調スレッドに置き換わる
23.
Appendix • Web サイト • • Wiki • • http://osrg.github.io/ryu/ http://github.com/osrg/ryu/wiki リポジトリ • http://github.com/osrg/ryu
24.
以上
Jetzt herunterladen