Re: [dnsext] WG opinion on draft : Improvements to DNS Resolvers, for Resiliency, Robustness, and Responsiveness

Paul Vixie <vixie@isc.org> Thu, 24 February 2011 08:43 UTC

Return-Path: <vixie@isc.org>
X-Original-To: dnsext@core3.amsl.com
Delivered-To: dnsext@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 871E73A6A15 for <dnsext@core3.amsl.com>; Thu, 24 Feb 2011 00:43:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DRuS6XVv2S2G for <dnsext@core3.amsl.com>; Thu, 24 Feb 2011 00:43:44 -0800 (PST)
Received: from nsa.vix.com (unknown [IPv6:2001:4f8:3:bb:230:48ff:fe5a:2f38]) by core3.amsl.com (Postfix) with ESMTP id 7F8E63A6A34 for <dnsext@ietf.org>; Thu, 24 Feb 2011 00:43:44 -0800 (PST)
Received: from nsa.vix.com (localhost [127.0.0.1]) by nsa.vix.com (Postfix) with ESMTP id 5806FA1063 for <dnsext@ietf.org>; Thu, 24 Feb 2011 08:44:33 +0000 (UTC) (envelope-from vixie@isc.org)
From: Paul Vixie <vixie@isc.org>
To: dnsext@ietf.org
In-Reply-To: Your message of "Thu, 24 Feb 2011 01:36:10 -0400." <AANLkTinq4HtfWHTBS6a13oY2vQF2GL0FMVWZk35-k24K@mail.gmail.com>
References: <4D622624.90303@ogud.com> <a06240800c98b01b9d9b9@10.31.200.118> <87981.1298522717@nsa.vix.com> <AANLkTinq4HtfWHTBS6a13oY2vQF2GL0FMVWZk35-k24K@mail.gmail.com>
X-Mailer: MH-E 8.2; nmh 1.2; XEmacs 21.4 (patch 22)
Date: Thu, 24 Feb 2011 08:44:33 +0000
Message-ID: <1585.1298537073@nsa.vix.com>
Subject: Re: [dnsext] WG opinion on draft : Improvements to DNS Resolvers, for Resiliency, Robustness, and Responsiveness
X-BeenThere: dnsext@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: DNS Extensions working group discussion list <dnsext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/dnsext>, <mailto:dnsext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dnsext>
List-Post: <mailto:dnsext@ietf.org>
List-Help: <mailto:dnsext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsext>, <mailto:dnsext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Feb 2011 08:43:45 -0000

> Date: Thu, 24 Feb 2011 01:36:10 -0400
> From: Brian Dickson <brian.peter.dickson@gmail.com>
> 
> > in this context it means making sure the delegation still exists.
> 
> There is an odd corner case to consider, but I'm not sure if it's been
> considered, and I think it is something which is slightly more likely
> to occur nowadays than in the distant past:
> 
> Suppose a nameserver serves both a particular zone, and a
> great(^n)-grandchild zone.
> (E.g. a nameserver serving some TLD, and simultaneously doing DNS
> hosting for third parties.)
> Suppose also, that some intermediate zone(s), great(^n-1)-grandchild,
> parent of the great(^n)-grandchild zone, is *not* served by this
> nameserver,. but is delegated elsewhere. That "other" server then
> delegates back to "this" server, for the great(^n)-grandchild zone.
> 
> An iterative resolver, directed to this (TLD) server by the root
> server(s), when querying for the great(^n)-grandchild zone, gets back
> an answer for the great(^n)-grandchild *directly* (no passing "go"),
> including that zone's authority data.
> It gets that without ever chaining through the delegations from the
> TLD through the great(^n-1)-grandchild zone(s).

that's fine.

> (Obviously in the DNSSEC case, there would need to be explicit DS
> chasing and proofs included in serving the answer, if DO=1 on the
> client query.)

yes.

> Should not the iterative resolver look for the intermediate referrals,
> if they aren't already in the cache?
> I think it *needs* those to "validate" the delegation... (i.e. for the
> optimization of the present proposal.)

no.

resimprove does not propose any change to the delegation model.  if a
cached ns rrset is received from the servers for the closest bailiwick
then known (for example, from a server for the root zone or a server for
a tld zone) then the 1034/1035 assumption (wrong though it may be, as
shown by your example) is that there are no zone cuts between the
bailiwick and the referral, and this assumption is still valid for a
resimprove implementation.

---

on another topic:

> Consider a query for "foo.bar.no-chickens.example.net.".
> 
> Suppose that "no-chickens.example.net." does not exist (NXDOMAIN and
> no descendants).
> 
> The authority server for example.net returns "NXDOMAIN", which applies
> to the FQDN of the original query (and gets cached there only),
> "foo.bar.no-chickens.example.net."
> 
> I don't think there's anything in the answer that indicates *where* in
> the FQDN, while matching downward, that there was an NXDOMAIN.

right.

> For optimization purposes, it would be good (I think) to establish the
> "best" place to put an NXDOMAIN.
> I.e. Query downward from the zone apex, iteratively, until an NXDOMAIN
> is found. QTYPE = NS is benign and/or informative. This should be in
> parallel, since it isn't needed for answering the original query.

that's way more traffic and complexity than we're proposing in resimprove.

> Putting the NXDOMAIN as close to the root of the DNS tree as possible
> is a clear optimization, since subsequent queries for any sibling of
> the first query, wouldn't succeed.

agreed but that would be a protocol change which we're not proposing here.
in effect, this is what i took florian to mean when he suggested that a
caching recursive name server be able to synthesize nxdomain based on a
cached and secure NSEC or NSEC3.  that's a good idea but it's beyond the
scope of the resimprove proposal.