On Thu, Aug 25, 2022 at 1:35 PM Ben Schwartz <bem...@google.com> wrote:

> Thanks to Brian, Viktor, and others for the very close review, as always.
> While I disagree with many of the claims made here, it's clear that some of
> the text has proven confusing.  I'm not familiar with the process rules
> given the draft's current state, but perhaps we can improve clarity with
> some modest revisions.  I'll try to keep that discussion separate.
>
> The key text for this discussion is in Section 3:
>
>    If the client is SVCB-optional, and connecting using this list of
>    endpoints has failed, the client now attempts to use non-SVCB
>    connection modes.
>
> I believe most reviewers correctly understood this to mean that, if all
> else fails, you can connect to https://www.example.com/ using the AAAA or
> A records on www.example.com, as usual.
>

One of the problems here is that the term "connection mode" is somewhat
ambiguous.
Does that refer to the HTTP mode, or DNS queries?

It could mean, "connect via HTTP using no SvcParameter" elements, i.e.
connects using vanilla HTTPS, using the last $QNAME.
It does not explicitly identify the connection target address.
(e.g. if there was not a DNS resolution failure, the connection failure
should be "hard" rather than "soft", and only the final $QNAME should be
used, vs explicitly stating "non-SVCB connection to addresses found by
resolving A/AAAA records at <specified location relative to $origin>").



> The logic is simple: this draft does not make "HTTPS Record" support
> mandatory for HTTP clients.
>

What the current version of the draft does, is it asserts HTTP ownership of
any apex A/AAAA records, something that was not the case prior to this
draft.

   - The fallback logic assumes that A/AAAA address records MUST serve the
   same content as the HTTPS record
   - This effectively forces the owner to choose between "no A/AAAA
   record", or "have A/AAAA records that require maintenance (if the are the
   result of doing DNS resolution on the HTTPS target)", or "do some other
   thing that serves the same HTTP content".
   - This means that for as long as the current draft is published as-is,
   and until it is given a -bis treatment or is deprecated, no other use of
   apex A/AAAA records is possible (without impacting HTTPS-aware clients)
      - This also means no OTHER SVCB-compatible apex RRTYPE can be used
      that also requires fallback to A/AAAA records, as those would
conflict with
      the HTTPS usage

The "www" name under any given domain, is by convention the owner name of
HTTP and HTTPS services, but is not strictly required. The expectation that
"www" is a web server is reasonable, and that CNAME and AliasMode records
would be interchangeable. Other (non-HTTPS) SVCB-compatible records would
not be expected to co-exist at the "www" name.
The same is not true for the apex name, recent trends to the contrary
notwithstanding.


> Thus, HTTP servers are still required to publish functional address
> records on the origin hostname, as usual.
>

This is *only* true if the HTTPS record is added to a pre-existing address
record's origin hostname.
There is no requirement for a pre-existing address; it is possible (indeed
likely) that a significant proportion of HTTPS records are published where
no pre-existing address records existed.
There might be a simultaneous deployment of A/AAAA records for the purposes
of serving (some kind of content) to legacy clients, which is a distinct
use case from the pre-existing same-content A/AAAA use case.


> (Similar logic applies to any other pre-existing protocol that may be used
> with SVCB.)
>

I don't follow this logic, could you explain, please?

Suppose (at some future point) there are half a dozen SVCB-compatible
RRTYPEs, all published at a zone apex.
Which service (corresponding to which RRTYPE) is the pre-existing protocol
served at the apex A/AAAA address(es)?
There can be ONLY one protocol attached to an address, unless the address
is forced to serve many protocols simultaneously (not an ideal situation at
all).


> Since these records are required to be present and working, we can hardly
> forbid clients from using them.
>

Except, they aren't *required* to be present and working, at least not
within the scope of this draft.
What is true, is that IF they are present, they are *expected* (not
required) to be working.
(The logic is backwards; it is B->A, not A->B. Plus, the negation of X->Y
is (!Y)->(!X), rather than (!X)->(!Y).)

This pre-existence assumption omits an entirely different logic branch:
green-field deployments using HTTPS (where no current records of any type
existed, or existed for other services, including "parking" generic pages,
"cash parking", etc.).

GoDaddy provides managed DNS hosting (which in some cases involves add-on
services that are provisioned into the customer's zone), for tens of
millions of domains. A significant portion of those will be updated to use
HTTPS in the near future, presuming what gets published will work correctly.

Brian
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to