Ryu » History » Version 4

Thiago Paiva, 23 Sep 2013 12:00

1 1 Thiago Paiva
h1. Ryu
2 1 Thiago Paiva
3 1 Thiago Paiva
4 1 Thiago Paiva
h2. About
5 4 Thiago Paiva
6 1 Thiago Paiva
* Network opearting system
7 1 Thiago Paiva
* OVS, openflow switch
8 1 Thiago Paiva
* python
9 1 Thiago Paiva
* www.osrg.net/ryu
10 1 Thiago Paiva
11 1 Thiago Paiva
12 1 Thiago Paiva
h2. Network management applications on top of Ryu (inside a controller node)
13 1 Thiago Paiva
14 1 Thiago Paiva
* GRE tunneling
15 1 Thiago Paiva
* VLAN support
16 1 Thiago Paiva
* topology discovery
17 1 Thiago Paiva
* MAC based segregation
18 1 Thiago Paiva
19 1 Thiago Paiva
'Only commodity hardware'
20 1 Thiago Paiva
21 1 Thiago Paiva
22 1 Thiago Paiva
h2. Ryu <--> OpenStack
23 1 Thiago Paiva
24 1 Thiago Paiva
* Flat networks regardless of the underlying physical network
25 1 Thiago Paiva
* Scalable multi-tenant isolations
26 1 Thiago Paiva
** tunneling based isolations
27 1 Thiago Paiva
** VLAN does not scale larger than 4096
28 1 Thiago Paiva
** do not need high-end switches
29 1 Thiago Paiva
* Future items:
30 1 Thiago Paiva
** integration with quantum IPAM and L3 API
31 1 Thiago Paiva
** firewall
32 1 Thiago Paiva
** virtual network <--> physical network
33 1 Thiago Paiva
** distributed controllers (redundancy)
34 1 Thiago Paiva
35 3 Thiago Paiva
Quantum plugin for each network technology
36 1 Thiago Paiva
37 1 Thiago Paiva
38 1 Thiago Paiva
h2. Communication
39 1 Thiago Paiva
40 1 Thiago Paiva
'nova requests quantum-server for network configuragion'
41 1 Thiago Paiva
42 1 Thiago Paiva
OVS <--> Ryu: openflow
43 1 Thiago Paiva
44 1 Thiago Paiva
Ryu agent <--> Ryu: REST API
45 1 Thiago Paiva
46 1 Thiago Paiva
Quantum server <--> Ryu: REST API
47 1 Thiago Paiva
48 1 Thiago Paiva
Ryu agent <--> Quantum db: db access
49 1 Thiago Paiva
50 1 Thiago Paiva
VIF driver <--> quantum: Quantum API
51 1 Thiago Paiva
linux_net driver <--> server: Quantum API
52 1 Thiago Paiva
53 1 Thiago Paiva
54 1 Thiago Paiva
h2. Network Creation (network-node = nova-network + linux_net driver + OVS)
55 2 Thiago Paiva
56 1 Thiago Paiva
# to nova-network: create netork
57 1 Thiago Paiva
# nova network --> quantum server: create net
58 1 Thiago Paiva
# quantum server --> Ryu: network <uuid>, <tunnel key>
59 1 Thiago Paiva
# quantum server --> nova network: <uuid>
60 1 Thiago Paiva
# nova network --> linux_net driver: plug
61 1 Thiago Paiva
# linux_net driver --> OVS: create gw-xxx
62 1 Thiago Paiva
# linux_net driver --> quantum server: tentant id, network id, dp id, port, mac
63 1 Thiago Paiva
# quantum server --> Ryu: network id, dp id, port, mac
64 1 Thiago Paiva
# ryu --> OVS:  set flow entryies
65 1 Thiago Paiva
66 1 Thiago Paiva
67 1 Thiago Paiva
h2. Instance creation (compute-node = nova compute + VIF driver + OVS)
68 2 Thiago Paiva
69 1 Thiago Paiva
# to nova compute: create instance
70 1 Thiago Paiva
# nova compute --> quantum server: create port
71 1 Thiago Paiva
# quantum server --> nova compute: uuid
72 1 Thiago Paiva
# nova compute --> VIF driver: plug
73 1 Thiago Paiva
# VIF driver --> OVS: create tap-xxx
74 1 Thiago Paiva
# VIF driver --> quantum server: (tenant_id, dp_id, port, mac)
75 1 Thiago Paiva
# quantum server --> Ryu: (network_id, dp_id, port, mac)
76 1 Thiago Paiva
# Ryu --> OVS: set flow entryies
77 3 Thiago Paiva
78 3 Thiago Paiva
79 3 Thiago Paiva
h2. Node boot up (compute/network-node = OVS + Ryu agent + ryu_v2.ini)
80 3 Thiago Paiva
81 3 Thiago Paiva
# ryu_v2.ini --> Ryu agent: get ip address
82 3 Thiago Paiva
# Ryu agent -->  quantum db: register (dp_id, ip_address)
83 3 Thiago Paiva
# quantum db --> Ryu agent: get list of (dp_id, ip_address, and polling)
84 3 Thiago Paiva
# Ryu agent --> OVS: create vport_grc to ip address
85 3 Thiago Paiva
# Ryu agent --> Ryu: register (dp_id, port_id, remote dp_id)
86 3 Thiago Paiva
87 3 Thiago Paiva
88 3 Thiago Paiva
h2. Component: separation unit
89 3 Thiago Paiva
90 3 Thiago Paiva
*  interface for control and states and generates events
91 3 Thiago Paiva
*  communicate by message passing
92 3 Thiago Paiva
*  language independency
93 3 Thiago Paiva
94 3 Thiago Paiva
h2. OBS:
95 3 Thiago Paiva
96 3 Thiago Paiva
two ways oto isolate tenants: GRE tunnel and VLAN