NOX » History » Version 3

Thiago Paiva, 11 Nov 2013 04:10

1 1 Thiago Paiva
h1. NOX
2 1 Thiago Paiva
3 1 Thiago Paiva
h2. OBSERVAÇÃO
4 1 Thiago Paiva
5 1 Thiago Paiva
Existem duas versões do NOX. A versão antiga e descontinuada foi renomeada para NOX-Classic. Porém todos os materiais que foram produzidos para essa versão tratam-na com o nome que era corrente, ou seja, apenas por NOX. Isso causa um problema sério: em qualquer conteúdo referente ao NOX não se consegue saber se é sobre a versão antiga ou a nova, a menos que seja dito explicitamente ou que o NOX seja chamado de 'new NOX'.
6 1 Thiago Paiva
7 1 Thiago Paiva
8 2 Thiago Paiva
h2. Sobre o código
9 2 Thiago Paiva
10 2 Thiago Paiva
11 2 Thiago Paiva
h3. Linguagem
12 2 Thiago Paiva
13 3 Thiago Paiva
C++
14 2 Thiago Paiva
15 2 Thiago Paiva
16 2 Thiago Paiva
h3. Licença
17 2 Thiago Paiva
18 3 Thiago Paiva
GPLv3
19 2 Thiago Paiva
20 2 Thiago Paiva
21 2 Thiago Paiva
h3. Suporte a versões do OpenFLOW
22 2 Thiago Paiva
23 3 Thiago Paiva
OpenFlow 1.0
24 2 Thiago Paiva
25 2 Thiago Paiva
h3. Requisitos
26 2 Thiago Paiva
27 2 Thiago Paiva
* pacotes a serem instalados
28 2 Thiago Paiva
* espaço de armazenamento exigido
29 2 Thiago Paiva
* outros recursos necessários ao funcionamento do controlador.
30 2 Thiago Paiva
31 2 Thiago Paiva
32 2 Thiago Paiva
h3. Independência de linguagem de programação 
33 2 Thiago Paiva
34 2 Thiago Paiva
Quais linguagens são suportadas na implementação de aplicações e componentes.
35 2 Thiago Paiva
36 2 Thiago Paiva
37 2 Thiago Paiva
h3. Modularidade
38 2 Thiago Paiva
39 2 Thiago Paiva
Quanto e que tipo de modularidade o controlador oferece.
40 2 Thiago Paiva
41 2 Thiago Paiva
42 2 Thiago Paiva
h3. Repositório
43 2 Thiago Paiva
44 2 Thiago Paiva
Onde encontrar o código.
45 2 Thiago Paiva
46 2 Thiago Paiva
47 2 Thiago Paiva
h3. Recursos básicos do controlador
48 2 Thiago Paiva
49 2 Thiago Paiva
Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo:
50 2 Thiago Paiva
* GRE tunneling
51 1 Thiago Paiva
* VLAN support
52 1 Thiago Paiva
53 1 Thiago Paiva
54 1 Thiago Paiva
h3. Aplicações
55 1 Thiago Paiva
56 3 Thiago Paiva
* jsonmessenger: interact with NOX using JSON.
57 3 Thiago Paiva
* messenger: interact with NOX.
58 3 Thiago Paiva
* simple_cc_app
59 3 Thiago Paiva
* simple_app
60 3 Thiago Paiva
* snmp: SNMP get/set support in NOX More...
61 3 Thiago Paiva
* Authenticator
62 3 Thiago Paiva
* Bindings_Storage: mirrors the Authenticator's internal data structures within the NDB.
63 3 Thiago Paiva
* discovery: LLDP discovery application for topology inference.
64 3 Thiago Paiva
* hostip: store IP address of hosts.
65 3 Thiago Paiva
* hosttracker: Track locations of host (ethernet)Track last n known locations of host attachment.
66 3 Thiago Paiva
* trackhost_pktin: Tracks host location using packet in.
67 3 Thiago Paiva
* lavi: Components that allows network state to be enquired.
68 3 Thiago Paiva
* Monitoring: Collects and maintains switch and port stats for the network.
69 3 Thiago Paiva
* datapathmem: Datapath memory to memorize datapath informationAlso join events of the datapath.
70 3 Thiago Paiva
* linkload: tracks port stats of links and its loadRefers to links using its source datapath id and port.
71 3 Thiago Paiva
* switchrtt: meaure RTT of switch in networkCan configure the interval of probe at runtime using the interval option (giving interval in seconds).
72 3 Thiago Paiva
* flowroute_record: record of flow and associated routeDoes not handle detection of flow and route nor its expiration/deletion.
73 3 Thiago Paiva
* routeinstaller: install route.
74 3 Thiago Paiva
* simplerouting: routing with dependencies on authenticatorCan choose to set flow installed into flowroute_record with arguments
75 3 Thiago Paiva
* Routing_module: utility component that can be called to retrieve a shortest path route and/or to set up flow entries in the network with Openflow actions to route a flow.
76 3 Thiago Paiva
* switchstats: collects and maintains switch and port stats for the network.
77 3 Thiago Paiva
* flowlog: records all flows in networkTo ensure flow removed is sent (in openflow-default.hh).
78 3 Thiago Paiva
* rttlog: Logs switch RTTLogs every switchrtt's interval, i.e., probe all switches once.
79 3 Thiago Paiva
* tablog: Component that logs tables of informationComponent dumps data into one of the tablog_dump format.
80 3 Thiago Paiva
* test1
81 3 Thiago Paiva
* test2
82 3 Thiago Paiva
* Topology: the current network topology.
83 3 Thiago Paiva
* User_Event_Log: The goal of the user_event_log is to let applications easily generate 'network event log' messages that include high-level network names.
84 3 Thiago Paiva
* webserver
85 2 Thiago Paiva
86 2 Thiago Paiva
h3. Testes
87 2 Thiago Paiva
88 2 Thiago Paiva
Existência de testes de unidades no codigo (scripts ou códigos), geralmente em uma pasta em separado, que validam e testam o código desenvolvido. 
89 2 Thiago Paiva
90 2 Thiago Paiva
91 2 Thiago Paiva
h3. Disponibilidade nas distribuições GNU/Linux 
92 2 Thiago Paiva
93 2 Thiago Paiva
Disponibilidade e facilidade de instação nas distribuição GNU/Linux relevantes atuais. 
94 2 Thiago Paiva
95 2 Thiago Paiva
* disponível nos repositórios da distribuição?
96 2 Thiago Paiva
* versão dos pacotes disponíveis
97 2 Thiago Paiva
* ênfase nas distros Debian e Ubuntu.
98 2 Thiago Paiva
99 2 Thiago Paiva
100 2 Thiago Paiva
h2. Documentação
101 2 Thiago Paiva
102 2 Thiago Paiva
Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações).
103 2 Thiago Paiva
104 2 Thiago Paiva
105 2 Thiago Paiva
h2. Suporte junto ao OpenStack
106 2 Thiago Paiva
107 2 Thiago Paiva
Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta.
108 2 Thiago Paiva
109 2 Thiago Paiva
110 2 Thiago Paiva
h2. Quem usa
111 2 Thiago Paiva
112 2 Thiago Paiva
Público do controlador
113 2 Thiago Paiva
114 2 Thiago Paiva
115 2 Thiago Paiva
h2. Quem está por trás 
116 2 Thiago Paiva
117 2 Thiago Paiva
Empresas, consórcio, comunidade, universidade, ...
118 2 Thiago Paiva
119 2 Thiago Paiva
120 2 Thiago Paiva
h2. último release / commit
121 2 Thiago Paiva
122 2 Thiago Paiva
Uma das formas de se ter noção de quanto o desenvolvimento ainda está ativo é procurar pela data da última atualização de código no repositório.
123 2 Thiago Paiva
124 2 Thiago Paiva
125 2 Thiago Paiva
h2. Outras características
126 2 Thiago Paiva
127 2 Thiago Paiva
Características que não se adequam a nenhuma das anteriores.
128 2 Thiago Paiva
129 2 Thiago Paiva
130 2 Thiago Paiva
131 2 Thiago Paiva
132 2 Thiago Paiva
133 2 Thiago Paiva
134 2 Thiago Paiva
135 2 Thiago Paiva
136 2 Thiago Paiva
137 2 Thiago Paiva
138 2 Thiago Paiva
139 2 Thiago Paiva
140 2 Thiago Paiva
141 1 Thiago Paiva
h2. Overview
142 1 Thiago Paiva
143 1 Thiago Paiva
Controlador praticamente desenvolvido em conjunto com OpenFlow.
144 1 Thiago Paiva
145 1 Thiago Paiva
* Oferece uma API para OpenFlow em C++
146 1 Thiago Paiva
* Oferece rápida e assincrona IO (entrada saída)
147 1 Thiago Paiva
* Está disponível nas recentes distribuições Ubuntu (mas é possível instalar na Debian e RHEL)
148 1 Thiago Paiva
* Inclui componentes exemplos: 
149 1 Thiago Paiva
** Topology discovery
150 1 Thiago Paiva
** Learning switch
151 1 Thiago Paiva
** Network-wide switch
152 1 Thiago Paiva
153 1 Thiago Paiva
154 1 Thiago Paiva
h2. Versões
155 1 Thiago Paiva
156 1 Thiago Paiva
* NOX-Classic: deprecated. Suporte para C++ e Python.
157 1 Thiago Paiva
158 1 Thiago Paiva
* NOX (aka 'new NOX'): suporte apenas para C++. Código mais limpo. Poucos applicativos.
159 1 Thiago Paiva
160 1 Thiago Paiva
* NOX com suporte a OpenFlow 1.3 (em desenvolvimento, último commit 07/05/2013)
161 1 Thiago Paiva
https://github.com/CPqD/nox13oflib
162 1 Thiago Paiva
163 1 Thiago Paiva
164 1 Thiago Paiva
h2. NOX API reference
165 1 Thiago Paiva
166 1 Thiago Paiva
http://www.noxrepo.org/_/nox-classic-doxygen/index.html
167 1 Thiago Paiva
168 1 Thiago Paiva
(gerado pelo doxygen)
169 1 Thiago Paiva
170 1 Thiago Paiva
171 1 Thiago Paiva
h2. Repositório GitHub
172 1 Thiago Paiva
173 1 Thiago Paiva
https://github.com/noxrepo/nox
174 1 Thiago Paiva
175 1 Thiago Paiva
176 1 Thiago Paiva
h2. Documentação do NOX-Classic
177 1 Thiago Paiva
178 1 Thiago Paiva
Dizem que apesar de ultrapassado, a documentação contida no wiki do NOX-Classic ainda pode ajudar, então:
179 1 Thiago Paiva
https://github.com/noxrepo/nox-classic/wiki
180 1 Thiago Paiva
181 1 Thiago Paiva
182 1 Thiago Paiva
h2. Tutoriais
183 1 Thiago Paiva
184 1 Thiago Paiva
* Create OpenFlow network with multiple PCs/NetFPGAs
185 1 Thiago Paiva
http://archive.openflow.org/wp/deploy-labsetup/
186 1 Thiago Paiva
187 1 Thiago Paiva
* NOX OpenFlow Controller Install on Ubuntu 12.04 (antigo já, talvez esteja no repositório)
188 1 Thiago Paiva
http://mytestbed.net/projects/openflow/wiki/Installing_a_NOX_controller
189 1 Thiago Paiva
http://networkstatic.net/nox-openflow-controller-install-on-ubuntu-12-04-precise-lts/