ICMPv6 goes beyond the traditional diagnostic and error reporting services delivered by its IPv4 counterpart. Some ICMPv6 are simply indispensable for a series of link-local processes related to Neighbor Discovery (ND). The main messages and some of the processes they apply to, are described below:
- Router Adverstisements (RA messages): identified by ICMP type 134, are sent periodically or in response to a Router Solicitation message. An RA is sent to the All-Nodes multicast address with a link-local scope (FF02::1) and includes one or more network prefixes and possibly other data, such as the default router and the MTU on that link.
- Router Solicitation (RS messages): generated by hosts at boot time to request immediate sent of RAs by routers, so that they do not need to wait for the periodic RA and can promptly start autoconfiguration. ICMP type 133 is associated with RS messages.
Two other important ICMPv6 ND messages, Neighbor Solicitation (NS) and Neighbor Advartisement (NA), respectively identified by types 135 and 136, are mainly employed in the following tasks:
- Duplicate Address Detection (DAD): to avoid address conflicts on a link, a node invokes the DAD mechanism whenever a new address is configured. For example, if host H1 wishes to configure the unicast address X1, it sends an ICMPv6 Neighbor Solicitation to the solicited-node multicast address corresponding to X1. If any other host on the link responds, it means that the intended address is already taken and cannot be assigned.
- Layer 2 Address Resolution (ARP Replacement): If host H1 wants to send a packet to H2 on a local-link, it first needs to determine the layer 2 address of H2. H1 accomplishes that by sending a NS message to the solicited-node address corresponding to H2. The data portion of the NS contains the Query “what is your L2 address? “. H2 then sends a Neighbor Advertisement message to H1, revealing its Layer 2 address. The hosts can now communicate using IPv6 unicast addresses.
Due to the role played by ICMPv6, the (almost automatic) procedure of blocking ICMP (typical of IPv4 networks) will need to be reconsidered. Otherwise the basic IPv6 link-local processes will fail…
** Topics for Study:
- Play with the ping and the show ipv6 neighbor commands to examine L2 Address Resolution
- It may be interesting to enable the debug ipv6 icmp and debug ipv6 nd commands on your lab to get more familiar with the main ND processes.
- Are you able to apply Flexible Netflow (described in a previous post) to gain visibility of the ND messages ?
** Related Posts:
- IPv6 series: https://alexandremspmoraes.wordpress.com/tag/ipv6/