Tutorial - GNS3, VyOS e Virtual PC Simulator (VPCS)

Sumário

1. Graphical Network Simulator-3 (GNS3)

O GNS3 é um simulador de redes que combina dispositivos virtuais e reais e pode ser utilizado para a criação de cenários complexos de redes de computadores. O GNS3 é utilizado tanto como ferramenta para o aprendizado de redes como para o planejamento e testes de configurações de equipamentos e de cenários de redes a serem reproduzidos em ambiente de produção. Os dispositivos que podem ser utilizados no GNS3 incluem: roteadores, switches, equipamentos de segurança e servidores virtuais ou físicos que executem qualquer sistema operacional.

O GNS3 funciona em conjunto com os monitores de virtualização dynamips, QEMU, VMware e VirtualBox para emular os diversos dispositivos de redes. Roteadores de fabricantes como Cisco, Juniper, Dell, Brocade, Aruba assim como sistemas de código aberto como Linux-Quagga, VyOS e OpenWrt e os firewalls psSense e OPNSense também podem ser utilizados no GNS3. O dynamips emula vários equipamentos da empresa Cisco (plataformas 1700, 2600, 2691, 3600, 3725, 3745 e 7200). Para utilizar o dynamips é necessário fornecer uma imagem do sistema operacional Cisco IOS (Internetwork Operating System) referente a algum modelo de equipamento do fabricante.

Ao contrário dos roteadores domésticos que oferecem uma interface gráfica para configuração, outros roteadores são configurados através da linha de comando (CLI ou command-line interface) ou por scripts. Os sistemas de roteadores oferecem funcionalidades parecidas, mas têm um conjunto próprio de comandos e a própria sintaxe dependente do sistema operacional utilizado.

Os monitores de virtualização QEMU, VirtualBox ou VMWare permitem a execução de qualquer sistema operacional conectados às redes do GNS3, onde podemos hospedar servidores web, servidores de DNS dentre outros para fins de virtualização, fins didáticos ou para testes de configurações.

As redes simuladas no GNS3 podem ser conectadas às rede locais conectadas ao computador hospedeiro e à Internet.

1.1. Instalação do GNS3

No Linux Ubuntu, a instalação do GNS3 pode ser feito a partir do repositório oficial do GNS3 através dos seguintes comandos:

    sudo add-apt-repository ppa:gns3/ppa
    sudo apt update                                
    sudo apt install gns3-gui gns3-server

No Windows, o GNS3 pode ser instalado seguindo as instruções que estão neste link.

Para abrir o GNS3, digite "gns3" na linha de comando do Linux. O programa mostrará uma janela com o "Setup Wizard". Escolha a opção "Local Server" e "Next". A próxima janela permitirá a você adicionar máquinas virtuais ao ambiente do GNS3. A mesma funcionalidade está presente via menu "Edit -> Preferences". Clique em "Cancel" para fechar o "Setup Wizard" sem adicionar máquinas. A melhor alternativa para incluir dispositivos emulados no GNS3 é através dos appliances que são pequenos arquivos de texto que descrevem as configurações dos dispositivos e os links para downloads das imagens dos sistemas operacionais que estejam disponíveis gratuitamente. Os appliances do GNS3 podem ser encontrados no site oficial do GNS3.

2. Virtual PC Simulator (VPCS)

O Virtual PC Simulator (VPCS) é um software livre que simula um sistema operacional com interface de linha de comando e permite a execução de comandos simples como ping e traceroute. O VPCS pode ser integrado às redes do GNS3 sem tornar a simulação pesada e é uma alternativa a criar máquinas virtuais que executam sistemas operacionais completos em monitores de virtualização como qemu e VirtualBox. Na versão atual do GNS3, o VPCS está integrado à interface do simulador.

2.1. VPCS: interface e acesso aos computadores virtuais

Na versão atual do GNS3, o VPCS já está pré-configurado. Existe um ícone padrão de hospedeiro VPCS disponível na interface gráfica na seção "End Devices".

Os endereços IP das interfaces, o gateway padrão e a máscara da rede do computador devem ser definidos com o comando ip:

ip <address> [<gateway>] [/<mask>]

Ex. > ip 192.168.0.1 192.168.0.254 /24
    > save

Atenção: O comando save salva a configuração da máquina simulada e a configuração será carregada em execuções futuras.

O comando show mostra as configurações das interfaces de rede do PC virtual:

PC1> show

NAME   IP/MASK              GATEWAY           MAC                LPORT  RHOST:PORT
PC1    192.168.0.1/24       192.168.0.254     00:50:79:66:68:00  10012  127.0.0.1:10013
       fe80::250:79ff:fe66:6800/64
PC1> 

O comando ping permite testar a conectividade entre os PCs (de acordo com a topologia da rede e da configuração dos roteadores definidos no GNS3):

PC1> ping 192.168.0.2

84 bytes from 192.168.0.2 icmp_seq=1 ttl=64 time=0.233 ms
84 bytes from 192.168.0.2 icmp_seq=2 ttl=64 time=0.338 ms
84 bytes from 192.168.0.2 icmp_seq=3 ttl=64 time=0.379 ms
84 bytes from 192.168.0.2 icmp_seq=4 ttl=64 time=0.382 ms
84 bytes from 192.168.0.2 icmp_seq=5 ttl=64 time=0.347 ms

A figura abaixo apresenta a interface do GNS3 com uma rede de topologia simples na qual duas máquinas VPCS foram conectadas a um switch. Do lado direito, o terminal da máquina PC1 está aberto.

Subnet


2.2. Captura de Pacotes

Pacotes podem ser capturados utilizando o programa Wireshark instalado na máquina. Clique sobre o enlace com o botão da direita do mouse e escolha a opção Start capture. O Wireshark será aberto e começará automaticamente a capturar pacotes na interface escolhida.

2.3. Documentação online do VPCS

Digite '?' na linha de comandos para obter a lista de comandos oferecidos pelo VPCS. Digite o nome de um comando seguido de '?' para obter a descrição do comando.

Exemplo:

VPCS[1]> ping ?

ping <host> [-options]
  Ping the network <host>. <host> can be an ip address or name
    options:
  ...           [ linhas omitidas ]
  Note: 1. Using names requires DNS to be set.
        2. Use Ctrl+C to stop the command.
VPCS[1]>
VPCS[1]> ?

[ lista todos os comandos do VPCS ] 

3. Exemplo Simples: Switch Ethernet e 2 PCs

Neste exemplo serão criados 2 PCs VPCS que estarão interligados no GNS3 através de um switch ethernet. Por estarem na mesma rede local podem se comunicar diretamente sem a necessidade da intermediação de um roteador.

3.1. Switch Ethernet no GNS3

O GNS3 provê um simulador de um switch ethernet de fácil configuração visual. Outra alternativa é a emulação de um switch real, executando o sistema operacional de um switch, como o Open vSwitch, como uma máquina virtual. Para facilitar a tarefa, usaremos neste tutorial o emulador simplificado de switch disponível por padrão no GNS3. A figura abaixo mostra a janela de configuração do switch.

Switch no GNS3


Cada porta física do switch pode ser configurada como:

porta de acesso (tipo: access)
para conexões que não envolvem VLANs ou para conectar sistemas finais aos switches.
entrocamento ou trunk (tipo: dot1q )
para conexões entre comutadores quando estes participam de VLANs (Virtual Lans) e mais de uma VLAN precisa passar pelo enlace.

3.2. Topologia da Rede

Construiremos uma rede que consiste de um switch e dois PCs. Construiremos ela passo a passo, como segue:

  1. Execute o GNS3 e escolha um nome para o projeto e um diretório para salvá-lo.
  2. Adicione um switch ethernet à rede clicando no botão switch-icon.png e arrastando o ícone correspondente a um switch ethernet.
  3. Adicione os dois computadores VPCS arrastando o ícone correspondente.
  4. No GNS3, conecte os computadores ao switch. Para entrar no modo de inserção de enlaces, clique no botão link-botao.png. No lado do computador, escolha a interface ethernet0 e do lado do switch utilize as portas (físicas) 1 e 2, por exemplo.
  5. Atribua os endereços IP 192.168.0.1 e 192.168.0.2 com máscara 24 a PC1 e PC2, respectivamente (como gateway padrão, utilize o endereço 192.168.0.254 que será utilizado adiante).

Inicie a execução dos dispositivos clicando no botão start.png.

No terminal do PC, verifique o funcionamento da rede utilizando o comando ping para testar a conectividade entre o PC1 e o PC2, e vice versa.

A topologia da rede deve ser como na figura abaixo:

Subnet


3.3. Como Salvar o Projeto

Nas versões recentes do GNS3, os projetos são salvos automaticamente. Note, porém, que cada dispositivo emulado possui comandos próprios para salvar as suas configurações em memória secundária.

3.4. Exercício 1: Uma sub-rede e captura de pacotes com o Wireshark

Siga os seguintes passos, respeitando a ordem:

  1. Inicie a simulação da rede com dois hospedeiros VPCS e um switch ethernet
  2. Inicie a captura de pacotes em um dos enlaces
  3. Configure os endereços IP das máquinas VPCS
  4. Execute o comando ping de uma máquina para outra.

Liste todos os tipos de pacotes capturados e descreva o significado de cada um.

Assumimos que o programa wireshark foi corretamente instalado na máquina. No Linux, o usuário deve estar no grupo wireshark. O comando "sudo usermod -a -G wireshark $USER" adiciona o usuário àquele grupo caso ele já não esteja. Além disso, o wireshark deve ter sido configurado para que usuários comuns possam usá-lo. Se essa opção não foi escolhida durante a instalação, então o comando sudo dpkg-reconfigure wireshark deve ser executado para mudar essa configuração. Para efetivar as operações, é preciso fazer novo login no sistema operacional.

4. Adicionando um Roteador à Rede

Vamos adicionar agora um roteador VyOS à rede. O roteador permitirá que sub-redes distintas se comuniquem.

Encontre no documento Guia de Instalação e Comandos Básicos do VyOS e VPCS instruções de como instalar o roteador de código aberto VyOS e seus comandos básicos e também instruções de como utilizar a sua linha de comando.

É importante instalar a imagem no disco virtual como descrito no guia, pois quando o VyOS é executado pela imagem de instalação, não é possível salvar as configurações do roteador em memória secundária. Se ao iniciar o VyOS aparecer no terminal uma mensagem dizendo para executar o comando install image para instalar o VyOS é porque você está utilizando a imagem de instalação e não o sistema instalado no disco virtual. Também, ao entrar no modo de configuração com o comando configure você receberá uma advertência no terminal caso o sistema não esteja instalado. Cada instância do VyOS que você utilizar na simulação precisa ser instalada independentemente.

Agora, vamos adicionar o roteador na rede. Siga os passos abaixo:

  1. Clique no símbolo do roteador symbol-roteadores.png e escolha um modelo de roteador disponível e arraste-o para dentro da rede em construção. Para as atividades da disciplina, vamos utilizar o roteador VyOS.
  2. Crie um enlace entre o roteador e o switch, como no passo 4 descrito anteriormente. Utilize portas disponíveis no roteador e no switch, por exemplo, eth0 no roteador (ou f0/0 - o nome da interface depende do sistema operacional utilizado) e porta 3 do switch, respectivamente.

Observação: o número de interfaces do roteador VyOS é configurável. Com ele desligado, clique no ícone com o botão da direita, escolha a opção 'configure' e vá na aba 'network' onde você encontrará um campo para preencher o número de interfaces. Os roteadores Cisco suportados pelo dynamips são modulares e em configurações/slots é possível adicionar módulos com mais interfaces.

4.1. Adicionando uma outra sub-rede

Crie uma segunda sub-rede idêntica à primeira (exceto pelos endereços IP) e conecte o novo switch em uma porta disponível do roteador. Utilize o endereço 10.0.0.0/24 nessa nova sub-rede.

Nos terminais das máquinas VPCS, atribua os endereços IPs 10.0.0.3 e 10.0.0.4 ao PC3 e ao PC4, respectivamente. A escolha dos endereços é arbitrária dentro do prefixo /24 escolhido, mas os endereços sugeridos acima facilitam a memorização.

O gateway é a interface do roteador pertencente a essa sub-rede. Utilizaremos o endereço 10.0.0.254 nesta interface como descrito adiante.

A rede criada deve se parecer com a mostrada na figura abaixo e a configuração do roteador VyOS será feita adiante.

Subnet


Note que embora o PC1 e o PC2 já possam se comunicar, e também o PC3 e o PC4, o PC1 não alcança o PC3 e nem o PC4, pois estão em sub-redes distintas. Isso requer que o roteador seja configurado para encaminhar pacotes de uma sub-rede para a outra. Faremos isso em breve, mas antes leia algumas dicas de como usar o terminal de linha de comando (CLI) do sistema operacional VyOS.

4.2. A linha de comando do terminal do roteador

Lembre-se que o roteador VyOS possui dois modos de operação: o modo operacional (prompt '$') e o modo de configuração (prompt '#'). O primeiro modo serve para acessar as funções do sistema operacional e visualizar o estado do sistema e do roteador e o modo de configuração permite modificar as configurações do roteador.

  1. Os comandos são armazenados no histórico do terminal. As teclas 'seta para cima' e 'seta para baixo' permitem percorrer os comandos do histórico que podem ser editados.
  2. A tecla TAB autocompleta comandos se não houver ambiguidades. Por exemplo: show int<tab> transforma a linha em show interfaces. A tecla TAB também mostra as próximas opções de argumentos de um comando. Experimente digitar show ip <tab>. Caso a lista de opções não caiba no terminal, digite as teclas <espaço> ou <pg down> para rolar a tela ou a tecla q para sair.
  3. Digitar ? no meio da digitação dos comandos mostra todos os complementos possíveis ou comandos possíveis. Experimente digitar show i?. Ou show interfaces ?.
  4. Os comandos podem ser abreviados, desde que não haja ambiguidades. Por exemplo: show interfaces counters pode ser digitado sh int co.
  5. Ctrl-u apaga todo o conteúdo da linha atual (aliás, essa combinação de teclas funciona na maioria das CLIs, como em bash e zsh, inclusive ao digitar senhas - caso você cometa um erro ao digitar a senha, pode pressionar Ctrl-u e redigitar a senha desde o início).
  6. Ctrl-k apaga a linha do cursor para frente. Ctrl-a leva o cursor para o início da linha e ctrl-e para o final da linha. Ctrl-r faz uma busca incremental reversa no histórico de comando e é muito útil para corrigir comandos errados (por exemplo, encontre o comando errado com ctrl-r e troque set por delete e faça commit para desfazê-lo).
  7. Comandos úteis:
Modo operacional:

$ show interfaces    #  mostra os endereços IP e o estado das interfaces

$ show ip route      #  mostra a tabela de roteamento e uma legenda 
                        com o significado das letras que indicam a origem da
                        informação
$ show configuration # mostra todas as configurações do roteador


Modo de configuração:

# set                   # usado para fazer configurações
# delete <comando ...>  # desfaz os efeitos de <comando ...>
# discard               # descarta configurações antes de um commit
# commit                # aplica as modificações
# discard               # descarta alterações que não sofreram commit
# save                  # salva as configurações do roteador

4.3. Configurando o roteador

Agora vamos à configuração do roteador:

  1. Inicie o roteador, clicando em "start".
  2. Abra o console do roteador.
  3. Vá para o modo de configuração com:
  Router# configure
  1. Atribua endereços IP às interfaces. No roteador utilizado neste tutorial, elas chamam-se eth0 e eth1. Talvez as interfaces tenham nomes diferentes no roteador utilizado por você. Na barra de ferramentas da interface do GNS3 tem um botão cujo ícone tem as letras a, b e c que quando clicado mostra os nomes das interfaces de rede dos dispositivos. Na guia lateral direita da interface do GNS3 também é possível ver os nomes das interfaces e com quais interfaces elas estão conectadas.

Use os endereços 192.168.0.254 e 10.0.0.254, respectivamente. Essas interfaces são os gateways (ou default gateways) das duas sub-redes existentes.

Utilize os seguintes comandos:

vyos@vyos# set interfaces ethernet eth0 address 192.168.0.254/24
vyos@vyos# set interfaces ethernet eth1 address 10.0.0.254/24
vyos@vyos# commit
vyos@vyos# save
vyos@vyos# exit
  1. O roteador VyOS faz roteamento entre as redes que estão diretamente conectadas a ele por padrão, sem necessidade de outras configurações.
  2. Verifique, agora, no terminal dos PCs que todos eles podem alcançar todos os outros. Utilize o comando ping. Por exemplo, o PC1 alcança o PC3:

    PC1> ping 10.0.0.3
    
    84 bytes from 10.0.0.3 icmp_seq=1 ttl=62 time=2.638 ms
    84 bytes from 10.0.0.3 icmp_seq=2 ttl=62 time=1.890 ms
    84 bytes from 10.0.0.3 icmp_seq=3 ttl=62 time=1.616 ms
    84 bytes from 10.0.0.3 icmp_seq=4 ttl=62 time=1.968 ms
    84 bytes from 10.0.0.3 icmp_seq=5 ttl=62 time=1.590 ms
    

A tabela de roteamento do VyOS deve aparecer assim:

vyos@vyos$ show ip route

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       I - ISIS, B - BGP, > - selected route, * - FIB route

C>* 127.0.0.0/8 is directly connected, lo
C>* 192.168.0.0/24 is directly connected, eth0
C>* 10.0.0.0/24 is directly connected, eth1

4.4. O que estudaremos adiante

Na próxima parte deste tutorial aprenderemos a fazer roteamento estático em uma rede com mais de um roteador, conectaremos a rede simulada com a rede local e com a Internet e implementaremos a tradução de endereços NAT. Na terceira parte desde tutorial aprenderemos sobre protocolos de roteamento dinâmicos e firewalls.

4.5. Se der errado

Para verificar as configurações do roteador, utilize os comandos listados abaixo.

Para saber os endereços IP das interfaces e se elas estão operacionais (up):

  vyos@vyos$ show interfaces

Para verificar informações de roteamento:

  vyos@vyos$ show ip route

Ou toda a configuração do roteador:

  vyos@vyos$ show configuration

Lembre-se que no VPCS existe o comando show para verificar os endereços IPs e os gateways de cada computador virtual.

Tenha certeza que cópias de execuções anteriores do programa VPCS não estejam mais em execução na máquina. Caso precise forçar o término da execução de processos zumbis do VPCS, utilize o comando pkill vpcs na shell do Linux.

Caso o simulador GNS3 apresente alguma instabilidade, sugerimos que o projeto seja salvo, o programa reiniciado e a topologia recarregada.

5. Roteamento Estático

Sub-redes diretamente conectadas ao roteador não precisam ser configuradas no VyOS: por padrão, pacotes direcionados a essas sub-redes são encaminhados automaticamente para elas. Isso pode ser diferente em outros modelos de roteador. Sub-redes não diretamente conectadas ao roteador são desconhecidas por ele e inalcançáveis a partir dele a menos que novas entradas na tabela de roteamento sejam acrescentadas de uma das seguintes maneiras:

  • pela execução de um protocolo de roteamento dinâmico (OSPF, RIP, etc.)
  • pela configuração manual de rotas estáticas
  • pela configuração de uma rota default

Rotas podem ser definidas de forma estática no VyOS com o comando:

  set protocols static route <endereço/tam. do prefixo> next-hop <endereço>

Onde <endereço/tam. do prefixo> é o endereço da rede de destino para a qual se quer que o roteador encaminhe pacotes e <endereço> é o endereço IP da interface de outro roteador diretamente conectado a esse roteado responsável pelo próxima salto (next hop) dos pacotes com prefixo <endereço/tam. do prefixo>.

Exemplo:

   set protocols static route 10.0.0.0/24 next-hop 10.1.1.2
   commit; save; exit

Para ver o conteúdo da tabela de roteamento do VyOS, utilize o comando show ip route. O resultado deve se parecer com:

  vyos $ show ip route 

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       I - ISIS, B - BGP, > - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 10.1.1.2, eth1
S>* 10.0.0.0/24 [1/0] via 10.1.1.2, eth1
C>* 10.1.1.0/30 is directly connected, eth1
C>* 192.168.0.0/24 is directly connected, eth0

5.1. Exercício 2-A: Roteamento estático no VyOS/GNS3

Subnet

Figura 1: Cenário da atividade de roteamento estático.


  1. Crie duas sub-redes com prefixos 192.168.X.0/24 e 10.0.X.0/24; substitua X pelo número correspondente ao teu nome na lista fornecida pelo professor.
  2. Cada sub-rede é formada inicialmente por um switch ethernet e dois hospedeiros (VPCS). Não utilize VLANs.
  3. Adicione dois roteadores. Neste momento, lembre-se de executar o comando install image em cada roteador e reiniciá-los com o comando reboot now.
  4. Conecte o switch de cada sub-rede em um roteador diferente.
  5. Conecte os dois roteadores. Não esqueça de atribuir endereços IPv4 às interfaces entre eles (escolha endereços apropriados!). Lembre-se: a conexão ponto a ponto entre os roteadores forma uma terceira sub-rede e portanto precisa ter um prefixo de rede diferente de 192.168.X.0 e de 10.0.X.0/24. Por exemplo, você pode usar o endereço 10.1.X.0/24.
  6. Configure endereços IPv4 em todas as interfaces ativas. Nos roteadores, use o comando show interfaces para verificar os endereços atribuídos. No VPCS use o comando show ip.
  7. Antes de configurar o roteamento nos roteadores, execute um comando ping de um hospedeiro da rede 192.168.X.0 para um hospedeiro da rede 10.0.X.0. Repare qual mensagem de exceção é devolvida pelo ping. O que ocorreu é o que roteador, que é o gateway da rede 192.168.X.0, não sabe como encaminhar um pacote com endereço de destino com prefixo 10.0.X.0/24. Está faltando uma entrada na tabela de encaminhamento para essa função.
  8. Configure os roteadores com rotas estáticas para que as redes 192.168.X.0 e a rede 10.0.X.0 possam se comunicar. Faça isso como descrito no início desta seção 5.
  9. Use o comando show ip route para verificar as tabelas de roteamento de cada roteador.
  10. Teste o funcionamento com os comandos ping e traceroute entre PCs, de PCs para roteadores e de roteadores para os PCs.
  11. Capture pacotes com o wireshark. Analise os endereços IP de origem e destino dos pacotes. Compare estes endereços com os endereços contidos nas tabelas de roteamento dos dois roteadores.

5.2. Exercício 2-B: Conectando a rede do GNS3 à Internet

Subnet

Figura 2: Cenário da atividade de NAT e conexão à Internet


Neste exercício conectaremos a rede do exercício 2-A à rede local física e à Internet. É necessário que o teu PC/notebook esteja conectado à rede local por cabo ethernet e não pelo wifi.

  1. Adicione a sua rede do GNS3 um dispositivo do tipo 'cloud' conectado a um dos roteadores.
  2. Configure a interface do VyOS conectada a 'cloud' para obter o endereço IP por DHCP da rede local externa. Use o comando:

       set interfaces ethernet <nome da interface>  address dhcp
    

    O comando abaixo pode ser útil caso a interface não receba um endereço IP, por exemplo, quando o roteador for reinicializado e a interface já esteja configurada para atribuição de endereço por DHCP (substitua o X pelo número da interface):

       renew dhcp interface ethX
    
  3. Crie regras de tradução de endereços (NAT) no roteador conectado à rede local física. Como existem 3 sub-redes no cenário, é preciso criar 3 regras. Cada regra necessita de 3 comandos:

    set nat source rule 10 outbound-interface name <nome-da-interface>
    set nat source rule 10 source address <endereço/máscara interno>
    set nat source rule 10 translation address masquerade
    

Onde:

  • 10 é o identificador da regra. Use números diferentes para os outros conjuntos de regras.
  • <nome-da-interface> é o nome da interface conectada a cloud
  • <endereço/máscara interno> é um prefixo de endereços IP privados internos
  • masquerade significa que ele vai mapear o endereço interno para o endereço que esteja atribuído à interface <nome-da-interface> que recebeu um endereço dinâmico via DHCP da rede física.

Dependendo da versão do VyOS (mais antigas), a palavra name depois de outbound-interface deve ser omitida.

  1. Crie uma rota default para que os pacotes endereçados para fora da rede do GNS3 sejam encaminhados para o roteador de borda (isto é, aquele conectado à rede externa). No roteador de borda (conectado à nuvem), a rota default é acrescentada automaticamente quando a configuração de NAT é feita no VyOS. Assim, você só precisa configurar rota default no outro roteador.

       # set protocols static route 0.0.0.0/0 next-hop <endereço de outro roteador>
    
    • no modo de configuração do vyos, utilize os comandos abaixo para ativar as modificações, salvar as configurações e voltar para o modo operacional.

         # commit; save; exit
      
    • Teste a conectividade com a Internet executando o comando ping 8.8.8.8 ou trace 8.8.8.8
    • No terminal dos VPCS, use o comando ip dns 177.101.20.20 para configurar um servidor recursivo de DNS (177.101.20.20 é o servidor de DNS recursivo da UEPG - e o firewall da UEPG bloqueia acesso a outros servidores externos. Se você estiver fora da UEPG, utilize o 8.8.8.8 que é o servidor recursivo aberto do Google). Agora você pode executar comandos ping com nomes de servidores também, como ping google.com.
    • No VyOS, você pode configurar o endereço de um servidor de DNS recursivo com o comando set system name-server <endereço>.

6. Configurando VLANs

Como estudamos em aula, as VLANs permitem que várias sub-redes compartilhem os mesmos cabos de rede e os mesmos switches (diferentes portas do switch serão configuradas como pertencentes a diferentes VLANs). Estudamos que os motivos para segmentar uma rede em sub-redes ou VLANs incluem: facilidade de administração, segurança, facilidade de criar regras de firewall, isolar tráfego, reduzir o domínio de broadcast, dentre outros.

Uma introdução ao conceito de VLANs pode ser encontrada em The VLAN Concept - Introduction to VLANs.

Um protocolo que suporta VLANs é o protocolo de camada 2 da IEEE de número 802.1Q. Interfaces em redes com VLANs podem ser de acesso ou entroncamentos (trunk).

Interfaces de acesso
os quadros que trafegam em interfaces de acesso não carregam informações de VLANs e são usada quando existe um único dispositivo conectado à interface ou quando todos os dispositivos conectados à interface pertencem à mesma VLAN (mesma sub-rede)
Interfaces de entroncamento
os quadros que trafegam em interfaces de entroncamento carregam informações de VLANs, isto é, carregam rótulos (tags) de identificação de VLANs, de acordo com algum protocolo como o IEEE 802.1Q. Os entroncamentos são usados para conectar dispositivos entre os quais devem passar quadros pertencentes a mais de uma VLAN.

Interfaces de redes de diferentes VLANs devem receber diferentes prefixos de endereçamento IP, afinal pertencem a diferentes sub-redes. Dispositivos de uma mesma VLAN se comunicam através de comutação de camada 2 que utiliza endereços físicos (endereços MAC). Dispositivos em VLANs diferentes somente se comunicam através de comutação de camada 3, isto é, de roteamento IP.

6.1. Acrescentando VLANs à rede

Vamos criar uma rede com duas VLANS, incluindo 4 VPCS, 2 switches e um roteador para fazer o roteamento entre as VLANs. Chamaremos uma VLAN de VLAN 10 associada à sub-rede com endereço 192.168.0.0/24 e a outra será a VLAN 20 associada à sub-rede de endereço 10.0.0.0/24. As portas dos dois switches devem ser configuradas para serem portas de acesso das VLANs 10 ou 20 ou portas de entroncamento (trunk) 802.1Q.

O enlace que conecta os dois switches e o enlace que conecta o switch 1 ao roteador recebem a configuração de entroncamento (trunk) de acordo com o protocolo 802.1q. A interface do roteador VyOS receberá dois endereços IP: cada endereço será o endereço do gateway de cada VLAN (sub-rede). Dizemos que a interface é dividida em subinterfaces (virtuais).

Faremos o seguinte mapeamento entre VLANs e sub-redes:

VLAN        sub-rede
Vlan 10      192.168.0.0 /24
Vlan 20      10.0.0.0 /24

A rede terá a seguinte topologia:

Subnet

Figura 3: Cenário da atividade com VLANs.


O roteamento entre as sub-redes será feito utilizando o conceito chamado "router on a stick", que conecta as redes em uma única porta do roteador. Outros métodos para fazer o roteamento entre as VLANs estão descritos em Intervlan Routing - Routing Between VLAN Networks.

Siga os seguintes passos:

  1. Crie a topologia da rede com 4 VPCS, 2 switches e 1 roteador VyOS como mostrado na figura 3.
  2. Atribua endereços IP aos VPCS.
  3. Crie um enlace entre os switches 1 e 2. Configure as portas utilizadas por esse enlace para ser do tipo dot1q (entroncamento ou trunk). A porta entre o switch 1 e o roteador também deve ser configurada como sendo do tipo entroncamento. Veja as Figuras 4 e 5.
  4. Conecte os PCs aos switches de acordo com a topologia da Figura 3.
  5. Configure os switches de forma que as portas onde os PCs estão conectados pertençam a VLAN 10 ou a VLAN 20.

Subnet

Figura 4: Configuração do switch 1

Subnet

Figura 5: Configuração do switch 2


  1. Configure os endereços IP da interface do roteador. Os comandos estão listados abaixo. A interface será subdividida em 2 sub-interfaces, uma para cada VLAN.

Para configurar as subinterfaces da interface eth0 do roteador VyOS execute os comandos abaixo:

   # set interfaces ethernet eth0 vif 10 description 'VLAN 10'
   # set interfaces ethernet eth0 vif 10 address 192.168.0.254/24

   # set interfaces ethernet eth0 vif 20 description 'VLAN 20'
   # set interfaces ethernet eth0 vif 20 address 10.0.0.254/24
 
   # commit; save

Feito! Neste ponto os 4 PCs já possuem conectividade entre si, mesmo aqueles que estão em sub-redes distintas e os conectados em diferentes switches.

Outras soluções para organizar as VLANs são descritas no artigo: InterVLAN Routing - Routing between VLAN Networks.

Uma boa referência conceitual sobre VLANs é Routing Between VLANs Overview em Cisco IOS Switching Services Configuration Guide, Release 12.2

E mais uma informação: normalmente a VLAN de número 1 é a VLAN padrão (ou nativa). As portas sem configuração de VLAN estarão na VLAN padrão. Mesmo em entroncamentos, os pacotes da VLAN 1 não carregam rótulos (tags) da VLAN. Os dispositivos assumem que os pacotes sem rótulos são da VLAN padrão.

6.2. Exercício 4: VLANs no GNS3 e VyOS

Implemente o cenário com VLANs da Figura 3, porém troque o endereço da primeira sub-rede de 192.168.0.0 para 192.168.X.0 e da segunda sub-rede de 10.0.0.0 para 10.0.X.0, onde X é o seu número na listagem fornecida em anexo à especificação desse trabalho.

7. Roteamento Dinâmico

Protocolos de roteamento dinâmico permitem que as tabelas de roteamento seja configuradas automaticamente de acordo com parâmetros da rede. Além disso, em caso de mudanças na topologia ou falhas, as tabelas de roteamento são automaticamente atualizadas. Essa atualização não é instantânea e o tempo da mudança até a atualização das tabelas chama-se tempo de convergência do protocolo de roteamento, durante o qual pode haver instabilidades na conectividade da rede.

Um Sistema Autônomo (AS) é um grupo de redes gerenciadas por um mesmo operador e que possuem uma clara e única política de roteamento.

O roteamento na Internet é hierárquico. Sistemas autônomos utilizam protocolos de roteamento intra-AS ou Interior Gateway Protocol (IGP) para que os roteadores de suas redes possam trocar informações sobre caminhos para os prefixos de endereços IP que pertencem ao AS. Os roteadores de um AS recebem informações sobre prefixos do restante da Internet através de um protocolo inter-AS chamado BGP (border gataway protocol).

Protocolos de roteamento intra-AS podem ser baseados em um de dois tipos de métodos:

Protolos de Estado de Enlace (link state protocols)
são protocolos que fazem disseminação da topologia do AS de forma que cada roteador tenha uma representação da topologia completa do AS e possa utilizar essa topologia para calcular localmente os melhores caminhos para todos os destinos. Para isso, cada roteador cria uma mensagem contendo informações sobre os enlaces diretamente conectados a ele e usa um algoritmo de inundação (\textit{flooding}) para que essa mensagem chegue a todos os roteadores da rede. Alguns protocolos deste tipo, como o OSPF, são internamente hierárquicos e permitem a divisão da topologia em áreas menores para reduzir o tempo de convergência e o número de mensagens trocadas.
Protocolos de vetor de distância
cada roteador envia periodicamente para seus vizinhos um vetor contendo as distâncias para todos os destinos conhecidos. Os roteadores atualizam as distâncias para todos os destinos com base nos vetores de distâncias recebidos dos vizinhos. Depois de um tempo de convergência, cada roteador passa a conhecer um caminho de custo mínimo para cada destino. O algoritmo distribuído que esse processo descreve chama-se algoritmo distribuído de Bellman-Ford para caminhos de custo mínimo. Exemplos de protocolos de vetor de distância são o RIP e o EIGRP.

Dois conceitos fundamentais sobre roteamento são a distância administrativa e a métrica:

Distância administrativa (AD)
é um valor atribuído de acordo com a origem de uma informação de roteamento. Cada protocolo de roteamento (RIP, OSPF, EIGRP) possui um valor AD de forma que as informações obtidas de diferentes protocolos têm prioridades diferentes para serem utilizadas quando houver opção. Rotas estáticas têm a maior prioridade.
Métrica
é o valor utilizado por um protocolo de roteamento para determinar as melhores rotas para um destino. O RIP utiliza o número de saltos. O OSPF utiliza a vazão dos enlaces e o EIGPR utiliza uma combinação de vários valores.

8. Roteamento dinâmico com RIP (Routing Information Protocol)

8.1. Fundamentos do Protocolo RIP

O Routing Information Protocol (RIP) é um protocolo de roteamento dinâmico para redes de pequeno porte (cenários simples e com poucos roteadores). O RIP é um protocolo do tipo vetor de distâncias, isto é, um protocolo que implementa uma versão distribuída do algoritmo Bellmand-Ford para caminhos de custo mínimo. Cada roteador envia para os roteadores vizinhos mensagens contendo vetores de distância, isto é, um vetor contendo cada destino conhecido pelo roteador e o custo (métrica) para alcançá-lo. Quando um roteador é inicializado, ele conhece apenas as redes diretamente conectadas a ele. À medida que este roteador recebe mensagens de seus vizinhos, ele atualiza o seu próprio vetor de distância e o envia para os seus vizinhos. Em um dado momento, os vetores de distância de cada roteador contém estimativas das distâncias para cada destino, porém a medida em que mais mensagens são trocadas pelos roteadores, as distâncias convergem para os valores mínimos.

O RIP envia mensagens aos vizinhos a cada 30 segundos. Se um roteador não receber mensagens de um roteador vizinho depois de 180 segundos, ele considera o vizinha como inativo e depois de 240 segundos invalida as rotas aprendidas daquele vizinho. Esses são valores padrões de temporizados, que podem ser modificados em diversas implementações do RIP.

Algumas características do protocolo RIP versão 2 são:

  • utiliza a porta UDP 520 e o endereço de multicast 224.0.0.9
  • suporta roteamento CIDR (endereços não restritos as classes)
  • suporta máscaras de tamanhos variados (VLSM) e agregamento de rotas
  • a métrica usada é o número de saltos
  • o diâmetro máximo da rede deve ser 15 saltos (maior número de saltos é 15)
  • número de saltos igual a 16 indica que o destino está inalcançável
  • mensagens periódicas são enviadas a cada 30 segundos
  • cada mensagem contém no máximo 25 rotas (o roteador pode enviar múltiplas mensagens se precisar)
  • suporta autenticação entre os roteadores
  • implementa split horizon e poison reverse
  • rápida propagação de atualizações (triggered updates)
  • a distância administrativa do RIPv2 é igual a 120

8.2. Protocolo RIP nos roteadores VyOS

Nesta seção você vai aprender a configurar os roteadores VyOS para executarem o protocolo RIPv2.

Inicie um novo projeto e instale 3 roteadores VyOS a partir do appliance, imagens ISO do roteador e o comando install image como descrito no tutorial de instalação do VyOS.

Ou, caso você reaproveita um projeto do GNS3 onde foi feito roteamento estático, terá que remover as configurações. Para desfazer um comando na linha de comando do VyOS, deve-se executar os mesmos comandos usados na configuração, porém precedidos da palavra delete ao invés de set. Por exemplo:

   # delete protocols static route 10.0.0.0/24 next-hop 10.1.1.2

Ou, pode-se restaurar a configuração original de um roteador VyOS recarregando o arquivo de configuração padrão através do comando:

   # load /opt/vyatta/etc/config.boot.default
   # commit
   # save

Ative a função de roteamento RIP no roteador com o comando abaixo:

   $ config 
   # set protocols rip network <A.B.C.D/M>

Substitua <A.B.C.D/M> pelo prefixo de uma sub-rede diretamente conectada ao roteador. Esse comando ativa o RIP e permite especificar em que sub-redes o RIP estará ativo, isto é, onde estarão os roteadores vizinhos. Deve-se executar um comando para cada sub-rede diretamente conectada ao roteador onde o RIP estará ativo. Há comandos alternativos que permitem especificar nomes de interfaces ou o endereço IP do roteador vizinho (com o qual será utilizado unicast ao invés do padrão que é usar multicast no endereço 224.0.0.9).

Na sequência deve-se especificar quais endereços de sub-redes serão anunciados pelo RIP para os vizinhos. Por exemplo, para que todas as redes diretamente conectadas ao roteador sejam propagadas, utiliza-se o comando abaixo:

   # set protocols rip redistribute connected

Para outras opções de redistribuição de rotas, consultar a documentação do VyOS.

Caso a rede possua uma rota padrão (também chamada de rota default ou gateway de último recurso), ela pode ser propagada automaticamente para os roteadores que executam o RIP com o comando abaixo, que deve ser executado somente no roteador de origem da rota default (em nosso cenário, é o roteador conectado à nuvem que representa a rede física):

   # set protocols rip default-information originate  

Não esqueça dos comando commit e save:

   # commit
   # save

8.3. Atividade Prática com o Protocolo RIP

Observação: o VyOS vem por padrão com apenas 3 interfaces, mas na tarefa um dos roteadores (VyOS-2) precisa de 4 interfaces ethernet. Antes de conectar qualquer enlace no roteador, vá nas configurações do dispositivo (clique com o botão da direita no ícone, opção 'configure') e na aba 'Network' tem a opção 'Adapters'. Aumento o número de 3 para 4 ou mais.

  1. Crie uma topologia como a mostrada na figura abaixo. O valor X nos endereços das sub-redes deve ser substituído pelo seu número único de ordem na chamada da disciplina (veja o seu número no arquivo anexo à atividade).

Subnet


A conexão com o cloud1/Internet é opcional e só funcionará em rede cabeada (devido à autenticação de camada 2 presente em redes wifi). Caso você não implemente o NAT e a conexão com a rede física local e Internet, substitua o dispositivo cloud1 por uma máquina VPCS e atribua um endereço único na rede para essa sub-rede (endereços estáticos na VPCS e na interface eth3 do VyOS).

  1. Atribua endereços às interfaces de rede de acordo com a tabela abaixo. Atenção aos nomes das interfaces que se referem à figura acima - se você conectou as interfaces de forma diferente, adapte a tabela abaixo para as configurações em uso.
Roteador Interface Endereço IPv4 Máscara
Vyos 1 eth0 10.X.2.2 30
Vyos 1 eth1 10.X.1.1 30
Vyos 1 eth2 192.168.X.254 24
Vyos 2 eth0 10.X.3.1 30
Vyos 2 eth1 10.X.1.2 30
Vyos 2 eth2 10.X.0.254 24
Vyos 2 eth3 dhcp(*) 24
Vyos 3 eth0 10.X.2.1 30
Vyos 3 eth1 10.X.3.2 30
PC1 e0 192.168.X.1 24
PC2 e0 10.X.0.2 24

Não esqueça de trocar X pelo seu número individual.

  1. Usando os comandos:
    • set protocols rip network <endereço de subrede/máscara>
    • set protocols rip redistribute connected
    • set protocols rip default-information originate (somente no roteador de borda)

descritos na seção anterior, configure e teste a rede.

  1. Ative o capturador de pacotes wireshark em uma das interfaces e inspecione as mensagens do protocolo RIP. Para ativar o wireshark, clique no enlace com o botão da direita e escolha 'start capture'.
  2. Teste a conectividade usando os comandos ping e traceroute (VyOS) / trace (VPCS)
  3. Copie as configurações das interfaces de cada roteador (show interfaces)
  4. Copie as tabelas de roteamento de cada roteador (show ip route)
  5. Pause o enlace entre os roteadores VyOS-1 e VyOS-2 (clicando sobre o enlace/link com o botão direito do mouse e escolhendo suspend) e verifique os efeitos nas tabelas de roteamento. Reative a interface e verifique que as rotas foram restauradas adequadamente.
  6. Caso você implemente a conexão com a rede local/Internet, configure o NAT no roteador de borda (VyOS-2 na figura) da mesma maneira como foi feito no exercício descrito na seção 5.2. Você pode criar apenas duas regras de NAT: uma para o prefixo 10.0.0.0/8 e outra para 192.168.0.0/16 que cobrirão todas as redes da simulação. Assim:
      set nat source rule 10 outbound-interface name eth3
      set nat source rule 10 source address 10.0.0.0/8
      set nat source rule 10 translation address masquerade

      set nat source rule 20 outbound-interface name eth3
      set nat source rule 20 source address 192.168.0.0/16
      set nat source rule 20 translation address masquerade

9. Roteamento dinâmico com OSPF (Open Shortest Path First)

Esta seção trata do protocolo OSPF.

9.1. Fundamentos do Protocolo OSPF

O OSPF é um protocolo de roteamento intra-AS (IGP) utilizado para disseminar informações de roteamento em um único sistema autônomo. O OSPF é um protocolo do tipo estados de enlace (link state), isto é, informações sobre as interfaces de cada roteador são disseminadas para todos os outros roteadores. Cada roteador, tendo a descrição da topologia completa do AS, calcula caminhos de custo mínimo para todos os destinos do AS. Com base nesses caminhos, o roteador pode determinar quais devem ser as interfaces de saída de pacotes com destino para todas as redes do AS. Essa última informação é armazenada nas tabelas de roteamento que são consultados toda vez que o roteador necessita encaminhar um pacote.

Roteadores executando o OSPF irão executar os seguintes passos\footnote{Cisco Networking Academy's Introduction to Routing Dynamically, Mar 24, 2014 (disponível online).}:

  1. Cada roteador aprende sobre seus enlaces e as sub-redes diretamente conectadas a ele. Isso é feito através da consulta do estado da interface (up ou down) e de suas configurações.
  2. Cada roteador é responsável por se comunicar com vizinhos OSPF em redes diretamente conectadas a ele. Para isso, o roteador envia pacotes Hello para seus vizinhos.
  3. Cada roteador constrói um pacote de estados de enlace (LSP) contendo o estado de cada enlace diretamente conectado ao roteador e que inclui a identificação dos vizinhos, o tipo de enlace e a velocidade de transmissão da interface.
  4. O protocolo utiliza o algoritmo de inundação (flooding) para enviar o LSP para todos os seus vizinhos que armazenam as informações em uma base de dados. O método de inundação faz com que o LSP chegue a todos os roteadores da área. Cada roteador armazena uma cópia de cada LSP na base de dados.
  5. Cada roteador utiliza a base de dados de LSP para construir uma grafo da topologia completa com todos os roteadores da mesma área OSPF. Utilizando um algoritmo de caminhos de custo mínimo (algoritmo de Dijkstra), os roteadores encontram os caminhos de menor custo para cada destino da rede, isto é, para cada sub-rede identificada por seu prefixo de endereço IP.
  6. Caso um roteador descubra um novo vizinho OSPF ou descubra que um vizinho deixou de responder com pacotes Hello, ele atualiza a sua base de dados, constrói um novo LSP e encaminha essa nova informação para os demais roteadores
  7. Um roteador recém conectado a um vizinho OSPF receberá uma cópia da base de dados do vizinho para reconstruir rapidamente a sua própria base de informações de estados de enlaces.

9.2. OSPF nos roteadores VyOS e GNS3

Esta seção mostrará como configurar os roteadores VyOS para adquirirem as funcionalidades básicas de roteamento dinâmico com OSPF.

De preferência, inicie um novo projeto.

Caso você reaproveite um projeto do GNS3 onde foi feito roteamento estático, terá que remover as configurações. Para desfazer um comando na shell do VyOS, deve-se executar os mesmos comandos usados na configuração, porém precedidos da palavra delete ao invés de set. Por exemplo:

   # delete protocols static route 10.0.0.0/24 next-hop 10.1.1.2

Desfaz o comando set protocols static route ....

Ou pode-se restaurar a configuração padrão do roteador VyOS removendo todos os comando aplicados manualmente assim:

   # load /opt/vyatta/etc/config.boot.default
   # commit
   # save

Os comandos que usaremos para configurar o protocolo OSPF nos roteadores são:

  1. Um comando para especificar em quais redes diretamente conectadas ao roteador existirão vizinhos OSPF. No rede com topologia de anel, você deve executar este comando 2 vezes em cada roteador.
   # set protocols ospf area 0 network <endereço de subrede/máscara>

Como a rede terá apenas uma área, sempre execute esse comando com 'area 0'.

  1. O seguinte comando define o identificador ou o nome do roteador em relação a rede OSPF. O identificador deve ser o endereço IP de uma de suas interfaces. Execute este comando apenas uma vez em cada roteador.
   # set protocols ospf parameters router-id <end. IP>
  1. Os seguintes comandos especificam quais informações de enlaces o roteador deve informar para outros roteadores.

O comando abaixo faz o roteador anunciar todas as redes diretamente conectadas ao roteador:

   # set protocols ospf redistribute connected

Ou as rotas estáticas (manualmente configuradas), se existirem:

   # set protocols ospf redistribute static
  1. O roteador de borda deve disseminar a informação de rota default para que todos os pacotes com endereços IP de destino de redes externas ao sistema autônomo sejam roteados para fora dele, isto é, em direção ao provedor de Internet (ISP). Essa configuração é comum em redes locais que não são sistemas autônomos e em sistemas autônomos stub, mas não em sistemas autônomos de trânsito.

O seguinte comando faz um roteador propagar a rota default para os demais. Execute este comando apenas no roteador conectado à rede externa.

   # set protocols ospf default-information originate always

Para efetivar as alterações, salvar e voltar para o modo operacional da linha de comando do roteador, não esqueçam de executar os comandos:

   # commit
   # save
   # exit

Para ver o conteúdo da tabela de roteamento:

  $ show ip route

Para depurar as configurações, os comandos:

  $ show config

e

  $ show config commands

9.3. Exercício 3: Roteamento Dinâmico com OSPF

Observação: o VyOS vem por padrão com apenas 3 interfaces, mas na tarefa um dos roteadores (VyOS-2) precisa de 4 interfaces ethernet. Antes de conectar qualquer enlace no roteador, vá nas configurações do dispositivo (clique com o botão da direita no ícone, opção 'configure') e na aba 'Network' tem a opção 'Adapters'. Aumento o número de 3 para 4 ou mais.

  1. Crie uma topologia como a mostrada na figura abaixo:

Figura roteamento OSPF.


O valor X nos endereços das sub-redes deve ser substituído pelo seu número único de ordem na chamada da disciplina (veja o seu número no arquivo em separado).

  1. Atribua endereços às interfaces de rede de acordo com a tabela abaixo:
Roteador Interface Endereço IPv4 Máscara
Vyos 1 eth0 10.X.2.1 30
Vyos 1 eth1 10.X.1.1 30
Vyos 1 eth2 192.168.X.254 24
Vyos 2 eth0 10.X.1.2 30
Vyos 2 eth1 10.X.4.1 30
Vyos 2 eth2 dhcp  
Vyos 2 eth3 10.0.X.254 24
Vyos 3 eth0 10.X.2.2 30
Vyos 3 eth1 10.X.3.1 30
Vyos 4 eth0 10.X.3.2 30
Vyos 4 eth1 10.X.4.2 30
PC1 e0 192.168.X.1 24
PC2 e0 10.0.X.2 24

Não esqueça de trocar X pelo seu número individual.

  1. Ative o protocolo OSPF nos roteadores VyOS-1, VyOS-2, VyOS-3 e VyOS-4 com comandos set protocols ospf area 0 network <endereço de subrede/máscara>.
  2. Atribua identificadores OSPF aos roteadores.
  3. Configure os roteadores para distribuir os endereços das redes diretamente conectadas.
  4. Configure a propagação da rota default no VyOS-2 como descrito anteriormente.
  5. Verifique o conteúdo das tabelas de roteamento dos 4 roteadores. Faça um print screen do terminal.
  6. Pacotes de echo request (ping) gerados no PC1 em direção ao PC2 seguem qual caminho na rede? Como você descobriu o caminho?
  7. Teste a conectividade da rede usando os comandos ping e traceroute.
  8. Suspenda o funcionamento do enlace entre os roteadores VyOS-1 e VyOS-2 (clique com o botão direito no enlace, opção suspend - não é necessário desligar os roteadores)
  9. Imprima novamente as tabelas de roteamento dos 4 roteadores e destaque as entradas que mudaram (selecione ou circule).
  10. Use o comando trace/traceroute para mostrar a nova rota entre o PC1 e o PC2.
  11. Mostre uma execução do trace com origem no PC1 e destino na Internet (exemplo: trace 8.8.8.8)
  12. Com o capturador de pacotes wireshark, capture pacotes do protocolo OSPF. Mostre a captura de pacotes dos tipos Hello, Link State Update e Link State Acknowledge. Se necessário altere a topologia (suspendendo enlaces). Para executar o capturador de pacotes, clique com o botão da direita sobre o enlace e escolha 'start capture'.
  13. Liste os 5 tipos de pacotes definidos pelo OSPF. Descreva sucintamente as funções de cada tipo.

10. IPv6

Nesta seção estudaremos um pouco do protocolo IPv6 e praticaremos a sua configuração nos roteadores e PCs. Para mais informações sobre o protocolo IPv6 e demais protocolos que dão suporte ao IPv6, consulte o material disponível online no moodle da disciplina de Redes.

Inicie a atividade pela leitura das seções seguintes.

10.1. IPv6 e Endereçamento

Por questões técnicas, não podemos utilizar endereços IPv6 de escopo global na simulação. Assim, faremos uso de endereços IPv6 do tipo unique local que são análogos aos endereços privados do IPv4. Ao contrário dos endereços IPv4 privados, prefixos unique local podem e devem ser únicos globalmente e para isso são gerados por um algoritmo que gera um prefixo único com alta probabilidade. Um prefixo unique local /48 é chamado de ID global.

Como no caso dos endereços IPv4 privados, endereços unique local não são roteáveis na Internet pública. Assim, se quisermos conectar a rede da simulação à Internet usando IPv6, teremos que configurar um NAT para o IPv6 como fizemos para o IPv4. Esse NAT, no IPv6, recebe o nome de NAT66. Na prática, o uso de NAT no IPv6 não é recomendado na maioria dos cenários e normalmente você atribuiria um prefixo unicast de escopo global para cada sub-rede e os pacotes seriam roteados para a Internet sem passar por um NAT. Lembre-se que o NAT foi criado devido à escassez de endereços IPv4 e não é necessário no IPv6. Entretanto, o NAT66 não apresenta todos os problemas que o NAT44 tem e há controvérsias sobre o seu uso. Há quem defenda o uso do NAT66 com o objetivo de tornar os prefixos de algumas sub-redes internas independentes do provedor de Internet, facilitando a mudança do provedor contratado sem necessidade de renumeração das interfaces.

10.2. Endereços IPv6 unique local

Um endereço IPv6 Unique Local Address (ULA) é um endereço no do bloco de endereços fc00::/7. Esses endereços não são globalmente roteáveis mas podem ser utilizados no escopo de redes privadas. Por essa razão, os endereços ULA são análogos aos endereços privados do IPv4, mas com diferenças significativas. Endereços locais exclusivos podem ser usados livremente, sem registro centralizado, dentro de um único site ou organização ou abrangendo um número limitado de sites. Não há uma garantia matemática de que os endereços ULA sejam globalmente únicos, porém os prefixos ULA são gerados com bits aleatórios de forma que a probabilidade de uma colisão é extremamente pequena. Você pode gerar um prefixo ULA em sites como Unique Local IPv6 Generator.

10.3. Autoconfiguração SLAAC e Anúncio de Roteadores

Queremos que os PCs se autoconfigurem utilizando o protocolo SLAAC (Stateless Address Autoconfiguration). Mas o que é o SLAAC?

O protocolo SLAAC é um método que permite que um dispositivo obtenha informações de conectividade de rede de um roteador IPv6 sem o uso de um servidor DHCPv6. Em particular, as informações mais relevantes são o o prefixo do endereçamento da sub-rede, o endereço do gateway padrão da rede e endereços de servidores recursivos de DNS. Usando a autoconfiguração SLAAC, os dispositivos dependem de mensagens de anúncio de roteador (RA) do ICMPv6 vindas do roteador local para obter as tais informações.

Os roteadores IPv6 enviam periodicamente mensagens ICMPv6 de anúncio de roteador (RA) a todos os dispositivos habilitados com IPv6 na rede. Por padrão, os roteadores Cisco têm mensagens de RA enviadas a cada 200 segundos para o endereço do grupo de multicast de todos os nós IPv6. Um dispositivo IPv6 na rede não tem de esperar por essas mensagens periódicas de RA e pode enviar uma mensagem de solicitação de roteador (RS) usando o endereço de grupo de multicast de todos os roteadores IPv6. Quando um roteador IPv6 recebe uma mensagem de RS, ele imediatamente responderá com um anúncio de roteador.

Mesmo que uma interface de um roteador seja configurada com um endereço IPv6, isso não o torna “roteador IPv6”. Um roteador IPv6 é um roteador que:

  • Encaminha pacotes IPv6 entre redes
  • Pode ser configurado com rotas estáticas IPv6 ou um protocolo de roteamento dinâmico IPv6
  • Envia mensagens ICMPv6 do tipo RA (router advertisement)

Em roteadores Cisco, o roteamento IPv6 não é ativado por padrão. Para permitir que um roteador se torne um roteador IPv6, o comando da configuração global ipv6 unicast-routing deve ser usado. No roteador VyOS, o encaminhamento por IPv6 está ativado por padrão.

A mensagem ICMPv6 do tipo RA contém o prefixo, o tamanho do prefixo e outras informações para a configuração do dispositivo IPv6. A mensagem RA também informa ao dispositivo IPv6 como obter as informações de endereçamento. A mensagem RA pode oferecer uma das três opções de autoconfiguração, como listado a seguir:

  • Opção 1 – SLAAC apenas – O dispositivo deve usar o prefixo, o tamanho do prefixo e as informações de endereço de gateway padrão contidas na mensagem do RA. Nenhuma outra informação está disponível em um servidor DHCPv6.
  • Opção 2 – SLAAC e DHCPv6 – O dispositivo deve usar o prefixo, o tamanho do prefixo e as informações de endereço de gateway padrão contidas na mensagem RA. Há outras informações disponíveis em um servidor DHCPv6 como o endereço de servidor DNS. O dispositivo, através do processo normal de descoberta e de consulta a um servidor DHCPv6 obtém essas informações adicionais. Isso é conhecido como DHCPv6 sem estado porque o servidor DHCPv6 não precisa atribuir ou acompanhar qualquer atribuições de endereço IPv6, mas só fornece informações adicionais como endereço de servidor DNS.
  • Opção 3 – DHCPv6 apenas – O dispositivo não deve usar informações nessa mensagem do RA para suas informações de endereçamento. Em vez de isso, o dispositivo usará o processo normal de descoberta e requisição a um servidor DHCPv6 para obter todas as suas informações de endereçamento. Isso inclui um endereço global unicast IPv6, o tamanho do prefixo, um endereço de gateway padrão e os endereços dos servidores DNS. Nesse caso, o servidor DHCPv6 está atuando como um servidor DHCP dinâmico semelhante ao DHCP para IPv4. O servidor DHCPv6 atribui e rastreia endereços de IPv6 de forma a não atribuir o mesmo endereço IPv6 a mais de um dispositivo .

Roteadores enviam mensagens ICMPv6 do tipo RA usando o endereço link local como o endereço IPv6 de origem. Os dispositivos que usam SLAAC também usam o endereço link local do roteador como o endereço de gateway padrão.

10.4. Atividade sobre IPv6 com o GNS3 e o Roteador VyOS

O NAT66 não está disponível na versão 1.3 do VyOS, portanto certifique que a versão do sistema operacional do roteador é 1.5+ Utilize esta versão para fazer as atividades com IPv6.

Utilize o site Unique Local IPv6 Generator para gerar o seu prefixo ULA único.

10.4.1. Configurando as interfaces

Comece criando uma rede com a topologia mostrada na figura 6. Não esqueça de instalar o roteador com o comando install image.

Subnet

Figura 6: Cenário inicial da atividade sobre IPv6.


  • No site Unique Local IPv6 Generator, gere um bloco de endereços unique local ('privado') /48 aqui: Exemplo: fd67:4acb:9317::/48 (gere o teu próprio bloco). Esse prefixo será utilizado por todas as sub-redes de toda a tarefa sobre o IPv6 que fizermos daqui para frente.
  • A rede começar com as duas sub-redes da figura. Note que prefixos /64 diferentes foram utilizadas em cada sub-rede.
  • Configure manualmente as interfaces eth0 e eth1 do roteador com os endereços de cada sub-rede e sufixo :1. Estes endereços correspondem aos gateways padrão das duas sub-redes.

Exemplo de configuração de interface (não copie e cole o endereço abaixo; utilize o prefixo ULA que você obteve):

set interfaces ethernet eth0 address fd67:4acb:9317:1::1/64

onde fd67:4acb:9317:1::0/64 é o prefixo da sub-rede e o ID dessa interface é ::1 (sufixo, 63 zeros seguidos do bit 1).

10.4.2. Configuração de uma rede IPv6 no VyOS

  • Ative o serviço de Router Advertisement na mesma interface (não copie o endereço do exemplo):
set service router-advert interface eth0 prefix fd67:4acb:9317:1::/64
  • Nos PCs, faça-os obter um endereço IPv6 automaticamente por SLAAC:
ip auto

Verifique se o PC recebeu um endereço IPv6 com:

show ipv6

Note que o VPCS criou o sufixo do endereço com base no endereço MAC da interface do reteador, como descrito na RFC 4291 (questões de privacidade levaram ao desenvolvimento de outro método para geração automática do identificador de interface para o IPv6 que utiliza bits aleatórios no endereços e está descrito na RFC 4941 "Privacy Extensions for Stateless Address Autoconfiguration in IPv6".)

  • Escolha o próximo menor prefixo do bloco obtido para a segunda sub-rede. Configure as interfaces do roteador e do outro PC de forma análoga. Exemplo de endereço da segunda sub-rede: fd67:4acb:9317:2::/64 (note que o :2 está no prefixo, e o endereço do gateway pode ser fd67:4acb:9317:2::1).
  • Teste a conectividade entre as sub-redes com os comandos ping e trace entre os PCs.

Caso você precisa remover um endereço errado do VPCS, utilize o comando abaixo antes de executar um novo ip auto, do contrário a sua interface não irá se autoconfigurar novamente.

clear ipv6

10.4.3. Roteamento Estático com IPv6

Estenda a rede com mais um roteador, acrescente uma conexão ponto a ponto entre os roteadores e acrescente mais um switch e mais um VPCS conectado a esse novo switch. Implemente o roteamento estático análogo ao que você já fez para IPv4. A topologia da rede ficará como a vista na figura 7.

Para configurar a rota estática, no comando set protocols static route, troque a palavra route por route6:

  set protocols static route6 <endereço/tam. do prefixo> next-hop <endereço roteador>

Onde o prefixo é o endereço da rede distante do roteador e <endereço roteador> é o endereço do outro roteador (next hop) no caminho até a rede distante. (Se tiver dúvidas, volte e leia a seção 5 sobre roteamento estático ou chame o professor para explicar).

Subnet

Figura 7: Cenário da segunda parte da atividade sobre IPv6.


10.4.4. NAT66

Somente implemente a conexão com a Internet e o NAT66 se todos os PCs estiverem corretamente conectados pelo roteamento estático.

A interface externa, ligada à rede local via a cloud do GNS3 deve ser configurada para fazer a sua autoconfiguração de endereço IPv6 com o seguinte comando:

set interfaces ethernet eth2 ipv6 address autoconf 

Verifique se a interface obter um endereço de escopo global com o comando show interfaces. A autoconfiguração pode levar alguns minutos para ocorrer.

O NAT66 é similar ao NAT do IPv6. Os comandos abaixo exemplificam as configurações do NAT66:

set nat66 source rule 10 outbound-interface name eth2
set nat66 source rule 10 source prefix fd67:4acb:9317::/48
set nat66 source rule 10 translation address masquerade

O prefixo representa os endereços internos do tipo ULA que devem ser traduzidos quando os pacotes saíres da rede. A palavra masquerade diz ao roteador para utilizar o endereço da interface eth2 na tradução.

Para que os PCs conectados ao roteador da esquerda e este roteador alcancem a Internet, esse roteador necessita de uma rota padrão (default) para o roteador da direita. Isso é feito com o comando:

  set protocols static route6 ::/0 next-hop <endereço roteador>

O prefixo ::/0 do IPv6 é similar ao endereço 0.0.0.0/0 do IPv4 e casa qualquer endereço de destino. O roteador tentará primeiro encontrar um endereço mais específico (prefixo mais longo) e se não encontrar nenhum outro endereço com o mesmo prefixo, então usará a rota padrão.


Data: 2024

Autor: Jaime Cohen

Última atualização: 2025-10-21 ter 18:20