Alex Vaz Mendes (discussão | contribs)
Sem resumo de edição
 
(8 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 3: Linha 3:


* Mininet é um emulador de rede que processa um conjunto de terminais, switches, roteadores e links em um único kernel Linux
* Mininet é um emulador de rede que processa um conjunto de terminais, switches, roteadores e links em um único kernel Linux
* Cria uma rede vistual realística, processando kernel real, switches e código de aplicação em uma única máquina (VM, Cloud ou nativa), em segundos, com um simples comando
* Cria uma rede visual realística, processando kernel real, switches e código de aplicação em uma única máquina (VM, Cloud ou nativa), em segundos, com um simples comando


* Um host Mininet porta-se como uma máquina real permitindo usar ssh e processar programas arbitrários
* Um host Mininet porta-se como uma máquina real permitindo usar ssh e processar programas arbitrários
Linha 9: Linha 9:


* Pacotes são processados pelo que se parece com um switch ou roteador Ethernet real ou ainda um middlebox com uma dada quantitade de enfileiramento
* Pacotes são processados pelo que se parece com um switch ou roteador Ethernet real ou ainda um middlebox com uma dada quantitade de enfileiramento
* Quando dois programas, como um cliente iperf e servidor, se comunicam atrvés do Mininet, o desempenho medido pode ao de duas (letnas) máquinas nativas.
* Quando dois programas, como um cliente iperf e servidor, se comunicam através do Mininet, o desempenho medido pode ser o de duas (lentas) máquinas nativas.


<br>
<br>
Linha 18: Linha 18:
* Devido à facil interação com a rede, usando CLI Mininet (e API) e ainda pela simples customização, compartilhamento com outros e implantação em hardware reais, Mininet é frequentemente usada em desenvolvimento, ensino e pesquisa.
* Devido à facil interação com a rede, usando CLI Mininet (e API) e ainda pela simples customização, compartilhamento com outros e implantação em hardware reais, Mininet é frequentemente usada em desenvolvimento, ensino e pesquisa.


* Mininet também é uma excelente maneira de desenvolver, compartilhar e experimentar os sistemas OpenFlow e SDN - Software-Definet Networking.
* Mininet também é uma excelente maneira de desenvolver, compartilhar e experimentar os sistemas OpenFlow e SDN - Software-Defined Networking.
<br>
<br>


Linha 24: Linha 24:
<br>
<br>


# É rápido já que iniciar uma rede simples pode ser feito em poucos segundos. O processo de processar-editar-depurar é rápido
# É rápido já que iniciar uma rede simples pode ser feito em poucos segundos. O esquema de processar-editar-depurar é ágil
# Pode-se criar topologias customizadas: um único switch, uma Internet ampla, um backbone Stanford, um data center ou qualquer outra coisa
# Pode-se criar topologias customizadas: um único switch, uma Internet ampla, um backbone Stanford, um data center ou qualquer outra coisa
# É possível executar programas reais: qualquer coisa que rode no Linux está disponível para ser processado, de servidores web para janelas TCP sob monitoramento de ferramentas como o Wireshark
# É possível executar programas reais: qualquer coisa que rode no Linux está disponível para ser processado, de servidores web para janelas TCP sob monitoramento de ferramentas como o Wireshark
Linha 30: Linha 30:
# Mininet pode ser executado no laptop, em um servidor, em uma VM ou em um box Linux nativo (Mininet é incluído no Ubuntu 12.10+!), ou na nuvem (exemplo Amazon EC2.)
# Mininet pode ser executado no laptop, em um servidor, em uma VM ou em um box Linux nativo (Mininet é incluído no Ubuntu 12.10+!), ou na nuvem (exemplo Amazon EC2.)
# Os resultados replicados podem ser compartilhados: qualquer computador pode processar seu código uma vez que você o desempacote.
# Os resultados replicados podem ser compartilhados: qualquer computador pode processar seu código uma vez que você o desempacote.
# É fácilmente usado: Podemos criar e processar experimentos Mininet usando simples scripts Python (ou complexo, se necessário)
# É fácilmente usado: Podemos criar e processar experimentos Mininet usando simples scripts Python (ou mais complexos, se necessário)
# Mininet é um projeto OpenSource: seu código pode ser examinado em  https://github.com/mininet. Permite modificação, correção, requisição de novas funcionalidades e ainda a submissão de patches.
# Mininet é um projeto OpenSource: seu código pode ser examinado em  https://github.com/mininet. Permite modificação, correção, requisição de novas funcionalidades e ainda a submissão de patches.
# Está em franco desenvolvimento: Se não funcionar por alguma razão, pode-se participar das discussões e informar à comunidade. Todos que encontram bugs são encorajados a submeter correções atualizando o github sobre casos de testes reproduzíveis.
# Está em franco desenvolvimento: Se não funcionar por alguma razão, pode-se participar das discussões e informar à comunidade. Todos que encontram bugs são encorajados a submeter correções atualizando o github sobre casos de testes reproduzíveis.


= Quais as limitações do Mininet =
= Quais as limitações do Mininet =
Linha 39: Linha 38:


* Mininet é uma ótima ferramenta mas possui algumas limitações, por exemplo:
* Mininet é uma ótima ferramenta mas possui algumas limitações, por exemplo:
# Processar em um único sistema é conveniente mas isto impõe limites de recursos: Se seu servidor tem 3 GHX de CPU e pode comutar sobre 3 Gbps de tráfego simulado, estes recursos precisarão ser balanceados e compartilhado ao longo dos switvhes e hosts virtuais
# Processar em um único sistema é conveniente mas isto impõe limites de recursos: Se seu servidor tem 3 GHz de CPU e pode comutar sobre 3 Gbps de tráfego simulado, estes recursos precisarão ser balanceados e compartilhado ao longo dos switvhes e hosts virtuais
# Mininet usa um kernel Linux único para todos os hosts virtuais; isto mostra que não se pode executar programas que dependem de BSD, Windows ou outros kernels de sistemas operacionais
# Mininet usa um kernel Linux único para todos os hosts virtuais; isto mostra que não se pode executar programas que dependem de BSD, Windows ou outros kernels de sistemas operacionais
# Mininet não irá escrever seu controlador OpenFlow; se você precisar customizar roteamento ou procedimentos de comuntação, será necessário encontrar ou desenvolver um controlador com os aspectos necessários
# Mininet não irá escrever seu controlador OpenFlow; se você precisar customizar roteamento ou procedimentos de comutação, será necessário encontrar ou desenvolver um controlador com os aspectos necessários
# Atualmente, Mininet não faz NAT fora do ambiente. Isto mostra que seus hosts virtuais estarão isolados por default de sua rede; isto é normalmente bom mas sinaliza que seus hosts não podem se comunicar diretamente com a Internet a menos que forneçamos um meio para isso
# Atualmente, Mininet não faz NAT fora do ambiente. Isto mostra que seus hosts virtuais estarão isolados por default de sua rede; isto é normalmente bom mas sinaliza que seus hosts não podem se comunicar diretamente com a Internet a menos que forneçamos um meio para isso
# Na versão atual, todos os hosts Mininet compartilham o sistema de arquivo de host e espaçõ PID; isto demonstra que deve se ter cuidado para a execução de daemons que exigem configuração /etc e requer atenção para não se destruir os processos errados.
# Na versão atual, todos os hosts Mininet compartilham o sistema de arquivo de host e espaçõ PID; isto demonstra que deve se ter cuidado para a execução de ''daemons'' que exigem configuração /etc e requer atenção para não se destruir os processos errados.
# Ao contrário de um simulador, Mininet não tem uma forte noção do tempo virtual efetivamente, suas medidas de tempo são baseadas no tempo real e portanto resultados aais rápidos que o tempo real (exemplo, redes 100 Gbps) não podem ser fácilmente emulados)
# Ao contrário de um simulador, Mininet não tem efetivamente uma forte noção do tempo virtual, suas medidas de tempo são baseadas no tempo real e portanto resultados mais rápidos que o tempo real (exemplo, redes 100 Gbps) não podem ser fácilmente emulados)
<br>
<br>


Linha 52: Linha 51:
* mininet.org/
* mininet.org/
* github.com/mininet/mininet‎
* github.com/mininet/mininet‎
* github.com/mininet/mininet/wiki/Introduction-to-Mininet
* github.com/CPqD/ofsoftswitch13/wiki/Dpctl-Documentation
* archive.openflow.org/wk/index.php/OpenFlow_Tutorial
* eventos.redclara.net/indico/getFile.py/access?contribId=1&resId=3&materialId=slides&confId=197
<br>
= Apresentação Felipe =
*[[Arquivo:mininetFelipe.pdf]]
*[[Arquivo:mininetFelipe.odp]]
= Cenários construídos =
== Primeiro Cenário ==
[[Arquivo: primeirocenariomininet.png|center|frame|]]

Edição atual tal como às 17h12min de 2 de dezembro de 2013

Mininet


  • Mininet é um emulador de rede que processa um conjunto de terminais, switches, roteadores e links em um único kernel Linux
  • Cria uma rede visual realística, processando kernel real, switches e código de aplicação em uma única máquina (VM, Cloud ou nativa), em segundos, com um simples comando
  • Um host Mininet porta-se como uma máquina real permitindo usar ssh e processar programas arbitrários
  • Os programas podem enviar pacotes através do que se parece com uma interface Ethernet real com um link num certo atraso e numa certa velocidade
  • Pacotes são processados pelo que se parece com um switch ou roteador Ethernet real ou ainda um middlebox com uma dada quantitade de enfileiramento
  • Quando dois programas, como um cliente iperf e servidor, se comunicam através do Mininet, o desempenho medido pode ser o de duas (lentas) máquinas nativas.



  • Devido à facil interação com a rede, usando CLI Mininet (e API) e ainda pela simples customização, compartilhamento com outros e implantação em hardware reais, Mininet é frequentemente usada em desenvolvimento, ensino e pesquisa.
  • Mininet também é uma excelente maneira de desenvolver, compartilhar e experimentar os sistemas OpenFlow e SDN - Software-Defined Networking.


Porque Mininet é interessante?


  1. É rápido já que iniciar uma rede simples pode ser feito em poucos segundos. O esquema de processar-editar-depurar é ágil
  2. Pode-se criar topologias customizadas: um único switch, uma Internet ampla, um backbone Stanford, um data center ou qualquer outra coisa
  3. É possível executar programas reais: qualquer coisa que rode no Linux está disponível para ser processado, de servidores web para janelas TCP sob monitoramento de ferramentas como o Wireshark
  4. Encaminhamento de pacotes podem ser customizados: Switches Mininet são programáveis usando protocolo OpenFlow. Projetos SDN customizados que processam o Mininet podem ser facilmente transferidos para hardware switches OpenFlow pelo encaminhamento de pacotes line-rate
  5. Mininet pode ser executado no laptop, em um servidor, em uma VM ou em um box Linux nativo (Mininet é incluído no Ubuntu 12.10+!), ou na nuvem (exemplo Amazon EC2.)
  6. Os resultados replicados podem ser compartilhados: qualquer computador pode processar seu código uma vez que você o desempacote.
  7. É fácilmente usado: Podemos criar e processar experimentos Mininet usando simples scripts Python (ou mais complexos, se necessário)
  8. Mininet é um projeto OpenSource: seu código pode ser examinado em https://github.com/mininet. Permite modificação, correção, requisição de novas funcionalidades e ainda a submissão de patches.
  9. Está em franco desenvolvimento: Se não funcionar por alguma razão, pode-se participar das discussões e informar à comunidade. Todos que encontram bugs são encorajados a submeter correções atualizando o github sobre casos de testes reproduzíveis.

Quais as limitações do Mininet


  • Mininet é uma ótima ferramenta mas possui algumas limitações, por exemplo:
  1. Processar em um único sistema é conveniente mas isto impõe limites de recursos: Se seu servidor tem 3 GHz de CPU e pode comutar sobre 3 Gbps de tráfego simulado, estes recursos precisarão ser balanceados e compartilhado ao longo dos switvhes e hosts virtuais
  2. Mininet usa um kernel Linux único para todos os hosts virtuais; isto mostra que não se pode executar programas que dependem de BSD, Windows ou outros kernels de sistemas operacionais
  3. Mininet não irá escrever seu controlador OpenFlow; se você precisar customizar roteamento ou procedimentos de comutação, será necessário encontrar ou desenvolver um controlador com os aspectos necessários
  4. Atualmente, Mininet não faz NAT fora do ambiente. Isto mostra que seus hosts virtuais estarão isolados por default de sua rede; isto é normalmente bom mas sinaliza que seus hosts não podem se comunicar diretamente com a Internet a menos que forneçamos um meio para isso
  5. Na versão atual, todos os hosts Mininet compartilham o sistema de arquivo de host e espaçõ PID; isto demonstra que deve se ter cuidado para a execução de daemons que exigem configuração /etc e requer atenção para não se destruir os processos errados.
  6. Ao contrário de um simulador, Mininet não tem efetivamente uma forte noção do tempo virtual, suas medidas de tempo são baseadas no tempo real e portanto resultados mais rápidos que o tempo real (exemplo, redes 100 Gbps) não podem ser fácilmente emulados)


Referências


  • mininet.org/
  • github.com/mininet/mininet‎
  • github.com/mininet/mininet/wiki/Introduction-to-Mininet
  • github.com/CPqD/ofsoftswitch13/wiki/Dpctl-Documentation
  • archive.openflow.org/wk/index.php/OpenFlow_Tutorial
  • eventos.redclara.net/indico/getFile.py/access?contribId=1&resId=3&materialId=slides&confId=197


Apresentação Felipe

Cenários construídos

Primeiro Cenário