Re: [DNSOP] Adoption of new EDNS opcode "rrserial"

Peter van Dijk <peter.van.dijk@powerdns.com> Mon, 10 May 2021 19:36 UTC

Return-Path: <peter.van.dijk@powerdns.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5D5A33A2888 for <dnsop@ietfa.amsl.com>; Mon, 10 May 2021 12:36:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level:
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QsIG8oli8z6d for <dnsop@ietfa.amsl.com>; Mon, 10 May 2021 12:36:53 -0700 (PDT)
Received: from mx3.open-xchange.com (alcatraz.open-xchange.com [87.191.39.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8FBB33A2894 for <dnsop@ietf.org>; Mon, 10 May 2021 12:36:53 -0700 (PDT)
Received: from imap.open-xchange.com (imap.open-xchange.com [84.81.54.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx3.open-xchange.com (Postfix) with ESMTPSA id 8A48A6A0D3; Mon, 10 May 2021 21:36:50 +0200 (CEST)
Received: from plato ([84.81.54.175]) by imap.open-xchange.com with ESMTPSA id bFgFIVKLmWCXIAAA3c6Kzw (envelope-from <peter.van.dijk@powerdns.com>); Mon, 10 May 2021 21:36:50 +0200
Message-ID: <6d121251eb229ff2e0650da05d447bacc94c2c31.camel@powerdns.com>
From: Peter van Dijk <peter.van.dijk@powerdns.com>
To: dnsop@ietf.org
Date: Mon, 10 May 2021 21:36:50 +0200
In-Reply-To: <20210510163716.GC5718@pepino>
References: <20200127150847.taxhqeipwq6jg2rr@nic.cl> <CAAk_VVivs96dL-qVw8rqSXjkukBFHPyr2htWApbb44SVyQsGag@mail.gmail.com> <20210507164749.GC91746@pepino> <20210510163716.GC5718@pepino>
Organization: PowerDNS.COM B.V.
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.30.5-1.1
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/0kynqLc8Ksicv4JDX3opB3nYyfI>
Subject: Re: [DNSOP] Adoption of new EDNS opcode "rrserial"
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 May 2021 19:36:59 -0000

On Mon, 2021-05-10 at 12:37 -0400, Hugo Salgado wrote:
> Hello everyone. Thanks for the comments, I just uploaded an unchanged
> version (just to revive it) at:
>   https://datatracker.ietf.org/doc/draft-salgado-dnsop-RRSERIAL/

Thanks Hugo, that is useful.

In section 3.2, 'the resource record of the ANSWER section' is
ambiguous. The answer section can contain many resource record
(s/sets). I suggest a reference to 'QNAME (original)' from RFC8499, or
a careful copy of the words in that definition.

Also in section 3.2, I do not think responding with the option should
be limited to NOERROR. Specifically, I'd very much also want it to work
for NXDOMAIN, and I can imagine some cases of it being useful even in
SERVFAIL cases (at least in database-driven name servers like PowerDNS,
where individual records inside a zone can be broken).

> I agree RRSERIAL doesn't have much relevance in zones that don't give
> serial versioning a meaning to its content. We can add a paragraph
> about it, to make the applicability more clear.

I agree, and I do not think this is a reason to not have this feature.

> I also don't think we
> should start to "deprecate" the SOA serial meaning at this point.
> One can say that "modern" implementations using complex backends makes
> SOA serials irrelevant, but there's certainly a use case for classic
> and mainly static behavior. Just as NSID adds an "infrastructure"
> identification dimension to a response, RRSERIAL adds the data
> versioning dimension.

+1

> And responding to the comment that having multi-queries is better, is
> something that is long overdue, and would certainly make this hack
> obsolete. 

Multi-query has not happened. I doubt it will happen. And in fact,
mapping this specific use case onto it would limit implementations. I
can imagine multi-query being implemented in some proxy/frontend, that
sends out parallel queries to 'simpler' auths that do not even know
about multi-query, and then the atomicity is gone.

> Other issues that I think need more analysis is deciding whether it
> makes any sense to expose RRSERIAL in resolvers. The original idea was
> only in authoritatives, but it might make some sense to debug in
> resolvers as well, to somehow identify the "data source" of a cached
> record. In this sense, I fear an increase in cache requirements of
> resolvers, which should somehow maintain the extra data; and also
> in traffic and option availability for upstream auths.

To expose it in resolvers, resolvers would have to set the option on
all their outgoing queries, so that they can remember the serial
involved in each RRset that they got. I don't think this puts a big
burden on storage requirements, but adding EDNS options to all your
resolver-to-auth traffic is always a gamble, finding out which auths
will suddenly return SERVFAIL, or REFUSED, or just drop your query -
or, in some observed cases, tell you NXDOMAIN because they're confused.
Now, those auths are wrong, and should not exist, but I trust there
will be some reluctance in deployments.

That said, supporting this feature in resolvers does not require any
changes to the protocol itself; the EDNS option, as your draft
currently defines it, looks fine to me. Of course, if the document does
want to support the resolver case, it should explain what that means.

(Unrelated to anything above, I can see reasons to put the whole SOA in
there instead of just the serial; this also reinvokes the 'why not put
it in AUTHORITY or ADDITIONAL' question, but I really like the short
EDNS option that does not change the processing of any RRsets from a
query response.)

Kind regards,
-- 
Peter van Dijk
PowerDNS.COM BV - https://www.powerdns.com/