SlideShare a Scribd company logo
1 of 34
RYU 学习指南
State Key Laboratory of Networking and Switching Technology
Future Networking Laboratory
Cheng Li
Agenda
What is RYU
How RYU workHow to develop
What RYU can do
What is RYU
Ryu is a component-based software defined networking framework.
What is RYU
OSS SDN Framework founded by NTT:
•Python library for SDN
•Apache v2 license
•Supports various protocols for managing network devices:
- OpenFlow, Netconf, OF-config, SNMP etc.
Features:
•OpenFlow
- Version:1.0,1.2,1.3,1.4,1.5
•Parsing and building various protocols packets:
- IP, UDP,TCP,MPLS…
•Ryu can configure Open vSwitch directly without ovs-vsctl, ovsdb-client
•Integration with other project
- OpenStack
- HA with Zookeeper
- IDS(Intrusion Detection System) with snort
What RYU can do
• Various SDN Application and library:
- simple_switch firewall router…
- LACP,STP…
- RESTAPI, RPC
• Integration with other project:
- OpenStack
- HA with Zookeeper
- IDS(Intrusion Detection System) with snort
• Topology Viewer
- Topology discovery
- Flow entry management.
User
RYU 在工业界得到了不错的
应用,使用 RYU 作为控制器
的厂家包括 pica8, centec ,
broadcom 等。开源软件交换
机 OVS,CPQD 等也均支持
RYU 控制器。更多企业的
SDN 解决方案采用 RYU 控制
器。
RYU 以其轻巧,快速开发,
协议支持完整,支持和其他开
源软件协同工作的特点,在开
源控制器的竞争中获得了一席
之地。
Ref:
http://www.slideshare.net/apnic/ryu-sdn-framework?qid=b548fb40-1f9d-477c-ad35-2b9
How to develop
• Installation
• Getting started
• CLI
• GUI
• RESTAPI
• Simple_switch
Installation
• Pip install
~pip install ryu
• Native Installation form Source
~git clone https://github.com/osrg/ryu.git
~cd ryu
~sudo python setup.py install
• Installhelper
~git clone https://github.com/sdnds-tw/ryuInstallHelper.git
~cd ryuInstallHelper
~./ryuInstallHelper.sh
Getting Started
Startup Options
●ryu-manager 启动 ryu, 如果不加任何参数,则默认启动 ofphandler 模块。
●ryu run 等同于 ryu-manager
●Ryu-manager –h 查看帮助信息
●--verbose 打印详细信息
●--version
●--observe-links 自动下发 LLDP ,用于拓扑发现。
●…
●Example: ryu-manager simple_switch.py ofctl_rest.py –observe-links
CLI
CLI register
●参数注册统一使用 oslo : OpenStack Common Libraries 。
●cfg.py: CONF=oslo.config.cfg.ConfigOpts()
●from ryu import cfg :cfg 模块定义了 CONF 对象
●CONF.register_cli_opts(
[cfg.StrOpt(“wsapi-port”, default =8080, help = ‘webapp listen port’ )])
GUI
● 使用官方 GUI
o 官方提供 GUI 套件
o 详细教程:
http://www.muzixing.com/pages/2015/04/21/ryu316-guian-zhuang-yu-topologymo-kuai-fen-x
● 使用第三方 GUI
o 第三方 GUI 提供者有很多
o http://sdnhub.org/releases/sdn-starter-kit-ryu/
o ANT GUI
GUI
GUI
GUI
RESAT API
RYU 提供了 RESTAPI , 用于可以使用 RESTAPI 来开发应用程序。
•Ofctl_rest.py 提供 OpenFlow 方面的 REST API 接口:
get the list of all switches GET /stats/switches
get the desc stats of the switch GET /stats/desc/<dpid>
get flows stats of the switch GET /stats/flow/<dpid>
get flows stats of the switch filtered by the fields : POST /stats/flow/<dpid>
•Rest_topology.py 提供获取拓扑相关 API:
get all the switches GET /v1.0/topology/switches
get the switch GET /v1.0/topology/switches/<dpid>
get all the links GET /v1.0/topology/links
get the links of a switch GET /v1.0/topology/links/<dpid>
Write your first APP
http://ryu.readthedocs.org/en/latest/writing_ryu_app.html
Program model
Simple hub
Simple hub
Controller
SwitchHost A Host C
Host B
Packet Packet
Packet
Packet IN
Packet out
Simple hub
控制器需要做的事情:
•创建一个 app 类,用于描述 hub 的行为:
•注册监听 Packet_in 事件的处理函数,用于处理 packet_in 事件
Event
EventOFPMsgBase
Eventbase
OFPEVENT
Event
MSG(datapath, version,msg_type, msg_len, xid, buf)
Datapath
ProtocolDesc
(ofproto, ofproto_parser)
Others
OFPActionOutput
OFPActionOutput
OFPAction
OFPActionHeader
StringifyMixin
Simple switch
控制器需要做的事情:
•创建一个 app 类,用于描述 switch 的行为:
•注册监听 Packet_in 事件的处理函数,用于处理 packet_in 事件:相比 hub ,多了 MAC 地址自学习功
能
•链接: http://osrg.github.io/ryu-book/en/html/switching_hub.html
Parsing Packet
Building Packet
Traffic Monitor
控制器需要做的事情:
•创建一个 app 类,用于描述流量监控,继承 Simple switch ;
•完成发送获取网络信息报文的函数;
•注册处理统计数据回复报文的 handler 。
•教程:
•http://osrg.github.io/ryu-book/en/html/traffic_monitor.html
•http://www.muzixing.com/pages/2015/03/04/traffic-monitor-in-ryu.html
Controller
Switch
Stats_reqeust Stats_reply
How RYU work
• Architecture
• RYU code
• Call Graph
Architecture
RYU code
Call Graph
Data plane
Main(RYU)
AppManager
Service brick (event router)
OpenVSwitch
OFHandler(RyuAPP)
ofprotoofproto_v1_* ofproto_v1_*_parser
OpenFlowController
Hello
handler
Switch features
handler
Handlers…
libARP ipv4… icmp
Datapaths
dp1 dp2 dp3 dpn
StreamServer
OpenVSwitch
OpenVSwitch
Socket Client
Read&wirte socket
Socket server
connect
CONF
APPn APP2 OFPHandlerAPP list
event
event
event
response
New datapath
Thank you
MUZIXING.COM
State Key Laboratory of Networking and Switching Technology
Future Networking Laboratory
Cheng Li

More Related Content

What's hot

Predictive Analytics with Airflow and PySpark
Predictive Analytics with Airflow and PySparkPredictive Analytics with Airflow and PySpark
Predictive Analytics with Airflow and PySparkRussell Jurney
 
Comparing ospf vs isis
Comparing ospf vs isisComparing ospf vs isis
Comparing ospf vs isisrushi7567
 
Application Centric Infrastructure (ACI), the policy driven data centre
Application Centric Infrastructure (ACI), the policy driven data centreApplication Centric Infrastructure (ACI), the policy driven data centre
Application Centric Infrastructure (ACI), the policy driven data centreCisco Canada
 
Software defined networking(sdn) vahid sadri
Software defined networking(sdn) vahid sadriSoftware defined networking(sdn) vahid sadri
Software defined networking(sdn) vahid sadriVahid Sadri
 
Network Function Virtualization : Overview
Network Function Virtualization : OverviewNetwork Function Virtualization : Overview
Network Function Virtualization : Overviewsidneel
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
Understanding senetas layer 2 encryption
Understanding senetas layer 2 encryptionUnderstanding senetas layer 2 encryption
Understanding senetas layer 2 encryptionSenetas
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Seung-Hoon Baek
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxM.Qasim Arham
 
Software-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the NetworkSoftware-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the NetworkRobert Keahey
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUseProsima
 
Cisco commands List for Beginners (CCNA, CCNP)
Cisco commands List for Beginners (CCNA, CCNP)Cisco commands List for Beginners (CCNA, CCNP)
Cisco commands List for Beginners (CCNA, CCNP)DH Da Lat
 
Performance Analysis of AODV and DSDV - FINAL YEAR PROJECT
Performance Analysis of AODV and DSDV - FINAL YEAR PROJECTPerformance Analysis of AODV and DSDV - FINAL YEAR PROJECT
Performance Analysis of AODV and DSDV - FINAL YEAR PROJECTRavi Teja P
 
Developing SDN apps in Ryu
Developing SDN apps in RyuDeveloping SDN apps in Ryu
Developing SDN apps in RyuChe Wei Lin
 
MSTP High Level Overview
MSTP High Level OverviewMSTP High Level Overview
MSTP High Level OverviewGary Jan
 

What's hot (20)

Predictive Analytics with Airflow and PySpark
Predictive Analytics with Airflow and PySparkPredictive Analytics with Airflow and PySpark
Predictive Analytics with Airflow and PySpark
 
Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)
 
Mininet Basics
Mininet BasicsMininet Basics
Mininet Basics
 
Comparing ospf vs isis
Comparing ospf vs isisComparing ospf vs isis
Comparing ospf vs isis
 
Application Centric Infrastructure (ACI), the policy driven data centre
Application Centric Infrastructure (ACI), the policy driven data centreApplication Centric Infrastructure (ACI), the policy driven data centre
Application Centric Infrastructure (ACI), the policy driven data centre
 
IBM MQ V9 Overview
IBM MQ V9 OverviewIBM MQ V9 Overview
IBM MQ V9 Overview
 
Software defined networking(sdn) vahid sadri
Software defined networking(sdn) vahid sadriSoftware defined networking(sdn) vahid sadri
Software defined networking(sdn) vahid sadri
 
Network Function Virtualization : Overview
Network Function Virtualization : OverviewNetwork Function Virtualization : Overview
Network Function Virtualization : Overview
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Understanding senetas layer 2 encryption
Understanding senetas layer 2 encryptionUnderstanding senetas layer 2 encryption
Understanding senetas layer 2 encryption
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
 
MX960 Router
MX960 RouterMX960 Router
MX960 Router
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptx
 
Software-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the NetworkSoftware-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the Network
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUs
 
Cisco commands List for Beginners (CCNA, CCNP)
Cisco commands List for Beginners (CCNA, CCNP)Cisco commands List for Beginners (CCNA, CCNP)
Cisco commands List for Beginners (CCNA, CCNP)
 
Performance Analysis of AODV and DSDV - FINAL YEAR PROJECT
Performance Analysis of AODV and DSDV - FINAL YEAR PROJECTPerformance Analysis of AODV and DSDV - FINAL YEAR PROJECT
Performance Analysis of AODV and DSDV - FINAL YEAR PROJECT
 
Developing SDN apps in Ryu
Developing SDN apps in RyuDeveloping SDN apps in Ryu
Developing SDN apps in Ryu
 
Ryu sdn framework
Ryu sdn framework Ryu sdn framework
Ryu sdn framework
 
MSTP High Level Overview
MSTP High Level OverviewMSTP High Level Overview
MSTP High Level Overview
 

Similar to Ryu Learning Guide

Sdn 之旅 open suse_asia_summit_20151206
Sdn 之旅 open suse_asia_summit_20151206Sdn 之旅 open suse_asia_summit_20151206
Sdn 之旅 open suse_asia_summit_20151206Fei Ji Siao
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理frankwsj
 
[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程NJU OPEN
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用勇浩 赖
 
簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能John L Chen
 
OpenWRT, A value-add base solution for your product. (1st part, chihchun)
OpenWRT, A value-add base solution for your product. (1st part, chihchun)OpenWRT, A value-add base solution for your product. (1st part, chihchun)
OpenWRT, A value-add base solution for your product. (1st part, chihchun)Rex Tsai
 
IoT開發平台NodeMCU
IoT開發平台NodeMCUIoT開發平台NodeMCU
IoT開發平台NodeMCU承翰 蔡
 
用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式Stanley Ho
 
Python&GUI
Python&GUIPython&GUI
Python&GUILeo Zhou
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率gowell
 
Onos sdn ip 建置之路 20160522
Onos sdn ip 建置之路 20160522Onos sdn ip 建置之路 20160522
Onos sdn ip 建置之路 20160522Fei Ji Siao
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on praticeKenny (netman)
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.toleone
 
LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)Bear Wang
 
Introduction to ngn sce
Introduction to ngn sceIntroduction to ngn sce
Introduction to ngn scegdems
 

Similar to Ryu Learning Guide (20)

Sdn 之旅 open suse_asia_summit_20151206
Sdn 之旅 open suse_asia_summit_20151206Sdn 之旅 open suse_asia_summit_20151206
Sdn 之旅 open suse_asia_summit_20151206
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 
簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能
 
OpenWRT, A value-add base solution for your product. (1st part, chihchun)
OpenWRT, A value-add base solution for your product. (1st part, chihchun)OpenWRT, A value-add base solution for your product. (1st part, chihchun)
OpenWRT, A value-add base solution for your product. (1st part, chihchun)
 
IoT開發平台NodeMCU
IoT開發平台NodeMCUIoT開發平台NodeMCU
IoT開發平台NodeMCU
 
Git安裝
Git安裝Git安裝
Git安裝
 
用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式
 
Python&GUI
Python&GUIPython&GUI
Python&GUI
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率
 
Onos sdn ip 建置之路 20160522
Onos sdn ip 建置之路 20160522Onos sdn ip 建置之路 20160522
Onos sdn ip 建置之路 20160522
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
 
20140409
2014040920140409
20140409
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.t
 
LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)
 
Swing
SwingSwing
Swing
 
AI/ML O-RAN Cloud-Native Automation
AI/ML O-RAN Cloud-Native AutomationAI/ML O-RAN Cloud-Native Automation
AI/ML O-RAN Cloud-Native Automation
 
Introduction to ngn sce
Introduction to ngn sceIntroduction to ngn sce
Introduction to ngn sce
 

Ryu Learning Guide

  • 1. RYU 学习指南 State Key Laboratory of Networking and Switching Technology Future Networking Laboratory Cheng Li
  • 2. Agenda What is RYU How RYU workHow to develop What RYU can do
  • 3. What is RYU Ryu is a component-based software defined networking framework.
  • 4. What is RYU OSS SDN Framework founded by NTT: •Python library for SDN •Apache v2 license •Supports various protocols for managing network devices: - OpenFlow, Netconf, OF-config, SNMP etc. Features: •OpenFlow - Version:1.0,1.2,1.3,1.4,1.5 •Parsing and building various protocols packets: - IP, UDP,TCP,MPLS… •Ryu can configure Open vSwitch directly without ovs-vsctl, ovsdb-client •Integration with other project - OpenStack - HA with Zookeeper - IDS(Intrusion Detection System) with snort
  • 5. What RYU can do • Various SDN Application and library: - simple_switch firewall router… - LACP,STP… - RESTAPI, RPC • Integration with other project: - OpenStack - HA with Zookeeper - IDS(Intrusion Detection System) with snort • Topology Viewer - Topology discovery - Flow entry management.
  • 6. User RYU 在工业界得到了不错的 应用,使用 RYU 作为控制器 的厂家包括 pica8, centec , broadcom 等。开源软件交换 机 OVS,CPQD 等也均支持 RYU 控制器。更多企业的 SDN 解决方案采用 RYU 控制 器。 RYU 以其轻巧,快速开发, 协议支持完整,支持和其他开 源软件协同工作的特点,在开 源控制器的竞争中获得了一席 之地。 Ref: http://www.slideshare.net/apnic/ryu-sdn-framework?qid=b548fb40-1f9d-477c-ad35-2b9
  • 7. How to develop • Installation • Getting started • CLI • GUI • RESTAPI • Simple_switch
  • 8. Installation • Pip install ~pip install ryu • Native Installation form Source ~git clone https://github.com/osrg/ryu.git ~cd ryu ~sudo python setup.py install • Installhelper ~git clone https://github.com/sdnds-tw/ryuInstallHelper.git ~cd ryuInstallHelper ~./ryuInstallHelper.sh
  • 9. Getting Started Startup Options ●ryu-manager 启动 ryu, 如果不加任何参数,则默认启动 ofphandler 模块。 ●ryu run 等同于 ryu-manager ●Ryu-manager –h 查看帮助信息 ●--verbose 打印详细信息 ●--version ●--observe-links 自动下发 LLDP ,用于拓扑发现。 ●… ●Example: ryu-manager simple_switch.py ofctl_rest.py –observe-links
  • 10. CLI CLI register ●参数注册统一使用 oslo : OpenStack Common Libraries 。 ●cfg.py: CONF=oslo.config.cfg.ConfigOpts() ●from ryu import cfg :cfg 模块定义了 CONF 对象 ●CONF.register_cli_opts( [cfg.StrOpt(“wsapi-port”, default =8080, help = ‘webapp listen port’ )])
  • 11. GUI ● 使用官方 GUI o 官方提供 GUI 套件 o 详细教程: http://www.muzixing.com/pages/2015/04/21/ryu316-guian-zhuang-yu-topologymo-kuai-fen-x ● 使用第三方 GUI o 第三方 GUI 提供者有很多 o http://sdnhub.org/releases/sdn-starter-kit-ryu/ o ANT GUI
  • 12. GUI
  • 13. GUI
  • 14. GUI
  • 15. RESAT API RYU 提供了 RESTAPI , 用于可以使用 RESTAPI 来开发应用程序。 •Ofctl_rest.py 提供 OpenFlow 方面的 REST API 接口: get the list of all switches GET /stats/switches get the desc stats of the switch GET /stats/desc/<dpid> get flows stats of the switch GET /stats/flow/<dpid> get flows stats of the switch filtered by the fields : POST /stats/flow/<dpid> •Rest_topology.py 提供获取拓扑相关 API: get all the switches GET /v1.0/topology/switches get the switch GET /v1.0/topology/switches/<dpid> get all the links GET /v1.0/topology/links get the links of a switch GET /v1.0/topology/links/<dpid>
  • 16. Write your first APP http://ryu.readthedocs.org/en/latest/writing_ryu_app.html
  • 19. Simple hub Controller SwitchHost A Host C Host B Packet Packet Packet Packet IN Packet out
  • 20. Simple hub 控制器需要做的事情: •创建一个 app 类,用于描述 hub 的行为: •注册监听 Packet_in 事件的处理函数,用于处理 packet_in 事件
  • 22. OFPEVENT Event MSG(datapath, version,msg_type, msg_len, xid, buf) Datapath ProtocolDesc (ofproto, ofproto_parser) Others
  • 24. Simple switch 控制器需要做的事情: •创建一个 app 类,用于描述 switch 的行为: •注册监听 Packet_in 事件的处理函数,用于处理 packet_in 事件:相比 hub ,多了 MAC 地址自学习功 能 •链接: http://osrg.github.io/ryu-book/en/html/switching_hub.html
  • 27. Traffic Monitor 控制器需要做的事情: •创建一个 app 类,用于描述流量监控,继承 Simple switch ; •完成发送获取网络信息报文的函数; •注册处理统计数据回复报文的 handler 。 •教程: •http://osrg.github.io/ryu-book/en/html/traffic_monitor.html •http://www.muzixing.com/pages/2015/03/04/traffic-monitor-in-ryu.html Controller Switch Stats_reqeust Stats_reply
  • 28. How RYU work • Architecture • RYU code • Call Graph
  • 32. Data plane Main(RYU) AppManager Service brick (event router) OpenVSwitch OFHandler(RyuAPP) ofprotoofproto_v1_* ofproto_v1_*_parser OpenFlowController Hello handler Switch features handler Handlers… libARP ipv4… icmp Datapaths dp1 dp2 dp3 dpn StreamServer OpenVSwitch OpenVSwitch Socket Client Read&wirte socket Socket server connect CONF APPn APP2 OFPHandlerAPP list event event event response New datapath
  • 33.
  • 34. Thank you MUZIXING.COM State Key Laboratory of Networking and Switching Technology Future Networking Laboratory Cheng Li

Editor's Notes

  1. outline: 什么是Mininet 如何安装mininet 如何启动mininet -启动参数 CLI介绍 自定义拓扑 与Internet通信 源码分析。 拓展mininet Part 1: Everyday Mininet Usage Display Startup Options Start Wireshark Interact with Hosts and Switches Test connectivity between hosts Run a simple web server and client Cleanup Part 2: Advanced Startup Options Run a Regression Test Changing Topology Size and Type Link variations Adjustable Verbosity Custom Topologies ID = MAC XTerm Display Other Switch Types Mininet Benchmark Everything in its own Namespace (user switch only) Part 3: Mininet Command-Line Interface (CLI) Commands Display Options Python Interpreter Link Up/Down XTerm Display Part 4: Python API Examples SSH daemon per host Part 5: Walkthrough Complete! Next Steps to mastering Mininet Appendix: Supplementary Information Using a Remote Controller NOX Classic http://csie.nqu.edu.tw/smallko/sdn/sdn.htm Sflow
  2. Ref:http://www.slideshare.net/yamahata/ryu-sdnframeworkupload?related=1
  3. http://man7.org/linux/man-pages/man7/namespaces.7.html
  4. http://openvswitch.org/
  5. http://openvswitch.org/
  6. OVSInstallHelper.git也是一个很好的意见安装脚本。
  7. 介绍其他启动参数
  8. 介绍其他启动参数
  9. 介绍其他启动参数
  10. http://www.muzixing.com/pages/2015/05/10/getting-started-with-restapi-of-ryu.html
  11. http://www.slideshare.net/yamahata/ryu-sdnframeworkupload
  12. http://ryu.readthedocs.org/en/latest/writing_ryu_app.html
  13. 转去介绍代码
  14. Event类相关继承
  15. Event类组成,在事件监听handler里面需要对传入的ev对象进行解析,提取对应的信息,上图介绍了数据结构的逻辑关系。
  16. OFPAction类的继承关系。
  17. http://osrg.github.io/ryu-book/en/html/switching_hub.html#id1
  18. 如何简单解析数据包
  19. 如何构建一个数据包
  20. http://osrg.github.io/ryu-book/en/html/traffic_monitor.html
  21. http://openvswitch.org/
  22. http://www.slideshare.net/yamahata/ryu-sdnframeworkupload
  23. RYU文件目录,具体分析:http://www.muzixing.com/pages/2014/09/20/ryuru-men-jiao-cheng.html
  24. http://geekwei.com/
  25. 此图为RYU函数调用指示图,非常重要。