[dnssd] Re: SRP: clarification of SRP requester's retry strategy for YXDomain error

Esko Dijk <esko.dijk@iotconsultancy.nl> Mon, 07 April 2025 09:46 UTC

Return-Path: <esko.dijk@iotconsultancy.nl>
X-Original-To: dnssd@mail2.ietf.org
Delivered-To: dnssd@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 5CB3C184B5E3 for <dnssd@mail2.ietf.org>; Mon, 7 Apr 2025 02:46:16 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=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 (1024-bit key) header.d=iotconsultancy.nl
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 7cIjNUcihuLj for <dnssd@mail2.ietf.org>; Mon, 7 Apr 2025 02:46:15 -0700 (PDT)
Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2116.outbound.protection.outlook.com [40.107.105.116]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id BA532184B5D8 for <dnssd@ietf.org>; Mon, 7 Apr 2025 02:46:14 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JyaUi/uhfY0BA5JZiiazkg11HoDEcpOsARy4fRvZHDujNlqhc13F1CScPu9oSj0GN6glAdCSRhKNQPGmHIGGQV8EKQ+15aVPZQJlPYK/PtLH0pGQtsLXDjtwlqwiaEJqyWjdAPYGtosjPw/k6FL5VyLnhP2GhEW6ala/ylY3itEoe7tVSvp9tPUzaOvG+ja0uC4JVLrBjw8cSfaN3zWJeoKpd2vdnxhD5sRZTAOGGYtSJFQJm+MMjucYbvuF6yrFR2ADn/Um68vT7xCFYlpDp2GC4MtylJKQIPgSolRAfqzoCI1o8CCKTG1wMmnSA9oa62AHNxboiFxEgsCzkca7Hw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IOkQis+TOEGgADjzVP87R4UlCVhpGq1Iif125h92D5I=; b=H15RCPWs5r//ypLmhplJyoT6EjfSvrtp4CFw0FXT/sraZp6H/PcAqX7swnA+lA0DU4Jb2lzUmO4Ccy+D4M3JVDad30cLgdFoArGZmz4hXqaUOm22AOaAARbzOu5UW6IhrFVv9vxQnh2DjDOwMq3hVGV6eip8j9qYQPXkWK+jvAaGN8IrBBvVA6q4U1nB1ORgDoI2esQKJhrI6RrNAL/rIZvAFX8wnzm0ZBahgqLfHpivPzpYbfO4z70bS8XrPDmw9MgaA8qjDdy8m6omXV4Z6KRdjodcprskieBobbAF3xnYrwrTbu1AzVJrVoP3Qo57rHGAQT+bGLf0OXPXl+CjmQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=iotconsultancy.nl; dmarc=pass action=none header.from=iotconsultancy.nl; dkim=pass header.d=iotconsultancy.nl; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iotconsultancy.nl; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IOkQis+TOEGgADjzVP87R4UlCVhpGq1Iif125h92D5I=; b=EzkF4Y9b3h5JaSFfJeHhxzgVY8sAQS4LrAdxWSQ6ZHw9Nx0/Ivr0hEuEmcUPobmlpr8LbRlX8/l3tj2LTHHOVWK/+mgRMcWpxUMqRatXwyPNAZqPycURm6auVyiXM4Jdbf/Q6bJvcTlR7ImAYfgOga2mklDxA6vKUe3EKAAq6Ko=
Received: from GV1P190MB1970.EURP190.PROD.OUTLOOK.COM (2603:10a6:150:56::7) by VI1P190MB0654.EURP190.PROD.OUTLOOK.COM (2603:10a6:800:123::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr 2025 09:46:09 +0000
Received: from GV1P190MB1970.EURP190.PROD.OUTLOOK.COM ([fe80::4cd8:3f21:911b:c088]) by GV1P190MB1970.EURP190.PROD.OUTLOOK.COM ([fe80::4cd8:3f21:911b:c088%4]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025 09:46:09 +0000
From: Esko Dijk <esko.dijk@iotconsultancy.nl>
To: Abtin Keshavarzian <abtink@google.com>, Ted Lemon <mellon@fugue.com>
Thread-Topic: [dnssd] SRP: clarification of SRP requester's retry strategy for YXDomain error
Thread-Index: AQHboBWxmW34llpykU+LqIzEGPppRrOTV1QAgACIrYCABB3BsA==
Date: Mon, 07 Apr 2025 09:46:09 +0000
Message-ID: <GV1P190MB1970688C5B857BF0F17B9D9AFDAA2@GV1P190MB1970.EURP190.PROD.OUTLOOK.COM>
References: <DU0P190MB19784C71DBDBF2681458D850FDA02@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> <6F56CEA1-EBC4-440E-85D4-181558B63305@fugue.com> <CACce4dRTc_gjSoUJVJ6DeOZmM17x+YDji9QxUxB+Z4WnMdGEsA@mail.gmail.com> <49E1F965-1D65-4B20-A887-A189451A6C96@fugue.com> <E431DC3C-FB8F-470E-A606-D3493CA4EE36@fugue.com> <CACce4dR=cK79xWgMC+EosHyGip7394+eBwDDXr1B5CLaLTbJJw@mail.gmail.com>
In-Reply-To: <CACce4dR=cK79xWgMC+EosHyGip7394+eBwDDXr1B5CLaLTbJJw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=iotconsultancy.nl;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1P190MB1970:EE_|VI1P190MB0654:EE_
x-ms-office365-filtering-correlation-id: 7c58eab0-dc04-4470-da5c-08dd75b90679
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|4022899009|376014|366016|10070799003|1800799024|7053199007|7055299006|8096899003|38070700018;
x-microsoft-antispam-message-info: mHgc8bC04ompNgcBH5lrTtv8COUCOV/MJ/cQnu1D4CLPgsHU482dcD9zL+bkIOeMNgJsQlc79t8yowd4yHf3e98oVpm9Yq/I86sHQ9CJ2dtIzp//UDnog+HSQXuk45m6uoK1TRPhcfOnWRqFDeQJFY2k7Q/8xD1lPgnZkfg5gxNv6fl1J9VQXJV36CXS74IOTYU6ruTbBmvDTINUtJXV+5JbMhPI1ydrS6W1M4/kea5UiMqPWam5jMb/fGAhO5a8j+1k43X8Nl3OvRDVNftkL7p6InYEbfWVv8opjAfLsL7uPc5C4xoPWQe7rTRGUaUFHneBGwMS09jTijV6i6b56MDmIRO5IspPAFn/sDxwwtHDijOEMpXvkvAq28oFcn0zu4hXbMd081PkozOHY87ePv6hdO22NiazH21h5XPSosMVionNYpkJYsfvAMWehkOTVMrt+rmSEaQcD+k+nSqj/0p/x2WMlzZd0bZnAbwwwJ7BCvC+XsJ5Z6pqsOKR3keoNZ/iKBeL9MnsDKnDC0iOasB7HWHkiti7O5Z21hszqTiEhTTo9ENQpUqAlp66b0Wt27bX0/KI0bn5GDTrHiOQOrHlWdMRZfhJM1Yar/jES9BATelN8SniTPdEjraUcLWMAtdomX5GSccplTFs9VZCe/GkJHnUrjTxEFhv2rsmgxoAIppyHkfMYEtNPvwe4/ZSYAZE3jnOfMMBvdXHt8RXN4nf74fT+Hr5+wGjFywp+23RvCjvSB8Y8O6dcyIKGWtE0qyYUvMG78LDg4MeFN9bgmEHP6oKg2HvYM61B203nd+2ThkXd1AL+ByUHQulb2XNHhtNrbiBMfPf7pi/bblOjahzna4TSQoy2j3tNKry7/S0NSeowxQ3JYESfhG1fXegNBnf4EqmqTwAWtoK7yhOu+FygJn8HP/SZpbBXBw8xhlKHFPuLerGCbUq3QhoOKXkWAyfcX8e8BVXjHrjsF+HVG7qdTCJ2dgD0tePf4CWo5i+BexixsNCM2HxspSJtLmptSU6m7cVr0HqD1zaKL8i/ph59Gh/EEQnLT1ji58a8V/Ql+/OCferqoRkVK+l0E4ANEWRhAfLwcAnx7ocOlKjNp6957yGMeJl0WBLM+m7twVwN+89xjp3IpBKSc1X/sqJgFl9u/OtLrY0GoEN2Qe1BJc+ow8bONk2Z75dFtamKat+AdYk5NyU8wWJ+extlrjNfw30jeaOfiFiU5X8tKLmbREnSqzpiBAci03QPKe91TXep8JRvp9gChKCKJYLwVpzD9/pOcbanFL3bnr1xtt9D9pws2qImfLWljbEQ8cmYjlh2ROU/+3phEGONvr5VxxegJzdyLYy0FVJVRe0Tc6A3RNXJ5lV1G1PIOUVF4eXWVmWN8OeONoRHB8YWhxW3pDxk0DGxkBbiV1XggrIR28E3BlQOcrbXDrBXgXyxlMUnh9+zg7dcpa/beGY2xWsa/PWec3Zvu+ghrCxjOEqqljucg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1P190MB1970.EURP190.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(4022899009)(376014)(366016)(10070799003)(1800799024)(7053199007)(7055299006)(8096899003)(38070700018);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 8MyqpdgdxG67kVdey9EeaWxMLXe9zGaYo0y+IpUYUc8MTCzdtEXqRIg+2h2wvJIuq3enWGpfK+tMRb4QUcqsvBCCqoQabmn2x6hnoeDA3E3qhciMKN/f04JY/+sZjZ5gQb7xVCCfCppjzT4O8M6B91Cx/gYtBRYrQLQMa27IPBQ5GctAAXa0cs+xq8h9FvflMX0VLZvAARjSNAFZtHVvC3hrvmM75ElrFnGJB5SeYlrtjf4Ze1/Uyyu0nRzo2IlaORC7oy2xMfMkQKsnhKT8ks6nlTrI1sUeLszwyBGHtiTIddT6iWcmC12UtJzwbG08aOMf0hYsZYl9wktCpJ0+aNwZAwTg2N8I4mc+ode+CmmdBLRSoeE6xOaDVPAQ2KBz9gHLmIkcLoJ4bwSHRB15cD5iG79WL1mVCMM2Pan9JrHA+rEHiJwjOYTxuOQEvZPaV4xv8NY6uKP/zMrargOn9jIRFtNSXhGHnWRNMaLUSRExcT2YGzvp16SsKXJ2SJ4YG8tI5mq3ALN1j+88sMRgLa9oc2AuHEtda2UiW+1dK698NHjEsEo4EhEitFfEHffvJEVFlYbRCoCNdXJ/kfR/W5zLcaeg57FAqc2to2d44XhMPmh8sW/xKgK7iTnCgUkRlIDGsUzi2xG1ifY9BavswK9PzUdO01XnjVS1hFsHOiE6UUlsnRKGr4vwJmSdgvObiQFsMj/1gZc+cea0wvH69TNKLhs+cBm1Ae7LkSz7VpxacDI4wsWyl9+riBUt/x5G91ZRSGvqBZ1XRce/Lo+jxxPP7lbSTugZ5bPtgpXbM6S6JvUm+FYFarspIL/naALjSL4KE3iGzvdq/8MJU7tRxbyD6rg5jACwxB026w7WWI0oyy/1svJiNx5v+MngnERW12NYa65T3sl5cpLrDNzluHhCEVd8c7lZc7UQlkfOjTeZK1akus/sn+xrIzZwFxffwby/6mpj6dh21+G6A8d8g56wpJYlM7D2wqcmeunGBIvLuo0a4zZkgqzTlqHiZ8r8vprRJ9aR9IIy5v2oF1JbKTxcNgIQX6nkR4yvU+B6pUor8OLyTqcf/McKbubvq3byeZcMnDH8FKvyDdTOQUnUCOW3KUzrAvy1SHZreJ5sUt51oMOd7dhOn+FRs+eNclZRKpu5eWT+yUTW3w7/sQ+EzZfXNL4QQW9uNnPD96KgwyzzWnMS+XZMDwP3GAvBg39+CtzxzvHewOoqyWpmJAZOeDaKEfpG7TS4Mdc26typhaqaiC7+Qf+nHv8JkCX4+kaJ4es+AW81JZOkccEGZc4qy72S/sxFIvVcCWYq1t5PjcGIbwfA9OKBcP/gVVnSjZWim4qDtk9JUK48lVxocV/c4/PAmaGc78vX21sc7iBs+Fkl8VTOIFdexKK0iuGoGa6gZ3MNonZkHEbCU6YmOD7el4nH2e7g5gt/giG/FlEdGz4Sb6fJ5Bq4lrqOE9RpPR7yudY+fKdIYg9wu+QDrnnlmj/kKynOGEum0XUZBPxiBhKA2WYXPfUPhE2J61sMHhA3yUKGHTUZWRWEh6fv+lQsEgqW19EsbSxgulVoVxnU00ct5B/k6wSsnt7sXcr6mUiWIN6vvoA/CXPplprUQVtCkanXLr3Y8piK5OLW4r1ORG1NpdNol9DsWoo7rwDh4erDOZcVxCiU2je12im6vR8Wmw==
Content-Type: multipart/alternative; boundary="_000_GV1P190MB1970688C5B857BF0F17B9D9AFDAA2GV1P190MB1970EURP_"
MIME-Version: 1.0
X-OriginatorOrg: iotconsultancy.nl
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1P190MB1970.EURP190.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 7c58eab0-dc04-4470-da5c-08dd75b90679
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 09:46:09.4403 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 58bbf628-15d2-46bc-820b-863b6774d44b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sACGmEGWZ/+ZTQV4jqxD+lp65AyJWHtOnMT7Ru80iWKYbJAKLb6m1rby1vVUf033XzbDGTj5G6uPsCWgCXXtQB0r1qVfkH/xaKIMdCgqLjs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1P190MB0654
Message-ID-Hash: MGWSQTPPWRUHPQN35NB3OJFTUA77GICZ
X-Message-ID-Hash: MGWSQTPPWRUHPQN35NB3OJFTUA77GICZ
X-MailFrom: esko.dijk@iotconsultancy.nl
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-dnssd.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "dnssd@ietf.org" <dnssd@ietf.org>, Stuart Cheshire <cheshire@apple.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [dnssd] Re: SRP: clarification of SRP requester's retry strategy for YXDomain error
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/INpswm2kKDsTPFtYg5r0jjtjqsM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Owner: <mailto:dnssd-owner@ietf.org>
List-Post: <mailto:dnssd@ietf.org>
List-Subscribe: <mailto:dnssd-join@ietf.org>
List-Unsubscribe: <mailto:dnssd-leave@ietf.org>

Right, I didn’t intend to change something in the SRP draft at this stage – the text there looks correct to me in its scope (which is a single SRP Registrar. It doesn’t consider multiple cooperating ones or non-cooperating ones.)
First I wanted to clarify in that context what “give up” means for the client. At least it means giving up trying to register the name(s) with the same SRP Registrar, in this scope. The case of multiple Registrars seems to be out of scope.

Second was the consideration of clients with fixed (unique) names that are unable to choose new names. In this case a name conflict is either the result of a self-conflict (possibly due to bugs or unforeseen network scenarios), or a real conflict (where one actor attempts to ‘steal identity’ or DoS the true device). In the scope of draft-SRP, the client just has to give up. But in practice it will still try again next time it’s booted up. (And it better – that’s way more robust.)

As Abtin mentioned, for the Thread specification there can be specific workarounds for such issues that are hopefully not breaking the protocol. In this specific context (Thread), also testing is done to build confidence that the workarounds don’t break anything.

Esko

From: Abtin Keshavarzian <abtink@google.com>
Sent: vrijdag 4 april 2025 20:34
To: Ted Lemon <mellon@fugue.com>
Cc: dnssd@ietf.org; Esko Dijk <esko.dijk@iotconsultancy.nl>; Stuart Cheshire <cheshire@apple.com>
Subject: Re: [dnssd] SRP: clarification of SRP requester's retry strategy for YXDomain error


I agree that updating the SRP RFC document on the IETF track to add new behavior doesn't seem necessary. The SRP RFC can continue to state what it already does. I also doubt Esko intended to suggest changing the SRP RFC.

The Thread specification adopts solutions from various standards and sources, adding clarifications that may relax or update certain aspects. In line with this, the Thread specification is the appropriate place to add clarification regarding SRP retries.

Regarding TSR, while I haven't delved deeply into it, I agree it generally seems like a viable approach to address many self-induced conflict errors in the Advertising Proxy. TSR is a good example of solving a problem created by earlier design choices (ideally, such considerations would have been part of the original Adv Proxy and SRP designs). TSR should be viewed as a solution for the future and I wouldn't consider it a mature solution at this point. It appears to be still evolving. I've noticed changes in the text whenever I've reviewed the text and I understand it was only recently accepted by the IETF working group.

We must also note that Thread Border Routers following the current SRP and Adv Proxy specifications are already deployed (by various vendors using OpenThread or their custom implementations). It's crucial that Thread devices running the SRP client remain compatible with these existing Thread BRs.

On Fri, Apr 4, 2025 at 3:24 AM Ted Lemon <mellon@fugue.com<mailto:mellon@fugue.com>> wrote:
I think we let this drop, but I'd like to get to a conclusion. The current SRP document says that if you get a YXDOMAIN, you have to give up or choose a different name. Abtin pointed out that with an advertising proxy, it's possible that the YXDOMAIN could be due to there being two non-cooperating advertising proxies, and that in this case it makes sense for the client to try the next advertising proxy.

I would like to first state that although I understand Abtin's point, I don't think this is the right way to solve the problem. This is one very specific situation, which is completely addressed by TSR: in the case that the advertising proxy implements TSR, this scenario cannot happen. So we are only addressing a very specific use case here: multiple non-cooperating advertising proxies that do not implement TSR. In any other situation, the retry is incorrect behavior. On a constrained network, it's expensive incorrect behavior.

So I certainly do not thin that we should codify this behavior in the soon-to-be-published SRP document as an AUTH48 change. This is behavior that was never discussed by the working group, and that's generally contrary to how DNS works in the real world. In the real world, SRP updates update authoritative DNS servers, and authoritative DNS services are a single source of truth. The problem here is that mDNS is not DNS. We've come up with two ways to address the shortcomings of mDNS with respect to SRP, neither of which involves changing DNS protocol behavior.

To dig into this objection a bit more, in order to correctly specify some new behavior for YXDOMAIN, we would have to specify something like section 4.6 of RFC2136. But that says that when we get an adverse response, we delete the responding server from our list of servers to attempt to update. The reason for doing this is so that we don't cycle back to it later. But we don't have that option here. So specifying this behavior in detail is actually a fairly significant job, and not something that I think makes sense to do in AUTH48, even if it were the right thing to do.

Given that we have two fairly mature solutions to this problem—SRP replication and TSR—I think adding a third solution is not a good idea.


On 28 Mar 2025, at 20:14, Ted Lemon <mellon@fugue.com<mailto:mellon@fugue.com>> wrote:

You're right, if you set things up this way then it makes sense for the client to try the next server. The latest advertising proxy draft discourages returning YXDOMAIN in this case, and the Apple implementation no longer does this. We use replication, so it's a bit different, but even without replication, if you have TSR, you won't get a conflict in this situation, because the stale data on the other server will be flushed when the new data is announced.


On 28 Mar 2025, at 19:25, Abtin Keshavarzian <abtink@google.com<mailto:abtink@google.com>> wrote:

> No, this doesn't make sense. If the name is in use, the name is in use. Trying a different registrar isn't going to make things better. It might make things worse, though: if the name has been claimed on one registrar, but not the other, and both are acting as advertising proxies, then registering with the second registrar will crreate an mDNS name conflict, which is an additional mess and an additional performance hit. There's no good outcome to re-registering when you get a YXDOMAIN response—you need to choose a new name.

I disagree. This can indeed be useful.

Example scenario:

- Two (or more) Thread Border Routers acting as SRP servers (registrars).
- A device successfully registers with one with a long lease and key-lease.
- While its lease/key-lease is still valid, the device is rebooted and becomes offline.
- Later, the device comes back online but now happens to choose/prefer the other BR (registrar) to register with.
- This creates a name conflict as the name is still claimed by the other BR (registrar), and the device receives an NXDOMAIN response.
- Upon this, the device switches to the other BR (registrar), which now succeeds.

Ted, you did explain the situation but seem to miss this.

For the record, this situation has been observed in the testing (of Matter/Thread), and this mechanism (switch server) was added in the OpenThread implementation since 2021 and has been well-tested and deployed.

Abtin.

On Fri, Mar 28, 2025 at 7:38 AM Ted Lemon <mellon@fugue.com<mailto:mellon@fugue.com>> wrote:
On 28 Mar 2025, at 13:24, Esko Dijk <esko.dijk@iotconsultancy.nl<mailto:esko.dijk@iotconsultancy.nl>> wrote:
From the SRP draft -27 section 3.2.5.2 on name conflicts:

   … the registrar will respond to the SRP Update with a YXDomain RCODE [RFC2136]. In this case, the SRP requester MUST choose a new name or give up.

Some discussion came up on this:


  1.  In a network with multiple SRP Registrars, the SRP requester could also retry the SRP Update at another SRP Registrar if one fails.  I assume this does not violate the MUST requirement as long as it does not retry with the same SRP registrar. I.e. “give up” means giving up the registration with that name for this particular SRP Registrar. OpenThread for example implements retry with another Registrar.  It could happen that this other Registrar accepts the SRP Update.  Any disagreement on this interpretation?

No, this doesn't make sense. If the name is in use, the name is in use. Trying a different registrar isn't going to make things better. It might make things worse, though: if the name has been claimed on one registrar, but not the other, and both are acting as advertising proxies, then registering with the second registrar will crreate an mDNS name conflict, which is an additional mess and an additional performance hit. There's no good outcome to re-registering when you get a YXDOMAIN response—you need to choose a new name.



  1.  Choose a new name: some application layers (Matter) specify particular names to be used, so won’t be able to support selecting a new name.  In this case, the SRP requester would give up presumably. However, because SRP Updates have a limited lifetime, it’s still worth retrying the registration later on e.g. some hours or days later. Any opinions on this? That’s not strictly a “give up” action but seems reasonable to do.   E.g. there could be a lingering SRP registration causing the conflict, or a device temporarily trolling (by snatching a device’s unique name) at an mDNS link. Such situation may be resolved some hours later.

In the case of Matter, the names are guaranteed unique. So if we get a name conflict, something weird is happening. Trying to write code that adapts to this is unlikely to succeed, but I agree that waiting a bit and trying again is harmless, and could help. It would be better to understand how such a name conflict occurred and address that situation. E.g., if the conflict occurs because the device has a Thread and a WiFi interface and advertises the same name on both interfaces, then it's quite likely that the SRP server will get a name conflict when it tries to advertise the name with mDNS. In this situation, it might return a name conflict error (although the Apple implementation no longer does this). So this is actually a protocol problem we need to solve, and re-attempting the registration later, while it might happen to work, isn't doing that.


_______________________________________________
dnssd mailing list -- dnssd@ietf.org<mailto:dnssd@ietf.org>
To unsubscribe send an email to dnssd-leave@ietf.org<mailto:dnssd-leave@ietf.org>

_______________________________________________
dnssd mailing list -- dnssd@ietf.org<mailto:dnssd@ietf.org>
To unsubscribe send an email to dnssd-leave@ietf.org<mailto:dnssd-leave@ietf.org>