Mudanças entre as edições de "PJI11103: Lab 5"
Ir para navegação
Ir para pesquisar
(19 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 10: | Linha 10: | ||
Para realizar estas atividades serão necessários alguns comandos: | Para realizar estas atividades serão necessários alguns comandos: | ||
− | * '''Teste com ping6''': deve-se | + | * '''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> | ||
== Parte 1: SLAAC == | == Parte 1: SLAAC == | ||
# Execute o ''netkit2'' | # Execute o ''netkit2'' | ||
− | # Arraste este [http://tele.sj.ifsc.edu.br/~msobral/pji3/ | + | # 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 ''File->Graph'' para visualizar a topologia da rede | ||
# Use o menu ''Network->Start'' para iniciar a rede | # Use o menu ''Network->Start'' para iniciar a rede | ||
Linha 50: | Linha 60: | ||
# Selecione o host ''pc1'' e, em seguida, o menu ''Wireshark->eth0''. | # 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 ? | # 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 2: DHCPv6 == | == Parte 2: DHCPv6 == | ||
+ | |||
+ | # 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; | ||
+ | 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; | ||
+ | |||
+ | 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; | ||
+ | } | ||
+ | </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. | ||
+ | # 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> | ||
+ | #* Em ''pc1'' execute o cliente DHCPv6 com este comando: <syntaxhighlight lang=bash> | ||
+ | dhclient -6 eth0 | ||
+ | </syntaxhighlight> | ||
+ | # Verifique o endereços IPv6 global usado por ''pc1''. Compare-o 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. | ||
+ | # 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> | ||
+ | #<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. | ||
+ | |||
+ | |||
+ | [[Arquivo:RedeSlaacRip2.jpg|600px]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [[PJI11103:_Endereçamento_IPv6|Voltar]] |
Edição atual tal como às 21h46min de 4 de setembro de 2018
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: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 endereço_IPv6_a_ser_pingado
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: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
route -A inet6 add prefixo/mascara gw IPv6_gateway dev nome_interface
Parte 1: SLAAC
- Execute o netkit2
- Arraste este 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:
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; }; };
- Em r1 execute este comando:
/etc/init.d/radvd start
- 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 esta rede no ar usando SLAAC ! Talvez seja necessário algo mais ...
Parte 2: DHCPv6
- Execute o netkit2
- Arraste este 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: 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).
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; };
- 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; }
- Em r1 execute este comando:
/etc/init.d/radvd start
- 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.
- 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
- Em r1 ative o servidor DHCPv6 com este comando:
- Verifique o endereços IPv6 global usado por pc1. Compare-o 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.
- 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)
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 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:
ping6 aabb:ccdd:eeff::1 </syntaxhighlight> 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:
configure t router ripng redistribute connected redistribute static network eth1 network eth2 end
- 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:
show interface </syntaxhighlight>
- Verifique se o roteador está habilitado para roteamento:
show ipv6 forwarding </syntaxhighlight>
- 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?
- Verifique a configuração atual do roteador:
show running-config </syntaxhighlight>
- Verifique o estado das interfaces usando o comando:
- 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
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:
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.
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 esta rede aplicando a autoconfiguração IPV6 para a borda da rede e o algoritmo RIPNG para o núcleo da rede.