The Neighbor Discovery Protocol is a protocol in the Internet protocol suite used with IPv6.
It operates in the link layer of the Internet model and is responsible for address autoconfiguration
of nodes, discovery of other nodes on the link, determining the link layer addresses
of other nodes, duplicate address detection, finding available routers and Domain Name
System servers, address prefix discovery, and maintaining reachability information about
the paths to other active neighbor nodes.
The protocol defines five different ICMPv6 packet types to perform functions for IPv6
similar to the Address Resolution Protocol and Internet Control Message Protocol Router
Discovery and Router Redirect protocols for IPv4.
However, it provides many improvements over its IPv4 counterparts.
For example, it includes Neighbor Unreachability Detection, thus improving robustness of packet
delivery in the presence of failing routers or links, or mobile nodes.
The Inverse Neighbor Discovery protocol extension allows nodes to determine and advertise an
IPv6 address corresponding to a given link-layer address, similar to Reverse ARP for IPv4.
The Secure Neighbor Discovery Protocol is a security extension of NDP that uses Cryptographically
Generated Addresses and the Resource Public Key Infrastructure to provide an alternate
mechanism for securing NDP with a cryptographic method that is independent of IPsec.
Neighbor Discovery Proxy provides a service similar to IPv4 Proxy ARP and allows bridging
multiple network segments within a single subnet prefix when bridging cannot be done
at the link layer.
Technical details NDP defines five ICMPv6 packet types for the
purpose of router solicitation, router advertisement, neighbor solicitation, neighbor advertisement,
and network redirects.
Router Solicitation Hosts inquire with Router Solicitation messages
to locate routers on an attached link.
Nodes which forward packets not addressed to them generate Router Advertisements immediately
upon receipt of this message rather than at their next scheduled time.
Router Advertisement Routers advertise their presence together
with various link and Internet parameters either periodically, or in response to a Router
Solicitation message.
Neighbor Solicitation Neighbor solicitations are used by nodes to
determine the link layer address of a neighbor, or to verify that a neighbor is still reachable
via a cached link layer address.
Neighbor Advertisement Neighbor advertisements are used by nodes
to respond to a Neighbor Solicitation message.
Redirect Routers may inform hosts of a better first
hop router for a destination.
These messages are used to provide the following functionality:
Router discovery: hosts can locate routers residing on attached links.
Prefix discovery: hosts can discover address prefixes that are on-link for attached links.
Parameter discovery: hosts can find link parameters.
Address autoconfiguration: stateless configuration of addresses of network interfaces.
Address resolution: mapping between IP addresses and link-layer addresses.
Next-hop determination: hosts can find next-hop routers for a destination.
Neighbor unreachability detection: determine that a neighbor is no longer reachable on
the link.
Duplicate address detection: nodes can check whether an address is already in use.
Recursive DNS Server and DNS Search List assignment via a router advertisement options.
This is a new feature and not widely supported by clients.
Packet redirection to provide a better next-hop route for certain destinations.
See also Secure Neighbor Discovery Protocol
radvd NDPMon Neighbor Discovery Protocol Monitor
Definitions
References