[DNSOP] Re: Fwd: New Version Notification for draft-pels-d nsop-axfr-notify-00.txt
Petr Špaček <[email protected]> Wed, 15 Jul 2026 16:06:53 +0200
| Newsgroups | gmane.ietf.dnsop |
|---|---|
| Message-ID | <[email protected]> |
On 18. 06. 26 10:33, Martin Pels wrote: > Hi Philip, > > Thanks you for the feedback. > > On 19/05/2026 09:33, Philip Homburg wrote: >> I'm a bit worried what will happens if the graph that connects the >> nameservers >> is not a tree. >> >> 1) A secondary may receive multiple notifies. Without a SOA check the >> number of zone transfers may get out of hand. > > Section 5 specifies that a secondary must rate-limit how often they will > request an AXFR from their primaries. That should prevent excessive > amounts of zone transfers. > >> 2) A loop in this graph may cause an endless series of zone transfers. >> >> 3) A secondary could receive a notify but not know which upstream >> nameserver >> has a more recent version of the zone. > > Good catch on both of these! > >> I wonder, the SOA serial is an in band mechanism. Maybe it is easy enough >> to add an out of band mechanism. For example, we have the ZONEVERSION >> ENDS(0) option. Maybe that can be added to both the notify an and the >> AXFR >> request. > > Right. This would have to contain an incrementing value, distinct from > the SOA serial. > > What we could do is pass a (64-bit) timestamp in EDNS(0) with the AXFR > as well as the NOTIFY(AXFR). Secondaries would have to store the highest > timestamp they received with the AXFR response to deal with (2). > Comparing the timestamp in a received NOTIFY(AXFR) with that in the AXFR > response would deal with (3). If the AXFR has a lower timestamp, another > primary should be tried. If a timestamp is not attached to the AXFR, > chained NOTFIFY(AXFR)'s must not be sent out. > > This would have to be a new EDNS(0) option instead of a new ZONEVERSION > type. NOTIFY(AXFR) is a type of query, and "OPTION-LENGTH for the > ZONEVERSION option MUST have a value of 0 for queries". I think there's an alternative way out: Pair NOTIFY(AXFR) message with an a random value of some form. (Say random UUID.) Additional NOTIFY requests to secondaries triggered by this top-level NOTIFY would inherit the same UUID. If a duplicate request is detected it is rejected. Of course it requires keeping extra state, which is hard to design properly. OTOH it does not break when zone version changes while all the requests are being processed, which might easily happen on large zones and slow/unreliable links. Yet another alternative is getting rid of linear SOA serial and replacing it with more verbose alternatives, which would bring DNS to 21 century and potentially away from single-source-of-truth model, which quite often does not hold anymore. But that would be even more work. -- Petr Špaček _______________________________________________ DNSOP mailing list -- [email protected] To unsubscribe send an email to [email protected]