Mark A. Miller, P.E., President, DigiNet Corporation
In our previous tutorial, we examined the capabilities of the Internet Control Message Protocol, version 6 (ICMPv6), which reports errors that occur during packet processing, plus internal network diagnostic functions. ICMPv6 is a required adjunct to IPv6, and is defined in RFC 4443 (see http://www.rfc-editor.org/rfc/rfc4443.txt). We found that the ICMPv6 messages are divided into two broad categories: error messages (Destination Unreachable, Packet Too Big, Time Exceeded, and Parameter Problem), and the informational messages (Echo Request and Echo Reply).
Another IPv6 function that is closely related to ICMPv6 is called Neighbor Discovery. This protocol combines some of the capabilities from three different IPv4 mechanisms: the Address Resolution Protocol (ARP, defined in RFC 826, see http://www.rfc-editor.org/rfc/rfc826.txt); ICMP Router Discovery Messages (defined in RFC 1256, see http://www.rfc-editor.org/rfc/rfc1256.txt): and the ICMP Redirect Message (defined in RFC 792, see http://www.rfc-editor.org/rfc/rfc792.txt). Neighbor Discovery (ND) is documented in RFC 4861 (see http://www.rfc-editor.org/rfc/rfc4861.txt), and provides three key functions:
- Nodes (either hosts or routers) use ND to determine the link-layer addresses for neighbors that are known to reside on attached links (and also to purge/update cached values that are no longer valid.
- Nodes use ND to actively keep track of which neighbors are reachable and which are not, plus detecting link-layer addresses that have changed.
- Hosts use ND to find neighboring routers that are willing to forward packets on their behalf.
According to RFC 4861, the Neighbor Discovery defines mechanisms to address the following problems:
- Router Discovery: How hosts locate routers that reside on an attached link.
- Prefix Discovery: How hosts discover the set of address prefixes that define which destinations are on-link for an attached link. (Nodes use prefixes to distinguish destinations that reside on-link from those only reachable through a router.)
- Parameter Discovery: How a node learns link parameters (such as the link Maximum Transmission Unit, or MTU) or Internet parameters (such as the hop limit value) to place in outgoing packets.
- Address Autoconfiguration: Allows nodes to configure an address for an interface in a stateless manner (see RFC 4862, http://www.rfc-editor.org/rfc/rfc4862.txt).
- Address resolution: How nodes determine the link-layer address of an on-link destination (such as a neighbor) given only the destination’s IP address.
- Next-hop determination: The algorithm for mapping an IP destination address into the IP address of the neighbor to which traffic for the destination should be sent. The next-hop can be a router or the destination itself.
- Neighbor Unreachability Detection: How nodes determine that a neighbor is no longer reachable. For neighbors used as routers, alternate default routers can be tried. For both routers and hosts, address resolution can be performed again.
- Duplicate Address Detection: How a node determines whether or not an address it wishes to use is already in use by another node.
- Redirect: How a router informs a host of a better first-hop node to reach a particular destination.
From the above list, you can see that these functions go beyond the error detection and network diagnostics that were the charter of ICMPv6 – now included are functions that take more of an active role in the management and configuration of the network, such as the discovery of router locations and various link parameters, plus the determination of addressing-related issues such as duplicate addresses.
To make all of these enhanced functions work, the ND protocol defines five additional ICMPv6 messages. Again according to RFC 4861, these messages are:
- Router Solicitation (ICMPv6 Message Type = 133): When an interface becomes enabled, hosts may send out Router Solicitations that request routers to generate Router Advertisements immediately rather than at their next scheduled time. This message may include the link layer address of the source (sending node).
- Router Advertisement (ICMPv6 Message Type = 134): Routers advertise their presence together with various link and Internet parameters either periodically, or in response to a Router Solicitation message. Router Advertisements contain prefixes that are used for determining whether another address shares the same link (on-link determination) and/or address configuration, a suggested hop limit value, and so on.
- Neighbor Solicitation (ICMPv6 Message Type = 135): Sent by a node 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 Solicitations are also used for Duplicate Address Detection. This message may include the link layer address of the source (sending node).
- Neighbor Advertisement (ICMPv6 Message Type = 136): A response to a Neighbor Solicitation message. A node may also send unsolicited Neighbor Advertisements to announce a link-layer address change.
- Redirect (ICMPv6 Message Type = 137): Used by routers to inform hosts of a better first hop for a destination.
Thus, the Neighbor Discovery protocol for IPv6 builds upon its IPv4 predecessors (ARP and ICMP), providing additional network infrastructure details that go beyond pings and error notifications. Our next tutorial will look at another related IPv6 process, Path MTU Discovery, that also utilizes the functions of ICMPv6.
Author’s Biography
Mark A. Miller, P.E. is President of DigiNet Corporation®, a Denver-based consulting engineering firm. He is the author of many books on networking technologies, including the Internet Technologies Handbook, published by John Wiley & Sons.















