POX » History » Version 3

Version 2 (Thiago Paiva, 01 Oct 2013 10:57) → Version 3/4 (Thiago Paiva, 09 Oct 2013 10:14)

h1. POX

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

* irmão mais novo do NOX
* plataforma para desenvolvimento rápido e prototipagem de controladores OpenFlow (framework)
* linguagem: python
* alvo principal é a pesquisa

* POX wiki: instalação, componentes, APIs, openflow e FAQ (bem completo)
https://openflow.stanford.edu/display/ONL/POX+Wiki

* mininet + POX
http://mininet.org/blog/2013/06/03/automating-controller-startup/

* Configuring an OpenFlow POX SDN Controller and HP Switches
http://networkstatic.net/configuring-an-openflow-pox-sdn-controller-and-hp-switches/

h2. Código no GitHub

https://github.com/noxrepo/pox

h3. Requerimentos

* Python 2.7

h2. Usado para

* SDN debugging
* network virtualization
* projeto de controladores
* modelagem de programação
* desenvolvimento de um moderno controlador SDN

h2. Características

* interface pythonica para OpenFlow
* componentes reutilizáveis (modularidade) (recursos prontos)
* não dependente de plataforma (instalar PyPy)
* suporta mesmas ferramentas de visualização do NOX
* melhor desempenho que o NOX para aplicações escritas em python, porém mais lento que NOX/C++
* suporte para OpenFlow 1.0
* especial suporte para Open vSwitch

h2. Funcionamento

pox.py recebe uma lista de módulos na linha de comando e chama a função 'launch()' deles caso ela exista e depois muda para estado 'up'.

Os módulos podem estar nos diretórios 'pox' e 'ext', além dos diretórios normalmente vigiados pela instalação do python.

Opções (--) podem ser acrescidas após o nome do módulo e serão passadas como parâmetro para o chamado da função 'launch()'.

h2. Componentes

* py: interface python (debug)
* forwarding.hub: $10 hub
* forwarding.l2_learning: L2 learning switch
* forwarding.l2_pairs: L2 learning switch based on MAC addresses
* forwarding.l3_learning: "L3-lerning-switchy-thing"
* forwarding.l2_multi:
...

h2. Tutoriais

* openflow tutorial with pox
http://blog.pythonicneteng.com/2013/02/openflow-tutorial-with-pox.html