Re: [dnsext] draft-vandergaast-edns-client-ip-00.txt

Nicholas Weaver <nweaver@ICSI.Berkeley.EDU> Tue, 02 February 2010 18:32 UTC

Return-Path: <owner-namedroppers@ops.ietf.org>
X-Original-To: ietfarch-dnsext-archive@core3.amsl.com
Delivered-To: ietfarch-dnsext-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5D5B73A67AB; Tue, 2 Feb 2010 10:32:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.578
X-Spam-Level:
X-Spam-Status: No, score=-106.578 tagged_above=-999 required=5 tests=[AWL=0.021, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 xt7tF7doFPyX; Tue, 2 Feb 2010 10:32:37 -0800 (PST)
Received: from psg.com (psg.com [147.28.0.62]) by core3.amsl.com (Postfix) with ESMTP id 8C46D3A65A6; Tue, 2 Feb 2010 10:32:37 -0800 (PST)
Received: from majordom by psg.com with local (Exim 4.71 (FreeBSD)) (envelope-from <owner-namedroppers@ops.ietf.org>) id 1NcNTg-0008VD-Uq for namedroppers-data0@psg.com; Tue, 02 Feb 2010 18:27:56 +0000
Received: from [192.150.186.11] (helo=fruitcake.ICSI.Berkeley.EDU) by psg.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.71 (FreeBSD)) (envelope-from <nweaver@ICSI.Berkeley.EDU>) id 1NcNTe-0008Ux-Tj for namedroppers@ops.ietf.org; Tue, 02 Feb 2010 18:27:55 +0000
Received: from [IPv6:::1] (jack.ICSI.Berkeley.EDU [192.150.186.73]) by fruitcake.ICSI.Berkeley.EDU (8.12.11.20060614/8.12.11) with ESMTP id o12IRs0s002790; Tue, 2 Feb 2010 10:27:54 -0800 (PST)
References: <7c31c8cc1001271556w4918093er6e94e07cb92c4dc4@mail.gmail.com> <OF675CC47F.6FE1B342-ON802576BA.00453090-C12576BA.0047E04C@nominet.org.uk> <74DFF61A-A8BB-4B46-A873-F2407C34C412@sackheads.org> <139D0D6A-5A31-4EE8-88B9-3CACE933187B@icsi.berkeley.edu> <6e04e83a1002010944q7abfabc6h892ce4cbb1bddcbf@mail.gmail.com> <973B1F15-E822-491E-89BF-F09FC7E67509@ICSI.Berkeley.EDU> <6e04e83a1002011109u1cd55c99k8b584648184cdc73@mail.gmail.com> <162E0DB1-EC86-4206-AB36-6FEFA786B24C@ICSI.Berkeley.EDU> <6e04e83a1002011402u395f599g74180d28fdbe5707@mail.gmail.com> <939BB577-FDBE-4573-9129-8CA29B0FB493@sackheads.org> <7B06A582-38E3-4387-BA16-932825A4A62B@rfc1035.com> <F2E927AA-B07C-45D0-9D26-AFE8115F2CC2@icsi.berkeley.edu> <B7A5F1C5-E972-4915-A90F-E561B041A133@rfc1035.com>
In-Reply-To: <B7A5F1C5-E972-4915-A90F-E561B041A133@rfc1035.com>
Mime-Version: 1.0 (Apple Message framework v1077)
Content-Type: text/plain; charset="us-ascii"
Message-Id: <23AAB144-AF85-45C7-A99C-C1E7A5334F9C@ICSI.Berkeley.EDU>
Content-Transfer-Encoding: quoted-printable
Cc: Nicholas Weaver <nweaver@ICSI.Berkeley.EDU>, namedroppers@ops.ietf.org
From: Nicholas Weaver <nweaver@ICSI.Berkeley.EDU>
Subject: Re: [dnsext] draft-vandergaast-edns-client-ip-00.txt
Date: Tue, 02 Feb 2010 10:27:54 -0800
To: Jim Reid <jim@rfc1035.com>
X-Mailer: Apple Mail (2.1077)
Sender: owner-namedroppers@ops.ietf.org
Precedence: bulk
List-ID: <namedroppers.ops.ietf.org>
List-Unsubscribe: To unsubscribe send a message to namedroppers-request@ops.ietf.org with
List-Unsubscribe: the word 'unsubscribe' in a single line as the message text body.
List-Archive: <http://ops.ietf.org/lists/namedroppers/>

On Feb 2, 2010, at 10:06 AM, Jim Reid wrote:

> On 2 Feb 2010, at 17:13, Nicholas Weaver wrote:
> 
>> You can easily do fallbacks for those who don't speak this EDNS0 option:  If you don't get a response on the first query, retry without this option.  If that works, have your next 2-3 queries be both (with and without).  If those two or three also fail, record that authority as not supporting, and don't use the query in any subsequnet responses
>> 
>> Voila, you have fallback: only ever hits a timeout the first time for authorities which can NOT respond to a request with an unknown EDNS option, and even for those, its only 1 timeout latency and 2-3 extra queries from each recursive resolver which bothers with this option.
>> 
>> 
>> This is why the basic scheme is so beautiful: it does NOT require changes to anyone who doesn't actually care about this option.  This is the kind of thing EDNS options should be designed for: optional behavior amongst a subset of the system.
> 
> So, your idea of optional behaviour in some circumstances is to increase DNS latency and generate extra queries. I see...

No.  There are 4 cases, all of them harmless, two which add no latency or additional queries, one which adds one RTT latency on the first query, and one which adds one timeout of latency on the first query and 2-3 additional queries.


Authority knows what the option is:  No added latency, no nothing.

Authority doesn't know the option but follows RFC 2671 5.3:  The server replies with NOTIMPL, FORMERR, or SERVFAIL.  So setry without and cache the behavior of the authority.  Result?  One RTT of added latency on the first query to the authority to learn the state.  No other effect.

Authority doesn't know the option and just ignores it in violation of RFC 2671:  No effect.

Authority doesn't know the option and does a silent failure in violation of RFC 2671 (aka, BUGGY!): Retry after timout, so 1 timeout of added latency on the first query and 2-3 doubled queries subsequently to learn the state of the authority.


This is the whole point of EDNS0 options: there is graceful failure when the authorities don't understand them, both when they follow the RFC and even when they don't!  

Harm to non-compliant authorities is effectively nonexistant: one RTT latency if you follow RFC 2671 for unknown options, one timeout RTT if you don't.