POX¶
Overview¶
Controlador derivado do NOX.
http://www.noxrepo.org/pox/about-pox/
- irmão mais novo do NOX
- plataforma para desenvolvimento rápido e prototipagem de controladores OpenFlow (framework) usando python.
- tem como alvo principal é a pesquisa
- interface pythonica para OpenFlow
- melhor desempenho que o NOX para aplicações escritas em python, porém mais lento que NOX/C++
- especial suporte para Open vSwitch
- SDN debugging
- network virtualization
- projeto de controladores
- modelagem de programação
- desenvolvimento de um moderno controlador SDN
Sobre o código¶
Linguagem¶
Python 2.7
Licença¶
GPLv3
Suporte a versões do OpenFLOW¶
- suporte para OpenFlow 1.0
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¶
Somente python
Modularidade¶
- componentes reutilizáveis (modularidade) (recursos prontos)
Repositório¶
https://github.com/noxrepo/pox
Recursos básicos do controlador¶
???
Aplicações¶
- 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:
- forwarding.l2_nx
- forwarding.topo_proactive
- openflow.spanning_tree
- web.webcore
- messenger
- openflow.of_01
- openflow.discovery
- openflow.debug
- openflow.keepalive
- proto.pong
- proto.arp_responder
- info.packet_dump
- proto.dns_spy
- proto.dpcp_client
- proto.dhcpd
- misc.of_tutorial
- misc.full_payload
- misc.mac_blocker
- misc.nat
- misc.ip_loadbalancer
- misc.gephi_topo
- log
- Disabling the Console Log
- Log Formatting
- Log Output
- log.color
- log.level
- samples.pretty_log
- tk
- host_tracker
Testes¶
https://github.com/noxrepo/pox/tree/betta/tests
- controllers (controle distribuído)
- topology
- unit
Disponibilidade nas distribuições GNU/Linux¶
Precisa ser clonado com git.
último release / commit¶
Branch 'carp' com atividades recentes.
Documentação¶
- 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/
- openflow tutorial with pox
http://blog.pythonicneteng.com/2013/02/openflow-tutorial-with-pox.html
Suporte junto ao OpenStack¶
Nenhum, aparentemente
Quem usa¶
Voltado para pesquisadores.
Quem está por trás¶
Nicira
Outras características¶
- suporta mesmas ferramentas de visualização do NOX
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()'.