Sem resumo de edição |
|||
| (4 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| 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 | # É 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. | ||
| Linha 38: | 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 | # 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 | # 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 | # 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 51: | 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?
- É 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
- É 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
- 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
- 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.
- É 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.
- 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:
- 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 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
- 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 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

