Experiência 1.4. Neighbor Discovery Protocol: detecção de
endereços duplicados
Objetivo
Esta experiência apresenta o funcionamento do mecanismo de detecção
de endereços duplicados. Para isto, troca-se o endereço de um dos nós da topologia para um endereço em uso por outro nó. É possível obser- var a detecção do endereço duplicado pela troca de mensagens NS e NA. Observa-se também que o funcionamento do nó cujo endereço foi duplicado não é afetado. Para a realização do presente exercício será utilizada a topologia descrita no arquivo: 1-04-DAD.imn.
Introdução teórica
A detecção de endereços duplicados (Duplicate Address Detection – DAD)
é um procedimento realizado sempre que um novo endereço é atribuído a uma interface. Isto vale tanto para endereços atribuídos manualmente, quanto por autoconfiguração. Tanto na hora em que o dispositivo é ligado, como quando já está em funcionamento e um novo endereço é adicionado. O mecanismo é parecido com o da descoberta de vizinhança, com a diferença de que o nó tenta descobrir o endereço físico de seu próprio endereço IP, antes de efetivamente usá-lo. Se alguém responder, é porque o endereço já está em uso por outro nó. Isso é feito enviando uma mensagem NS, como na descoberta de vizi- nhança. Mas o endereço de origem é :: (não especificado). Caso receba uma mensagem NA, o nó interrompe o processo de configu- ração e o endereço não poderá ser utilizado. Nessa situação, o conflito só é solucionado manualmente, com adição de um novo endereço. Caso um determinado tempo de espera seja ultrapassado e não seja recebida nenhuma mensagem, o dispositivo poderá então finalizar sua configuração. O valor padrão para tal espera é de um segundo. 28 FUNCIONALIDADES BÁSICAS
Roteiro experimental
1. Inicie o CORE e abra o arquivo 1-04-DAD.imn localizado no diretório lab,
dentro do Desktop. A topologia de rede, representada pela Figura 1.14, deve aparecer.
Figura 1.14: topologia da Experiência 1.4 no CORE.
O objetivo dessa topologia de rede é representar o mínimo necessário
para que a troca das mensagens relativas à duplicidade de endereços seja verificada.
2. Conforme descrito nos Apêndices B e C, inicialize a simulação, verifique
a configuração de endereços IPv6 nos nós n1Original,n2Duplicate e n3Host e a conectividade entre eles.
3. Em paralelo, efetue: NDP: DETECÇÃO DE ENDEREÇOS DUPLICADOS 29
(a) A coleta dos pacotes trafegados na interface eth0 de n1Original. As
instruções de coleta de pacotes utilizando tcpdump ou Wireshark se en- contram no Apêndice C. (b) Abra um terminal de n2Duplicate com um duplo-clique e utilize os se- guintes comandos:
# ip addr del 2001:db8::11/64 dev eth0
# ip addr add 2001:db8::10/64 dev eth0
O resultado dos comandos é representado pela Figura 1.15.
Figura 1.15: resultado esperado da atribuição de um endereço duplicado.
Estes comandos removem o endereço IPv6 anterior e tentam atribuir um
endereço duplicado.
4. Verifique o resultado da atribuição do endereço duplicado em n2Duplicate.
(a) Abra um terminal de n2Duplicate com um duplo-clique e verifique a
atribuição do endereço duplicado. Utilize o seguinte comando:
# ifconfig eth0
O resultado do comando é representado pela Figura 1.16.
Figura 1.16: verificação dos endereços atribuidos a n2Duplicate utilizando o
comando ifconfig. 30 FUNCIONALIDADES BÁSICAS
(b) Ainda no terminal de n2Duplicate, verifique a atribuição do endereço
duplicado, com o comando:
# ip addr show dev eth0
O resultado do comando é representado pela Figura 1.17.
Figura 1.17: verificação dos endereços atribuidos a n2Duplicate utilizando o
comando ip.
A detecção de endereço duplicado é um procedimento definido no IPv6 e
o objetivo de evitar o uso de um mesmo endereço por dois dispositivos distintos. Observe as linhas referentes ao endereço 2001:db8::10 na saída dos co- mandos ifconfig e ip utilizados. Note a informação tentative dadfailed contida na saída do comando ip. Esta informação indica que foi detectada a tentativa de uso de um endereço duplicado e, pelo fato da duplicidade de endereço, o mesmo não foi atribuído à interface eth0 de n2Duplicate. Já a saída do comando ifconfig não indica tal falha. Este é um dos motivos para a depreciação do comando ifconfig e a recomendação do comando ip para a mesma finalidade de verificação de informações re- lativas às interfaces de rede quando se utiliza o sistema operacional Linux. O procedimento da detecção de endereço duplicado também é abordado na Experiência 3.1.
5. Efetue a análise dos pacotes coletados.
(a) Primeiro, analise os pacotes coletados da interface eth0 de n1Original
durante o passo 3. NDP: DETECÇÃO DE ENDEREÇOS DUPLICADOS 31
Aplique o filtro icmpv6 no Wireshark e procure pelos pacotes NS, cujo
Source é [::]; NA em resposta ao NS anterior; e echo reply. Analise-os e veja se os dados contidos nos pacotes conferem com o que foi passado na teoria. Campos importantes do pacote NS, representado pela Figura 1.18:
Figura 1.18: pacote NS capturado em n1Original, mostrado no Wireshark.
Destination (camada Ethernet)
O destino é o endereço (33:33:ff:00:00:10), sendo que o prefixo 33:33 indica que a mensagem é um multicast na camada Ethernet. O sufixo ff:00:00:10 indica os últimos 32 bits do endereço multicast IPv6 da mensagem. Source (camada Ethernet) A origem é o endereço MAC da interface do dispositivo que enviou a solicitação (00:00:00:aa:00:01). Type (camada Ethernet) Indica que a mensagem utiliza IPv6. 32 FUNCIONALIDADES BÁSICAS
Next header (camada IPv6)
Indica qual é o próximo cabeçalho. Neste caso, o valor 58 (0x3a) refere-se a uma mensagem ICMPv6. Source (camada IPv6) A origem não é especificada, sendo utilizado o endereço (::). Destination (camada IPv6) O destino é o endereço multicast solicited-node (ff02::1:ff00:10). Type (camada ICMPv6) Indica que a mensagem é do tipo 135 (Neighbor Solicitation). Target (camada ICMPv6) Este campo contém o endereço IPv6 procurado (2001:db8::10).
6. Para analisar o comportamento dos dispositivos da rede após a tentativa
de duplicação de endereços, efetue, em paralelo, os seguintes passos:
(a) A coleta dos pacotes trafegados na interface eth0 de n1Original.
(b) A coleta dos pacotes trafegados na interface eth0 de n2Duplicate. (c) A verificação de conectividade IPv6 entre n3Host e o endereço IP 2001:db8::10.
As instruções de coleta de pacotes utilizando tcpdump ou Wireshark se
encontram no Apêndice C. NDP: DETECÇÃO DE ENDEREÇOS DUPLICADOS 33
7. Efetue a análise dos pacotes coletados.
(a) Pacotes coletados da interface eth0 de n1Original durante o passo 6.
Campos importantes do pacote echo reply, representado pela Figura 1.19:
Figura 1.19: pacote echo reply capturado em n1Original, mostrado no
Wireshark.
Type (camada Ethernet)
Indica que a mensagem utiliza IPv6. Next header (camada IPv6) Indica qual é o próximo cabeçalho. Neste caso, o valor 58 (0x3a) refere-se a uma mensagem ICMPv6. Destination (camada IPv6) O destino é o endereço IPv6 de n3Host (2001:db8::12). Source (camada IPv6) A origem é o endereço IPv6 de n1Original (2001:db8::10). Type (camada ICMPv6) Indica que a mensagem é do tipo 129 (echo reply). 34 FUNCIONALIDADES BÁSICAS
Observe que o dispositivo n1Original respondeu todas as mensagens echo
request. (b) Pacotes coletados da interface eth0 de n2Duplicate durante o passo 6. Observe que a interface do endereço duplicado não capturou nenhum pacote destinado ao endereço em questão, somente mensagens destinadas a endereços multicast. A Figura 1.20 apresenta uma lista de pacotes coletados em n2Duplicate.
Figura 1.20: lista de pacotes capturados em n2Duplicate, mostrada no
Wireshark.
8. Encerre a simulação, conforme descrito no Apêndice B.