CCIE Must Know:ICMPv6 protocol overview
ICMPv6 (Internet Control Managemet Protocol Version 6), that is, Internet Control Information Protocol version six. ICMPv6 Internet control information protocol developed for use with IPv6. Like IPv4, IPv6 also needs to use ICMP, the old version of ICMP can not meet all the requirements of IPv6, so a new version of ICMP, called ICMPv6, was developed.
IPv6’s Internet Control Message Protocol for IPv6 (ICMPv6) is similar to IPv4’s ICMP (ICMPv4). ICMPv6 also uses informational messages and error messages to test Layer 3 connectivity like ICMPv4, and informs the source of such problems as network unreachability.
The Internet Control Information Protocol is an important part of the IP protocol. ICMPv6 reports errors and information about the transmission of IPv6 packets at the destination address to the source node. It has functions such as error reporting, network diagnosis, neighbor node discovery, and multicast implementation. In IPv6, ICMPv6 implements the functions of ICMP, ARP, and IGMP in IPv4. IANA (Internet Address Authorization Committee) defines the protocol number of ICMPv6 as 58.
ICMP protocol announcement type:
① Notify network error. For example, a host or the entire network is unreachable due to certain failures. If there is a TCP or UDP packet pointing to a certain port number without specifying the receiving end, this is also reported by ICMP.
② Notify network congestion. When the router buffers too many packets, the “ICMP source end” message will be generated because the transmission speed cannot reach their receiving speed. For the sender, this information will cause the transmission speed to decrease.
③ Assist in troubleshooting. ICMP supports the Echo function, which is to send a packet on a round-trip path between two hosts. Ping is a general network management tool based on this feature. It will transmit a series of packets, measure the average number of round trips and calculate the percentage of loss.
④ Notice timeout. If the TTL of an IP packet drops to zero, the router will discard the packet, and the fact that an ICMP packet advertisement will be generated. TraceRoute is a tool that can display network routes by sending packets with small TTL values and monitoring ICMP timeout notifications.
In addition to the basic functions of IPv4 ICMP, ICMPv6 also includes the following two functions:
1. Multicast Listener Discovery (MLD)
This protocol completes the management of multicast members in the subnet. The MLD protocol defines three ICMPv6 messages:
Multicast listening query message: The multicast router sends this message to the multicast listeners in the subnet to obtain the status of the multicast listeners.
Multicast listener report message: The multicast listener reports the current status to the multicast router, including leaving a multicast group.
2. Neighbor Discovery
The neighbor discovery protocol implements IPv6 address resolution protocol (ARP), ICMPv6 router discovery protocol, and ICMPv6 redirect message functions to manage communication between nodes on the same link.
The protocol defines five ICMPv6 messages:
1. Router Solicitation: A device sends multicast messages to all IPv6 routers, requesting router advertisement messages from the router.
2. Router Advertisement: A multicast message sent by an IPv6 router to all IPv6 devices. The link information included is prefix, prefix length and default gateway address.
3. Neighbor Solicitation: A device sends a message to the requested node multicast address when it knows the IPv6 address of another device but does not know its Ethernet MAC address. This approach is similar to that of IPv4’s address resolution protocol.
4. Neighbor Advertisement: Usually a message sent by a device in response to a neighbor request message.
5. Redirect: Similar to the similar message function in IPv4. This type of message is also sent by a router to inform the source link of the packet that there is a next-hop router that is closer to the destination.
ICMP message processing rules:
(1) When an ICMPv6 error report message is received, if the specific type cannot be identified, it must be handed over to the upper protocol module for processing.
(2) When receiving an ICMPv6 information message, if a specific type cannot be identified, it must be discarded.
(3) All ICMPv6 error report messages should be within the minimum MTU required by IPv6, including as many IPv6 packet fragments as possible to cause the ICMPv6 error message, so as to provide the source node of the IPv6 packet with as much as possible More diagnostic information.
(4) When the ICMPv6 message needs to be uploaded to its upper layer protocol module for processing, the specific type of the upper layer protocol should be obtained from the next header field of the IPv6 packet encapsulating the ICMPv6 message.
(5) Finally, in order to limit the consumption of network bandwidth and forwarding processing when sending ICMPv6 error report messages, an IPv6 node must limit the rate at which it sends ICMPv6 error report messages. However, this may cause the source node of an error report message to continuously retransmit the error message because it did not receive the error report in time.