Commit dd02cc3
Point production at a nameserver that resolves, and notify sooner
Two independent fixes to how the production zone is published.
The zone advertised NS pdns1.runonflux.io, in both its NS set and its SOA
MNAME. That name has no records of any type. What actually carries production
traffic is pdns.runonflux.io, which the parent zone delegates to and which is
steered geographically across the primary and both secondaries. Nothing is
broken today because resolvers follow the delegation and its glue, but the
zone's own NS set outranks that delegation under RFC 2181 5.4.1, so a resolver
that adopts it is left holding a nameserver name that resolves to nothing. The
staging zone already names the host it delegates to; production now does too.
Separately, the primary was never told how often to look for work. also-notify
says where a notification goes; xfr-cycle-interval says how soon one is sent at
all, and unset it defaults to sixty seconds. That delay is visible to clients
rather than internal, because the delegation is geographic and US and APAC
resolvers are answered by the secondaries: until a transfer lands, a name that
already exists on the primary is served by them from the zone wildcard, as a
CNAME to a proxy, carrying the zone's hour-long TTL. So a minute of staleness
can cost an hour of misdirection for whoever asked during it.
Measured on the staging pair before changing anything: a record written through
the gateway took 45 seconds to reach the secondary on the default, and under 4
when the write was followed by an explicit notify through the API. Ten seconds
puts the unassisted path close to the assisted one. The cost is a per-zone
serial scan every ten seconds on the primary, which scales with zone count and
is nothing at this one; secondaries do not poll harder as a result, since their
REFRESH governs that.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent db99ca4 commit dd02cc3
2 files changed
Lines changed: 22 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
90 | 106 | | |
91 | 107 | | |
92 | 108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
95 | 99 | | |
96 | | - | |
| 100 | + | |
97 | 101 | | |
98 | 102 | | |
99 | 103 | | |
| |||
0 commit comments