Hugo,

On 27/01/2020 16.08, Hugo Salgado wrote:
Dear DNSOPers, as an operator I tend to have this need to couple
an answer for a query to an auth server, with the actual "SOA zone
version" used. So I think it'll be valuable to have an EDNS option
for it.

Here I'm proposing it with this new draft. The 'camel index' for
its implementation/hack/proof-of-concept is about 37 lines in
NSD 4.1 (more details in Appendix A).

I've asked some operators and they see value on it. Is there any
support for adoption in DNSOP?

-----
Name:           draft-salgado-rrserial
Revision:       01
Title:          The "RRSERIAL" EDNS option for the SOA serial of a RR's zone
Document date:  2020-01-27
Group:          Individual Submission
Pages:          5
URL:            
https://www.ietf.org/internet-drafts/draft-salgado-rrserial-01.txt
Status:         https://datatracker.ietf.org/doc/draft-salgado-rrserial/
Htmlized:       https://tools.ietf.org/html/draft-salgado-rrserial-01
Htmlized:       https://datatracker.ietf.org/doc/html/draft-salgado-rrserial
Diff:           https://www.ietf.org/rfcdiff?url2=draft-salgado-rrserial-01

Abstract:
    The "RRSERIAL" EDNS option allows a DNS querier to ask a DNS
    authoritative server to add a EDNS option in the answer of such query
    with the SOA serial number field of the origin zone which contains
    the answered resource record.

    This "RRSERIAL" data allows to debug problems and diagnosis by
    helping to recognize the origin of an answer, associating this answer
    with a respective zone version.

One possible application of this might be to allow a resolver to extend the TTL of an entire zone.

This is an idea that either Mukund Sivaraman or Stephen Morris came up with a couple of years ago (I can't remember who) and we discussed. The basic idea is that if your zone does not change frequently and uses SOA serial to indicate new versions of the zone, then you can return the SOA serial and then a resolver can "reset" all of the TTL counters for every RR that it has cached in the zone.

So, imagine you have:

postbox.zone.test MX ..., TTL 900, expires in 460 seconds
www.zone.test AAAA ...., TTL 60, expires in 1 second

You get back a response for a lookup of an A record for www.zone.test that says that the zone serial for zone.test has not changed, then you could end up with a cache that looks like:

postbox.zone.test MX ..., TTL 900, expires in 900 seconds
www.zone.test AAAA ..., TTL 60, expires in 60 seconds
www.zone.test A ..., TTL 60, expires in 60 seconds

IIRC this was even suggested in one of the very early DNS RFC as an area for research. The question is whether it is actually worth doing this, as you will have to keep track of the TTL as well as the expiration of each RR, and do the update on each new lookup.

Plus if your resolver was optimistically sending such an option with every query, you'd probably only want to include the EDNS option for servers that you think might support it, which means tracking that additional information in the server address cache/database that your resolver has.

As far as the wire format & protocol behavior, I think the changes from this draft needed would be:

* Returning the entire signed SOA in the additional section, rather than just the serial in an EDNS record (for DNSSEC validation purposes). * Including an EDNS option in the response indicating that it is okay for a resolver to extend the TTL of other records in the zone.

Even just using SOA in the response instead of the serial in an EDNS record would be enough to allow later work on the TTL-extending technique, if we're squeamish about adding to the DNS camel. 😊

Cheers,

--
Shane

_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to