simulando redes com gns
DESCRIPTION
Autor: Sergei Martao Trabalhar com análise de redes nem sempre é simples, em ambientes em produção configurar uma regra de roteamento ou iptables erroneamente pode parar o acesso a vários serviços. Por mais que esse tipo de tarefa seja bem planejada erros podem podem ocorrer, afinal de contas somos humanos.Uma das soluções é utilizar o GNS (Graphical Network Simulator ou Simulador de Redes Gráfico), com ele podemos montar uma estrutura de rede totalmente funcional e apartada e assim ser capaz de executar quantos testes forem necessários antes de replicar para o ambiente de produção.TRANSCRIPT
![Page 1: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/1.jpg)
SIMULANDO REDES COM O GNS
Autor: Sergei Martao <sergei.martao at gmail.com>
Data: 15/10/2015
INTRODUÇÃO
Trabalhar com análise de redes nem sempre é simples, em ambientes em produção configurar uma
regra de roteamento ou iptables erroneamente pode parar o acesso a vários serviços. Por mais que
esse tipo de tarefa seja bem planejada erros podem podem ocorrer, afinal de contas somos
humanos.
Uma das soluções é utilizar o GNS (Graphical Network Simulator ou Simulador de Redes Gráfico),
com ele podemos montar uma estrutura de rede totalmente funcional e apartada e assim ser capaz
de executar quantos testes forem necessários antes de replicar para o ambiente de produção.
Ele permite montar estruturas de redes complexas utilizando virtualização, um dos pontos mais
atrativos é o suporte ao VirtualBox e QEMU nativamente.
Nesse artigo quero mostrar como:
Adicionar VMs do VirutalBox no GNS.
Subir uma interface de rede para se comunicar com a rede do GNS.
Permitir que a VM no GNS sai para a internet passando pelo host hospedeiro.
Para fazer essa simulação utilizarei uma VM com Debian 8, hostname D8-FW01.
Ambiente utilizado:
GNS3: 1.3.10
VirtualBox: 5.0.4
ADICIONANDO VMS DO VIRTUALBOX NO GNS
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
1 of 9 20-10-2015 11:13
![Page 2: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/2.jpg)
O GNS por padrão consegue acessar todas as VMs criadas no VirtualBox, para adicionar uma, abra:
GNS >> Edit >> Preferences >> VirtualBox >> VirtualBox VMs >> New
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem01.png)
Para adicionar clique em Finish.
A VM aparecera no menu do VirtualBox VMs, nesse menu podemos fazer configurações
relacionados ao GNS, como quantas placas de rede terá e quantidade de memoria RAM.
Ao iniciar a simulação essas alterações são replicadas para as VMs, ou seja, se criar uma maquina
com 64 MB de RAM e uma placa de rede, e no GNS alterar os valores para 128 MB e três placas de
rede as configurações serão replicadas para o VirtualBox.
Agora podemos utilizar essa VM na simulação, veja que esta disponível no menu com todos os
dispositivos.
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
2 of 9 20-10-2015 11:13
![Page 3: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/3.jpg)
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem02.png)
Para adicionar na simulação basta arrastá-la para área principal.
CONFIGURANDO UMA INTERFACE PARA SE COMUNICAR COM O GNS
Nesse exato momento temos apenas um host no GNS, poderíamos adicionar vários outros e
começar a fazer uma simulação complexa, porém antes de chegar nesse nível umas das coisas mais
interessantes é a possibilidade de interligar o computador hospedeiro com o rede virtual do GNS.
Existem duas formas de realizar isso.
1. USANDO UMA VM COMO BRIDGE
Nesse cenário adicionaríamos uma VM com duas placas de rede, para formar uma bridge, uma placa
ficaria na rede GNS e outra na rede física, pegando IP como fosse mais um computador na sua rede,
porém esse é um método custoso, pois teríamos uma VM ligada apenas para permitir que o
computador acessa-se a rede do GNS.
2. USANDO UMA INTERFACE VIRTUAL
O GNS consegue trabalhar diretamente com interfaces de rede virtuais. Esse método é bem mais
interessante pois onera menos a memória RAM e CPU do computador, permitindo carregar mais
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
3 of 9 20-10-2015 11:13
![Page 4: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/4.jpg)
VMs. Esse sera o meio que empregarei.
Para criar a interface virtual do tipo tuntap com o nome de tap0 execute o seguinte comando:
$ sudo ip tuntap add dev tap0 mode tap
Para configurar um IP e ativar a nova interface utilize:
$ sudo ifconfig tap0 192.168.1.100 netmask 255.255.255.0 up
Verificar se a interface esta ativa e com IP:
$ ifconfig tap0
Devemos criar host no GNS para utilizar a interface criada.
GNS >> Browse all devices
Arrate um host para a área de simulação, clique nele com o botão direito entre em configure.
Host Group >> Host1 >> Tap
Digite tap0 e clique add para adicionar.
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem03.png)
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
4 of 9 20-10-2015 11:13
![Page 5: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/5.jpg)
Para poder conectar a interface tap0 ao host D8-FW01 é necessário adicionar um Switch, abra
novamente o menu Browser all devices e arraste um Switch, depois conecte ambos os dispositivos
nele, ficara dessa forma.
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem04.png)
Antes de testar precisamos configurar um IP na mesma rede para a VM.
ADICIONANDO UM IP PARA A VM E TESTANDO A CONEXÃO
Inicie a simulação clicando no botão Start/Resume all devices, isso ligará a VM.
Acesse o host D8-FW01 e edite o arquivo: /etc/network/interfaces
Altere as configurações da interface eth0, para:
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.100
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
5 of 9 20-10-2015 11:13
![Page 6: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/6.jpg)
Derrube e suba novamente a interface para carregar o novo IP:
$ sudo ifdown eth0 --force
$ sudo ifup eth0 --force
Verifique se carregou o novo IP:
$ ifconfig eth0
Caso esteja tudo correto agora é possível o host hospedeiro pingar a VM D8-FW01 e vise-versa.
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem05.png)
LIBERANDO A VM PARA INTERNET
O acesso entre os dois hosts está funcionando, porém a VM não é capaz de acessar a internet pelo
hospedeiro mesmo chegando nele. Para isso funcionar é necessário executar dois comandos:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Permite a passagem de pacotes pelo host hospedeiro.
$ sudo iptables -t nat -A POSTROUTING -o wlp9s0 -j MASQUERADE
Mascara a saída da interface wlp9s0 para o IP da interface, ou seja qualquer pacote que sair por ela
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
6 of 9 20-10-2015 11:13
![Page 7: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/7.jpg)
será alterado para o IP de saída da placa, sem essa regra a VM sairia com o IP 192.168.1.1, porém o
roteador de casa não saberá para quem devolver, pois ele não tem rota para essa rede. Apenas
lembrando que a interface deve ser alterado para interface do seu computador.
Apos e executar esses comandos podemos acessar a internet pelo D8-FW01, para ver por onde a
VM esta passando executar o comando:
$ traceroute www.vivaolinux.com.br
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem06.png)
O primeiro salto é o IP da interface tap0, utilizada como gateway da VM.1.
O segundo é o IP interno do roteador wireless de casa.2.
Terceiro salto é o IP do roteador do modem de internet de casa e assim por diante até chegar
no VOL.
3.
INCREMENTANDO O DESENHO DE REDE
Dependendo do tamanho da simulação que se pretende fazer é muito fácil se perder, seja
confundindo os IPs cada host possui ou então a interface que cada host está conectando e quando a
pessoa é sortuda consegue confundir os dois juntos, por isso o GNS fornece ferramentas para
estruturar o desenho e assim documentar melhor o ambiente que esta sendo simulado. Recomendo
muito a utilização desse recurso.
Para melhor exemplificar fiz um upgrade no desenho da simulação.
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
7 of 9 20-10-2015 11:13
![Page 8: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/8.jpg)
(http://img.vivaolinux.com.br/imagens/artigos/comunidade/Imagem07.png)
CONSIDERAÇÕES
Todos os comandos executados no host hospedeiros são temporários, funcionarão enquanto a
máquina não for desligada.
Esse desenho é o básico do básico que o GNS pode fazer, dependendo a necessidade ou da
imaginação é possível criar estruturas gigantescas, o único limite mesmo é a quantidade de memória
RAM que o host hospedeiro possui, pois como a simulação é realizada usando virtualização o
consumo de memoria é bem alto, por isso o ideal é utilizar uma distribuição leve para testar, gosto do
Debian 8 pois é fácil de instalar e bem econômico, 128 MB de memória RAM é mais do que
suficiente para o básico.
Escrevi esse artigo de introdução ao GNS, para ser uma referencia para futuros artigos que terão
uma estrutura de rede bem mais complexo e próximo de uma infraestrutura do mundo real.
Críticas, dúvidas ou sugestões por favor deixem nos comentários!
REFERÊNCIAS
Conceito do Tuntap
http://backreference.org/2010/03/26/tuntap-interface-tutorial/ (http://backreference.org/2010/03
/26/tuntap-interface-tutorial/)
Configuração do Tuntap
https://community.gns3.com/community/connect/community-blog/blog/2015/01/05/internet-
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
8 of 9 20-10-2015 11:13
![Page 9: Simulando Redes Com Gns](https://reader036.vdocuments.pub/reader036/viewer/2022081805/563db822550346aa9a90d79c/html5/thumbnails/9.jpg)
connectivity-via-linux-host (https://community.gns3.com/community/connect/community-blog/blog
/2015/01/05/internet-connectivity-via-linux-host)
Voltar (verArtigo.php?codigo=15581)
Simulando redes com o GNS [Artigo] http://www.vivaolinux.com.br/artigos/impressora...
9 of 9 20-10-2015 11:13