[dconn] Re: draft-ietf-dconn-domainconnect-03 early Dnsdir review

Pawel Kowalik <kowalik@denic.de> Fri, 21 August 2026 16:10 UTC

Return-Path: <kowalik@denic.de>
X-Original-To: dconn@mail2.ietf.org
Delivered-To: dconn@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id A51A312D6CE50; Fri, 21 Aug 2026 09:10:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787328638; bh=zrBnFhOPq7jwaDslYBvdh3EU0yGWSBmOreKhWUP0gho=; h=Date:From:Subject:To:Cc:References:In-Reply-To; b=d8hZR7yfME/CbyFJyzS0q5Iul2T47a926vBteCGC0zlU6axS9sRFJqoNmZKROJhsc GTsRl70sHyzY5z5vFblZxRt1OFF/pydnA2BBBoE6uRKcUNxV8CSOCyAl2K9hTKzSV2 +nJlwr85OnVW1+N5BPNQO44i70foNd/VximsOtnk=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.101 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, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=denic.de
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TRDcPIW0ATVs; Fri, 21 Aug 2026 09:10:37 -0700 (PDT)
Received: from mout-b-203.mailbox.org (mout-b-203.mailbox.org [IPv6:2001:67c:2050:102:465::203]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 8D18A12D6CE28; Fri, 21 Aug 2026 09:10:34 -0700 (PDT)
Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:b231:465::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-b-203.mailbox.org (Postfix) with ESMTPS id 4hRQJK5q22zLmcG; Fri, 21 Aug 2026 18:10:25 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denic.de; s=MBO0001; t=1787328625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=zrBnFhOPq7jwaDslYBvdh3EU0yGWSBmOreKhWUP0gho=; b=XrAzK7qjPd0Jh+4IUq8YLxhTaEU1KNrT0apMNt6+cZ1AQNsCuC26t3UAiQyynNYqlM+NAR psBVTAyvkxTOVO7/w5oX8SzAf8f6UNDWwrvr9lRTW+7oZHlP9nPsc6OLszU0YKnh9EzCd2 GTlFrcfW2V/ARQrGq50OtRa+soQj8Kks6tkvGhL229pl9ehHDy6sKKFgyL4bkg0/plMk0K 7qfAfwG8nNU1iQ9NsGmCBkUvQx4gBUFu5oK0GM+tKAkpvTvTwlvDeo855IzP1c39S7O68U qMPoKISY8ng42c8kK8Ozr+JFbeMm5CRf10mtR+ehD8RUhbFEkmSWE+DuCELggQ==
Message-ID: <908fec38-be4c-4f62-98bf-0c2d25edabf7@denic.de>
Date: Fri, 21 Aug 2026 18:10:23 +0200
MIME-Version: 1.0
From: Pawel Kowalik <kowalik@denic.de>
To: Vladimír Čunát <vladimir.cunat@nic.cz>, dnsdir@ietf.org
References: <178695691509.448557.2389801523119462499@dt-datatracker-7c6ddbc678-86d5j>
Content-Language: en-GB, de-DE
Autocrypt: addr=kowalik@denic.de; keydata= xjMEamCU8BYJKwYBBAHaRw8BAQdA5dc3skskyGV7KuAVZW2P9zRKhHIybZS9E3TaKieMHirN IFBhd2VsIEtvd2FsaWsgPGtvd2FsaWtAZGVuaWMuZGU+wokEExYIADEWIQShScYqTWt88Pdo pXJGlG3fGAsVTQUCamCU8AIbAwQLCQgHBRUICQoLBRYCAwEAAAoJEEaUbd8YCxVNNbkA/17Y 1IzoCMMeUiSMZ424CjQHARFQcF1D5QSYMRNGumISAP9pQfYwGbjKXC3R4JS//mBuWrWwNgNE 6367eT/Szgq0AM44BGpglPESCisGAQQBl1UBBQEBB0BDekCxSiG5GnNaXO7e1uqhZEveJd1e bdPAHD2i0wvSaAMBCAfCeAQYFggAIBYhBKFJxipNa3zw92ilckaUbd8YCxVNBQJqYJTxAhsM AAoJEEaUbd8YCxVNjz8A/iPfom/5aDp2tmtUiRFkCDn6ipAfSjrlcd3ywcCp+qkQAPwNsEgQ 8cFBXpGBw9pPyGDQOzsr8AO2YJpDp1PMXDhUCg==
In-Reply-To: <178695691509.448557.2389801523119462499@dt-datatracker-7c6ddbc678-86d5j>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="------------pgxHki7YU0W8rYDMoBSny0MR"
X-MBO-RS-META: qz33twk4uz977h1yh6f7i3nrhz8mcu78
X-MBO-RS-ID: 17495be15aa0eb5f79f
Message-ID-Hash: ZUPKHEJR2QSXRQPHONHKMZHVJWJVXCZS
X-Message-ID-Hash: ZUPKHEJR2QSXRQPHONHKMZHVJWJVXCZS
X-MailFrom: kowalik@denic.de
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: dconn@ietf.org, draft-ietf-dconn-domainconnect.all@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [dconn] Re: draft-ietf-dconn-domainconnect-03 early Dnsdir review
List-Id: "Domain Connect is a protocol that makes it easy for a user to configure DNS for a domain running at a DNS provider to work with a Service running at an independent Service Provider." <dconn.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dconn/kj6JevaAgV7nRTnseJmpfRYuogc>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dconn>
List-Help: <mailto:dconn-request@ietf.org?subject=help>
List-Owner: <mailto:dconn-owner@ietf.org>
List-Post: <mailto:dconn@ietf.org>
List-Subscribe: <mailto:dconn-join@ietf.org>
List-Unsubscribe: <mailto:dconn-leave@ietf.org>

Hi Vladimir,

many thanks for the review. Further comments below with PK>

On 17.08.26 10:55, Vladimír Čunát via Datatracker wrote:
> Document: draft-ietf-dconn-domainconnect
> Title: Domain Connect Protocol - DNS provisioning between Services and DNS
> Providers Reviewer: Vladimír Čunát Review result: Almost Ready
>
> Review assigned to me by dnsdir.  As the text is quite long, I wasn't trying to
> be careful with all details and focused mainly on potential DNS protocol
> issues.  Apart from the Apex-CNAME clarification, my stance is "No Objection".
>
> By the way, I do like what dnconn is trying to do, and it sure isn't easy :-)
>
> #### Apex CNAME
>
> I believe this needs at least major clarification in the text.
>
> If I read the context right, I think your intention for dconn's CNAME is to map
> to DNS's CNAME except if it's on a zone's apex in which case it tries to map to
> an ALIAS.

PK> Not at all. CNAME in Domain Connect, as it is Fully Specified RR 
type, it corresponds to what RFC 1035 specifies.
It means it cannot be applied to the zone's apex.

A template may express CNAME on @ host, however it would be replaced 
with non-apex label with template application
on a specific host (with host apply parameter). Such template would 
always require host to be set, therefore hostRequired
flag is expected.

The draft covers it in 6.3.2. and a Note in 10.4. is specific about 
conflicts.

>
> That's a non-standard substitute offered by some vendors, sometimes called
> ANAME, which generates standard DNS records "dynamically" on authoritative
> servers.  The key thing in my eyes is that it behaves differently than a CNAME.
>   In particular it only mirrors the values of A+AAAA - which is why it can
> coexist with any other RR types - thanks to which it can be reasonably used on
> a zone's apex (which must contain SOA+NS which can't coexist with a CNAME).  I
> believe that this situation should be made more explicit in the RFC text, and
> the difference in behavior might also be a source of confusion to users, but
> that's probably mainly up to implementers to design this well enough.
PK> there used to be an extension RR type in domain connect named 
APEXCNAME with exactly this function
express in an explicit way. DCONN WG decided to rather remove such 
extensions from the core draft
therefore it is not there any more but only reserved for the back 
compatibility.
Some providers make such tricks implicit with CNAME, but I see it 
outside of what DCONN shall take care,
same as they are outside of what 1035 specifies.
> #### Minor comments to consider
>
> - syncPubKeyDomain: I'm personaly not a fan of using TXT for everything, though
> I understand that it might seem like an easier path (short-term at least).
PK> this turns out to be operational necessity to use TXT to have 
something deployable in a foreseeable time.
> In this case the processing looks significantly more complex than with a
> dedicated RR type.  Also the combination of a BASE64 layer with splitting will
> grow the size quite a bit.  That doesn't seem ideal with post-quantum
> algorithms around the corner and DNS messages still being limited to 64 KiB.
PK> not being an expert of PQC, my quick research tells the public keys 
are indeed bigger, but with ~2 KiB still with enough of buffer till 64 
KiB limit would be hit.
> - Template Apply Request: similarly, I'm not 100% sure about putting a
> signature *inside* an URL.  My insight into the HTTP* world is limited, but a
> quick search indicates that long URLs (more than a couple kilobytes) don't have
> great support by default.
PK> the signature is there exactly to protect the URL and still offer an 
opportunity to send it over to someone else (hand-over).

HTTP does not offer any other possibilities for GET requests. POST is 
only possible with way more complexity of form post which does not work 
for the case above.

PQC may hit a limit here as well, but RFC 9112 recommends 8000 octets to 
be supported and this is what one shall expect to work these days.
Here some algorithms might exceed the limit, but there are quite few 
which would fit into 2-4 KiB signature size range.

> - nit/typo 6.3.3: %var%.example.com is confusing, as the "s" characters are
> missing
PK> thx, will correct
>
> - nit: perhaps avoid referencing RFC 8499 -> update to 9499?
PK> corrected
>
> - 10.4 nit: maybe explicitly say that a CNAME conflicts also with another CNAME
> (on the same "host")
old:
    *  A CNAME record conflicts with any other record on the same host,
       and any existing records conflict with a CNAME.
new:
     * A CNAME record conflicts with any other record on the same host,
     including another CNAME, and any existing records conflict with a 
CNAME.
>
> - nit: "Class" is something which exists for DNS records (since forever), so
> reusing the name for something completely different in this context might be a
> source of confusion, but the risk seems relatively small in this case.
PK> good catch. Changed to "Handling"
>
> - I'm not sure if it's worth noting e.g. that TTLs must be the same for an
> RRset (records with the same host+type, [2181.5.2]).  The usual workaround is
> to use minimum from those TTLs.

PK> This needs an add in 2 places: template definition and template 
application.

In Section 6.2. under TTL I'd add a clarification:

       Records forming the same RRset (i.e., sharing "host"/"name" and
       record type) SHOULD be given the same "ttl" value in the template
       definition, since [RFC2181] Section 5.2 requires all resource
       records in an RRset to share a single TTL.

In Section 10.2. I'd add a note to 8b)

        b.  Write the Rendered Record Set to the zone in totality.

            i.  Note: if the Rendered Record Set yields differing "ttl"
                values across new and existing RRs that form the same
                RRset, the DNS Provider MUST reconcile them to a single
                TTL (e.g., by taking the lowest value), per [RFC2181]
                Section 5.2

I applied the changes already to an open PR 
https://github.com/Domain-Connect/spec/pull/203

Kind Regards,
Pawel