OpenFLOW Controllers » History » Version 25

Thiago Paiva, 23 Sep 2013 11:56

1 1 Thiago Paiva
h1. OpenFLOW Controllers
2 1 Thiago Paiva
3 25 Thiago Paiva
[[OpenFlowControllers_Features|Características e funcionalidades a serem examinadas]]
4 25 Thiago Paiva
5 24 Thiago Paiva
h2. Características a analisar: 
6 1 Thiago Paiva
7 5 Thiago Paiva
* linguagem
8 5 Thiago Paiva
* licença
9 5 Thiago Paiva
* tamanho do pacote
10 5 Thiago Paiva
* features
11 5 Thiago Paiva
* documentação
12 5 Thiago Paiva
* exemplos
13 6 Thiago Paiva
* versão do OpenFLOW
14 1 Thiago Paiva
15 24 Thiago Paiva
h2. Páginas de estudo para cada controlador
16 24 Thiago Paiva
17 24 Thiago Paiva
[[Ryu]]
18 5 Thiago Paiva
19 1 Thiago Paiva
h2. OpenFLOW
20 5 Thiago Paiva
21 22 Thiago Paiva
* [[especificação v1.0.0 | http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCoQFjAA&url=http%3A%2F%2Fwww.openflow.org%2Fdocuments%2Fopenflow-spec-v1.0.0.pdf&ei=x7ywUbKeDKeH0QGDyYGgAQ&usg=AFQjCNG59ma9GkqNJQz43PL8HKpCipo12Q&bvm=bv.47534661,d.dmQ]]
22 20 Thiago Paiva
23 5 Thiago Paiva
* protocol between the controller and the switches
24 5 Thiago Paiva
* set of operations on the switches
25 1 Thiago Paiva
26 1 Thiago Paiva
* http://routingfreak.wordpress.com/2013/03/01/openflow-controllers-whats-missing-in-routing-protocols-today/
27 1 Thiago Paiva
* http://en.wikipedia.org/wiki/OpenFlow
28 1 Thiago Paiva
* http://www.openflow.org/
29 1 Thiago Paiva
* http://www.openflow.org/wp/openflow-components/
30 1 Thiago Paiva
* http://bigswitch.com/blog/2012/12/20/why-openflow-hardware-control-matters-in-the-data-center
31 1 Thiago Paiva
32 1 Thiago Paiva
33 1 Thiago Paiva
34 1 Thiago Paiva
35 1 Thiago Paiva
h2. Controladores
36 1 Thiago Paiva
37 2 Raphael Cóbe
h3. Tabela Resumo:
38 2 Raphael Cóbe
39 3 Raphael Cóbe
|_. Nome|_. Linguagem|_. Licença|_. Tamanho do Pacote                              |_. Features              |_. URL|_. Versão do OpenFlow |
40 7 Raphael Cóbe
|*Nox*    |C++         |GPL V3    |>. 258 Kb (Fonte)                                 | Provides a C++ OpenFlow 1.0 API
41 11 Raphael Cóbe
    Provides *fast, asynchronous IO*
42 1 Thiago Paiva
    Includes sample components for:
43 11 Raphael Cóbe
        *Topology discovery*
44 11 Raphael Cóbe
        *Learning switch*
45 23 Raphael Cóbe
        *Network-wide switch* |http://www.noxrepo.org/pox/documentation/| 1.0, 1.3 via https://github.com/CPqD/nox13oflib |
46 7 Raphael Cóbe
|*Pox*    |Python      |GPL V3    |>. 1.1 Mb (Fonte)                                 | “Pythonic” OpenFlow interfacePOX Performance Graph
47 11 Raphael Cóbe
*Reusable sample components* for *path selection*, *topology discovery*, etc.
48 11 Raphael Cóbe
“Runs anywhere” – Can *bundle with install-free PyPy runtime* for easy deployment
49 11 Raphael Cóbe
Specifically targets *Linux*, Mac OS, and Windows
50 11 Raphael Cóbe
Supports the *same GUI and visualization tools as NOX*
51 11 Raphael Cóbe
*Performs well compared to NOX* applications written in Python          |http://www.noxrepo.org/nox/documentation/| 1.0|
52 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.
53 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.
54 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).
55 1 Thiago Paiva
    *Rapid Development* - Beacon is easy to get up and running. Java and Eclipse simplify development and debugging of your applications.
56 1 Thiago Paiva
    *Fast* - Beacon is multithreaded, check out performance benchmarks.
57 1 Thiago Paiva
    *Web UI* - Beacon optionally embeds the Jetty enterprise web server and a custom extensible UI framework
58 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|
59 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.
60 1 Thiago Paiva
    *Multi-threaded* - Takes full advantage of multi-core processors. 
61 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|
62 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.
63 1 Thiago Paiva
    You can try Now. Ryu's *pre-configured VM image* file enables you to easily set up multi-node OpenStack environment.
64 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|
65 16 Thiago Paiva
|*Floodlight* |Java        |Apache V2.0   |>. 46 Mb (Fonte)| - Offers a *module loading system* that make it simple to extend and enhance.
66 16 Thiago Paiva
    - *Support for OpenStack* cloud orchestration platform - *OpenStack Quantum plugin*.
67 16 Thiago Paiva
    - *It is the core of 'BigSwitch' (BigSwitch open-sourced FloodLight)*.
68 16 Thiago Paiva
    - *Easy to set up* with *minimal dependencies*.
69 16 Thiago Paiva
    - Supports a broad range of *virtual- and physical- OpenFlow switches*.
70 16 Thiago Paiva
    - Can handle *mixed OpenFlow and non-OpenFlow networks* – it can manage multiple “islands” of OpenFlow hardware switches.
71 16 Thiago Paiva
    - Designed to be *high-performance* – is the *core of a commercial product from Big Switch Networks*.
72 16 Thiago Paiva
    - *API REST*.
73 16 Thiago Paiva
    - Enterprise class (production).
74 16 Thiago Paiva
    - Floodlight VM*. It includes floodlight running by default and Mininet.
75 16 Thiago Paiva
    - *Nos repositórios do Ubuntu*.
76 16 Thiago Paiva
    - *Avior (GUI open-source). |http://www.projectfloodlight.org/documentation/|1.0|
77 16 Thiago Paiva
|*BigSwitch*| java | closed-source | -- | - OpenStack
78 16 Thiago Paiva
    - based on Beacon 
79 16 Thiago Paiva
    - targets production networks
80 16 Thiago Paiva
    - user-friendly cli | http://www.bigswitch.com/ | |
81 17 Thiago Paiva
|*MUL*| C | GPLv2 | 16.2 MB (src) | - muli-threaded infrastructure
82 17 Thiago Paiva
    - multi-level north bound interface for hooking up applications.
83 17 Thiago Paiva
    - designed for performance and reliability (mission-critical networks).
84 17 Thiago Paiva
    - core of a commercial controller from Kulcloud Networks 
85 17 Thiago Paiva
    - Openstack Support through Quantum plugins | http://sourceforge.net/projects/mul/ | 1.0, 1.1, 1.2 |
86 17 Thiago Paiva
|*Jaxon*| java | -- | 109 KB (src) | - NOX-dependent 
87 17 Thiago Paiva
    - provides a thin interface with the NOX
88 17 Thiago Paiva
    - possible to directly access from Java program to C native ones. | http://jaxon.onuos.org/ | -- |
89 17 Thiago Paiva
|*NDDI-OESS*|??|Apache V2.0|??| -- set of programs
90 17 Thiago Paiva
    - OESS provides sub-second circuit provisioning
91 17 Thiago Paiva
    - automatic circuit failover
92 17 Thiago Paiva
    - per-interface permissions
93 17 Thiago Paiva
    - automatic per-VLAN statistics
94 17 Thiago Paiva
    - simple and user friendly web-based user interface
95 17 Thiago Paiva
    - web services API | http://code.google.com/p/nddi/wiki/README | 1.0|
96 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).
97 17 Thiago Paiva
    - Uses on OFLIB-NODE Library. | http://garyberger.net/?p=537 | 1.0|
98 17 Thiago Paiva
|*Helios*| C | closed-source | ? | - targetting researchers
99 17 Thiago Paiva
    - programmatic shell (integrated experiments) | http://www.nec.com/|1.0|
100 17 Thiago Paiva
|*SNAC*| Python e C++ | GPLv3 | ? | - targets production networks
101 17 Thiago Paiva
    - based on NOX 0.4 
102 17 Thiago Paiva
    - flexible policy definition language
103 17 Thiago Paiva
    - user-friendly interface (configuration + monitoring)| http://www.openflow.org/wp/snac/ |1.0|
104 17 Thiago Paiva
|*HP VANSC*| ? | closed | ? | - dinamic control plane
105 17 Thiago Paiva
    - full support for OpenFLOW protocol
106 17 Thiago Paiva
    - Open API enable third part application | ? | ? |
107 17 Thiago Paiva
|*IBM PNC*| ? | closed | ? | - unlimited virtual machine mobility
108 17 Thiago Paiva
    - enterprise class (production)
109 17 Thiago Paiva
    - automatically and continuous discovers network topology | ? | ? |
110 7 Raphael Cóbe
111 4 Thiago Paiva
112 4 Thiago Paiva
113 4 Thiago Paiva
h3. Listas
114 4 Thiago Paiva
115 4 Thiago Paiva
* http://tech.saroscorner.com/2012/12/list-of-openflow-controllers-for-sdn.html
116 4 Thiago Paiva
117 4 Thiago Paiva
118 4 Thiago Paiva
119 4 Thiago Paiva
h2. Hypervisor
120 4 Thiago Paiva
121 4 Thiago Paiva
To a controller: ordinary switch. To a switch: a controller. Must stay on top of switches and under the controller.
122 4 Thiago Paiva
123 4 Thiago Paiva
h3. FlowVisor
124 4 Thiago Paiva
125 4 Thiago Paiva
* transparent proxy between switches and controller
126 4 Thiago Paiva
* slices of network
127 4 Thiago Paiva
* network virtualization platform
128 4 Thiago Paiva
* hypervisor
129 4 Thiago Paiva
* isolate services at slices (groups?)
130 17 Thiago Paiva
131 17 Thiago Paiva
h2. Framework
132 17 Thiago Paiva
133 17 Thiago Paiva
h3. Trema
134 17 Thiago Paiva
135 17 Thiago Paiva
Trema is a full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C.
136 17 Thiago Paiva
137 4 Thiago Paiva
138 4 Thiago Paiva
h2. Guias
139 4 Thiago Paiva
140 4 Thiago Paiva
* http://searchsdn.techtarget.com/guides/OpenFlow-protocol-tutorial-SDN-controllers-and-applications-emerge
141 4 Thiago Paiva
142 4 Thiago Paiva
143 4 Thiago Paiva
144 4 Thiago Paiva
h2. Comparativos
145 4 Thiago Paiva
146 4 Thiago Paiva
* Nox, Nox D, Beacon, Maestro
147 4 Thiago Paiva
http://www.openflow.org/wk/index.php/Controller_Performance_Comparisons