CoE: ISP Prefix Re-delegation Left a Dead IPv6 Prefix on Every Client
| Field | Value |
|---|---|
| Date | 2026-08-10 |
| Severity | Medium (IPv6 unusable for roughly 22 h per client on the delegated prefix; IPv4 unaffected, every unit healthy, nothing logging an error) |
| Duration | Onset 2026-08-10 14:57 local, decaying per client over the dead prefix’s remaining valid lifetime — measured at expire=22h24m |
| Impact | Clients kept selecting a source address on a withdrawn global prefix. Measured two-sidedly from a MainWireless client: the default source address lost 100 % of packets while the same probe forced onto the new prefix lost 0 % |
| Resolution | The deprecating-RA emitter and the prefix-change detector documented at Dead-prefix deprecation |
| Measurements | engram 853v2wsdp3 (measurement), engram q2sa2d6308 (event) |
What happened
Section titled “What happened”The ISP re-delegated the estate’s global IPv6 prefix
(2600:4040:27d5:5d0* → 2600:4040:27db:5f0*). FireRouter rewrote every bond0.*_v6.conf at
14:56 and restarted the DHCP dnsmasq at 14:57.
dnsmasq’s constructor:<iface> mode is documented to handle address deprecation and deletion —
but a restarted dnsmasq has no memory of the prefix it previously advertised, so it cannot
deprecate what it never knew. It stopped mentioning the old prefix instead of withdrawing
it with preferred lifetime 0 (RFC 4862 §5.5.3).
Clients therefore held the dead prefix for its remaining valid lifetime, and RFC 6724 default source selection kept choosing it. Roughly 22 hours of coin-flip IPv6 per client, with the router completely healthy and nothing logging an error.
Why nothing caught it
Section titled “Why nothing caught it”Nothing was watching. That is the half that mattered. No detector on this estate compared an observed global prefix against a recorded one, and no emitter could withdraw a prefix the appliance had already forgotten. Both halves were built in response to this incident and are documented in the runbook rather than here.
What it produced
Section titled “What it produced”The operational machinery this incident produced lives in
Dead-prefix deprecation — when the ISP re-delegates:
the RA-WATCH-PREFIX-CHANGE detector with its stated detection latency, the bounded deprecating-RA
emitter, and the reason AdvPreferredLifetime 0 rather than AdvValidLifetime 0 is what does the
work.