Neighbor Discovery Protocol
termoO 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
Fontes
- RFC 4861, Neighbor Discovery for IP version 6 (IPv6), September 2007: sections 3, 3.1, 4, 7.2, 7.3, 10 and 11 (read 2026-10-18)
- RFC 6583, Operational Neighbor Discovery Problems, March 2012: sections 2 and 6 (read 2026-10-18)
- RFC 9099, Operational Security Considerations for IPv6 Networks, August 2021: sections 2.3.1, 2.3.2 and 2.3.6 (read 2026-10-18)
- RFC 4890, Recommendations for Filtering ICMPv6 Messages in Firewalls, May 2007: section 4.4.1 (read 2026-10-18)