[DNSOP] Re: Introducing draft-ferro-dnsop-apertodns-protocol-00.txt

Andrea Ferro <irn@irn3.com> Mon, 19 January 2026 22:08 UTC

Return-Path: <irn@irn3.com>
X-Original-To: dnsop@mail2.ietf.org
Delivered-To: dnsop@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id C89C1AA1AEAE for <dnsop@mail2.ietf.org>; Mon, 19 Jan 2026 14:08:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=irn3.com
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 favPMwGZta66 for <dnsop@mail2.ietf.org>; Mon, 19 Jan 2026 14:07:59 -0800 (PST)
Received: from outbound.st.icloud.com (p-east2-cluster1-host9-snip4-6.eps.apple.com [57.103.76.109]) (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 54FAEAA1AE9B for <dnsop@ietf.org>; Mon, 19 Jan 2026 14:07:59 -0800 (PST)
Received: from outbound.st.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-1a-60-percent-1 (Postfix) with ESMTPS id 36A2B1800427; Mon, 19 Jan 2026 22:07:51 +0000 (UTC)
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irn3.com; s=sig1; t=1768860472; x=1771452472; bh=XA/sqGskMk6N9hCOd5Ui2g8GXDBWtNkdsf0P0a2E1lk=; h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To:x-icloud-hme; b=pBeEJH5vtnH2KNqzcoxYNKGocmC8+QqQrwJS1X/nfaUZ2dlLDTqGOFbYfwXBgsPUOi4ApyksHUt98A5F0Y2B9ERqjeGkZOOZhkMZ9htlw/m5kvQSfuli5NSwCYh8mZBVkwsOeNQeYo6YJY2xVRh8nb7Osn2QO9AL8xU44CkoJLWR3oiA/wlfkFv+z7uWqO0myC8Xb8XzaIH8mDDmVPu1KhFiCpddAVWPWPk0Nkyd7/eBuwDMJhdLz6LUruEzGkHItFQkgiyYi6FVqdoXXJQn6e//8U30CrDYUYqFEYIKFBhacLF2lqDYNdO2/m11ys8rs4XCvQ9hTw9feIGCHDVMZg==
mail-alias-created-date: 1688148568859
Received: from smtpclient.apple (unknown [17.42.251.67]) by p00-icloudmta-asmtp-us-east-1a-60-percent-1 (Postfix) with ESMTPSA id 5960F1800137; Mon, 19 Jan 2026 22:07:50 +0000 (UTC)
Content-Type: multipart/signed; boundary="Apple-Mail-6957615B-3DA0-41E9-A25F-F9D8AD4184C4"; protocol="application/pkcs7-signature"; micalg="sha-256"
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (1.0)
From: Andrea Ferro <irn@irn3.com>
In-Reply-To: <3203A632-1D4D-4160-8861-D33D41EA6C5C@apertodns.com>
Date: Mon, 19 Jan 2026 23:07:37 +0100
Message-Id: <B54AEFDF-A37B-4909-921C-079841E39A3D@irn3.com>
References: <3203A632-1D4D-4160-8861-D33D41EA6C5C@apertodns.com>
To: Mark Andrews <marka@isc.org>
X-Mailer: iPhone Mail (23D5103d)
X-Proofpoint-GUID: XpvHPZRp2AqrDzJwBYAk7WACFjJlnTNa
X-Proofpoint-ORIG-GUID: XpvHPZRp2AqrDzJwBYAk7WACFjJlnTNa
X-Authority-Info: v=2.4 cv=YOmSCBGx c=1 sm=1 tr=0 ts=696eab38 cx=c_apl:c_apl_out:c_pps a=YrL12D//S6tul8v/L+6tKg==:117 a=YrL12D//S6tul8v/L+6tKg==:17 a=vUbySO9Y5rIA:10 a=VkNPw1HP01LnGYTKEx00:22 a=l5NQManOAAAA:8 a=SCo1hh1FAAAA:8 a=KaZ2Zc5LnKYDm8uVrfEA:9 a=QEXdDO2ut3YA:10 a=G04rTuTAobA_nOhEvasA:9 a=BQiesA_snrFI-Sbg:21 a=_W_S_7VecoQA:10 a=Oq5DrHcayVFEQusMXDMA:9 a=ZVk8-NSrHBgA:10 a=BsAa1zRtPV5rAQ5YVIdM:22 a=nwb-CePKZZm3gL-ai9HY:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE5MDE4NCBTYWx0ZWRfX65CXRHCkw7/U ylmeLseSolyKPoGcWZrdNYDTBtAGdHpzdm/HXznSiTHavee+gCSz/aRPhbzRiZvxzxUaKAZCG62 s6gpHh+zVBaOPjpwXhSyKUuf37c2H8XuZroSWXXvPT98tbL4BzlhAx6zKceEoFaz3NDtTifn4+C zzICHgi7+wkrNOIfxWbzK+V/b6RFh0tQlVFzYZ72/SiMq4jKKvXrUMGvjOni09F2gbwDoLIT15u 6SaZBZ960JP77/hJeKn36hKFGT6CNEx/pp3mwcGXk2cKeLp9aiOf3JpmIbTiMQH522E0ViOIyQO UG5NmywA8PTKuJAhtvp
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-19_05,2026-01-19_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 clxscore=1030 phishscore=0 mlxscore=0 spamscore=0 suspectscore=0 malwarescore=0 adultscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2601190184
X-JNJ: AAAAAAAB0KxOJm1hdBtToth3JvlJ4CCh+Bn+wjxu2yTtqOTSjoYXr4dtraLaFuI1gMpt0UqTy0sqLd7ZkyTnUjiseaxyW8MXkUxa+9XYny2JgMyaKrXuCv/Pb5uJhpn2VEA9RcoG+vf37KcGG30E8HykmNGTK1lQUfI5d6/ZodhRlpA2QLzxTWDdklkb7ylUV/yjV+wH7UY4p9fckP/Jcg4vuvii2XOaLYtjiI9jj6OaK2shevYIORyuGk2eY6yA3DsdaSWd3o3H1v2VLogzZKnXNSEQxOIbV0dOv/q+D3xaJOKRekCAXcld3My1NRVlzxsHfQ+4+keJX0EPut7meApDUs7ZEh46Wmk+RCJThUbQKH2IKqquEKFI6IPc4pNxnLd7dsK80xg9tzgXy3RwltrHs3Kx2N1ogvstClM23UkAgzicmQ1g0U2OduyUokxCdtFcqyh2JRlPNyxCYRyrtIB/FMxIkv4neufyVL0JqB7IRyjApXFAGkogINV3FkaNo8fdyV+AgeKIBS07QUlKwG2KQHnxWEznuaKtcs/kagS6Ng54TOHB/JlzC3vUjvesuEI9CsefqJNcVzvj7E8dzoA/d+WooPwfb5vYZfh03O0CQBV3eQ==
Message-ID-Hash: 5TTXESINVPDJ3ZEGQPR73BTWQDO63YKA
X-Message-ID-Hash: 5TTXESINVPDJ3ZEGQPR73BTWQDO63YKA
X-MailFrom: irn@irn3.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-dnsop.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: dnsop <dnsop@ietf.org>, dnsop-chairs <dnsop-chairs@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [DNSOP] Re: Introducing draft-ferro-dnsop-apertodns-protocol-00.txt
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/EA2bKZh1aJrXIaVd299v9b-Sy9s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Owner: <mailto:dnsop-owner@ietf.org>
List-Post: <mailto:dnsop@ietf.org>
List-Subscribe: <mailto:dnsop-join@ietf.org>
List-Unsubscribe: <mailto:dnsop-leave@ietf.org>

Hi Mark,

Thank you for the various points and m advice that, I really appreciate.
Your points on TSIG and SIG(0), I hadn’t fully considered the SIG(0) bootstrap flow where the device generates the keypair and exports the KEY record. That’s a cleaner provisioning model, especially if manufacturers pre-generate device-specific keys.

I’ll be testing this approach against the current HTTP-based implementation to evaluate the trade-offs.

I also agree on IPv4 scalability. The protocol treats IPv4 and IPv6 as first-class citizens, with native support for both in a single atomic update. CGNAT realities make dual-stack support even more important now.


Appreciate you taking the time.

Best regards, 
Andrea Ferro




> 
> 
>> 
>>> On 19 Jan 2026, at 19:55, Andrea Ferro <irn@irn3.com> wrote:
>>> 
>>> Hi Mark,
>>> 
>>> Thank you for the detailed feedback.
>>> You’re right that RFC 2136 UPDATE forwarding is well-defined (Section 6), a provider could accept UPDATE and translate to their backend. And DoH wire format could technically carry UPDATE messages.
>>> 
>>> However, I’d like to understand how you’d address these practical gaps:
>>>    •
>>> Router DNS codee consumer CPE devices run dnsmasq, which is a stub resolver/forwarder, it has no RFC 2136 UPDATE construction code. OpenWRT’s ddns-scripts shells out to the external nsupdate binary. Adding UPDATE+TSIG support would require significant new code.
>> 
>> One always has to write code AT BOTH ENDS.  We already have well tested code to process UPDATE requests in DNS servers by multiple vendors.  That’s one end dealt with, it just has to be enabled.  There are already standalone command line tools that can send update requests using TSIG or SIG(0) as the authenticator.
>> 
>>>    • Key distribution RFC 2845 explicitly states “No provision has been made here for distributing the shared secrets.” GSS-TSIG solves this via Kerberos, but consumer devices aren’t domain-joined. How would a provider provision TSIG keys to millions of users?
>> 
>> TSIG is really nothing more than a username (expressed as a domain name) and a password (shared secret) with an algorithm identifier thrown in.  You use the device's fully qualified name for the username.
>> 
>> If one goes down the SIG(0) route the device generates a public key pair using a specified algorithm, saves it to internal storage, then displays the KEY record for that key.  This is cut-and-pasted into the zone at the device's name.  This is the bootstrap step.  The manufacture could generate device specific  keys.
>> 
>>>    • The EDNS option i couldn’t find an existing EDNS option that replaces 0.0.0.0/:: with requester IP. This would require a new specification, correct?
>> 
>> If one goes down that route.  One could just use the existing “what is my ip” services and construct the UPDATE request without the option.  One could also just use the IP addresses that are assigned to the device via DHCP / SLAAC or have been negotiated by the device with the CGNAT.  There are a number of existing protocols to do this.  For this to work to work you really want the ISP giving you address that can be reached from the public internet, i.e. one that is NOT behind a CGNAT.  You shouldn’t need to use a “what is my ip” service.
>> 
>> Note none of this scales with IPv4 as there are not enough address in the world for every CPE device to have its own unique IP address.  ISP’s need to get off their collective backsides and deliver IPv6.
>> 
>>> I’m genuinely open to exploring RFC 2136 over HTTPS if there’s a path forward on authentication. What would you suggest?
>> 
>> 
>>> Best regards,Andrea Ferro
>>> 
>>> 
>>> So just promote RFC 2136.  These boxes already have DNS code in them.
>>> 
>>> It really isn’t hard to construct an UPDATE request.  RFC 2136 has been
>>> used for decades now between DHCP servers and DNS servers but there is
>>> no requirement that UPDATE requests be processed on a nameserver,
>>> UPDATE requests are able to be forwarded.
>>> 
>>> RFC 2136 has also been used for decades with GSS-TSIG with Active
>>> Directory.
>>> 
>>> All this seem to add is a built in "what is my IP address” service
>>> and adding an EDNS option which says to replace 0.0.0.0 and :: with
>>> the requester’s IP address would suffice to achieve the same thing.
>>> 
>>> Is there any real difference between a CPE box and everything else
>>> that uses RFC 2136 today.  Is it just NIH coming into play?
>>> 
>>> If you really must use HTTPS then just encode the request as is done
>>> for DoH.
>> 
>> 
>> --
>> Mark Andrews, ISC
>> 1 Seymour St., Dundas Valley, NSW 2117, Australia
>> PHONE: +61 2 9871 4742              INTERNET: marka@isc.org