NOX » History » Version 2

Version 1 (Thiago Paiva, 02 Oct 2013 00:26) → Version 2/3 (Thiago Paiva, 09 Oct 2013 10:14)

h1. NOX

h2. OBSERVAÇÃO

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'.

h2. Sobre o código

h3. Linguagem

Linguagem utilizada para o desenvolvimento.

h3. Licença

Licença em que o código foi liberado. A preferência é por licenças livres, facilitando assim o estudo e desenvolvimento de aplicações ou até mesmo de correções de problemas.

h3. Suporte a versões do OpenFLOW

* Quais são as versões de OpenFlow suportadas pelo controlador / framework.
* Como isso é implementado

h3. Requisitos

* pacotes a serem instalados
* espaço de armazenamento exigido
* outros recursos necessários ao funcionamento do controlador.

h3. Independência de linguagem de programação

Quais linguagens são suportadas na implementação de aplicações e componentes.

h3. Modularidade

Quanto e que tipo de modularidade o controlador oferece.

h3. Repositório

Onde encontrar o código.

h3. Recursos básicos do controlador

Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo:
* GRE tunneling
* VLAN support

h3. Aplicações

Componentes disponíveis que acrescentam ferramentas ao controlador, como por exemplo:
* topology discovery
* MAC based segregation

h3. Testes

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.

h3. Disponibilidade nas distribuições GNU/Linux

Disponibilidade e facilidade de instação nas distribuição GNU/Linux relevantes atuais.

* disponível nos repositórios da distribuição?
* versão dos pacotes disponíveis
* ênfase nas distros Debian e Ubuntu.

h2. Documentação

Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações).

h2. Suporte junto ao OpenStack

Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta.

h2. Quem usa

Público do controlador

h2. Quem está por trás

Empresas, consórcio, comunidade, universidade, ...

h2. último release / commit

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.

h2. Outras características

Características que não se adequam a nenhuma das anteriores.

h2.
Overview

Controlador praticamente desenvolvido em conjunto com OpenFlow.

* Oferece uma API para OpenFlow em C++
* Oferece rápida e assincrona IO (entrada saída)
* Está disponível nas recentes distribuições Ubuntu (mas é possível instalar na Debian e RHEL)
* Inclui componentes exemplos:
** Topology discovery
** Learning switch
** Network-wide switch

h2. Versões

* NOX-Classic: deprecated. Suporte para C++ e Python.

* NOX (aka 'new NOX'): suporte apenas para C++. Código mais limpo. Poucos applicativos.

* NOX com suporte a OpenFlow 1.3 (em desenvolvimento, último commit 07/05/2013)
https://github.com/CPqD/nox13oflib

h2. NOX API reference

http://www.noxrepo.org/_/nox-classic-doxygen/index.html

(gerado pelo doxygen)

h2. Repositório GitHub

https://github.com/noxrepo/nox

h2. Documentação do NOX-Classic

Dizem que apesar de ultrapassado, a documentação contida no wiki do NOX-Classic ainda pode ajudar, então:
https://github.com/noxrepo/nox-classic/wiki

h2. Tutoriais

* Create OpenFlow network with multiple PCs/NetFPGAs
http://archive.openflow.org/wp/deploy-labsetup/

* NOX OpenFlow Controller Install on Ubuntu 12.04 (antigo já, talvez esteja no repositório)
http://mytestbed.net/projects/openflow/wiki/Installing_a_NOX_controller
http://networkstatic.net/nox-openflow-controller-install-on-ubuntu-12-04-precise-lts/