Re: [dnssd] SRP: name conflict while not knowing which name conflicts

Ted Lemon <mellon@fugue.com> Fri, 23 September 2022 13:59 UTC

Return-Path: <mellon@fugue.com>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B4DEC152567 for <dnssd@ietfa.amsl.com>; Fri, 23 Sep 2022 06:59:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.905
X-Spam-Level:
X-Spam-Status: No, score=-1.905 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fugue-com.20210112.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lmjlfmHaQIM9 for <dnssd@ietfa.amsl.com>; Fri, 23 Sep 2022 06:59:38 -0700 (PDT)
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C44F6C1524AC for <dnssd@ietf.org>; Fri, 23 Sep 2022 06:59:38 -0700 (PDT)
Received: by mail-ej1-x636.google.com with SMTP id y3so927667ejc.1 for <dnssd@ietf.org>; Fri, 23 Sep 2022 06:59:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=SOkEXoniDCcvoJXUWjS0QCBWw08L5VVq9geQVYZd/kQ=; b=1jh4QAFuKaF87ODeINqguJWkEhRbKDernYo2WZFhdXJe3Q6C2uxkgWwvSG8LM2Wc8s Ntyo1BoKiITKleWYWmqUy9yWGyKDI1cXAA5hC+4otL7yKZp3+Z04leMl6OeeIfBIr+BB d7f8/NPC4qDf44PKyljHYXnWPIuia/5lqt5tthsOMfmr4UV+Gzm8eMrcuuDcO3Uhu/VJ PbTo+rziwL9OyQvcoeOHb/7epIV7MZJ1NoOLN9+somFeEnEv0E1kzeHHpDJN11tY2HVc lgFXGU3N8LmhFo/C63+s267vWxhTKysmv16wNmLMbW7P8RuiT51w4k1r/TFWwf0DQwID vCfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=SOkEXoniDCcvoJXUWjS0QCBWw08L5VVq9geQVYZd/kQ=; b=1W155wlibIbpkgVKxvN5jTC8435KUO60/l9cEYNT0XYgkxERMrthv4KV0qlee0nov0 CTZIjHE3E7VUhLlGm0w64yRqmg0+SFW1Lj9BfhhIbjQgC/DFr/d9s8eoFExGHWKP6/Fs bR1xvOoywjwAwhWB0AKlN93avoH4lSkPJlYcg/lwgXoyAFbEY2A1A0mRdnh06jUh3fIA pEdaStEQLOCmcXc2VfC+533dJvDIFvzqJT6nYV+r0aKhEkrP+NoSioY1AjTNuoCHjLRH S4Ci22vRRQPsNh44mVj7Ga0yNgMHgc8B8P7BwJLD4UQgEhKWJXFTp/n7i6k+C4880+Pt +VKg==
X-Gm-Message-State: ACrzQf2NwwYAO8DZbXob1qHtehugB2BteA1OWuX2Ym/1cF9eq9WSDaw1 uhbsJTrM6PC9NyYeQFaeu26W2yPjrHoYRNbz2eNg7g==
X-Google-Smtp-Source: AMsMyM4lr3spCwJHMijXCAr/CFaur/nkLqG6CM/H5CvNdHLJmDr/8LbsIots4m4E1+OhMX+5bkofvqpm9UoUkeJfvaM=
X-Received: by 2002:a17:906:58c8:b0:6fe:91d5:18d2 with SMTP id e8-20020a17090658c800b006fe91d518d2mr7384651ejs.190.1663941577232; Fri, 23 Sep 2022 06:59:37 -0700 (PDT)
MIME-Version: 1.0
References: <DU0P190MB19780211A2F50F5E66BCE005FD519@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> <CAJ5Rr7Ys+bmFiP9j3ebptBEZHXX+6rzkTRaFHr7_mmgVZb9sZQ@mail.gmail.com> <DU0P190MB1978E63F6C69807759C10FD0FD519@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> <CADyWQ+EMf3XTLuZWupLNeGwQ8Gaqd-A7BvyAs4wK-fT7M5zk6Q@mail.gmail.com> <DU0P190MB19786D6BDA466AC9667087C9FD519@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> <CAPt1N1k0si52gnCHz_A-coitbVG8AHovLaWpJXBaWiN3to0j+w@mail.gmail.com> <DU0P190MB19782E66596D8C646D5A3F89FD519@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> <CAPt1N1kOLHnKkarjfuOeqRgS0Rz8n219Av37xbLxbakwHhS5-g@mail.gmail.com> <CADyWQ+Hzg44nbJ49PwwMsK9cPVXtao2aFeiDr7n0UyCt7JXj2A@mail.gmail.com>
In-Reply-To: <CADyWQ+Hzg44nbJ49PwwMsK9cPVXtao2aFeiDr7n0UyCt7JXj2A@mail.gmail.com>
From: Ted Lemon <mellon@fugue.com>
Date: Fri, 23 Sep 2022 09:59:00 -0400
Message-ID: <CAPt1N1kUPKkSdfZj2P23fJ_2OQmRR3nQyE+O+Q90aV7qKDcHbw@mail.gmail.com>
To: Tim Wicinski <tjw.ietf@gmail.com>
Cc: Esko Dijk <esko.dijk@iotconsultancy.nl>, Kangping Dong <wgtdkp@google.com>, "dnssd@ietf.org" <dnssd@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a3685705e95896e3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/wHLcCaD8-zyZWBtEmlgtGIKgsio>
Subject: Re: [dnssd] SRP: name conflict while not knowing which name conflicts
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnssd>, <mailto:dnssd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd/>
List-Post: <mailto:dnssd@ietf.org>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnssd>, <mailto:dnssd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Sep 2022 13:59:40 -0000

Okay, as I dig deeper into this, I'm realizing that things have changed /a
lot/ since we had this conversation. First of all, for Matter accessories,
name changes by the server are simply unacceptable. So the idea that we're
going to signal back to the SRP client that we changed the name is no
longer really necessary, because we aren't going to change the name. The
current Apple Advertising Proxy implementation never does renaming.

If there is a name conflict, we report it, but we have done a /lot/ of work
to avoid gratuitous name conflicts, and I think that that work is actually
what we should be relying on here. Effectively what we've done is to make
the advertising proxy look more like an authoritative name server, and as
we agreed in the discussion Kangping found, we are never going to do this
when the SRP server is an authoritative name server.

What we've done here is the TSR draft and the SRP replication draft. The
TSR draft prevents gratuitous name conflicts when two advertising proxies
are not doing SRP replication. The SRP replication protocol provides a way
for multiple advertising proxies to sustain a consensus, so that conflicts
don't occur. Between these two drafts (really, between their
implementations) we no longer see renaming happening with our advertising
proxies.

As we move more toward unicast DNSSD as the baseline, with mDNS as the
exception, I think that the likelihood of conflicts will drop further.

My point is, do we really want to add this complexity in SRP? What is the
problem we are trying to solve here? Most of the time, the way names are
chosen is deterministic—the leftmost label in the service instance name is
the same as the leftmost label in the hostname. And so if there is a name
conflict on one, it's going to be on the other as well.

So what I think we should actually do is leave the document the way it is.
Doing what we're talking about here will create a great deal of complexity
in the client and in the server, at a very late stage in the development of
the protocol, with no obvious benefit.

Thoughts?

On Fri, Sep 23, 2022 at 9:27 AM Tim Wicinski <tjw.ietf@gmail.com> wrote:

> How about just the name(s) attempted to register with that request
> which are in conflict?
>
> I vote for being explicit on the minimum the SRP registar needs to do.
>
> also, not a chair but write up all the text changes and make sure the WG
> has no issues with that.
>
> On Fri, Sep 23, 2022 at 9:14 AM Ted Lemon <mellon@fugue.com> wrote:
>
>> Okay. I ask because we should be explicit.
>>
>> Chairs, how do you want to approach this? I think this is a WG consensus
>> that I failed to put into the document, but we didn't last call on it, so I
>> don't know that it's _actually_ consensus. Do we need a new WGLC?
>>
>> On Fri, Sep 23, 2022 at 9:12 AM Esko Dijk <esko.dijk@iotconsultancy.nl>
>> wrote:
>>
>>> > So it can certainly respond with a list of the names on which it found
>>> conflicts, but the list might not be able to be made complete
>>>
>>>
>>>
>>> I think it should respond at least with the names that it knows are in
>>> conflict (based on its internal database of SRP registrations for example).
>>> So, 0 or more records in the response.  Zero records is our current
>>> specified baseline.
>>>
>>> An SRP registrar implementation that wants to put in more work can
>>> certainly do so – we don’t need to standardize here exactly what it should
>>> do for that.
>>>
>>>
>>>
>>> Esko
>>>
>>>
>>>
>>> *From:* Ted Lemon <mellon@fugue.com>
>>> *Sent:* Friday, September 23, 2022 14:56
>>> *To:* Esko Dijk <esko.dijk@iotconsultancy.nl>
>>> *Cc:* Kangping Dong <wgtdkp@google.com>; Tim Wicinski <
>>> tjw.ietf@gmail.com>; dnssd@ietf.org
>>> *Subject:* Re: [dnssd] SRP: name conflict while not knowing which name
>>> conflicts
>>>
>>>
>>>
>>> Aargh. Thanks for catching this Eskimo, and thanks Kangping for
>>> remembering the conversation. I had completely forgotten, although I recall
>>> it now of course.
>>>
>>>
>>>
>>> One problem with this approach is that it will not be the case that the
>>> SRP server necessarily knows all of the names that are in conflict. So it
>>> can certainly respond with a list of the names on which it found conflicts,
>>> but the list might not be able to be made complete without more work. Do we
>>> want to require it to do that work?
>>>
>>>
>>>
>>> Op vr 23 sep. 2022 om 08:07 schreef Esko Dijk <
>>> esko.dijk@iotconsultancy.nl>
>>>
>>> Hi Tim,
>>>
>>>
>>>
>>> > I don't think an update to 2136 is needed here, as section 2.2.3.1
>>> describes the differences with an SRP registrations and 2136 Updates,
>>>
>>> but this response should be tested against a DNS update response.
>>>
>>>
>>>
>>> Clear, we can just add a bullet in 2.2.3.1 then as plain DNS Update
>>> isn’t updated by this draft.  What’s important then is that the server,
>>> when receiving a DNS Update that is not an SRP Update, will not use the new
>>> mechanism of including the conflicting record(s). Only do this for an SRP
>>> Update.
>>>
>>> And for testing: do you mean sending the “new” type of YXDomain response
>>> to a plain DNS Update client and see what happens?  That seems not
>>> necessary if the SRP registrar is careful in using the “new” response
>>> format only for SRP clients.
>>>
>>>
>>>
>>> Esko
>>>
>>>
>>>
>>>
>>>
>>> *From:* Tim Wicinski <tjw.ietf@gmail.com>
>>> *Sent:* Friday, September 23, 2022 12:28
>>> *To:* Esko Dijk <esko.dijk@iotconsultancy.nl>
>>> *Cc:* Kangping Dong <wgtdkp@google.com>; dnssd@ietf.org; Ted Lemon <
>>> mellon@fugue.com>
>>> *Subject:* Re: [dnssd] SRP: name conflict while not knowing which name
>>> conflicts
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Sep 23, 2022 at 4:32 AM Esko Dijk <esko.dijk@iotconsultancy.nl>
>>> wrote:
>>>
>>> Thanks Kangping,
>>>
>>>
>>>
>>> It looks like including the conflicting name records in the Additional
>>> section is a good base solution and also easy to describe in the SRP draft,
>>> which does not impact the states & procedures of registrar and client.
>>>
>>> It’s just additional helpful information the client may use to compose
>>> the retry Update.  The part about renaming by the registrar, on behalf of
>>> the client, seems more tricky and may impact states & procedures which were
>>> just WGLC-reviewed now.
>>>
>>>
>>>
>>> If we use the Additional section for a YXDomain response, this may
>>> require a formal update of RFC 2136 (3.8) since DNS Update only allows a
>>> server to repeat all records in the (error) response or to exclude all
>>> records.
>>>
>>>
>>>
>>> Esko
>>>
>>>
>>>
>>>
>>>
>>> Esko,
>>>
>>>
>>>
>>> I don't think an update to 2136 is needed here, as section 2.2.3.1
>>> describes the differences with an SRP registrations and 2136 Updates,
>>>
>>> but this response should be tested against a DNS update response.
>>>
>>>
>>>
>>> Kangping, I believe this is your workflow description - I pasted it here
>>> to assist in my readings.
>>>
>>>
>>>
>>> 1. If a name has already been registered on the SRP server or a name conflict
>>> error is returned by the Advertising Proxy:
>>>
>>>     the SRP server responds with the RR that includes the conflicted
>>> name.
>>>
>>>     If the client sees such records, it knows the conflicts on the SRP
>>> server and will retry with a new name.
>>>
>>>
>>>
>>> 2. If a name conflict is reported to the SRP server after the SRP update
>>>  transaction has been committed:
>>>
>>>     The next time the SRP client registers, the SRP server responds with
>>> a CNAME record which includes the new name.
>>>
>>>     If the client sees such records, it knows the conflict on the
>>> multicast link and will accept the name or retry with another name.
>>>
>>>
>>>
>>> https://mailarchive.ietf.org/arch/msg/dnssd/cUJBXN9WXBguPKtTYgPYq4bo4pQ/
>>>
>>>
>>>
>>>
>>> Tim
>>>
>>>