Neighbor Discovery Protocol
The Neighbor Discovery Protocol (NDP) is a protocol in the Internet Protocol Suite used with Internet Protocol Version 6 (IPv6). It operates in the Link Layer of the Internet model (RFC 1122) 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 (DNS) servers, address prefix discovery, and maintaining reachability information about the paths to other active neighbor nodes (RFC 4861).
The protocol defines five different ICMPv6 packet types to perform functions for IPv6 similar to the Address Resolution Protocol (ARP) and Internet Control Message Protocol (ICMP) Router Discovery and Router Redirect protocols for IPv4. However, it provides many improvements over its IPv4 counterparts (RFC 4861, section 3.1). For example, it includes Neighbor Unreachability Detection (NUD), thus improving robustness of packet delivery in the presence of failing routers or links, or mobile nodes.
The Inverse Neighbor Discovery (IND) protocol extension (RFC 3122) allows nodes to determine and advertise an IPv6 address corresponding to a given link-layer address, similar to Inverse ARP for IPv4. The Secure Neighbor Discovery Protocol (SEND) is a security extension of NDP that uses Cryptographically Generated Addresses (CGA) and the Resource Public Key Infrastructure (RPKI) to provide an alternate mechanism for securing NDP with a cryptographic method that is independent of IPsec.
|Internet protocol suite|
- Router Solicitation
- Hosts inquire with Router Solicitation messages to locate routers on an attached link.[Definitions 1] 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
- 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 (e.g., MTU).
- 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 (NUD): determine that a neighbor is no longer reachable on the link.
- Duplicate address detection (DAD): nodes can check whether an address is already in use.
- Recursive DNS Server (RDNSS) and DNS Search List (DNSSL) assignment via a router advertisement (RA) options. This is a new feature and not widely supported by clients.
- Packet redirection to provide a better next-hop route for certain destinations.
- Secure Neighbor Discovery Protocol
- radvd (Router Advertisement Daemon)
- NDPMon Neighbor Discovery Protocol Monitor
- Network Working Group; Thomas Narten, Erik Nordmark, William Allen Simpson, Hesham Soliman (1 MARCH 2005). "Protocol Overview". ietf.org. The Internet Engineering Task Force (IETF). p. 9. Archived from the original on 2 SEPTEMBER 2007. Retrieved 2 March 2013. "Router Discovery: How hosts locate routers that reside on an attached link."