simulando redes com gns

9
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

Upload: samuel-barbosa

Post on 05-Jan-2016

221 views

Category:

Documents


0 download

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

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

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

(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

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

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

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

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

(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

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