Re: [dnssd] Paul Wouters' Discuss on draft-ietf-dnssd-srp-23: (with DISCUSS and COMMENT)

Ted Lemon <mellon@fugue.com> Tue, 27 February 2024 22:04 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 5C16BC14F689 for <dnssd@ietfa.amsl.com>; Tue, 27 Feb 2024 14:04:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 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] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fugue-com.20230601.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 YgHIgXX0_wY1 for <dnssd@ietfa.amsl.com>; Tue, 27 Feb 2024 14:04:10 -0800 (PST)
Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) (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 297A9C151095 for <dnssd@ietf.org>; Tue, 27 Feb 2024 14:04:09 -0800 (PST)
Received: by mail-qv1-xf33.google.com with SMTP id 6a1803df08f44-69016d2e703so8073876d6.1 for <dnssd@ietf.org>; Tue, 27 Feb 2024 14:04:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20230601.gappssmtp.com; s=20230601; t=1709071448; x=1709676248; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=NiDAKZAF+f9/NaxHsYeHVof1WFByzxGH4BTi5xntUUE=; b=1+adOT7WR7S55HyjEwgsaHeU1i8zrpLFxnbrJSCt+j/DpEqvKJHiR7UgsT6ASegYfa ZW2KsQF5GBu8WaqwGmJ4jJoBw21BuwHMlpmnHdRVPL2W6McU4LHUqIvYy/xEpRSgKu47 aF5gYMexNHRlRG0AvDCoQtGGvy3UcsulSpNLN7LrQztiulqQ4BJ/6l4ft3gT2CnOXm0W /IXg98Wu1gwtM9bzP7aSOq/SHijVOVS51AAFTAErbiMHCJZhKNflCYuiyTSZ9fMKkPHN CZQBKb7tvYSYDvpIQ/Az0rng/C6vzwOYhwlAdtA7tRiW6Y9kpM6VN8exbPVNn8vGkKKL P9KQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709071448; x=1709676248; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=NiDAKZAF+f9/NaxHsYeHVof1WFByzxGH4BTi5xntUUE=; b=andNDhl0QEP6H49WHcm0gEfuYyNj+Q0kS7CPBpYzbqVz0fJ4S9bzBOMwNL/hpbvB76 WV0HGSqTQD2Btq8lOC48xNTXbBXyd0quwO5VnosP5PkTwxPXePnPv0zrUU86kQ9N7BjB kz6to9V3DvCJduG3KAStf70EZHpQdFgdE6HsHhNtoVW4q9Hg8X6eFpyEIEw2XFuvZDZa VioRb+huOQC8dF7hNP49qR+ayzCGAZsKKiy6fotmm+RtgrGRyfRXiaQJDW1lGT6ViL/y PjVTNS/cg0m9Wc7pviGTrSwdORcEdfo2YJe+0o7JhKKdFuCpzV9PwGAVXMdAYASPZK1H 13qQ==
X-Forwarded-Encrypted: i=1; AJvYcCU1+9Hg+0aallOiaHv/c6l719JybpvUiskK/yl6ontOuffWpQayhI7bZwFlGNIB4dXkqGN5Sw0TFs8fzEcz/g==
X-Gm-Message-State: AOJu0YzCBT26A00pCAZ2tjso1mR1c2eiCxN7TG4vrmSiFPnvcNiTcXZN htCpCUGLxILHRrXfLMe2l+71xNeZWYvc6CL7/wvG2OMaPFb30JvxoKuvg8LFRt6rjLw/Ylm+TDg 0iDTDCkFLOhPb7yiESq8zi9QzsmiX4D6O12Cw5w==
X-Google-Smtp-Source: AGHT+IG9FIK2ARR9kB7Je2MjOe1pRZGaI3HTWMVvaeo6x2z1hGGhurV77MTWWOZdUqJwNbF6Fp5rk6y4xYu7HbhckCU=
X-Received: by 2002:ad4:5beb:0:b0:68f:8e3a:51e9 with SMTP id k11-20020ad45beb000000b0068f8e3a51e9mr3510260qvc.35.1709071448526; Tue, 27 Feb 2024 14:04:08 -0800 (PST)
MIME-Version: 1.0
References: <169161776539.42424.17593491652625092336@ietfa.amsl.com> <CAPt1N1kLZMGvp89mUnHzpMH_i0P3hFdzJyM4OZ694+-vx=D_dA@mail.gmail.com> <CAGL5yWaZ7kSq2Zcx4wRPrurZGmL6S7JrvBwHnRYgU95t9x=sKg@mail.gmail.com>
In-Reply-To: <CAGL5yWaZ7kSq2Zcx4wRPrurZGmL6S7JrvBwHnRYgU95t9x=sKg@mail.gmail.com>
From: Ted Lemon <mellon@fugue.com>
Date: Tue, 27 Feb 2024 17:03:32 -0500
Message-ID: <CAPt1N1mn0mAMgHSM-BPbw0SfcDTGWgJWgyntX53cKA5X0oZw2g@mail.gmail.com>
To: Paul Wouters <paul.wouters@aiven.io>
Cc: The IESG <iesg@ietf.org>, draft-ietf-dnssd-srp@ietf.org, dnssd-chairs@ietf.org, dnssd@ietf.org, dschinazi.ietf@gmail.com
Content-Type: multipart/alternative; boundary="00000000000095e2d006126434a4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/LWQS3w3XO3FX9zJ7uhoRzx_x4Ds>
Subject: Re: [dnssd] Paul Wouters' Discuss on draft-ietf-dnssd-srp-23: (with DISCUSS and COMMENT)
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: Tue, 27 Feb 2024 22:04:14 -0000

Thanks for getting back to me, Paul. I know the response was a long time
coming and it's always extra work to get back up to speed after a big time
gap.

I'm going to respond to the points on which there remains disagreement and
leave the rest out.

On Fri, Feb 23, 2024 at 4:15 PM Paul Wouters <paul.wouters@aiven.io> wrote:

>
> On Wed, Aug 9, 2023 at 7:59 PM Ted Lemon <mellon@fugue.com> wrote:
>
>> On Wed, Aug 9, 2023 at 5:49 PM Paul Wouters via Datatracker <
>> noreply@ietf.org> wrote:
>>
>>> 2) finding the domain name to use
>>>
>>
>>> In Section 3.2.2 on where to publish, hosts need to somehow know their
>>> domain name. Especially for roaming devices, this seems unlikely and
>>> the only choice to participate would be to assume the name given by
>>> DHCP for the 'search domain'. I feel that by not stating this explicitly,
>>> that is what is going to happen anyway. So why not state it? Or if this
>>> is really unwanted, add such a statement to Section 3.2.2.
>>>
>>
>> RFC 6763 actually includes information on how to figure this out, in
>> section 11. This is discussed in detail in sections 3.1.1 and 3.1.2. Maybe
>> it would be worth adding a pointer to that here?
>>
>
> Thanks. That does explain it. I'll leave it up to you to add a pointer or
> not.
>

I've added:

   As described above, full-featured devices are responsible for knowing
the domain in which to register their services.
   Such devices MAY optionally support configuration of a registration
domain by the operator of the device. However,
   such devices MUST support registration domain discovery as described in
<xref target="RFC6763" section="11" sectionFormat="of"/>,
   "Discovery of Browsing and Registration Domains".


> 5) Basically Updates: 2782 without saying so
>>>
>>> Section  3.2.5.4 Compression in SRV records basically updates RFC 2782
>>> without
>>> stating so via an Updates: clause. As we are talking about DNS library
>>> code reuse,
>>> I think this would be unwise to update. I would drop the option of
>>> allowing the
>>> compressing of SRV target names.
>>>
>>
>> I don't agree that this updates RFC 2782. Only SRP registrars are
>> required to support this. We are not saying that DNS authoritative servers
>> need to support this (or indeed that they should do it) nor are we saying
>> that DNS caching resolvers need to support this when parsing answers to
>> queries sent to authoritative servers or that they should do it when
>> sending responses to clients. The only case where this is required is when
>> parsing SRP updates. Would it help to say that more explicitly? I thought
>> we were clear on this, but I don't mind being even clearer if you think
>> it's necessary.
>>
>
> My focus here is on DNS library code being re-used and affected. Is packet
> size really such a big issue on a LAN that you say SHOULD for compression?
> If this was a MAY I would be happier,
> as using a stock dns library would not cause breaking a SHOULD clause.
>

The problem is that it's no use if the server isn't required to support it.
I see your point about libraries—we don't want to accidentally cause some
DNS server to start sending SRV responses to regular DNS queries where the
target is compressed. However, this feels like it's kind of our of our
control. I can add some text here reminding implementors to avoid this
mistake if you think it would help. I agree that this is problematic, but
if you think about an 802.15.4 network with a frame size of 127 bytes, the
extra bytes we're saving here really do matter at least in principal.

6) DNSSEC on resolvers
>>>
>>> Section 8.4 point 1 is true for all recursive resolvers and I think it
>>> is harmful
>>> to call it out here as if it is still acceptable to run resolvers
>>> without DNSSEC
>>> enabled. I would remove the entire point 1.
>>>
>>
>> Hm. The thing is, the resolvers we're talking about here are home router
>> resolvers, and I don't know of any home routers other than those sold by
>> cz.nic that actually support this.
>>
>
> dnsmasq supports DNSSEC and I believe that is the most common dns resolver
> on routers ?
>
>
>> So from my POV we are making things better with this text. If we
>> /require/ this, I think our requirement will be ignored, but maybe not. I
>> think we would have to ask the working group whether there is consensus to
>> require it. I don't want to delete it because I think we're missing an
>> opportunity if we don't at least encourage this.
>>
>
> You can change the text to instead reference RFC9364 which states DNSSEC
> is BCP.
>

 I've updated the text as follows:

   <li>Recursive resolvers at sites using 'service.arpa.'  MUST
transparently support DNSSEC queries: queries for DNSSEC
            records and queries with the DNSSEC OK (DO) bit set (<xref
target="RFC4035" section="3.2.1" sectionFormat="of"/>).
            While validation is not required, it is strongly encouraged: a
caching recursive resolver that does not validate answers
            that can be validated may cache invalid data.  This, in turn,
will prevent validating stub resolvers from successfully
            validating answers. We can't place normative requirements on
DNS recursive resolvers, but we remind implementors that
            DNSSEC validation is a Best Current Practice <xref
target="RFC9364"/>.</li>

I'm not convinced that this satisfies your request, but it doesn't really
make sense to put normative language in here—we're simply documenting the
implications of this special-use domain, but it's up to operators to decide
whether or not they care. So I don't know what else we should say here. I'm
reluctant not to document the issue. I mean, granted, I used MUST in the
first sentence, but I'm feeling a bit weird about that now that we're
discussing it here.


>        To prevent such spoofing, TCP is required for such networks.
>>
>> It should say "source validated connections, such as TCP or UDP with
>> COOKIES"
>> (same later on in section 6.1) and normatively reference RFC 7873.
>> Constrained
>> devices could also use UDP with COOKIES.
>>
>
> We didn't consider cookies. I don't think it's particularly useful since
> it doesn't validate the first registration. That's why we recommend
> explicit source validation for the UDP case.
>

I don't understand this answer. If you want spoofing protection, TCP is
> only one option. My rephrasing makes it more general, and implementers can
> decided which option to pick.
> You can still keep using TCP. Others could do DNS COOKIES. Currently, you
> text "requires" to use TCP, which I believe is wrong.


I don't see how DNS cookies help. This is a simple request/response, and
cookies only help on the second request. Am I misunderstanding? The reason
TCP works is that there's a three-way handshake before we even send the DNS
Update.



>
>
>>         In other network environments, updates for names ending in
>>         "default.service.arpa" may be rewritten by the registrar to
>>         names with broader visibility.
>>
>> Can we avoid the use of "registrar" to avoid confusion with Registrar,
>> which in DNS speak usually refers to a domain registrar? How about using
>> "network authority" ? Or consistently use "SRP registrar". (see also the
>> use of "registrar" in section 3.3.6, 5.1, 6.1, 7)
>>
>
> Oh, good point. I think "SRP registrar" makes more sense than "network
> authority," plus I'd like to avoid confusing "authority" and "registrar"
> for the same reason you want to avoid confusing SRP registrars and domain
> registrars. :)
>

This wasn't done in the latest version yet.


There are a lot of cases in the document where we say SRP registrar once in
a paragraph, and then just registrar thereafter. I can fix these, but then
we wind up with text like this:

This means that if an attacker from outside of the administrative
 domain of the SRP registrar knows the SRP registrar's IP address, it can
in principle send updates to the SRP registrar
 that will be processed successfully.   SRP registrars SHOULD therefore be
configured to reject updates
 from source addresses outside of the administrative domain of the SRP
registrar.</t>

This seems unnecessary. Are you concerned about these cases? I do see a few
cases where we just use registrar and not SRP registrar throughout a
paragraph, so I could fix those without fixing all the others. I don't mind
either way, but the exhaustive approach feels like it makes the document
harder to read, not easier.


>
>
>>         In this case, the requestor MUST either abandon the service
>>         registration attempt, or else choose a new name.
>>
>> The word "attempt" should be removed here. It is the registration that is
>> aborted entirely, not just this attempt (or else try a new registration
>> with
>> a different name)
>>
>
> Hm, okay. How about "In this case, the requestor MUST choose a new name or
> give up"?
>

I've made this change.


>
>>         If the key lease time
>>
>> Should be: if the KEY lease time
>>
>
> Hm, we actually only use "KEY lease" once. Everywhere else we say "Key
> lease." I don't see a strong reason to use all caps, but we could if you
> think it's important. We should definitely be consistent.
>

Same here.


I went with "KEY lease". Even the capitalization of "lease" was
inconsistent. :)


> Sorry I took a bit long to respond. Hopefully we can have a few quick back
> and forths and move the document onwards.


I think the delay is my fault, so no worries. Thanks for getting back to us
on this!