Re: QUIC re-chartering: include DNS-over-QUIC?

Martin Thomson <mt@lowentropy.net> Tue, 14 April 2020 02:17 UTC

Return-Path: <mt@lowentropy.net>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0F2803A043D for <quic@ietfa.amsl.com>; Mon, 13 Apr 2020 19:17:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.12
X-Spam-Level:
X-Spam-Status: No, score=-2.12 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=J2kZbffb; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=GW4I1RUe
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 dBJ-LWxHDNxs for <quic@ietfa.amsl.com>; Mon, 13 Apr 2020 19:17:16 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 830533A0433 for <quic@ietf.org>; Mon, 13 Apr 2020 19:17:16 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 7EF365C010C for <quic@ietf.org>; Mon, 13 Apr 2020 22:17:15 -0400 (EDT)
Received: from imap2 ([10.202.2.52]) by compute2.internal (MEProxy); Mon, 13 Apr 2020 22:17:15 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :subject:content-type; s=fm2; bh=J2muBoOxSYz8t2kM6IUfaeaMOtopiKi uz2ofSih3/v0=; b=J2kZbffbAYvNF8ZcxqPVjoWCEhNneoji2isSzGtMkLuEpeu kXTyUm3B1doE9/e0pWlSXaSrEMD7wAJNfTCrImGPGJTqWctKiB4IXt0RWXJiUw8d 7ZD5QwDvPl/21Xi04Ws/qfZUuktcoS4GzkT47de8u/O+UKAxPxsqUbS1qX6vuH5H ahUU1mLLuNDTXZwXYMqnUePZGk5C0F33dFIzMnVF/d5VUxANp3FVfRb9T5DmMdVN WmCMVtl3gBB4FHIp9vlvXcAYKcSIfp54v/4LLZpPRUzJn7YuGNXb4uXhV/XEsQXi mkbD/XWMDs29kFLB4zxTbzObMwmy0WCtY3nYvYw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=J2muBo OxSYz8t2kM6IUfaeaMOtopiKiuz2ofSih3/v0=; b=GW4I1RUeaOilqzVbJYcyIO MZQLtrc50ypKgDTSp+fkrvS5ISKx5cfwieLmyc4BztsECH2qagNlDFC3lQdFo7Au v093Uz2PDgRoAcYx9GU6aOplFuhtZFVVcL3bWDQgLWw/bxfSyh2i/Lb/MVKWybpW +yu2yF8YfLGGGBa5gl57cMEJf6uLJ3jgif+ImHNftmjdTt8kDxiYkfwjtnFn89Qh ZEqpbSrTGC4aZIc2CQgt5IgDzUsyX/KdxHlxqvop0SVbxrMpJ/J68WESBl2+aY4E tn71+li5R4UZ1HkLTbBlaVv2A0e+MbJ+9R4Ru4VZOab79xZb1a1/fwG5X2xeipyg ==
X-ME-Sender: <xms:Kh2VXhbMpuhDxn_54spk_rTV8ExQ0HdWYUqu7CqsnvEHNivYGokVmw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrfedtgdeglecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesthdtre dtreertdenucfhrhhomhepfdforghrthhinhcuvfhhohhmshhonhdfuceomhhtsehlohif vghnthhrohhphidrnhgvtheqnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepmhhtsehlohifvghnthhrohhphidrnhgvth
X-ME-Proxy: <xmx:Kh2VXuOFy6bMgC-5gfH9865QzYzX_dTa0dcYfMRV3AIH9l-UGJkC5g> <xmx:Kh2VXpAGSyjw2OXTAhmuh4t5Th_3WjOuqotTeHqfVa4EE-wJEpHD4g> <xmx:Kh2VXuoxNKrz93MIzlt8D9Idy48Hyd-GjH6QWVOe50xAzyYqGiDShA> <xmx:Kx2VXm-j4AuJZXpfLHeU-W_i06xdFVEVAjubO5w66QVbzjMN4MT2iQ>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id C8E00E00E1; Mon, 13 Apr 2020 22:17:14 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.7-1130-gd0f8b30-fmstable-20200414v1
Mime-Version: 1.0
Message-Id: <ad2ae8b8-ba2d-4839-a07d-f57f475b43dc@www.fastmail.com>
In-Reply-To: <21444935.R3TQEuPsEl@linux-9daj>
References: <CAKcm_gNf43tXizw9D2jdtTieh+=zS7PKVDiNNV-UEbP8Gw+mHg@mail.gmail.com> <de87e833-de54-ae5a-cd85-2f93565192f7@redbarn.org> <CAKC-DJjNbBYVzmN=KxnRKpxK_eJFcbGFvejx1Xms-X2iesBVrg@mail.gmail.com> <21444935.R3TQEuPsEl@linux-9daj>
Date: Tue, 14 Apr 2020 12:16:32 +1000
From: Martin Thomson <mt@lowentropy.net>
To: quic@ietf.org
Subject: Re: QUIC re-chartering: include DNS-over-QUIC?
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5MB4l3NvehQtp6CyFB1VGE74vDM>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Apr 2020 02:17:18 -0000

Hi Paul,

These are good topics to talk through.

On Sun, Apr 12, 2020, at 09:46, Paul Vixie wrote:
> you're assuming that the loss isn't self-induced. sometimes slowing down is 
> exactly what's needed. for example when a busy full resolver has a queue of 
> hundreds or thousands of requests to be sent to a zone authority, rate 
> limiting of UDP is necessary to prevent a meltdown. bandwidth is finite. we 
> sometimes load-balance toward several of a zone's authority servers even 
> including those known to not have low-ish RTT, just to avoid flooding one of 
> them, or to avoid flooding our nearby links. moving to QUIC won't help with 
> any of that.

I guess it depends on what resource you are attempting to preserve.

The goal of a congestion controller is to avoid over-saturating the network.  But most controllers still assume that you still want saturation of a kind.  QUIC likely doesn't do anything to help here, unless you think that having a stateful context with good feedback about loss and delay is useful.  It seems like something far less sophisticated is what you are imagining.

If the goal is instead to avoid overloading a receiver, then QUIC definitely can help.  The flow control mechanisms in QUIC (limits on streams, per-stream limits on bytes) are all designed to avoid this situation by putting the receiver more in control.  If a resolver is busy handling lots of traffic and you want to avoid swamping it further with zone transfers or similar, then these flow control options allow it to limit the resources it has to commit to different connections. (Of course, that reduces the problem to the previously-unsolved one of prioritizing competing interests.)

If you have good flow control, you might not have to worry about the effect on congestion beyond choosing an appropriately-aggressive controller.
 
> > * Faster resumption and 0RTT behaviors (although you get some of these with
> > TFO + TLS 1.3 0RTT).  But this substantially reduces the performance impact
> > when new connections need to be established.
> 
> in DNS, new connections rarely need to be established. the reason RFC 6013 
> permitted connections to go into a quiet (resumable) state

The resumption part is interesting in this context.  It depends on what you mean by "resume".

If you imagine very long periods of quiescence, but with (full) retention of state at endpoints, then QUIC should work.  Using connection IDs might mean that you can keep using a connection even in the presence of address translation.  

That's different than what TLS and QUIC refer to as "resumption", which is the feature that allows you to make new connections (more) cheaply.  QUIC does a lot to improve that, because the web needs it.  Maybe DNS will also benefit from that, but it might be that you can just use very long-lived connections instead.  I would recommend a regimen of key updates for that, but that's not critical.

Transport people keep saying that you can't save the congestion window.  But then I keep seeing that people do and nothing much breaks, so I guess this debate will just continue.

> while it's theoretically possible to share DNS cookie state (RFC 7873) across 
> many instances of DNS Anycast, the cost:benefit of that complexity is less 
> compelling than the cost:benefit of having to renegotiate during route changes 
> either from mobile-ip or network-in-the-middle attacks. i don't think QUIC has 
> different game theory than DNS cookies have in this regard. route changes are 
> orders of magnitude less frequent than same-pair reuse, and always must be.

You might find that sharing implementations with HTTP servers changes the dynamics there, but I don't know if the equivalent QUIC mechanisms are fundamentally different.  What I've observed with HTTP is that state is shared, sometimes globally, sometimes only at the same location, and sometimes not at all.  But I don't operate any of those services, so I can't speak to details.

> ....my question seems to stand. if the potential motivations you've listed so 
> far were actual, then we'd have had DNS over SCTP decades ago, or something 
> like DTLS that actually worked at scale rather than just in a lab, or we would 
> have been able to get TCPCT the code point we needed to experiment globally, 
> or we would have had UDP options by now.

I think that my answer immediately above speaks to the potential difference here.  Wide deployment of infrastructure that supports the protocol might change the system dynamics sufficiently to make it worthwhile for DNS to use the new protocol.  I don't think that this is certain, but I also don't think that this is a question of serving QUIC more than it is serving DNS.

As you say, DNS has its own version of many (or all) of the same capabilities we're talking about.  It has them because it needs them.  The amount of operational experience with those capabilities is far greater than the experience people have with QUIC, and that will remain the case for a good while (read: more than 3 years, possibly quite a bit more).

However, if QUIC does manage to see wider adoption, it could be that the benefits of sharing infrastructure and experience is worthwhile.  Laying the groundwork for that possibility isn't necessarily a waste of the time of groups like DPRIVE/QUIC.  Recognizing the potential for that work to be unwanted is a good check on excessive ambition though.

I personally think that there is value in sharing a better transport layer, but the costs are pretty significant.  Even if you believe that there is some utopian end state in which everything uses the same protocol, the short- and medium-term costs are carrying around multiple protocols, some of which are awkwardly incompatible.