-
released this
2026-10-25 20:36:18 +00:00 | 19 commits to main since this release2026-10-25 - 34.1.0
Features
- Delegation evidence from the parent zone (DNS authority, ops API).
probeDnsAuthorityZoneandverifyDnsAuthorityZonereturn the probe's new optional fields:parentZone, the parent zone whose servers were asked;dsPresent, whether the agreed referral carried a DS; andparentAnswers, each parent server's address, nameserver name, classified outcome (referral,negativeorinconclusive), referral NS set and DS flag. The verdicts and the stored authority set are unchanged;observedNameserversis now the NS set the parent delegates to.verifyDnsAuthorityZonerefuses a zone whose parent publishes a DS for it (remove the DS at the registrar first), and the drift audit'sdelegated-but-unclaimedfinding says when a DS blocks the claim.
Fixes
- Claim a zone that is delegated to dcrouter but not claimed yet (DNS authority, AGL-894). The delegation probe asked a public resolver over DNS-over-HTTPS for the zone's NS records; the resolver followed the delegation to dcrouter, which REFUSES an unclaimed zone, and answered SERVFAIL, so the probe was
undeterminableand the zone could never be claimed. The probe now reads the delegation from the parent zone's own servers: it finds the parent zone over DoH (the nearest proper suffix with NS records, at most 8 levels; the zone itself and names below it are never asked over DoH), looks up A and AAAA of up to 8 parent nameserver names, and asks up to 4 distinct addresses (one per name first, IPv4 before IPv6) for the zone's NS records with RD=0 and DO=1, over UDP and TCP on truncation. A referral counts only with RCODE 0, AA=0, an empty answer section, authority NS records all owned by the zone, and an OPT record echoing DO=1; an authoritative NXDOMAIN or NODATA with the parent's SOA and an empty answer section counts as "no delegation"; every other answer, an AA=1 answer from a server that hosts both zones included, is inconclusive. At least 2 identical conclusive answers through at least 2 different parent nameserver names decide the verdict (the NS set and DS presence are compared; glue, TTLs, case and order are not), and any disagreement isundeterminable. A foreign delegation isnot-delegated. DoH lookups time out after 5 s and each parent attempt after 2 s; no probe step starts after 30 s, so the probe's lookups and queries, and with them the DNS mutation lock a claim holds while it probes, end within about 35 s (plus starting and stopping the probe's DNS client). A zone below a zone dcrouter already serves isundeterminable(its parent servers are dcrouter's own).
Maintenance
@push.rocks/smartdns8.2.1 → 11.1.0 (queryServer, which the probe uses). smartdns 11 lowered its default SOAminimumfrom 86400 to 300, which would have cut the TTL of the SOA in every NXDOMAIN and NODATA answer from 3600 to 300; the embedded DNS server now setssoaDefaults(minimum: 86400, and the mname from the firstdnsNsDomainsentry instead of the deprecatedprimaryNameserver), so the apex SOA (TTL 3600, refresh 3600, retry 600, expire 604800, minimum 86400, rnamehostmaster.<zone>), the negative-answer SOA (TTL 3600) and their RRSIGs (Original TTL 3600) are the values 8.2.1 served (test/test.dns-server-soa.node.ts). One served value changes: a DNS record stored with TTL 0 (the ops API and the Ops UI accept 0) was answered with TTL 300 by smartdns 8.2.1 and is now answered with TTL 0, as stored.dns-packet5.6.1 and@types/dns-packet5.6.5 are new dev dependencies for the fake DNS servers in the tests.
Downloads
- Delegation evidence from the parent zone (DNS authority, ops API).