Closing the IPv6 First-Packet Gap with Grand
10 hours ago
- IPv6 Neighbour Discovery has a subtle asymmetry: a host knows its router before the router knows the host.
- GRAND (Gratuitous Neighbour Discovery) fixes this by having hosts proactively announce their IPv6 addresses via unsolicited Neighbour Advertisements.
- The asymmetry causes first return packets to be delayed or dropped while the router resolves the host's link-layer address reactively.
- RFC 9131 specifies that routers should create a STALE Neighbour Cache entry upon receiving a valid unsolicited Neighbour Advertisement for an unknown address.
- Implementing GRAND in FreeBSD required adding queueing and delayed-transmission infrastructure for Neighbour Advertisements, including handling multiple addresses, anycast, and proxy cases.
- GRAND also covers link-layer address changes and integrates with RFC 4861 timing rules to avoid multicast bursts.
- RFC 9898 identifies GRAND as a mechanism to address router forwarding delays in real IPv6 deployments.