Neighbor Discovery Protocol

termo

redes

O protocolo do IPv6, transportado no ICMPv6, com que os nós de um enlace descobrem uns aos outros, os roteadores e os endereços de camada 2.

O Neighbor Discovery (RFC 4861) faz o que o ARP, o ICMP Router Discovery e o ICMP Redirect faziam no IPv4, e acrescenta a detecção de vizinho inalcançável. Toda resolução de endereço, escolha de roteador e checagem de duplicidade num enlace IPv6 passa por ele, e descartar suas mensagens quebra o IPv6 de vez.

São cinco mensagens ICMPv6, tipos 133 a 137: Router Solicitation e Router Advertisement, Neighbor Solicitation e Neighbor Advertisement, e Redirect. Todas saem com hop limit 255 e o receptor confere esse valor, então uma mensagem que atravessou um roteador é rejeitada; mensagens ND fragmentadas devem ser ignoradas. A resolução custa uma solicitação multicast ao grupo solicited-node do alvo, levando o MAC de quem pergunta, e um advertisement unicast de volta, e aí as duas pontas já têm uma entrada.

Cada entrada do Neighbor Cache passa por INCOMPLETE, REACHABLE, STALE, DELAY e PROBE. Com os timers padrão, a alcançabilidade dura um valor aleatório entre 15 e 45 segundos; uma entrada stale espera 5 segundos depois do próximo pacote, manda três sondas unicast com um segundo de intervalo e é apagada se nenhuma tiver resposta.

O protocolo confia no enlace. Nada diz a um host quais vizinhos podem enviar Router Advertisements nem se quem anuncia é dono do endereço que declara, então RAs indevidos, em geral acidentais, e advertisements forjados mandam pacotes para lugares inesperados, e uma varredura de um /64 enche o cache de um roteador de fora do enlace. O SEND acrescenta assinaturas, mas a RFC 9099 diz que não se deve contar com ele; na prática usam-se RA-Guard, limites de taxa e sub-redes do tamanho certo. No Linux, ip -6 neigh show lista o cache com os estados.

Também conhecido como: ndp, nd, neighbor discovery, neighbour discovery, ipv6 neighbor discovery, rfc 4861

← Todos os verbetes do glossário