Mudanças entre as edições de "IER60808-lab3"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '= Objetivos = * Conhecer os equipamentos típicos de uma rede local Ethernet * Estimar o desempenho de uma LAN Ethernet comutada (com switch) A rede de teste para o experiment...')
 
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
= Objetivos =
+
__toc__
  
* Conhecer os equipamentos típicos de uma rede local Ethernet
 
* Estimar o desempenho de uma LAN Ethernet comutada (com switch)
 
  
 +
= Objetivos =
  
A rede de teste para o experimento será composta de computadores ligados a um switch Ethernet a 100 Mbps em modos half ou full-duplex. Serão sintetizados tráfegos intensos, de forma a poder comparar o desempenho das transmissões nos dois casos.
+
* Auto-configurar ''hosts'' em uma subrede IPv6 com SLAAC
 +
* Usar DHCPv6 para configurar ''hosts''
  
[[imagem:Lab1.png]]
+
= Roteiro =
  
= Roteiro =
+
Para realizar estas atividades serão necessários alguns comandos:
 +
* '''Teste com ping6''':<syntaxhighlight lang=bash>
 +
ping6 endereço_IPv6_a_ser_pingado
 +
</syntaxhighlight>''Obs:'' endereço IPv6 deve ser escopo global. Se for escopo link, deve-se informar a interface de rede por onde fazer o ping: <syntaxhighlight lang=bash>
 +
ping6 -I nome_interface endereço_IPv6_a_ser_pingado
 +
</syntaxhighlight>
 +
* '''Listagem de rotas:''' a tabela de rotas IPv6 pode ser visualizada assim: <syntaxhighlight lang=bash>
 +
route -A inet6 -n
 +
</syntaxhighlight>
 +
* '''Adicionar nova rota para:'''<syntaxhighlight lang=bash>
 +
route -A inet6 add prefixo/mascara gw IPv6_gateway
 +
</syntaxhighlight>''Obs:'' IPv6_gateway é um endereço IPv6 de escopo global. Se o endereço conhecido for de escopo link, o comando deve informar também a interface de saída para essa rota: <syntaxhighlight lang=bash>
 +
route -A inet6 add prefixo/mascara gw IPv6_gateway dev nome_interface
 +
</syntaxhighlight>
  
* [http://tele.sj.ifsc.edu.br/~msobral/pji3/TL-SG3210(UN)_V2_UG.pdf Manual do usuário do switch]
+
== Parte 1: SLAAC ==
* [http://tele.sj.ifsc.edu.br/~msobral/pji3/TL-SG3210(UN)_V2.0_CLI_.pdf Manual da interface de linha de comando (CLI) do switch]
 
  
 +
# Execute o ''netkit2''
 +
# Arraste este [http://tele.sj.ifsc.edu.br/~msobral/pji3/lab5/rede0.conf link para o arquivo de configuração ''rede0.conf''] e solte-o sobre a janela do ''netkit2''
 +
# Use o menu ''File->Graph'' para visualizar a topologia da rede
 +
# Use o menu ''Network->Start'' para iniciar a rede
 +
# Verifique os endereços IPv6 globais usado por ''pc1'' e ''pc2''. Compare-os com os endereços globais usados por ''r1''.
 +
# Teste a comunicação entre ''pc1'' e ''pc2'' com ping6.
 +
# Em ''r1'' crie o arquivo ''/etc/radvd.conf'' com este conteúdo: <syntaxhighlight lang=text>
 +
interface eth1 {
 +
  AdvSendAdvert on;
 +
  MinRtrAdvInterval 3;
 +
  MaxRtrAdvInterval 10;
 +
  prefix ccdd:0:0:0:0:0:0:0/64 {
 +
  AdvOnLink on;
 +
  AdvAutonomous on;
 +
  };
 +
};
 +
interface eth0 {
 +
  AdvSendAdvert on;
 +
  MinRtrAdvInterval 3;
 +
  MaxRtrAdvInterval 10;
 +
  prefix aabb:0:0:0:0:0:0:0/64 {
 +
  AdvOnLink on;
 +
  AdvAutonomous on;
 +
  };
 +
};
 +
</syntaxhighlight>
 +
# Em ''r1'' execute este comando: <syntaxhighlight lang=bash>
 +
/etc/init.d/radvd start
 +
</syntaxhighlight>
 +
# Verifique os endereços IPv6 globais usado por ''pc1'' e ''pc2''. Compare-os com os endereços globais usados por ''r1''.
 +
# Teste a comunicação entre ''pc1'' e ''pc2'' com ping6.
 +
# Verifique a tabela de rotas IPv6 em ''pc1'' e ''pc2''. Compare o endereço do roteador default com o do gateway.
 +
# Selecione o host ''pc1'' e, em seguida, o menu ''Wireshark->eth0''.
 +
# Observe as mensagens de anúncio de roteador recebidas. Que informações elas contêm ?
 +
# Agora experimente por [http://tele.sj.ifsc.edu.br/~msobral/pji3/lab5/rede1.conf esta rede] no ar usando SLAAC !  Talvez seja necessário algo mais ...
  
== Parte 1: ativos de rede ==
+
== Parte 2: DHCPv6 ==
  
# Observe a placa de rede de seu computador e sua conexão à rede por meio do cabo TP. Os computadores do laboratório estão conectados ao switch Intelbras, que reside no rack central. O número da porta onde está conectado seu computador na bancada corresponde à porta do switch. Desconecte o cabo do seu computador e observe o status da porta correspondente no switch (o status é informado por um led, que aceso significa que há equipamento ativo conectado àquela porta). '''Questão:''' como será que o switch sabe que um equipamento foi conectado a uma porta ? Ver [https://en.wikipedia.org/wiki/Autonegotiation esta explicação] ...
+
# Execute o ''netkit2''
# Veja que informações o Linux provê a respeito de seu adaptador Ethernet. Usando os comandos administrativos do Linux, descubra:
+
# Arraste este [http://tele.sj.ifsc.edu.br/~msobral/pji3/lab5/rede0.conf link para o arquivo de configuração ''rede0.conf''] e solte-o sobre a janela do ''netkit2''
#* o modelo do adaptador, e seu endereço MAC: ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/lspci.8.html lspci], [http://manpages.ubuntu.com/manpages/hardy/man8/lsusb.8.html lsusb] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].
+
# Use o menu ''File->Graph'' para visualizar a topologia da rede
#* seu modo de operação (velocidade, modo duplex, se o enlace está ativo): ver comando [http://manpages.ubuntu.com/manpages/hardy/man8/ethtool.8.html ethtool]
+
# Use o menu ''Network->Start'' para iniciar a rede
#* suas estatísticas de operação (quadros transmitidos e recebidos, colisões e erros em geral): ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/netstat.8.html netstat] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br><br>Após obter essas informações, experimente desconectar o cabo da placa de rede e repetir a execução dos comandos.
+
# Verifique os endereços IPv6 globais usado por ''pc1'' e ''pc2''. Compare-os com os endereços globais usados por ''r1''.
# Use um switch TP-Link 8 portas para conectar seu computador à rede do laboratório.
+
# Teste a comunicação entre ''pc1'' e ''pc2'' com ping6.
# Repita os ítens 1 e 2, para conferir se houve alguma modificação na interface ethernet do seu computador.
+
# Em ''r1'' crie o arquivo ''/etc/radvd.conf'' com este conteúdo: <syntaxhighlight lang=text>
# Acesse a interface de gerenciamento do switch TP-Link. Isso pode ser feito via web ou telnet. Você deve precisar do [http://tele.sj.ifsc.edu.br/~msobral/pji3/TL-SG3210(UN)_V2_UG.pdf manual do switch].
+
interface eth1 {
# Identifique as informações no switch associadas às portas conectadas ao seu computador e à rede do laboratório.
+
  AdvSendAdvert on;
# Descubra a taxa de bits e o modo duplex da porta do switch onde está conectado seu computador. Confira se as informações obtidas no switch estão consistentes com as informações da interface de rede do computador.
+
  MinRtrAdvInterval 3;
 +
  MaxRtrAdvInterval 10;
 +
  prefix ccdd:0:0:0:0:0:0:0/64 {
 +
  AdvOnLink on;
 +
  AdvAutonomous on;
 +
  };
 +
};
 +
interface eth0 {
 +
  AdvSendAdvert on;
 +
  MinRtrAdvInterval 3;
 +
  MaxRtrAdvInterval 10;
 +
  AdvManagedFlag on;
 +
};
 +
</syntaxhighlight>Mesmo que se use DHCPv6 é necessário usar SLAAC para obter o endereço do gateway. Por isso em ''r1'' se ativou o serviço ''radvd'', porém indicando que o ''host'' deve usar configuração de endereço ''stateful'' (opção ''AdvManagedFlag'').
 +
# Em ''r1'' crie o arquivo ''/etc/dhcp/dhcpd6.conf'' com este conteúdo: <syntaxhighlight lang=text>
 +
default-lease-time 600;
 +
max-lease-time 7200;
  
== Parte 2: switch ethernet ==
+
subnet6 aabb::/64 {
 +
  range6 aabb::10 aabb::a00;
 +
  option dhcp6.name-servers aabb::2;
 +
}
  
# Mantendo os computadores conectados ao switch do laboratório, cada aluno deve escolher um colega para fazer uma medição de vazão na rede (''throughput'').
+
subnet6 ccdd::/64 {
#* Inicialmente apenas um par de aluno deve realizar a mediação de vazão.
+
  range6 ccdd::10 ccdd::a00;
#* Um dos alunos deve identificar o endereço IP da interface ethernet de seu computador, e informá-lo ao outro colega envolvido na medição.
+
  option dhcp6.name-servers aabb::2;
#* Esse mesmo aluno deve executar este programa: <syntaxhighlight lang=bash>
+
}
iperf -s
+
</syntaxhighlight>
 +
# Em ''r1'' execute este comando: <syntaxhighlight lang=bash>
 +
/etc/init.d/radvd start
 
</syntaxhighlight>
 
</syntaxhighlight>
#* Outro aluno deve executar o mesmo programa, porém em modo cliente desta forma: <syntaxhighlight lang=bash>
+
# Verifique os endereços IPv6 globais usado por ''pc1'' e ''pc2''. Compare-os com os endereços globais usados por ''r1''.
iperf -c IP_do_outro_computador -i 5 -t 30
+
# Teste a comunicação entre ''pc1'' e ''pc2'' com ping6.
 +
# O host ''pc1'' não obteve seu endereço IPv6, pois ele deve fazê-lo via DHCPv6. Sendo assim, faça o seguinte:
 +
#* Em ''r1'' ative o servidor DHCPv6 com este comando: <syntaxhighlight lang=bash>
 +
touch /var/lib/dhcp/dhcpd6.leases
 +
chown dhcpd.dhcpd /var/lib/dhcp/dhcpd6.leases
 +
dhcpd -6 -cf /etc/dhcp/dhcpd6.conf
 
</syntaxhighlight>
 
</syntaxhighlight>
#* Quando o programa cliente terminar, observe os valores reportados quanto à vazão obtida.
+
#* Em ''pc1'' execute o cliente DHCPv6 com este comando: <syntaxhighlight lang=bash>
#* A medição deve ser repetida, porém com todos os alunos envolvidos a realizarem-na simultaneamente. Que diferença houve no resultado da vazão ?
+
dhclient -6 eth0
# Conecte seu computador a um switch TP-Link.
 
# Refaça a medição da taxa de bits entre seu computador e o de um colega. O computador de seu colega deve estar conectado em outro switch.
 
<!--# Modifique a taxa de bits e/ou modo duplex diretamente na porta do switch onde está seu computador. Seu computador ainda consegue se comunicar com o resto da rede ?
 
# Retorne a porta do switch ao modo de auto-negociação, porém modifique a interface de rede do seu computador para operar a 10 Mbps e modo half-duplex. Seu computador ainda consegue se comunicar ? OBS: para mudar a taxa e modo na interface do computador use este comando: <syntaxhighlight lang=bash>
 
sudo ethtool -s eth0 speed 10 duplex half autoneg off
 
 
</syntaxhighlight>
 
</syntaxhighlight>
# Configure a interface de rede do computador de volta para o modo auto-negociação: <syntaxhighlight lang=bash>
+
# Verifique o endereços IPv6 global usado por ''pc1''. Compare-o com os endereços globais usados por ''r1''.
sudo ethtool -s eth0 autoneg on
+
# Teste a comunicação entre ''pc1'' e ''pc2'' com ping6.
 +
# Verifique a tabela de rotas IPv6 em ''pc1'' e ''pc2''. Compare o endereço do roteador default com o do gateway.
 +
# Uma reflexão: qual benefício existe em usar DHCPv6, ao invés de somente SLAAC ?
 +
 
 +
== Parte 3: Roteamento dinâmico com IPV6 ('''com o RIPNG''')==
 +
 
 +
 
 +
 
 +
[[Arquivo:Rede ripng.jpg|400px]]
 +
 
 +
Baseado no diagrama da Figura, usaremos serviços para rodar os protocolos de roteamento RIP a partir do Quagga, de tal modo que as tabelas estáticas de roteamento não mais serão necessárias e o sistema se auto recuperará da queda de um único enlace (nesse caso).
 +
#Reinicie o NetKit2 para limpar todas as configurações.
 +
#Arraste o link [http://docente.ifsc.edu.br/andre.damato/IER2018-1/redeipv6.conf  redeipv6.conf] para a janela do Netkit2.
 +
O arquivo ''redeipv6.conf'' possui a configuração da rede a ser executada com o Netkit2. Observe que nessa configuração já está inserida a definição dos default gateway de cada pc.
 +
# Use o menu ''File->Graph'' para visualizar a topologia da rede a ser executada (compare-a com a figura no início desta atividade). Por fim, inicie a execução da rede usando o menu ''Network->Start''.
 +
 
 +
#Para testar o ambiente criado no '''pc1''' execute um ping para o pc2: <code> ping6 aabb:ccdd:eeff::1 </syntaxhighlight> <span style="color: #FF2400;">O ping está funcionando? Por quê?
 +
#Deixe o ping rodando!
 +
#Agora em cada roteador, configure o serviço RIP IPV6 para que os testes da próxima etapa possam ser executados. No terminal de cada um dos roteadores, execute estes comandos:<syntaxhighlight lang=text>
 +
configure t
 +
router ripng
 +
redistribute connected
 +
redistribute static
 +
network eth1
 +
network eth2
 +
end
 
</syntaxhighlight>
 
</syntaxhighlight>
# Identifique ações que podem ser feitas nas portas do switch, tais como: bloqueio, espelhamento, restrição de acesso, entre possivelmente outras. Experimente usá-las, e crie experimentos para entender o que acontece.
+
#<span style="color: #FF2400;">Olhe o terminal do pc1, o que ocorreu com o ping? Por quê?
-->
+
#Observando o estado do sistema. Vamos usar comandos para verificar o estado dos roteadores.
 +
##Verifique o estado das interfaces usando o comando: <code> show interface </syntaxhighlight>
 +
##Verifique se o roteador está habilitado para roteamento: <code> show ipv6 forwarding </syntaxhighlight>
 +
##Verifique o estado da '''tabela de roteamento''' usando o comando: <code> show ipv6 route </syntaxhighlight> '''Interprete detalhadamente essa tabela'''! Você consegue visualizar o mapa da rede a partir dessa tabela?
 +
##Verifique a configuração atual do roteador: <code> show running-config </syntaxhighlight>
 +
#Teste as demais conectividades entre os PCs com pings mútuos. Tudo funcionando?
 +
#A partir de cada PC trace a rota ('''traceroute IP_Destino''') para os demais PC e anote-as.
 +
#Com o '''route -A inet6 -n''' verifique a anote as rotas para cada rede a partir dos pcs.
 +
#Pare todos os pings.
 +
#No roteador '''r1''' use o menu no canto superior direito do netkit2, vá em '''Wireshark->eth1''', para coletar os pacotes da interface '''eth2''', e verifique as ocorrências de pacotes RIPNG.
 +
# Aguarde uns 2 minutos para capturar pacotes específicos do protocolo de roteamento RIP.
 +
# Digite '''Ctrl + R''' para atualizar a captura do netkit2.
 +
#Tente compreender as mensagens trocadas. As mensagens são trocadas aproximadamente a cada minuto, se não aparecer nenhuma no Wireshark faça um ''reload'': <Ctrl+r> até surgir alguma mensagem.
 +
##O que dizem essas mensagens?
 +
##Qual endereço '''multicast''' o '''ripng''' utiliza?
 +
#A partir do '''pc1''' deixe rodando o ping <code> ping6  aabb:ccdd:eeff::2</syntaxhighlight>
 +
#Com o '''wireshark''' rodando em '''r1''', desative um dos enlaces entre os roteadores e acompanhe a troca de mensagens no Wireshark (dê um ''reload''). Por questões de compatibilidade vamos desativar uma interface de um modo especial. Por exemplo, para "derrubar" o enlace r2-r1, execute no '''r2''': <code>
 +
configure t          entra no mode de configuração
 +
interface eth2        entra na referida interface a ser operada
 +
shutdown              desativa a interface, se desejado </syntaxhighlight>
 +
#Permaneça monitorando o ping6 e o '''Wireshark''' (''reload'': <Ctrl+r>). Observe os pacotes trocados e interprete.
 +
##Quais as mensagens trocadas pelo protocolo RIP observadas no WireShark? Observe o trecho de mensagens onde não houve respostas ao ping.
 +
#Agora observe as mensagens trocadas na interface eth1, no roteador '''r1''' use o menu no canto superior direito do netkit2, vá em '''Wireshark->any''', e verifique as ocorrências de pacotes RIPNG. 
 +
#Reative a interface r2-r1.<code>no shutdown</syntaxhighlight>
 +
##Com o Wireshark, identifique as mensagens trocadas entre os roteadores envolvidos na mudança.
 +
##Qual a sua interpretação da mensagem? Qual o motivo da troca dessa mensagem em particular?
 +
 
 +
 
 +
== Parte 4: Integração SLAAC e RIP ==
 +
 
 +
#De acordo com o que foi aprendido nesta aula e na aula anterior, configure [http://docente.ifsc.edu.br/andre.damato/pji3/rederipng.conf esta rede] aplicando a autoconfiguração IPV6 para a borda da rede e o algoritmo RIPNG para o núcleo da rede.
 +
 
  
== Parte 3: topologias de rede ==
+
[[Arquivo:RedeSlaacRip2.jpg|600px]]
  
# Conecte o computador de um colega ao seu switch, e teste a comunicação entre os computadores. Eles se comunicaram normalmente ?
 
#* ''Aproveite e estime quanto tempo leva um pacote para ir de um computador ao outro.''
 
# Interligue seu switch ao switch de um colega. Experimente em seguida testar a comunicação entre seu computador e o de seu colega. Que diferenças existem em relação ao experimento anterior ? O que se pode concluir ?
 
#* ''Novamente estime quanto tempo leva um pacote para ir de um computador ao outro.''
 
# Todos os switches devem ser interligados de acordo com as topologias abaixo descritas. Em cada caso, deve-se testar a comunicação entre os computadores que estão conectados aos switches.
 
#* ''Novamente estime quanto tempo leva um pacote para ir de um computador aos outros computadores.''
 
  
<center>
 
{|border=1
 
!Topologia
 
!Diagrama
 
|-
 
|Linear || [[imagem:pji3-Topo-linear.jpg|300px]]
 
|-
 
|Estrela || [[imagem:pji3-Topo-estrela.jpg|200px]]
 
|-
 
|Arvore || [[imagem:pji3-Topo-arvore.jpg|200px]]
 
|-
 
|Anel || [[imagem:pji3-Topo-anel.jpg|200px]]
 
|}
 
</center>
 
  
  
'''4.''' O que se pode concluir quanto ao efeito de cada topologia nas comunicações na rede ?
+
[[PJI11103:_Endereçamento_IPv6|Voltar]]
* Elas influenciam na comunicação ?
 
* Causam algum impedimento ?
 
* Os atrasos de envio de pacotes variam significativamente em função da topologia ?
 

Edição atual tal como às 15h24min de 1 de agosto de 2019


Objetivos

  • Auto-configurar hosts em uma subrede IPv6 com SLAAC
  • Usar DHCPv6 para configurar hosts

Roteiro

Para realizar estas atividades serão necessários alguns comandos:

  • Teste com ping6:
    ping6 endereço_IPv6_a_ser_pingado
    
    Obs: endereço IPv6 deve ser escopo global. Se for escopo link, deve-se informar a interface de rede por onde fazer o ping:
    ping6 -I nome_interface endereço_IPv6_a_ser_pingado
    
  • Listagem de rotas: a tabela de rotas IPv6 pode ser visualizada assim:
    route -A inet6 -n
    
  • Adicionar nova rota para:
    route -A inet6 add prefixo/mascara gw IPv6_gateway
    
    Obs: IPv6_gateway é um endereço IPv6 de escopo global. Se o endereço conhecido for de escopo link, o comando deve informar também a interface de saída para essa rota:
    route -A inet6 add prefixo/mascara gw IPv6_gateway dev nome_interface
    

Parte 1: SLAAC

  1. Execute o netkit2
  2. Arraste este link para o arquivo de configuração rede0.conf e solte-o sobre a janela do netkit2
  3. Use o menu File->Graph para visualizar a topologia da rede
  4. Use o menu Network->Start para iniciar a rede
  5. Verifique os endereços IPv6 globais usado por pc1 e pc2. Compare-os com os endereços globais usados por r1.
  6. Teste a comunicação entre pc1 e pc2 com ping6.
  7. Em r1 crie o arquivo /etc/radvd.conf com este conteúdo:
    interface eth1 {
      AdvSendAdvert on;
      MinRtrAdvInterval 3;
      MaxRtrAdvInterval 10;
      prefix ccdd:0:0:0:0:0:0:0/64 {
      AdvOnLink on;
      AdvAutonomous on;
      };
    };
    interface eth0 {
      AdvSendAdvert on;
      MinRtrAdvInterval 3;
      MaxRtrAdvInterval 10;
      prefix aabb:0:0:0:0:0:0:0/64 {
      AdvOnLink on;
      AdvAutonomous on;
      };
    };
    
  8. Em r1 execute este comando:
    /etc/init.d/radvd start
    
  9. Verifique os endereços IPv6 globais usado por pc1 e pc2. Compare-os com os endereços globais usados por r1.
  10. Teste a comunicação entre pc1 e pc2 com ping6.
  11. Verifique a tabela de rotas IPv6 em pc1 e pc2. Compare o endereço do roteador default com o do gateway.
  12. Selecione o host pc1 e, em seguida, o menu Wireshark->eth0.
  13. Observe as mensagens de anúncio de roteador recebidas. Que informações elas contêm ?
  14. Agora experimente por esta rede no ar usando SLAAC ! Talvez seja necessário algo mais ...

Parte 2: DHCPv6

  1. Execute o netkit2
  2. Arraste este link para o arquivo de configuração rede0.conf e solte-o sobre a janela do netkit2
  3. Use o menu File->Graph para visualizar a topologia da rede
  4. Use o menu Network->Start para iniciar a rede
  5. Verifique os endereços IPv6 globais usado por pc1 e pc2. Compare-os com os endereços globais usados por r1.
  6. Teste a comunicação entre pc1 e pc2 com ping6.
  7. Em r1 crie o arquivo /etc/radvd.conf com este conteúdo:
    interface eth1 {
      AdvSendAdvert on;
      MinRtrAdvInterval 3;
      MaxRtrAdvInterval 10;
      prefix ccdd:0:0:0:0:0:0:0/64 {
      AdvOnLink on;
      AdvAutonomous on;
      };
    };
    interface eth0 {
      AdvSendAdvert on;
      MinRtrAdvInterval 3;
      MaxRtrAdvInterval 10;
      AdvManagedFlag on;
    };
    
    Mesmo que se use DHCPv6 é necessário usar SLAAC para obter o endereço do gateway. Por isso em r1 se ativou o serviço radvd, porém indicando que o host deve usar configuração de endereço stateful (opção AdvManagedFlag).
  8. Em r1 crie o arquivo /etc/dhcp/dhcpd6.conf com este conteúdo:
    default-lease-time 600;
    max-lease-time 7200;
    
    subnet6 aabb::/64 {
      range6 aabb::10 aabb::a00;
      option dhcp6.name-servers aabb::2;
    }
    
    subnet6 ccdd::/64 {
      range6 ccdd::10 ccdd::a00;
      option dhcp6.name-servers aabb::2;
    }
    
  9. Em r1 execute este comando:
    /etc/init.d/radvd start
    
  10. Verifique os endereços IPv6 globais usado por pc1 e pc2. Compare-os com os endereços globais usados por r1.
  11. Teste a comunicação entre pc1 e pc2 com ping6.
  12. O host pc1 não obteve seu endereço IPv6, pois ele deve fazê-lo via DHCPv6. Sendo assim, faça o seguinte:
    • Em r1 ative o servidor DHCPv6 com este comando:
      touch /var/lib/dhcp/dhcpd6.leases
      chown dhcpd.dhcpd /var/lib/dhcp/dhcpd6.leases
      dhcpd -6 -cf /etc/dhcp/dhcpd6.conf
      
    • Em pc1 execute o cliente DHCPv6 com este comando:
      dhclient -6 eth0
      
  13. Verifique o endereços IPv6 global usado por pc1. Compare-o com os endereços globais usados por r1.
  14. Teste a comunicação entre pc1 e pc2 com ping6.
  15. Verifique a tabela de rotas IPv6 em pc1 e pc2. Compare o endereço do roteador default com o do gateway.
  16. Uma reflexão: qual benefício existe em usar DHCPv6, ao invés de somente SLAAC ?

Parte 3: Roteamento dinâmico com IPV6 (com o RIPNG)

Rede ripng.jpg

Baseado no diagrama da Figura, usaremos serviços para rodar os protocolos de roteamento RIP a partir do Quagga, de tal modo que as tabelas estáticas de roteamento não mais serão necessárias e o sistema se auto recuperará da queda de um único enlace (nesse caso).

  1. Reinicie o NetKit2 para limpar todas as configurações.
  2. Arraste o link redeipv6.conf para a janela do Netkit2.

O arquivo redeipv6.conf possui a configuração da rede a ser executada com o Netkit2. Observe que nessa configuração já está inserida a definição dos default gateway de cada pc.

  1. Use o menu File->Graph para visualizar a topologia da rede a ser executada (compare-a com a figura no início desta atividade). Por fim, inicie a execução da rede usando o menu Network->Start.
  1. Para testar o ambiente criado no pc1 execute um ping para o pc2: ping6 aabb:ccdd:eeff::1 </syntaxhighlight> O ping está funcionando? Por quê?
  2. Deixe o ping rodando!
  3. Agora em cada roteador, configure o serviço RIP IPV6 para que os testes da próxima etapa possam ser executados. No terminal de cada um dos roteadores, execute estes comandos:
    configure t
    router ripng
    redistribute connected
    redistribute static
    network eth1
    network eth2
    end
    
  4. Olhe o terminal do pc1, o que ocorreu com o ping? Por quê?
  5. Observando o estado do sistema. Vamos usar comandos para verificar o estado dos roteadores.
    1. Verifique o estado das interfaces usando o comando: show interface </syntaxhighlight>
    2. Verifique se o roteador está habilitado para roteamento: show ipv6 forwarding </syntaxhighlight>
    3. Verifique o estado da tabela de roteamento usando o comando: show ipv6 route </syntaxhighlight> Interprete detalhadamente essa tabela! Você consegue visualizar o mapa da rede a partir dessa tabela?
    4. Verifique a configuração atual do roteador: show running-config </syntaxhighlight>
  6. Teste as demais conectividades entre os PCs com pings mútuos. Tudo funcionando?
  7. A partir de cada PC trace a rota (traceroute IP_Destino) para os demais PC e anote-as.
  8. Com o route -A inet6 -n verifique a anote as rotas para cada rede a partir dos pcs.
  9. Pare todos os pings.
  10. No roteador r1 use o menu no canto superior direito do netkit2, vá em Wireshark->eth1, para coletar os pacotes da interface eth2, e verifique as ocorrências de pacotes RIPNG.
  11. Aguarde uns 2 minutos para capturar pacotes específicos do protocolo de roteamento RIP.
  12. Digite Ctrl + R para atualizar a captura do netkit2.
  13. Tente compreender as mensagens trocadas. As mensagens são trocadas aproximadamente a cada minuto, se não aparecer nenhuma no Wireshark faça um reload: <Ctrl+r> até surgir alguma mensagem.
    1. O que dizem essas mensagens?
    2. Qual endereço multicast o ripng utiliza?
  14. A partir do pc1 deixe rodando o ping ping6 aabb:ccdd:eeff::2</syntaxhighlight>
  15. Com o wireshark rodando em r1, desative um dos enlaces entre os roteadores e acompanhe a troca de mensagens no Wireshark (dê um reload). Por questões de compatibilidade vamos desativar uma interface de um modo especial. Por exemplo, para "derrubar" o enlace r2-r1, execute no r2:

configure t entra no mode de configuração interface eth2 entra na referida interface a ser operada shutdown desativa a interface, se desejado </syntaxhighlight>

  1. Permaneça monitorando o ping6 e o Wireshark (reload: <Ctrl+r>). Observe os pacotes trocados e interprete.
    1. Quais as mensagens trocadas pelo protocolo RIP observadas no WireShark? Observe o trecho de mensagens onde não houve respostas ao ping.
  2. Agora observe as mensagens trocadas na interface eth1, no roteador r1 use o menu no canto superior direito do netkit2, vá em Wireshark->any, e verifique as ocorrências de pacotes RIPNG.
  3. Reative a interface r2-r1.no shutdown</syntaxhighlight>
    1. Com o Wireshark, identifique as mensagens trocadas entre os roteadores envolvidos na mudança.
    2. Qual a sua interpretação da mensagem? Qual o motivo da troca dessa mensagem em particular?


Parte 4: Integração SLAAC e RIP

  1. De acordo com o que foi aprendido nesta aula e na aula anterior, configure esta rede aplicando a autoconfiguração IPV6 para a borda da rede e o algoritmo RIPNG para o núcleo da rede.


RedeSlaacRip2.jpg



Voltar