Iniciando essa postagem para conversar um pouco sobre um outro simulador/emulador (tecnicamente falando, é um emulador): Mininet.
O Mininet é especialmente focado na emulação de redes SDN (Software Defined Networks). SDNs são redes definidas por software, ou seja, onde o plano de controle da rede é implementado, possivelmente, fora do equipamento comutador. Ou seja, por exemplo, um switch Ethernet pode ter todas as funções de aprendizado, por exemplo, externas ao chassi do equipamento.
Bom, eu vou comentar um pouco mais sobre o Mininet em outros momentos, mas agora o importante é focar em um dos possíveis controladores para SDN que podem ser facilmente usados com o Mininet, que é o POX.
Maiores referências sobre o POX podem ser obtidas aqui, e sobre o Mininet aqui.
POX
O POX é um controlador e biblioteca para desenvolvimento de controladores SDN em Python.Alguns links associados ao POX:
- Manual/Tutorial do POX
- https://github.com/Lafaiet/POXDoc/blob/master/PT_BR/Main.md
- ou, em inglês (prefiro esse):
- https://openflow.stanford.edu/display/ONL/POX+Wiki
- Tutorial para início de trabalho com o OpenFlow e POX
Acionando ou invocando o controlador
Isso é feito via pox.py ou via debub-pox.py.Para desenvolvimento, recomenda-se o uso de debug-pox.py.
Os parâmetros associados a esse comando são os módulos/componentes que devem ser instanciados pelo controlador. Podem ser instanciados vários componentes, e os componentes podem ter dependências entre si, e podem ser especificados parâmetros para os mesmos via --parametro.
Alguns componentes úteis
Numa lista bem curta (de quem ainda está aprendendo e quer lembrar disso depois), os seguintes componentes são importantes:
- forwarding.l2_pairs - implementa um switch clássico, com o método de aprendizagem comum (obs: não oferece proteção contra loops, visto que não implementa nenhum tipo de spanning tree)
- forwarding.l2_multi - semelhante ao anterior, porém primeiro descobre a topologia global da rede e então monta as tabelas de comutação para uma certa origem em todos os switches envolvidos
- openflow.spanning_tree - implementa um mecanismo ala spanning tree (muito embora de um modo significativamente distinto)
- openflow.of_01 - é o componente que implementa e se comunica com o OpenFlow v1.0
- openflow.discovery - permite realizar a descoberta da topologia da rede
- openflow.keepalive - necessário para manter a conectividade com os switches, enviando echo requests periodicamente
- proto.arp_responder - um utilitário que implementa o protocolo ARP
- proto.dhcpd - implementa um servidor DHCP no controlador
- misc.gephi_topo - permite a visualização da topologia no utilitário Gephi
- log - permite customizar as mensagens de log geradas
- log.color - permite habilitar e customizar cores para uso com as mensagens de log
- log.level - permite especificar o nível de log a ser utilizado por cada logger no ambiente
Nenhum comentário:
Postar um comentário