POX » History » Version 3
« Previous -
Version 3/4
(diff) -
Next » -
Current version
Thiago Paiva, 09 Oct 2013 10:14
POX¶
Sobre o código¶
Linguagem¶
Linguagem utilizada para o desenvolvimento.
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.
Suporte a versões do OpenFLOW¶
- Quais são as versões de OpenFlow suportadas pelo controlador / framework.
- Como isso é implementado
Requisitos¶
- pacotes a serem instalados
- espaço de armazenamento exigido
- outros recursos necessários ao funcionamento do controlador.
Independência de linguagem de programação¶
Quais linguagens são suportadas na implementação de aplicações e componentes.
Modularidade¶
Quanto e que tipo de modularidade o controlador oferece.
Repositório¶
Onde encontrar o código.
Recursos básicos do controlador¶
Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo:- GRE tunneling
- VLAN support
Aplicações¶
Componentes disponíveis que acrescentam ferramentas ao controlador, como por exemplo:- topology discovery
- MAC based segregation
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.
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.
Documentação¶
Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações).
Suporte junto ao OpenStack¶
Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta.
Quem usa¶
Público do controlador
Quem está por trás¶
Empresas, consórcio, comunidade, universidade, ...
ú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.
Outras características¶
Características que não se adequam a nenhuma das anteriores.
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
- Configuring an OpenFlow POX SDN Controller and HP Switches
http://networkstatic.net/configuring-an-openflow-pox-sdn-controller-and-hp-switches/
Código no GitHub¶
https://github.com/noxrepo/pox
Requerimentos¶
- Python 2.7
Usado para¶
- SDN debugging
- network virtualization
- projeto de controladores
- modelagem de programação
- desenvolvimento de um moderno controlador SDN
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
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()'.
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:
...
Tutoriais¶
- openflow tutorial with pox
http://blog.pythonicneteng.com/2013/02/openflow-tutorial-with-pox.html