ICMPv6

acronym

networking

Stands for: Internet Control Message Protocol version 6

The control and error protocol of IPv6, which also carries Neighbor Discovery, so IPv6 cannot work without it.

ICMPv6 (RFC 4443) is IP protocol 58 and, unlike ICMP in many IPv4 policies, cannot be treated as optional: every IPv6 node must implement it, and address resolution, router discovery and duplicate address detection all ride on it. Blanket ICMPv6 filtering is a self-inflicted outage.

Every message starts with an 8-bit Type, an 8-bit Code and a 16-bit Checksum. Types 0 to 127 are errors, such as Destination Unreachable and Packet Too Big; types 128 to 255 are informational, including echo, Multicast Listener Discovery (130 to 132 and 143) and the five Neighbor Discovery messages, 133 to 137, whose only code is 0.

RFC 4890 calls ICMPv6 essential to the functioning of IPv6 and warns that overly aggressive filtering harms communication. Types 133 to 136 and the MLD messages must not be dropped by a node that wants to take part in IPv6; Redirect is the one that deserves an explicit policy decision. Translators and tunnels add a dependency of their own: RFC 7915 notes it is not unusual for networks to drop Packet Too Big, which leaves large transfers stalled.

In tcpdump, icmp6 is shorthand for ip6 proto 58, and named values such as icmp6-neighborsolicit select single types; the caveat is that the filter assumes no extension headers. In Wireshark the field is icmpv6.type.

Also known as: icmp6, icmp for ipv6, next header 58, rfc 4443

← All glossary entries