Grande ferramenta de testes e desenvolvimento, ideal para fase de prototipao. Google usa algo como mininet antes da implantao. Rede Virtual na Comodidade da sua Maquina (Espao do usurio => leve) Topologias e Quantidades de Ns Arbitrrias mininet.org: Mininet is distributed as a virtual machine (VM) image with all dependencies pre-installed, runnable on common virtual machine monitors such as VMware, Xen and VirtualBox. This provides a convenient container for distribution; once a prototype has been developed, the VM image may be distributed to others to run,
Ferramenta - Mininet (2)
Introduo ao Mininet: https://github.com/mininet/mininet/wiki/Introd uction-to-Mininet http://mininet.org/walkthrough/ Vantagem: Emular comportamentos de uma rede SDN sem dispor do equipamento de fato. Anlise rpida de resultados. Limitao: Recursos compartilhados com a mquina, dificil reproduzir desempenho real. 3
Ferramenta - Mininet (3)
H uma verso de mquina virtual Mininet na pgina do curso: http://www.comp.ita.br/~cecilia/ces-35/mininet2.2.0-150106-ubuntu-14.04-server-amd64.zip Colocar em C:\Users\ITA\VirtualBox VM e extrair o .zip. No VirtualBox criar a mquina Virtual Mininet2-2. Na criao colocar opo de mquina Linux, Ubuntu, com disco rgido virtual existente. A imagem a extrada do .zip: mininet-vmx86_64.vmdk. Nesta mquina, configure dois Adaptadores de
Ferramenta - Mininet (4)
Ative a Mininet2-2. A VM no tem interface grfica. Atribua IP a interface HostOnly se ela no tiver ainda (sudo dhclient eth1 ou ifconfig eth1 192.168.56.102 ). Pingue o Windows. Ative o Mininet criando uma rede virtual de 3 ns: $ sudo mn --topo single,3 --mac --controller remote --switch ovsk, protocols=OpenFlow13 Este comando cria uma topologia simples com um switch e 3 ns ligados a ele, com mac.... E um controlador na porta default 6633. Utiliza um switch virtual 5
Ferramenta - Mininet (4)
Alguns comandos para investigar a topologia criada:
> > > > >
nodes ports links dump h1 ping h2
No vai funcionar ainda pois no h controlador
ativado e portanto o switch no aprendeu ainda o que fazer quando chega um pacote
Ferramenta - Mininet (5)
Para trabalhar com vrias janelas simultaneamente, vamos ativar a interface grfica do X11. Rodar o XMing como admin no Windows. Este programa vai aceitar a sada grfica no Windows. Faa um ssh da hospedeira para o Mininet (endereo fornecido pelo dhclient). No programa putty, coloque o IP do HostOnly e marque na opo X11 -> forwarding como Enable , isto quer dizer que a sada x11 ser enviada para o Xming. Faa novamente o login como usurio mininet, senha mininet. Na janela aberta pelo ssh, chame o emulador de 7
Controlador Ryu (1)
Subir o controlador Ryu.
Se j estiver instalado python e Ryu: No diretrio /home/mininet/ryu digite $ sudo ./bin/ryu-manager verbose ryu/app/simple_switch_13.py
Ao repetir o slide 5 ativao do Mininet o ping
deve funcionar. O script simple_switch_13.py manipula o evento de chegada de pacote desconhecido e cria a regra de encaminhamento adequada. Inspecione o simple_switch_13.py 8
Controlador Ryu (2)
Se no estiver instalado, comece pelo Python: sudo apt-get install python-eventlet pythonroutes python-webob python-paramiko Em seguida o Ryu: git clone git://github.com/osrg/ryu.git cd ryu; python ./setup.py install Algumas maquinas nao rodaram diretamente, foi preciso instalar o pip para instalar um modulo complementar: sudo apt-get update sudo apt-get install python-pip pip install `oslo.config<2.0.0` Site de referncia do Ryu: https://osrg.github.io/ryu/ Um tutorial simples: 9
Script de Ativao
possvel escrever scripts para ativar o
mininet:
A API de Mininet permite criar redes customizadas
com algumas poucas linhas de Python: from mininet.net import Mininet from mininet.topolib import TreeTopo tree4 = TreeTopo(depth=2,fanout=2) net = Mininet(topo=tree4) net.start() h1, h4 = net.hosts[0], net.hosts[3] print h1.cmd('ping -c1 \%s' \% h4.IP()) net.stop() Cria uma pequena rede (4 hosts, 3 switches), e realiza pings de um host para o outro (por cerca 10