ryu: network operating system - ryu sdn framework · 2020. 5. 20. · ryu: network operating system...
TRANSCRIPT
![Page 1: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/1.jpg)
Ryu: Network Operating System
Kazutaka Morita NTT Software Innovation Center
Isaku Yamahata VA Linux
June 6, 2012
![Page 2: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/2.jpg)
Agenda ² Overview ² How it works ² Demo ² Summary
2 �
![Page 3: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/3.jpg)
Overview
![Page 4: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/4.jpg)
What is Ryu? ² Open-sourced network operating system
³ Network operating system ® Programmatic network control interface ® Logically centralized controller for thousands of switches
(OVS, openflow switch) ³ Open source software (Apache v2)
® Fully written in Python ® Project site: http://www.osrg.net/ryu/
² Ryu stands for ³ 流 - Means “flow” in Japanese ³ 龍 - Means “Japanese dragon”, one of water gods
4 �
![Page 5: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/5.jpg)
Overview
Administrator app app app
ovs
ovs
Openflow switch
Openflow switch
Programmatic network control interface
・ We can implement network management applications on top of the Ryu
RESTful management API
Logically centralized controller
・ Decouples virtual networks from the physical network
・Supports OpenFlow 1.0 (including Nicira Extension)
Ryu network controllers
5 �
![Page 6: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/6.jpg)
Goals ² De facto OSS network operating system ² High quality enough for use in large
production environment ³ Code quality ³ Functionality ³ Usability
² Become the standard network controller of cloud software (e.g. OpenStack) ³ Ryu plugin is merged into OpenStack Essex
² Default Controller for fedora/debian/ubuntu
6 �
![Page 7: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/7.jpg)
What does Ryu provide? ² Ryu applications
³ GRE tunneling ³ VLAN support ³ Topology discovery ³ MAC based segregation
² We can use these features with only commodity hardware
7 �
![Page 8: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/8.jpg)
How it works
![Page 9: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/9.jpg)
Integrate with OpenStack ² OpenStack
³ Open source software for building private and public clouds
² What does Ryu bring to OpenStack? ³ Flat L2 networks regardless of the
underlying physical network ³ Scalable multi-tenant isolations
® Ryu provides tunneling based isolations ® VLAN doesn’t scale larger than 4096 ® We don’t need high-end switches
9 �
![Page 10: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/10.jpg)
OpenStack ² Nova: cloud management system
³ Nova compute node ® Physical machine that runs guest VM instances
³ Nova network node ® Physical machine that runs networks gateway to the outside network
² Quantum: network management system ³ Quantum server
® Manages network configuration ® Nova requests quantum-server for network configuration
³ Quantum agent ® It runs on nova compute/network node
³ Quantum plugin ® Plugin for each network technology ® Ryu plugin
10 �
![Page 11: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/11.jpg)
Ryu
OVS Ryu agent Vif driver
Quantum server
Quantum db: (datapath id, Tunnel ip) (network uuid, tunnel key)
Ryu db (in memory) (Tenant id, tunnel id)
(dpid, port, tenant id, mac addr) (dpid, port, remote_dpid)
OVS Ryu agent linux_net driver
How Ryu works with OpenStack
compute-‐node Network-‐node
Quantum-‐node: somewhere where compute/network can communicate. Typically on network-‐node
Ryu-‐node: somewhere where compute/network/quantum can communicate Typically on network-‐node
REST API
OpenFlow Quantum API
Create Tap port
Create Tunnel port
DB access
![Page 12: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/12.jpg)
Demo
![Page 13: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/13.jpg)
Ryu demo (GRE tunneling)
13 �Linux (phyisical machine)
Linux
OVS
Qemu/KVM
ping
Linux
Qemu/KVM
ping
Linux
Nova compute
Quantum agent
bridge
GRE tunnel
KVM
Linux
OVS
Qemu/KVM
ping
Linux
Qemu/KVM
ping
Linux
Nova compute
Quantum agent
GRE tunnel
KVM
Linux
OVS
Qemu/KVM
ping
Linux
Qemu/KVM
ping
Linux
Nova compute
Quantum agent
GRE tunnel
ryu
Quantum server
Nova network Openstack
servers
KVM
![Page 14: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/14.jpg)
14 �
Tenant A VM 1
Tenant A VM 2
Tenant B VM 1
OVS 1
Host 1
Tenant A VM 3
Tenant B VM 2
Tenant B VM 3
OVS 2
Host 2
Tenant A VM 4
Tenant B VM 4
Tenant B VM 5
OVS 3
Host 3 GRE tunnel 1-3
GRE tunnel 1-2
GRE tunnel 2-3
Tenant A ID -> 3 Tenant B ID -> 4
Ryu demo (GRE tunneling)
![Page 15: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/15.jpg)
Summary
![Page 16: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/16.jpg)
Future items ² Integration with Quantum IPAM and L3
API ² Firewall ² Virtual network to physical network, and
vice versa ³ Convert among GRE key, VLAN tag, …
² Distributed controllers ³ No single point of failure ³ Datacenter-wide scalability
16 �
![Page 17: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/17.jpg)
Summary ² Ryu is an open-sourced network operating
system licensed under Apache License v2. ³ Site: http://www.osrg.net/ryu/ ³ ML: [email protected]
² Set up Ryu environment with VM images ³ https://github.com/osrg/ryu/wiki/RYU-
OpenStack-environment-VM-image-file-HOWTO
17 �
![Page 18: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/18.jpg)
Thank you! Any questions?
18 �
![Page 19: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/19.jpg)
Appendix
![Page 20: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/20.jpg)
Block diagram of Ryu
20 �
Openflow protocol Parser/serializer Event queue/dispatcher
RyuApp magement
HTTP server (WSGI)
Switch management/OFP event
REST API RyuApp GREtunnel
RyuApp Discovery
RyuApp VLAN
Storage Memory
...
Higher level event
![Page 21: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/21.jpg)
OpenStack basics ² OpenStack
³ Nova: cloud management system ³ Quantum: network management system
² Nova compute node ³ Physical machine that runs guest VM instances
² Nova network node ³ Physical machine that runs networks gateway to the outside network
² Quantum server ³ Manages network configuration ³ Nova requests quantum-server for network configuration
² Quantum agent ³ It runs on nova compute/network node
² Quantum plugin ³ Plugin for each network technology ³ Ryu plugin
21 �
![Page 22: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/22.jpg)
GRE tunneling with openstack l Network Tenant creation
l GRE key assignment l Gateway creation
l Guest VM instance creation l Port creation - tenant ↔ key ↔ port relationship
l Setting flow to the VM port l Tunnel port management
l Tunnel port creation/deletion - Track physical compute node
l Setting flow to the tunnel port
![Page 23: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/23.jpg)
Ryu
OVS Ryu agent
Vif driver
Quantum server
OVS
Ryu agent
Vif driver
OVS Ryu agent
Vif driver
vport-‐gre: remote_ip=xxx, local_ip=yyy, key=0
Quantum db: (datapath id, Tunnel ip)
The Agent polls db: Create vport-‐gre Update port status
VM Port: (dpid, Tenant uuid, mac addr) Tunnel port: (dpid, local_ip, remote_ip)
(tenant uuid, tunnel_id)
Ryu db (in memory) (Tenant id, tunnel id)
(dpid, port, tenant id, mac addr) (dpid, port, local_ip, remote_ip)
(tenant, tunnel)
vm port(dpid, tenant uuid, mac addr)
OVS Ryu agent
linux_net driver
Gw port(dpid, Tenant uuid, mac addr)
(tenant uuid, tunnel_id)
Linux_net driver creates gw ports
Vif driver creates vm port
Network id(uuid) creation/deletionq On vm creation: port uuid, mac address
Tunnel id
Data`low
![Page 24: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/24.jpg)
Ryu Quantum server
OVS linux_net driver
Network Creation
Network-‐node
2. Create net 4. uuid
nova-‐network 1. create network
6. Create gw-‐xxx
7. (tenant_id, network_id, dpid, Port, mac)
3. Network uuid,Tunnel key
5.plug
8 (network_id, dpid, port, mac)
9. set `low entryies
![Page 25: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/25.jpg)
Ryu Quantum server
OVS vif driver
Instance Creation
compute-‐node
2. Create port 3. uuid
nova-‐compute 1. create instance
5. Create tap-‐xxx
7. (network_id, dpid, port, mac)
4.plug
6. (tenant_id, network_id, dpid, Port, mac) 8. set `low entryies
![Page 26: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/26.jpg)
Ryu Quantum server
OVS
Node boot up
Compute/Network-‐node
Ryu agent
ryu_v2.ini
Quantum db
1. Get IP address
2. Register (dpid, ipaddress) 3. Get list of
(dpid, ip address) (and polling)
4. Create vport-‐gre to ip address
5. register (dpid, port-‐id, remote_dpid)
![Page 27: Ryu: Network Operating System - Ryu SDN Framework · 2020. 5. 20. · Ryu: Network Operating System Kazutaka Morita NTT Software Innovation Center Isaku Yamahata VA Linux June 6,](https://reader036.vdocument.in/reader036/viewer/2022062610/610cb6d92299ca3e176e8daa/html5/thumbnails/27.jpg)
Table 0 Table 1 Table 2 Src table Tunnel out Local out
VM port
match action
in_port src mac
set_tunnel goto table 1
in_port drop
match action
tunnel_id dst mac
output(tunnel) goto table 2
match action
tunnel_id dst mac
output(vm) tunnel_id goto table 2
tunnel_id drop Tunnel port in_port
tunnel_id goto table 2
in_port drop
OVS VM1
VM2 GRE tunnel
tunnel port
VM port
In port
Flow Table Usage