[Anima] DNS-SD TXT question (for ANIMA use).

Toerless Eckert <tte@cs.fau.de> Sun, 01 May 2022 15:15 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C9130C14F74A; Sun, 1 May 2022 08:15:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.652
X-Spam-Level:
X-Spam-Status: No, score=-6.652 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 3kgFIJfqF5b0; Sun, 1 May 2022 08:15:18 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [131.188.34.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 A6F74C14F747; Sun, 1 May 2022 08:15:16 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [131.188.34.51]) (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 faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id 4B416549C7E; Sun, 1 May 2022 17:15:11 +0200 (CEST)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id 341E84EAD79; Sun, 1 May 2022 17:15:11 +0200 (CEST)
Date: Sun, 01 May 2022 17:15:11 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: dnssd@ietf.org
Cc: anima@ietf.org, cheshire@apple.com
Message-ID: <Ym6j/8qhEzvqNw2V@faui48e.informatik.uni-erlangen.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/ciaRusOIwMcz2hadSSePhV-cu-M>
Subject: [Anima] DNS-SD TXT question (for ANIMA use).
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 May 2022 15:15:22 -0000

In ANIMA, we do have a bootstrp service (RFC8995), which has two service
points, registrar and proxy. We primarily use GRASP and not DNS-SD
for its "original" instance (with RFC8994), but we also defined service
names brski-proxy / brski-registrar.

Now we're working on variations of this service, where the overall idea
of the service is the same, but the protocol run across the service points
gets new options. Originally it is EST (RFC7030) over TLS, now we added
two new protocol options: EST over COAP over DTLS (stateful), and EST over COAP over
DTLS with our own new shim header (stateless). Note that in these new
versions actual use of DNS-SD instead of GRASP is more likely, so the
question how to do this for DNS-SD is more interesting now.

So, now comes the question of how to do service discovery for the different
options. And likely this may not be the latest options, there may also be
something likee CMP over COAP over DTLS or whatever else the industry wants.

Right now, the proposal of the draft (draft-ietf-anima-constrained-join-proxy)
is to allocate new service-names: brski-jp / brski-rjp. If we do this,
it would i think lead us down the road of creating a new set of 2 service
names for every protocol variation we run across the service points.
For example with just brski-jp / brski-rjp, we would not be able to
distinguish the stateful /stateless variations.

Instead, i was wondering if it would not be better to stick to just the two
service name and simply distinguish the protocol variations through a TXT
parameter:

      service-name: brski-registrar, TXT key: proto=EST-COAP-DTLS      # cBRSKI stateful
      service-name: brski-registrar, TXT key: proto=EST-COAP-DTLS-SL   # cBRSKI stateless
      service-name: brski-registrar, TXT key: proto=EST-TLS            # BRSKI

      service-name: brski-proxy,     TXT key: proto=EST-COAP-DTLS      # cBRSKI stateful
      service-name: brski-proxy,     TXT key: proto=EST-COAP-DTLS-SL   # cBRSKI stateless
      service-name: brski-proxy,     TXT key: proto=EST-TLS            # BRSKI

Thoughts ?

The way i see it, this should be better ? True ?

Are there pre-existing examples of selecting services based on TXT keys, e.g.:
where multiple service point instances differ by a TXT key value and the client
selects based on that ? Printer protocol ? ;-) (printers being classical example).

Downsides ?

Registration wise, we could introduce into the IANA BRSKI registry the TXT key values
as a new table to track the values/RFCs given how the service-name registry does
not really do this (TXT key only in notes colum, but without values).

Cheers
    Toerless