Re: DNS behaviour should be specified (the principled & forward-thinking case for SRV)

Eliot Lear <lear@cisco.com> Mon, 12 August 2013 13:31 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E8CE721F9AAB for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 12 Aug 2013 06:31:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 oOZQ+lww8LX4 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 12 Aug 2013 06:31:41 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 23B0C21F9D9B for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 12 Aug 2013 06:23:06 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1V8s4a-0006Ct-1f for ietf-http-wg-dist@listhub.w3.org; Mon, 12 Aug 2013 13:22:12 +0000
Resent-Date: Mon, 12 Aug 2013 13:22:12 +0000
Resent-Message-Id: <E1V8s4a-0006Ct-1f@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <lear@cisco.com>) id 1V8s4Q-0006Bg-6D for ietf-http-wg@listhub.w3.org; Mon, 12 Aug 2013 13:22:02 +0000
Received: from rcdn-iport-8.cisco.com ([173.37.86.79]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <lear@cisco.com>) id 1V8s4J-0006GD-MC for ietf-http-wg@w3.org; Mon, 12 Aug 2013 13:22:02 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4738; q=dns/txt; s=iport; t=1376313715; x=1377523315; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=3GTAG9LAvD3lPIrJajNdJ9u1UeLtwc8kwvKBvgERa1o=; b=exRRiniwOT5WBQiEsnUw2IEf7g9k4aCnvMlUamwYlF44K8MqX0syZ+Q8 xckPBxahGcgaCgZqysPiEHWTKngVPjWCUqVGTM4EEhjTmMVfWCIg57YJC lB6/sBQ+/c8DwvsOYegd5F9xO8SC8aqjDhD96QUOa3pau3JexVFj06iXX 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgQFAGHgCFKtJV2c/2dsb2JhbABagwY1g2O7QYEZFnSCJAEBAQICIyQxARALGAICBRYLAgIJAwIBAgE3AQ0GDQEHAQGIDAylAoQFjR2BKY8SB4JogSkDl2SBLIsBhSSBYYFWIA
X-IronPort-AV: E=Sophos;i="4.89,862,1367971200"; d="scan'208";a="246236594"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by rcdn-iport-8.cisco.com with ESMTP; 12 Aug 2013 13:21:29 +0000
Received: from dhcp-10-150-9-158.cisco.com (dhcp-10-150-9-158.cisco.com [10.150.9.158]) by rcdn-core-5.cisco.com (8.14.5/8.14.5) with ESMTP id r7CDLSDQ024483 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 12 Aug 2013 13:21:29 GMT
Message-ID: <5208E159.2030906@cisco.com>
Date: Mon, 12 Aug 2013 09:21:29 -0400
From: Eliot Lear <lear@cisco.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: Josh Goodall <joshua@qutonic.com>
CC: ietf-http-wg@w3.org
References: <75C35DC0-1612-470C-9A88-8E5C49A80BAC@qutonic.com>
In-Reply-To: <75C35DC0-1612-470C-9A88-8E5C49A80BAC@qutonic.com>
X-Enigmail-Version: 1.5.2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=173.37.86.79; envelope-from=lear@cisco.com; helo=rcdn-iport-8.cisco.com
X-W3C-Hub-Spam-Status: No, score=-14.6
X-W3C-Hub-Spam-Report: AWL=0.782, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-2.799, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5
X-W3C-Scan-Sig: lisa.w3.org 1V8s4J-0006GD-MC 62bfa59937183e42e5173e86993b2d72
X-Original-To: ietf-http-wg@w3.org
Subject: Re: DNS behaviour should be specified (the principled & forward-thinking case for SRV)
Archived-At: <http://www.w3.org/mid/5208E159.2030906@cisco.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/19138
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi Josh,

Please see draft-lear-httpbis-svcinfo-rr-01.txt for a discussion as to
why SRV may not be appropriate.  The most important discussion to have,
however, is design goals, and that discussion has been somewhat delayed
by getting compression, upgrade, and a few other things done right.

Eliot

On 8/9/13 8:40 PM, Josh Goodall wrote:
> It is quite, no, very surprising that a protocol of the complexity,
> importance and universality of HTTP does not fully specify how to
> locate the service endpoint.  There are two major issues caused by
> the current absence of DNS resolution behaviour specification:
>
> #1 IPv4 and IPv6 require separate lookups, resulting in a DNS race
>    for some browsers.[1]
> #2 Apex records must be configured specially (read: hackishly).
>
> The underlying assumption is that all address records are valid
> for HTTP.  This is, of course, quite wrong.
>
>
> Discussion
>
> Issue #1 is very well discussed in [1]. Suffice to say that the
> recommendation is not to have a DNS race at all but a TCP SYN race.
> Supporting IPv6 adoption should be a part of this protocol revision,
> because IPv6 is no longer coming; it is here, and failure to consider
> it will look like a mistake later on.
>
> Issue #2. It is unfortunate that almost every destination of
> significance configures an address record for the apex.
> So every other protocol that might respond to an A/AAAA record ends
> up finding it too.  Ever seen inbound SMTP for your web server?
> This is part of the reason.  Apex records are an enemy of availability,
> since they must be changed manually where aliases do not.
>
> But we can't use CNAMEs at the apex. How can we resolve this?
>
>
> The SRV proposal
>
> My suggestion is that standardising on SRV (RFC 2782)[2] records is
> an easy and appropriate remediation, due to widespread support,
> fitness for purpose and standards readiness.
>
> It solves both problems above:
>
> #1: both A and AAAA are included in Additional Information in SRV
>     replies, at least by BIND9, so a SRV query is one round-trip.
> #2: SRV works at the apex.
>
> and adds additional benefits in behaviour and deployment flexibility.
>
> I can't stress how valuable it is to have widespread support in DNS
> servers today; that is why other DNS RR proposals don't have legs.
> BIND9, NSD and Windows DNS Server all support authoritative service
> of SRV. It can be deployed today.
>
> Essentially, SRV is what CNAME should've been.  BCP 17 (RFC 2219)[6]
> foresees this; section 5 of RFC 6335 (aka BCP 165 - the governing
> document for the IANA service registry)[7] even has explicit
> clarification for how "http" is to be used in SRV records, firmly
> deprecating "www".
>
> Moreover, as the browser becomes ever more the general client,
> support for non-HTTP services can deploy in future without conflicting
> with the traditional role. For example, SRV would've been a superb
> choice for the Mozilla project's "Persona" protocol.
>
>
> On the history
>
> This has been proposed many times in various forms; see for example
> [3][4][9][10].  The history shows that if we don't take action in the
> protocol standard itself, improvement won't happen.
>
> A fully worked example of including SRV lookup in the TCP binding
> of a significant protocol standard can be found in section 3.2 of
> RFC 6120 (XMPP) [5]
>
>
> On the counterarguments
>
> The common reason quoted not to use SRV is that it means an extra
> DNS round-trip, since everything is using CNAME/A/AAAA records
> today.  Indeed if we don't include it in the standard up front,
> then it will always require an extra round-trip.  But settling on
> SRV right now means that browser behaviour will be SRV-first. Not
> only does this get everyone on board sooner or later, it'll mean
> faster lookups for IPv6 in future.
>
> There is a conflict with URI explicit ports; this was resolved by
> Andrews in [4] by having an explicit URI port take priority;
> conversely, in XMPP is resolved by prohibition of explicit port
> numbers in URIs. (s5.2 of RFC 5122 [8])
>
>
> References
>
> [1] https://ripe64.ripe.net/presentations/78-2012-04-16-ripe64.pdf
> [2] http://tools.ietf.org/html/rfc2782
> [3] http://tools.ietf.org/html/draft-jennings-http-srv-05
> [4] http://tools.ietf.org/html/draft-andrews-http-srv-01
> [5] http://tools.ietf.org/html/rfc6120
> [6] http://www.rfc-editor.org/bcp/bcp17.txt
> [7] http://tools.ietf.org/html/bcp165
> [8] http://tools.ietf.org/html/rfc5122
> [9] http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/dns-srv-record-use-by-clients.html
> [10] http://dns.vanrein.org/srv/
>
>
>
>