Protocol notes for this page (click to expand)

ICMPv6 (Internet Control Message Protocol for IPv6)

It does far more than ICMP

In IPv4, ICMP is an auxiliary protocol for errors and ping; block it and the network still works.

★★★ IPv6 moved several essential functions onto ICMPv6:

· NDP (neighbour discovery, ARP's replacement);
· RA / SLAAC (finding routers, autoconfiguring addresses);
· MLD (multicast group membership);
· PMTUD (since routers do not fragment, only ICMPv6 can tell the source).

Why PMTUD became mandatory

★★★ IPv6 routers do not fragment. An oversized packet can only be dropped, followed by Packet Too Big (type 2) telling the source "this path only takes 1400".

★★★ The source then shrinks its packets and resends.

★★ So if a firewall blocks that message, the symptom is small packets fine, large ones all lost with no explanation -- a PMTUD black hole.

★ Common misconceptions

★★★ "Block all ICMP as in IPv4" -- in IPv6 that is unplugging the network: without neighbour discovery you cannot even find machines on your own subnet, and without RA a host never gets an address.

★★ "ICMPv6 is just ICMP with a new version number" -- it added NDP, RA and MLD; its remit is entirely different.

★★ "Blocking it improves security" -- the right approach is permitting by type (allow 1/2/3/4 and 133-137), not a blanket ban.