Re: [dnssd] Adoption call for draft-sctl-advertising-proxy

Jonathan Hui <jonhui@google.com> Thu, 12 August 2021 17:44 UTC

Return-Path: <jonhui@google.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 3EE5D3A443C for <dnssd@ietfa.amsl.com>; Thu, 12 Aug 2021 10:44:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -18.097
X-Spam-Level:
X-Spam-Status: No, score=-18.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.499, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z7aJOKNAg8o1 for <dnssd@ietfa.amsl.com>; Thu, 12 Aug 2021 10:43:54 -0700 (PDT)
Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2BB73A4438 for <dnssd@ietf.org>; Thu, 12 Aug 2021 10:43:54 -0700 (PDT)
Received: by mail-ot1-x336.google.com with SMTP id a7-20020a9d5c870000b029050333abe08aso8653469oti.13 for <dnssd@ietf.org>; Thu, 12 Aug 2021 10:43:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nSGWrh9sO7zV2ATuyFFcFnP4aqjvFYe1TlRNXyL2LAw=; b=ctxG+vatdOwK3IxisY+pC1dSBfi288Wo8atGCYx+7gTFId+xe29kP5K3zt4dkkV/Uk aKkUJaFiJVgV3+qNP4eABRHiATSTAqxNcAidElRBI/p62nADpl1MwM+fFZRST7tAn2Hf Pv7RxBeqLNVtCmX8XuMgP/eoaDNWFA18gjlk4Y7SGzh1ghitR/cgOWJ5aYXvD2ofXfDL TdsoEmR9K4Fv++uI5pl9ewHGkMhTX2PpEqe39yZg1IKX18UizYchi4zAZDDRreVwbCtA mYnMHbjYwLW84ztmHnTpxnsERGMXKnObUro8uM6whGw+7sk6TQMYT7Xljus+HBho57nt mQBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nSGWrh9sO7zV2ATuyFFcFnP4aqjvFYe1TlRNXyL2LAw=; b=FCPtJVZBYaxqSqIK3QvRZGvbKKuMkn1Ri/yvfKvvzWFX3zRlmVj4mntgbVfNBF9XW1 VqbI89NcI45UIwKXzrDcKsiUbIqQbxL6zEBIDsa9JLMkiGcdhIMnHjmy+yM300a3Xh/+ XFo5kAMRbmR3ppmAUgAzslmtiD7JoZXBLgaOJgZ4h3aJh9K/RmcrwzqF4PGeZHsJpAQG U/9t0MT19F1U0HxsGLHEOcqpgkIxd72L4+HySWvKlneOjKgiIWz2pYvEmPG+abcLK+D1 fa/ATTD8WtCPOJazkvifLfOwmmPkQnPvi5fupY6va+r/9e03A+c6P90icBKbS0cntX66 e/YA==
X-Gm-Message-State: AOAM5322c8y544Wjbx+aX1fQ0dsvBJmIJPnTbcYbAg0yczyLYy3ZbZv+ Bb7pORkaIs8GXexjvn2+LnvzYOH1T2cIckwel0/otw==
X-Google-Smtp-Source: ABdhPJyH5iYIpaA1covWoaRXVtS1zaY3F9eZJSEdBJ8fu2aHNl+J0YVAx0vdZrlRKtOtbtze3nhVHByDJuxQgYAFIuE=
X-Received: by 2002:a05:6830:2646:: with SMTP id f6mr4470651otu.129.1628790232092; Thu, 12 Aug 2021 10:43:52 -0700 (PDT)
MIME-Version: 1.0
References: <CAOOu1=AJSMur=Nj4Vq_Hpr0U0EnZN-GSNsoF8m+XSeFHUWksbg@mail.gmail.com> <CAPt1N1=fCFizaDWf--1e+w_dkt537-ZPji9YRkCWrufS2HKYcw@mail.gmail.com>
In-Reply-To: <CAPt1N1=fCFizaDWf--1e+w_dkt537-ZPji9YRkCWrufS2HKYcw@mail.gmail.com>
From: Jonathan Hui <jonhui@google.com>
Date: Thu, 12 Aug 2021 10:43:40 -0700
Message-ID: <CAGwZUDv8+TqFKu9CSk+-x4yhsEAqni7SbT7mavTt6-VrR65vNw@mail.gmail.com>
To: Ted Lemon <mellon@fugue.com>
Cc: dnssd@ietf.org
Content-Type: multipart/alternative; boundary="00000000000032e7c905c9604714"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/zHpqfPyDT2N6aSv7gbWhnmWx8Aw>
Subject: Re: [dnssd] Adoption call for draft-sctl-advertising-proxy
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 12 Aug 2021 17:44:00 -0000

On Thu, Aug 12, 2021 at 7:59 AM Ted Lemon <mellon@fugue.com> wrote:

> This is exactly the discussion I think we want to have.
>
> With a single SRP server, this is a non-problem: the SRP First-Come,
> First-Served Naming mechanism guarantees that if the same client registers
> twice, it will be recognized the second time and its update will supersede
> the previous registration, rather than conflicting with it.
>
To address the case where a device may transition between Thread and Wi-Fi
networks, having the device leverage SRP regardless of whether the device
is connected via Thread or Wi-Fi would also resolve any conflicts that
might occur. Fortunately, SRP on Wi-Fi is something that you're already
addressing with draft-tljd-dnssd-zone-discover.

> With multiple SRP servers, we have a problem because the SRP client might
> register with a different SRP server the second time, since it has no idea
> it's connected to the same infrastructure (and indeed the SRP server
> contact mechanism may be different, so that which server is updated is
> non-deterministic or just not under the client's control). In this case,
> we'll see a conflict when the second update comes in.
>
> The way I'm currently proposing to address this is by requiring SRP
> replication when there is more than one SRP server, and by not renaming,
> but rather waiting for the conflict to resolve. With SRP replication, we
> can use FCFS naming to see that it's actually the same client doing the
> update, so there's no conflict at the SRP level. The only conflict is in
> mDNS. When the SRP update propagates to the SRP server with the conflicting
> data, that SRP server will remove the old data and replace it with the new,
> which eliminates the conflict.
>
> I think this is pretty tight; the only problem is that it does rely on SRP
> replication working well. If SRP replication gets wedged, then the conflict
> won't be resolved until the old data expires. This is not great, of course.
>
I agree that SRP replication is an elegant solution in concept. I'd like to
get some implementation/operational experience on how well it works in
practice.

> An additional mitigation strategy is to not actually detect conflicts. If
> we have two conflicting registrations, and SRP replication doesn't resolve
> them, then they just coexist until one goes away. This should happen when
> the old SRP lease expires. This means that the consumer of the data has to
> be smart about it: if there are conflicting TXT records, it needs to have a
> strategy for choosing which one to trust. If there are conflicting address
> records, it needs to do happy eyeballs.
>
If there's no good way to invalidate the old entry, then I think presenting
both is the next best solution - it at least makes it possible to continue
communicating with the service. Although, as you noted, it requires extra
work by the consumer of the service data.

> The only other alternative is to rename. I think this is too heavy of a
> solution, but I'm open to debate. The problem is that if we rename, we now
> have two advertisements for the same accessory, so we're pretty much in the
> same place we'd be with the "don't detect conflicts" strategy, except that
> we have a gratuitous extra name.
>
> So consumers of the data now have to use some other identifier than the
> name to uniquely identify the device, and if there are two advertisements
> under two different names that present the same identifier, we now have to
> have a browse going to detect that, whereas if we don't change the name,
> dealing with an unresolved conflict is a lot simpler.
>
I agree. I don't see much value in renaming to address these self-conflict
scenarios.

--
Jonathan Hui