NDP (Neighbor Discovery Protocol)
What it is for
The same job as ARP: given an IPv6 address, find the MAC. But it runs over ICMPv6 rather than having its own EtherType.
★★ And it took on jobs ARP never had: finding routers (RA), autoconfiguring addresses (SLAAC) and duplicate address detection (DAD).
★ Multicast, not broadcast
★★★ An ARP request is broadcast, so every CPU in the broadcast domain must process it.
★★★ NDP sends to a solicited-node multicast address derived from the low 24 bits of the target address, so essentially only the target receives it.
★★ The direct benefit: on a subnet of the same size, NDP disturbs one or two orders of magnitude fewer machines than ARP.
★ Common misconceptions
★★★ "NDP is broadcast, like ARP" -- it is multicast. So without MLD snooping on the switches those multicasts flood like broadcast and the advantage is wasted.
★★★ "Blocking ICMPv6 does not affect addressing" -- NDP is ICMPv6; block it and you cannot find machines on your own subnet.
★★ "SLAAC removes the need for DHCPv6" -- SLAAC provides an address and gateway but (in its original form) no DNS, so the two are often combined.