Re: [dnsext] BADVER/FORMERR

Mark Andrews <marka@isc.org> Wed, 16 November 2011 00:50 UTC

Return-Path: <marka@isc.org>
X-Original-To: dnsext@ietfa.amsl.com
Delivered-To: dnsext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E6CC911E8088 for <dnsext@ietfa.amsl.com>; Tue, 15 Nov 2011 16:50:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.442
X-Spam-Level:
X-Spam-Status: No, score=-2.442 tagged_above=-999 required=5 tests=[AWL=0.157, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tUwzPp+MGS7e for <dnsext@ietfa.amsl.com>; Tue, 15 Nov 2011 16:50:03 -0800 (PST)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [IPv6:2001:4f8:0:2::2b]) by ietfa.amsl.com (Postfix) with ESMTP id 7109111E8082 for <dnsext@ietf.org>; Tue, 15 Nov 2011 16:50:03 -0800 (PST)
Received: from bikeshed.isc.org (bikeshed.isc.org [IPv6:2001:4f8:3:d::19]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "bikeshed.isc.org", Issuer "ISC CA" (verified OK)) by mx.pao1.isc.org (Postfix) with ESMTPS id 25970C9450; Wed, 16 Nov 2011 00:49:50 +0000 (UTC) (envelope-from marka@isc.org)
Received: from drugs.dv.isc.org (unknown [IPv6:2001:470:1f00:820:6233:4bff:fe01:7585]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by bikeshed.isc.org (Postfix) with ESMTPSA id 7A247216C6A; Wed, 16 Nov 2011 00:49:49 +0000 (UTC) (envelope-from marka@isc.org)
Received: from drugs.dv.isc.org (localhost [127.0.0.1]) by drugs.dv.isc.org (Postfix) with ESMTP id D4CC6173AE05; Wed, 16 Nov 2011 11:49:45 +1100 (EST)
To: Michael Sheldon <msheldon@godaddy.com>
From: Mark Andrews <marka@isc.org>
References: <20111115153055.205a61dff9fc1684c258b274662bb912.4a8b265d31.wbe@email00.secureserver.net>
In-reply-to: Your message of "Tue, 15 Nov 2011 15:30:55 PDT." <20111115153055.205a61dff9fc1684c258b274662bb912.4a8b265d31.wbe@email00.secureserver.net>
Date: Wed, 16 Nov 2011 11:49:45 +1100
Message-Id: <20111116004945.D4CC6173AE05@drugs.dv.isc.org>
Cc: dnsext <dnsext@ietf.org>
Subject: Re: [dnsext] BADVER/FORMERR
X-BeenThere: dnsext@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: DNS Extensions working group discussion list <dnsext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Wed, 16 Nov 2011 00:50:09 -0000

In message <20111115153055.205a61dff9fc1684c258b274662bb912.4a8b265d31.wbe@emai
l00.secureserver.net>, "Michael Sheldon" writes:
> 
> > Part of Mark A's argument is that the semantics for QDCOUNT = 0 should
> > be considered well defined because no standard query processing is
> > involved if there is no question to process.
> 
> Really? Exactly what part of any RFC defines what should be returned on
> a QUERY where QDCOUNT == 0? Unless you found something I haven't seen,
> it's not only not well-defined, it's not defined at all. 

Actually if you follow the algorithm you end up with NOERROR.  Most of
the steps become no-ops.

Set or clear RA.
There is no QNAME so you can't find a zone.
There is no QNAME so you can't recurse and add records.
There is no additional data to add.
You return the response which is empty/NOERROR.
 
> > Furthermore, he noted that an empty question section is (trivially)
> > parsable, and cites three plausible scenarios where such a query might
> > be useful.
> 
> He defines circumstances where he can learn things from the server by
> deliberately sending invalid data, thus eliciting an error message. So
> we've already defined that he's deliberately sending contextually bogus
> data. The question is, if everything in the EDNS section is correct,
> what would the response be to QDCOUNT=0? Unless you can convince me
> there is a valid non-error response to this, I see nothing wrong with
> returning a response based on the first error I find and discontinuing
> parsing at that point. In my opinion, a query with no query is a format
> error. Any further errors beyond that point are irrelevant.

QCOUNT > 1 is hard because there is one rcode and more that one possible
response.

QCOUNT = 0 gets rid of all name based acl processing.
QCOUNT = 0 is independent of the zones being served.
QCOUNT = 0 in plain DNS gives you a test to see if the server is
alive, whether it will recurse for you or not (RA), and whether it
will in general answer queries for you.

Note QCOUNT > 1 is a valid in a response to a IQUERY.

> My suggestion Mark, is to put some kind of question in the packet, the
> size difference is frankly insignificant.

> Michael Sheldon
> Dev-DNS Services
> GoDaddy.com
> 
> _______________________________________________
> dnsext mailing list
> dnsext@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsext
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org