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.