Neighbor Discovery
Neighbor Discovery solves a set of problems related to the interaction
between nodes attached to the same link. It defines mechanisms for
solving each of the following problems:
Stateless
Address Autoconfiguration. This is a new feature of IPv6
beneficial to network administrators, because it requires no manual
configuration of hosts, minimal (if any) configuration of routers, and
no additional servers. The stateless mechanism allows a host to
generate its own addresses using a combination of locally available
information and information advertised by routers and verifies that
each generated address is unique on the link.
Stateless Address Autoconfiguration should greatly decrease the
costs of administering an enterprise network. Also, the task of
renumbering networks will be simplified since IPv6 can assign new
addresses and gracefully time out existing addresses without manual
reconfiguration or DHCP.
Router
Discovery. This feature is used to locate neighboring routers as
well as to learn prefixes and configuration parameters related to
Stateless Address Autoconfiguration.
Router
Advertisements. These allow routers to inform hosts how to
perform Address Autoconfiguration and contain Internet parameters such
as the hop limit which should use in outgoing packets and, optionally,
link parameters such as the link Maximum Transmission Unit (MTU). This
facilitates centralized administration of critical parameters that can
be set on routers and automatically propagated to all attached hosts.
Prefix
Discovery. Flags associated with the prefixes specify the
intended uses of a particular prefix. Hosts use the advertised on-link
prefixes to build and maintain a list that is used in deciding when a
packet's destination is on-link or beyond a router.
Address
Expiration. IPv6 addresses are leased to an interface for a
fixed (possibly infinite) length of time. Each address has an
associated lifetime that indicates how long the address is bound to an
interface.
When a lifetime expires, the binding (and address) become invalid
and the address may be reassigned to another interface elsewhere in the
Internet. To handle the expiration of address bindings gracefully, an
address goes through two distinct phases while assigned to an
interface.
Initially, an address is "preferred," meaning that its use in
arbitrary communication is unrestricted. Later, an address becomes
"deprecated" in anticipation that its current interface binding will
become invalid. While in a deprecated state, the use of an address is
discouraged but not strictly forbidden.
Address
Resolution. This capability is the process through which a node
determines the link-layer address (Ethernet MAC address, for example)
of a neighbor given only its IP address. Address Resolution is
redefined for IPv6 and does not use Address Resolution Protocol (ARP)
packets, as is the case for IPv4.
Nodes accomplish Address Resolution of IPv6 neighbors by
multicasting a request for the target node to return its link-layer
address. The target returns its link-layer address in a unicast
response. By using multicast and unicast addresses instead of the
broadcast address, there are fewer needless interruptions of other
nodes on the network.
Neighbor
Unreachability Detection. This detects the failure of a neighbor
or the failure of the forward path to the neighbor. Once failure has
been detected, an alternate route can be found without interrupting the
flow of data from the application's point of view.
Duplicate
Address Detection. To insure that all configured addresses are
unique on a given link, nodes perform Duplicate Address Detection on
addresses before assigning them to an interface.
Header Format
Simplification. In order to simplify and optimize processing of
IP packets, a few changes were made to the format of the IP header for
IPv6. The length of the IPv6 header is fixed as opposed to the variable
length IPv4 header.
This helps to simplify processing of IPv6 packets as certain
assumptions in the IP processing code can be made. Also, some IPv4
header fields have been dropped or made optional.
Most notable is the lack of a checksum field for the IPv6 header.
This greatly improves performance in routers. When an IPv4 packet is
forwarded by a router the Time-to-Live (TTL) field must be decremented,
which forces the IPv4 header checksum to be recomputed; a CPU intensive
operation. Since this field is not present in the IPv6 header routers
simply decrement the Hop Limit, TTL in IPv6, and forward the packet.
Further, Neighbor Discovery defines five different ICMPv6 packet
types. The messages serve the following purpose:
* Router
Solicitation: Hosts send out Router Solicitations that request
routers to generate Router Advertisements.
* 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: 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
Advertisement: A response to a Neighbor Solicitation message. A
node may also send unsolicited Neighbor Advertisements to announce a
link-layer address change.
* Redirect:
Used by routers to inform hosts of a better first hop for a
destination.
Multicast Listener Discovery
The purpose of Multicast Listener Discovery is to enable each IPv6
router to discover the presence of multicast listeners (that is, nodes
wishing to receive multicast packets) on its directly attached links,
and to discover specifically which multicast addresses are of interest
to those neighboring nodes.
This information is then provided to whichever multicast routing
protocol is being used by the router, in order to ensure that multicast
packets are delivered to all links where there are interested
receivers.