OpenFLOW Controllers » History » Version 17

Thiago Paiva, 06 Jun 2013 13:38

1 1 Thiago Paiva
h1. OpenFLOW Controllers
2 1 Thiago Paiva
3 5 Thiago Paiva
Características a analisar: 
4 1 Thiago Paiva
5 5 Thiago Paiva
* linguagem
6 5 Thiago Paiva
* licença
7 5 Thiago Paiva
* tamanho do pacote
8 5 Thiago Paiva
* features
9 5 Thiago Paiva
* documentação
10 5 Thiago Paiva
* exemplos
11 6 Thiago Paiva
* versão do OpenFLOW
12 1 Thiago Paiva
13 5 Thiago Paiva
14 1 Thiago Paiva
h2. OpenFLOW
15 5 Thiago Paiva
16 5 Thiago Paiva
* protocol between the controller and the switches
17 5 Thiago Paiva
* set of operations on the switches
18 1 Thiago Paiva
19 1 Thiago Paiva
* http://routingfreak.wordpress.com/2013/03/01/openflow-controllers-whats-missing-in-routing-protocols-today/
20 1 Thiago Paiva
* http://en.wikipedia.org/wiki/OpenFlow
21 1 Thiago Paiva
* http://www.openflow.org/
22 1 Thiago Paiva
* http://www.openflow.org/wp/openflow-components/
23 1 Thiago Paiva
* http://bigswitch.com/blog/2012/12/20/why-openflow-hardware-control-matters-in-the-data-center
24 1 Thiago Paiva
25 1 Thiago Paiva
26 1 Thiago Paiva
27 1 Thiago Paiva
28 1 Thiago Paiva
h2. Controladores
29 1 Thiago Paiva
30 2 Raphael Cóbe
h3. Tabela Resumo:
31 2 Raphael Cóbe
32 3 Raphael Cóbe
|_. Nome|_. Linguagem|_. Licença|_. Tamanho do Pacote                              |_. Features              |_. URL|_. Versão do OpenFlow |
33 7 Raphael Cóbe
|*Nox*    |C++         |GPL V3    |>. 258 Kb (Fonte)                                 | Provides a C++ OpenFlow 1.0 API
34 11 Raphael Cóbe
    Provides *fast, asynchronous IO*
35 1 Thiago Paiva
    Includes sample components for:
36 11 Raphael Cóbe
        *Topology discovery*
37 11 Raphael Cóbe
        *Learning switch*
38 11 Raphael Cóbe
        *Network-wide switch* |http://www.noxrepo.org/pox/documentation/| 1.0 |
39 7 Raphael Cóbe
|*Pox*    |Python      |GPL V3    |>. 1.1 Mb (Fonte)                                 | “Pythonic” OpenFlow interfacePOX Performance Graph
40 11 Raphael Cóbe
*Reusable sample components* for *path selection*, *topology discovery*, etc.
41 11 Raphael Cóbe
“Runs anywhere” – Can *bundle with install-free PyPy runtime* for easy deployment
42 11 Raphael Cóbe
Specifically targets *Linux*, Mac OS, and Windows
43 11 Raphael Cóbe
Supports the *same GUI and visualization tools as NOX*
44 11 Raphael Cóbe
*Performs well compared to NOX* applications written in Python          |http://www.noxrepo.org/nox/documentation/| 1.0|
45 7 Raphael Cóbe
|*Beacon* |Java        |GPL v2    |>. 12.2 Mb (Fonte) 17 Mb (Binários + Dependências)|    *Stable* - Beacon has been in development since early 2010, and has been used in several research projects, networking classes, and trial deployments. Beacon currently powers a 100-vswitch, 20-physical switch experimental data center and has run for months without downtime.
46 1 Thiago Paiva
    *Cross-platform* - Beacon is written in Java and runs on many platforms, from high end multi-core Linux servers to Android phones.
47 1 Thiago Paiva
    *Dynamic* - Code bundles in Beacon can be started/stopped/refreshed/installed at runtime, without interrupting other non-dependent bundles (ie replace your running Learning Switch application without disconnecting switches).
48 1 Thiago Paiva
    *Rapid Development* - Beacon is easy to get up and running. Java and Eclipse simplify development and debugging of your applications.
49 1 Thiago Paiva
    *Fast* - Beacon is multithreaded, check out performance benchmarks.
50 1 Thiago Paiva
    *Web UI* - Beacon optionally embeds the Jetty enterprise web server and a custom extensible UI framework
51 1 Thiago Paiva
    *Frameworks* - Beacon builds on mature Java frameworks such as Spring and Equinox (OSGi)           |https://openflow.stanford.edu/display/Beacon/Guides|1.0|
52 8 Raphael Cóbe
|*Maestro* |Java        |LGPL v2.1    |>. 117 Kb (Binários) 262 Kb (Fonte) |*Developed in Java* (both the platform and the components) - Highly portable to various operating systems and architectures.
53 1 Thiago Paiva
    *Multi-threaded* - Takes full advantage of multi-core processors. 
54 1 Thiago Paiva
    Currently provides the control components for realizing either a learning switch network, or a routed network using OpenFlow switches.              |http://code.google.com/p/maestro-platform/wiki/MaestroTutorial|1.0|
55 10 Raphael Cóbe
|*Ryu* |Python        |Apache V2.0   |>. 12.2 Mb (Fonte) |*OpenStack supports Ryu*. You can create tens of thousands of isolated virtual networks without using VLAN. You manage virtual networks, OpenStack notifies of Ryu and Ryu configures OpenvSwitches properly.
56 1 Thiago Paiva
    You can try Now. Ryu's *pre-configured VM image* file enables you to easily set up multi-node OpenStack environment.
57 1 Thiago Paiva
    We try Ryu with *software OpenFlow Switch* (OpenvSwitch) and bunch of *hardware OpenFlow Switches*.|https://github.com/osrg/ryu/wiki|1.0, 1.2, 1.3 e Nicira Extensions|
58 16 Thiago Paiva
|*Floodlight* |Java        |Apache V2.0   |>. 46 Mb (Fonte)| - Offers a *module loading system* that make it simple to extend and enhance.
59 16 Thiago Paiva
    - *Support for OpenStack* cloud orchestration platform - *OpenStack Quantum plugin*.
60 16 Thiago Paiva
    - *It is the core of 'BigSwitch' (BigSwitch open-sourced FloodLight)*.
61 16 Thiago Paiva
    - *Easy to set up* with *minimal dependencies*.
62 16 Thiago Paiva
    - Supports a broad range of *virtual- and physical- OpenFlow switches*.
63 16 Thiago Paiva
    - Can handle *mixed OpenFlow and non-OpenFlow networks* – it can manage multiple “islands” of OpenFlow hardware switches.
64 16 Thiago Paiva
    - Designed to be *high-performance* – is the *core of a commercial product from Big Switch Networks*.
65 16 Thiago Paiva
    - *API REST*.
66 16 Thiago Paiva
    - Enterprise class (production).
67 16 Thiago Paiva
    - Floodlight VM*. It includes floodlight running by default and Mininet.
68 16 Thiago Paiva
    - *Nos repositórios do Ubuntu*.
69 16 Thiago Paiva
    - *Avior (GUI open-source). |http://www.projectfloodlight.org/documentation/|1.0|
70 16 Thiago Paiva
|*BigSwitch*| java | closed-source | -- | - OpenStack
71 16 Thiago Paiva
    - based on Beacon 
72 16 Thiago Paiva
    - targets production networks
73 16 Thiago Paiva
    - user-friendly cli | http://www.bigswitch.com/ | |
74 17 Thiago Paiva
|*MUL*| C | GPLv2 | 16.2 MB (src) | - muli-threaded infrastructure
75 17 Thiago Paiva
    - multi-level north bound interface for hooking up applications.
76 17 Thiago Paiva
    - designed for performance and reliability (mission-critical networks).
77 17 Thiago Paiva
    - core of a commercial controller from Kulcloud Networks 
78 17 Thiago Paiva
    - Openstack Support through Quantum plugins | http://sourceforge.net/projects/mul/ | 1.0, 1.1, 1.2 |
79 17 Thiago Paiva
|*Jaxon*| java | -- | 109 KB (src) | - NOX-dependent 
80 17 Thiago Paiva
    - provides a thin interface with the NOX
81 17 Thiago Paiva
    - possible to directly access from Java program to C native ones. | http://jaxon.onuos.org/ | -- |
82 17 Thiago Paiva
|*NDDI-OESS*|??|Apache V2.0|??| -- set of programs
83 17 Thiago Paiva
    - OESS provides sub-second circuit provisioning
84 17 Thiago Paiva
    - automatic circuit failover
85 17 Thiago Paiva
    - per-interface permissions
86 17 Thiago Paiva
    - automatic per-VLAN statistics
87 17 Thiago Paiva
    - simple and user friendly web-based user interface
88 17 Thiago Paiva
    - web services API | http://code.google.com/p/nddi/wiki/README | 1.0|
89 17 Thiago Paiva
|*NodeFlow*| javascript| MIT-License | ? | - provides an asynchronous library over JavaScript for server side programming which is perfect for writing network based applications (ones that don’t require an excessive amount of CPU).
90 17 Thiago Paiva
    - Uses on OFLIB-NODE Library. | http://garyberger.net/?p=537 | 1.0|
91 17 Thiago Paiva
|*Helios*| C | closed-source | ? | - targetting researchers
92 17 Thiago Paiva
    - programmatic shell (integrated experiments) | http://www.nec.com/|1.0|
93 17 Thiago Paiva
|*SNAC*| Python e C++ | GPLv3 | ? | - targets production networks
94 17 Thiago Paiva
    - based on NOX 0.4 
95 17 Thiago Paiva
    - flexible policy definition language
96 17 Thiago Paiva
    - user-friendly interface (configuration + monitoring)| http://www.openflow.org/wp/snac/ |1.0|
97 17 Thiago Paiva
|*HP VANSC*| ? | closed | ? | - dinamic control plane
98 17 Thiago Paiva
    - full support for OpenFLOW protocol
99 17 Thiago Paiva
    - Open API enable third part application | ? | ? |
100 12 Thiago Paiva
101 17 Thiago Paiva
|*IBM PNC*| ? | closed | ? | - unlimited virtual machine mobility
102 17 Thiago Paiva
    - enterprise class (production)
103 17 Thiago Paiva
    - automatically and continuous discovers network topology | ? | ? |
104 7 Raphael Cóbe
105 4 Thiago Paiva
106 4 Thiago Paiva
107 4 Thiago Paiva
h3. Listas
108 4 Thiago Paiva
109 4 Thiago Paiva
* http://tech.saroscorner.com/2012/12/list-of-openflow-controllers-for-sdn.html
110 4 Thiago Paiva
111 4 Thiago Paiva
112 4 Thiago Paiva
h3. BigSwitch
113 4 Thiago Paiva
114 4 Thiago Paiva
* closed-source
115 4 Thiago Paiva
* based on Beacon 
116 4 Thiago Paiva
* java
117 4 Thiago Paiva
* targets production networks
118 4 Thiago Paiva
* user-friendly cli
119 4 Thiago Paiva
120 4 Thiago Paiva
121 4 Thiago Paiva
h3. floodlight
122 4 Thiago Paiva
123 4 Thiago Paiva
* http://www.projectfloodlight.org/floodlight/
124 4 Thiago Paiva
* http://groups.geni.net/geni/wiki/OpenFlow/Controllers/Floodlight
125 4 Thiago Paiva
126 4 Thiago Paiva
* enterprise class (production)
127 4 Thiago Paiva
* apache-licensed (open-source)
128 4 Thiago Paiva
* support a broad range of OpenFLOW switches
129 4 Thiago Paiva
* can manage multiple island of OpenFLOW switches
130 4 Thiago Paiva
* the core of 'BigSwitch' (BigSwitch open-sourced FloodLight)
131 4 Thiago Paiva
* fisical and virtual switches
132 4 Thiago Paiva
* open community of developers
133 4 Thiago Paiva
* simple to use
134 4 Thiago Paiva
* java
135 4 Thiago Paiva
* modular (simple to extend and enhance)
136 4 Thiago Paiva
* minimal dependencies
137 4 Thiago Paiva
* mixed OpenFLOW and non-OpenFLOW networks
138 4 Thiago Paiva
* high performance
139 4 Thiago Paiva
* support for OPENSTACK cloud orchestration platform
140 4 Thiago Paiva
* (tem no repositório???)
141 4 Thiago Paiva
* Floodlight VM (run mininet for tests)
142 4 Thiago Paiva
* Examples at flood light site
143 4 Thiago Paiva
* Avior (GUI open-source)
144 4 Thiago Paiva
145 1 Thiago Paiva
h3. POX
146 1 Thiago Paiva
147 1 Thiago Paiva
* python
148 1 Thiago Paiva
* multi-platform
149 1 Thiago Paiva
* research and education
150 1 Thiago Paiva
* open-source
151 1 Thiago Paiva
152 1 Thiago Paiva
h3. NOX
153 4 Thiago Paiva
154 4 Thiago Paiva
* concurrent applications
155 4 Thiago Paiva
* python and C++
156 4 Thiago Paiva
* sample controller applications
157 4 Thiago Paiva
158 4 Thiago Paiva
h3. MUL
159 4 Thiago Paiva
160 4 Thiago Paiva
h3. Jaxon
161 4 Thiago Paiva
162 4 Thiago Paiva
h3. Trema
163 4 Thiago Paiva
164 4 Thiago Paiva
h3. Beacon
165 4 Thiago Paiva
166 4 Thiago Paiva
* java
167 4 Thiago Paiva
* OSGI framework (openflow applications built on the platform to be started / stopped / refreshed / installed at runtime
168 4 Thiago Paiva
* cross-platform
169 4 Thiago Paiva
* modular
170 4 Thiago Paiva
* "robusto"
171 4 Thiago Paiva
172 4 Thiago Paiva
173 4 Thiago Paiva
h3. Maestro
174 4 Thiago Paiva
175 4 Thiago Paiva
* java
176 4 Thiago Paiva
* extensible
177 4 Thiago Paiva
* multi-threading
178 4 Thiago Paiva
* target researchers
179 4 Thiago Paiva
* open-source
180 4 Thiago Paiva
181 4 Thiago Paiva
182 4 Thiago Paiva
h3. NDDI-OESS
183 4 Thiago Paiva
184 4 Thiago Paiva
h3. NodeFlow
185 4 Thiago Paiva
186 4 Thiago Paiva
h3. Ryu
187 4 Thiago Paiva
188 4 Thiago Paiva
* well-defined API
189 4 Thiago Paiva
* NTT Labs (instituição por trás)
190 4 Thiago Paiva
191 4 Thiago Paiva
192 4 Thiago Paiva
h3. OVS-Controller
193 4 Thiago Paiva
194 4 Thiago Paiva
h3. Helios
195 4 Thiago Paiva
196 4 Thiago Paiva
* C
197 4 Thiago Paiva
* NEC (empresa que desenvolve)
198 4 Thiago Paiva
* targetting researchers
199 4 Thiago Paiva
* programmatic shell (integrated experiments)
200 4 Thiago Paiva
201 4 Thiago Paiva
202 4 Thiago Paiva
h3. SNAC
203 4 Thiago Paiva
204 4 Thiago Paiva
* targets production networks
205 4 Thiago Paiva
* based on NOX 0.4 
206 4 Thiago Paiva
* python e C++
207 4 Thiago Paiva
* flexible policy definition language
208 4 Thiago Paiva
* user-friendly interface (configuration + monitoring)
209 4 Thiago Paiva
210 4 Thiago Paiva
211 4 Thiago Paiva
h3. HP Virtual Application Networks SDN Controller
212 4 Thiago Paiva
213 4 Thiago Paiva
* dinamic control plane
214 4 Thiago Paiva
* full support for OpenFLOW protocol
215 4 Thiago Paiva
* Open API enable third part application
216 4 Thiago Paiva
217 4 Thiago Paiva
218 4 Thiago Paiva
h3. IBM PNC (IBM Programmable Network Controller)
219 4 Thiago Paiva
220 4 Thiago Paiva
* unlimited virtual machine mobility
221 4 Thiago Paiva
* enterprise class (production)
222 4 Thiago Paiva
* automatically and continuous discovers network topology
223 4 Thiago Paiva
224 4 Thiago Paiva
225 4 Thiago Paiva
h2. Hypervisor
226 4 Thiago Paiva
227 4 Thiago Paiva
To a controller: ordinary switch. To a switch: a controller. Must stay on top of switches and under the controller.
228 4 Thiago Paiva
229 4 Thiago Paiva
h3. FlowVisor
230 4 Thiago Paiva
231 4 Thiago Paiva
* transparent proxy between switches and controller
232 4 Thiago Paiva
* slices of network
233 4 Thiago Paiva
* network virtualization platform
234 4 Thiago Paiva
* hypervisor
235 4 Thiago Paiva
* isolate services at slices (groups?)
236 17 Thiago Paiva
237 17 Thiago Paiva
h2. Framework
238 17 Thiago Paiva
239 17 Thiago Paiva
h3. Trema
240 17 Thiago Paiva
241 17 Thiago Paiva
Trema is a full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C.
242 17 Thiago Paiva
243 17 Thiago Paiva
244 4 Thiago Paiva
245 4 Thiago Paiva
h2. Guias
246 4 Thiago Paiva
247 4 Thiago Paiva
* http://searchsdn.techtarget.com/guides/OpenFlow-protocol-tutorial-SDN-controllers-and-applications-emerge
248 4 Thiago Paiva
249 4 Thiago Paiva
250 4 Thiago Paiva
251 4 Thiago Paiva
h2. Comparativos
252 4 Thiago Paiva
253 4 Thiago Paiva
* Nox, Nox D, Beacon, Maestro
254 4 Thiago Paiva
http://www.openflow.org/wk/index.php/Controller_Performance_Comparisons