Re: [DNSOP] SVCB chain lengths

Brian Dickson <brian.peter.dickson@gmail.com> Mon, 23 December 2019 20:57 UTC

Return-Path: <brian.peter.dickson@gmail.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 98413120CE6 for <dnsop@ietfa.amsl.com>; Mon, 23 Dec 2019 12:57:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 k4_k325NVO21 for <dnsop@ietfa.amsl.com>; Mon, 23 Dec 2019 12:57:44 -0800 (PST)
Received: from mail-vk1-xa2e.google.com (mail-vk1-xa2e.google.com [IPv6:2607:f8b0:4864:20::a2e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03DE61201DB for <dnsop@ietf.org>; Mon, 23 Dec 2019 12:57:44 -0800 (PST)
Received: by mail-vk1-xa2e.google.com with SMTP id i78so4696262vke.0 for <dnsop@ietf.org>; Mon, 23 Dec 2019 12:57:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JL9V7g/cN2DnsE9Nr3Byce+qX+WblmlKeUEERlWI6DM=; b=Oy0xuONuyC1kg27LH81e5hPZw88pWBUd0WnAlGYDC8fmnNUX37IGLfmnz4LPZU2/DO iansaKgKbU/MwTjdOiyv2LKkYcTEKeK5+1iOQ5eNNMLM2S2Z5tdR1bpEbx7VTV2SV6YN NjLtserE2EWXCYQSjkZ7lZZIKS02MVJlxjIZpzQ06DOmk8UpIQW+GfiX60roF8aenvzT GBX/E0Bwz23+wPpDqD9vT6KYmJBrw5X/p4Dhf4ze37foRNgxuqMOPxVdjnFOnNNCYvFI EzBRVVdI565Ag6qFnaZiS2jgR3Zq/+UKGoQmEUHZ1bZewTQbKoT9gWAyBL23cNFZP1oT 6O/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JL9V7g/cN2DnsE9Nr3Byce+qX+WblmlKeUEERlWI6DM=; b=bLv8a59DdGHyt7uS5/GXOj6RZzrgoNVhRpj7Asbcrsxe//YhsMxY6FN4ORzD2IDEPP 0Mexox5xPn0C/GVHBcM7r/Nrqn173YkYtvOY8MQk2APAwIhgHFeEXI2PzwXx5CN3gaUZ AZUy5hX/Nal18xS8ZvrTNmTDlILFacsxMdPa//Hf2GsmAAgaeMe7YK4EYK5Ds2mQ1wQr BuUxpdtk9yeWXRlk3AC0Z3tltmT+e3GefbSCHXKID+CUtKO1VrtX/TM35gnxVveBCKDN q3PN5evJJJMyj4KyvzMduTTiF7tbHWFgb1f5OB9Hs4phmu0ZzIz+vrySDh9KgZgWSn3y 0yJQ==
X-Gm-Message-State: APjAAAVVgHmng3fCtH/TejTYDBbOK6Qk2UqG9pa6dLXN0jV3WqjHw2dP wbQyFCDB+i7ztSzLiOgeDs/yjjNuH/+oQ9+Ks1I=
X-Google-Smtp-Source: APXvYqxJWz9L2rltTzWPJQgfU+ukfF8Eq6fiHSV46Z+I8n+6OrTpLWNBSQa1HYL2LyFsO67+K/uAOjruu09CnaVIBHc=
X-Received: by 2002:a1f:8d57:: with SMTP id p84mr14691997vkd.65.1577134662998; Mon, 23 Dec 2019 12:57:42 -0800 (PST)
MIME-Version: 1.0
References: <CAMOjQcGP3=+_fb9pt3dvF27kR1ENH+=2L28EDNPQU6JF8zkrzQ@mail.gmail.com> <CAH1iCirdFrT_v-FBqaC=WUfaY52DyeYLh5VWbeVsw2YwscDCpA@mail.gmail.com> <CAHbrMsBAmQU-xduT3E4_sHaqrpsdZ_YfdEtgoNB4kti4jDCvdQ@mail.gmail.com> <CAH1iCip0iY8Mt8=HC0-V8jF=D=BGcs54xUMu4Rkbe47FFxGyuA@mail.gmail.com> <CAMOjQcG2YOBa1X7ZqAUpDG0Cwr+nOzmy-bKJmbqaQEqrcTOCAQ@mail.gmail.com>
In-Reply-To: <CAMOjQcG2YOBa1X7ZqAUpDG0Cwr+nOzmy-bKJmbqaQEqrcTOCAQ@mail.gmail.com>
From: Brian Dickson <brian.peter.dickson@gmail.com>
Date: Mon, 23 Dec 2019 12:57:31 -0800
Message-ID: <CAH1iCip6CdLSNAmBB-j=Qya26j=OoLoBGyMtXEWQ0sQz9Z2HYw@mail.gmail.com>
To: Eric Orth <ericorth=40google.com@dmarc.ietf.org>
Cc: dnsop <dnsop@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000059e170059a6547af"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/JvK1mVX7QN5SRMqIJizXSVu9Yr0>
Subject: Re: [DNSOP] SVCB chain lengths
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Dec 2019 20:57:47 -0000

On Mon, Dec 23, 2019 at 12:22 PM Eric Orth <ericorth=
40google.com@dmarc.ietf.org> wrote:

> Maybe it would help if we scoped down any chain limiting:
>
> 1) Any chain limiting only applies to SVCB alias form, not CNAME.
>
> CNAMEs already exist without a standardized limit.  Good or bad, too late
> to change that without breaking things.  SVCB alias chains, as well as
> aliasing apex names, are new and thus currently limited to zero.
>

Disagree. These alias-form changes are not yet standardized, and the limits
(zero or otherwise) are "vacuously defined". I.e. the limit of the length
of a sequence which is undefined, is itself undefined.

They are currently limited to not exist, so we can't make any assertions
about the length of chains of these things (yet).

We are presently (here, in this conversation) discussing what limits to
apply, if any. Let's start from there...


>
> 2) Any chain limiting enforcement only applies to stubs following chains,
> not recursives.
>
> Recursives are already following CNAMEs without a standardized limit.
> Speaking for the one stub resolver I know well, Chrome DNS, we don't
> currently directly follow any CNAME links, relying on the recursive to do
> it for us.  So the current CNAME chain limit in Chrome is also zero.  Any
> chain following at all, CNAME or SVCB alias, is an increase of our current
> practical limit of zero.
>
> SVCB-aware recursives could resolve the chain without limit as they
> currently do with CNAME.  Unlimited chain following anywhere seems
> non-ideal to me, but my expertise is not on the recursive side so maybe
> it's completely reasonable.
>

It is completely reasonable. Reminder: the chain following stuff only gets
done on the first reference(s) to client-side rewriting that occurs (CNAME,
DNAME, and new alias-form), and the recursive side CACHES THOSE RESULTS AND
RETURNS THEM.

I.e. After the first stub asks for something that requires chain following,
the FULL CHAIN is cached, and the next stub gets the WHOLE CHAIN. (Modulo
stupid DNS tricks like ECS.)


>   But if we're relying on the stubs to follow chains (that may not have
> been followed there at all before) to account for SVCB-unaware recursives,
> we should empower them to use chain limits reasonable for them.
>

Why? If you want to make the argument, you need to solidly justify a
difference in behavior between two things implementing the same standard:
stubs with unaware recursives, vs stubs with aware recursives.

There are substantial implications to having any such distinction.

Specifically, this means that chains ARE PROHIBITED (for length > N) when
stubs use unaware recursives, but NOT PROHIBITED (of any length) when stubs
use aware recursives.

This in turn, places a burden on the entire DNS ecosystem (and in
particular, zone owners, operators, and intra-provider heterogenous
deployments, aka non-vertical-integrated zone owners with multiple
providers, e.g. CDN vs Hosting vs DNS).

Wanting things to resolve fast CANNOT trump the other requirements from the
larger DNS community.


> Being typically further away from results and with less caching, unlimited
> chain following just does not seem reasonable for a stub like Chrome, and
> it seems to us to have a big potential to be detrimental to our users'
> experiences compared to the status quo of not following any chains.
>

This puts the necessary and appropriate pressure on stub clients to their
resolver operators, to deploy Alias-form aware resolvers.

Putting in place (IMHO) hacks, to reduce or eliminate that "pain", removes
ANY incentive for resolver operators to actually deploy this stuff.

If resolver operators NEVER deploy this stuff, we may as well chuck it
before we adopt this, since there will be literally zero benefit, while
creating non-trivial amounts of cost (in terms of stub client
implementations, authority-server implementations, zone owner deployments,
etc.)

BTW, I'm strongly in favor of this getting adopted, and getting deployed in
recursive resolvers.

Thus, I'm in favor of NOT having alias-form limits, even on the stubs. This
will lead to much faster adoption, compared to "Real Soon Now", "Some Day",
"Eventually", and "We Never Promised To Do That".
(The latter set of responses paraphrased from an un-named registrar who
eventually reneged on "promises" to deploy DNSSEC support.)


>
> This point of scoping down is partly in response to Brian Dickson's reply
> that SVCB alias should be first class and at least as powerful as CNAME.
> Limiting chains in stubs makes chains practically limited everywhere for
> most general cases because authoritatives will want to support the cases
> where the recursive is SVCB-unaware.  But if there's going to be some "Flag
> Day" by which all the recursives we care about add SVCB support without
> limit, that will be the point after which the practical limit will be gone
> and SVCB aliasing becomes fully empowered as a CNAME substitute.
>

Correct. The issue is putting substantial PRACTICAL limits in place (on
stubs) well before the Flag Day, is a Bad Idea, because it removes the
incentives to participate in Flag Day itself.

On the other hand, I think it would be possibly a good idea to roll out
limited user experimentation of unlimited stub chain lengths, to get the
experiences (and data) regarding user experience, and to get implementation
experience and debugging done, prior to Flag Day.

Post Flag Day, turning it on universally, would then be reasonable to do,
and IMNSHO, this would be the right way to approach it.


>
> 3) Any chain limiting only applies to HTTPSSVC, not SVCB.
>
> HTTPSSVC is a much more specific area where the usecases are more
> understood.  I think when we say we don't see any usecases where needing
> more than one alias makes sense, we're really only talking about the
> well-understood HTTPS cases.  Anything else using SVCB is more generic and
> hard to pin down whether or not any limits make sense or would be
> reasonable.
>
> And when you scope down chain limiting to just HTTPSSVC, the arguments
> become less valid that aliasing could point to other organizations without
> coordination over whether or not the one allowed alias is yet used.  In
> HTTPS, the end server needs the cert for the domain.  There should be
> coordination and trust between organizations in the alias chain, and the
> organizations should be able to coordinate who is in charge of aliasing
> from an apex domain.
>
>>
>
I'm not disagreeing with the argument on the "should", but that is very
different from anything related to specifications, standards, and "must".

In particular, you need to be REALLY careful, that this can (and in many
cases will) involve different departments in larger organizations, e.g. the
hosting vs DNS, possibly CA, perhaps Load Balancer, and even other groups
responsible for domain purchasing etc.

While those might be coordinated, they might not be, or might be only
vaguely/loosely coordinated, and may not involve ongoing coordination.

There is a huge difference between "best practices" and "mandatory to
implement", and I am afraid you're unintentionally conflating the two.

I.e. Arguments becoming "less valid" is not the same as "this is not a
valid argument", and without it being the latter, it's pretty much
necessary to stomp on this line of argument.

Sorry, and I wish it wasn't the case, but let's face it, DNS is pretty much
a very messy thing when you start allowing client-side rewriting (CNAME)
and then expand it.

Brian