sysctl: correct the use_tempaddr comment with the real root cause

The rotating privacy address was not itself the packet-loss mechanism:
the 2026-07-13 discrimination experiment (4 flows, dual-ended capture)
showed the loss keyed to hbc's exact 5-tuple — upstream per-flow state
poisoned when the flow was created during boot/apply address churn, kept
alive forever by the 10s heartbeat cadence. Fresh flows to the same
host/port were clean; restarting hbc fixed it instantly. use_tempaddr=0
stays: it removes one source of the churn that poisons newborn flows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NuPg8vz6FmDUj4SgEJ525C
This commit is contained in:
Andreas Wrede
2026-07-13 13:13:08 -04:00
co-authored by Claude Fable 5
parent 09259eb6cc
commit 7c36757d35
+6 -7
View File
@@ -1,12 +1,11 @@
net.ipv4.ip_forward=1
# Ubuntu ships /usr/lib/sysctl.d/55-ipv6-privacy.conf with use_tempaddr=2
# (prefer rotating privacy addresses) system-wide. That default fought the
# WAN uplinks' need for one stable IPv6 source address per interface (hbc,
# DNS, van-failover all key off it) — a long-lived flow using a source
# address that later got deprecated mid-flight looked like random upstream
# packet loss and cost a day of packet-capture debugging (2026-07-12/13)
# before the cause turned out to be this file loading before ours. 99- beats
# 55- lexically so this wins the second `sysctl --system` re-reads it.
# (prefer rotating privacy addresses) system-wide. The WAN uplinks need one
# stable IPv6 source per interface: address churn at boot (this default plus
# the dracut networkd catch-all deploy.sh masks) poisoned upstream per-flow
# state for long-lived UDP flows created mid-churn — see the 2026-07-12/13
# "wan IPv6 overdue" investigation. 99- beats 55- lexically so this wins
# when `sysctl --system` runs.
net.ipv6.conf.all.use_tempaddr=0
net.ipv6.conf.default.use_tempaddr=0