IPv6 Neighbor Discovery Protocol
In IPv6 we do not have ARP (address resolution protocol) anymore. ARP is replaced with ICMP based NDP protocol. NDP or ND protocol uses special IPv6 ICMP messages to find and resolve L2 neighbours IPv6 addresses.
It’s a simple way for hosts to learn IPv6 addresses of neighbours on L2 subnet around himself. That includes learning about other hosts and routers on local network. That is the biggest difference between IPv4 and IPv6, there’s no ARP but ICMP takes the function.
NDP is defined in RFC 2461 and this article will introduce you to NDP functions, main features’ lists, and the related ICMPv6 message types.
As the most precise description of NDP is that it belongs to the Link layer of the Internet Protocol suite in TCP/IP model. We can say that Link layer of TCP/IP model is basically a direct combination of the data link layer and the physical layer in the OSI Open Systems Interconnection protocol stack. As in this blog I always try to use OSI model this article was inserted both to Data-link and Physical layer category.
NDP function
In case of IPv6 networks, the NDP Protocol make use of ICMPv6 messages and solicited-node multicast addresses for operating its core function, which is tracking and discovering other IPv6 hosts that are present on the other side of connected interfaces. Another use of NDP is address autoconfiguration.
Let’s discuss some major roles of IPv6 NDP:
- Stateless address autoconfiguration – SLAAC
- Duplicate address detection DAD
- Router discovery
- Prefix discovery
- Parameter discovery link MTU, hop limits
- Neighbor discovery
- Neighbor address resolution – replaces ARP in IPv6
- Neighbor and router reachability verification
In order to carry out work NDP uses five types of ICMPv6 messages. In the following list you can find the function as well as summary of their goals.
NDP message types: