On 01/11/2021 18.29, Michael StJohns wrote:
Section 2 - "their definition should specify..." - this is obviously a
must and is guidance to the IANA for interpreting registrations. E.g.
lack of this data has to result in a rejected registration request.
Section 2.1 - "Key names should contain..." - drop the should as it
introduces ambiguity. The BNF is clear this is a MUST and is normative.
Section 2.1 - "...formats for such keys SHOULD use a comma-separated
list". This is a semi-reasonable SHOULD, but begs the question of
what you do if you don't use a comma separated list and adds to the
later parser complexity if someone chooses something else in a later
definition. Guidance such as "Requests for registration of lists or
set SvcParamKeys that propose a different format must justify any
deviation and are subject to rejection." may be appropriate here.
2.4.1 - "all RRs SHOULD have the same mode" - this is satisfactory as
the next sentence describes what to do if this is not the case.
I agree with what you write about these occurrences. Generally I hope
that it's not too late to make similar changes.
2.4.1 - " ... SHOULD be given preference..." and "SHOULD apply a
random shuffle" are not satisfactory as they lead to ambiguity between
the publisher and the client. There appears to be no good reason not
to make both of theses MUST.
2.4.2 - "SHOULD only have a single...." and "SHOULD pick one at
random". The first is satisfactory as it's covered by guidance on the
following sentence. The second is not as it leads to ambiguity and
there appears to be no good reason not to make it a MUST. Among other
things, you really don't want someone to come along later and decide
that because 75% of the clients pick the first one, they can game the
system by manipulating the RRSet.
In these two points it should (heh) remain clear that there are
situations where the clients won't exactly do this - e.g. if some
protocol is not supported by the client or if it can assume that some of
the RRs probably would not lead to success (based on recent connections
attempts). In some later parts there is text for these fallbacks, so it
probably will remain clear, though I think would be better to reflect it
in the above formulations *if* they get strengthened to MUST.
2.4.2 "TargetName SHOULD NOT..." - this is unsatisfactory as it
doesn't explain what a client should do if it receives such a beast.
This needs client guidance and the client MUST ignore such a record.
Also are there other pathological cases where you might end up with
loops indirectly? If so, guidance for the client on how to detect
such cases needs to be given.
2.4.2. "...records SHOULD NOT..." is satisfactory as it describes how
a client resolves receiving such records.
I think I agree with these two points, too.
I don't have a strong opinion on the following comments about section
3. I don't feel qualified for such details around HTTPS and similar
clients.
On the other hand, I carefully re-read all resolver-related bits (mainly
sections 4.x, 5.2, 13, 14), and there the requirements language seems
good to me.
Perhaps I'd like to note just this paragraph from 13. security
considerations:
Clients MUST ensure that their DNS cache is partitioned for each local
network, or flushed on network changes, to prevent a local adversary
in one network from implanting a forged DNS record that allows them to
track users or hinder their connections after they leave that network.
Does this imply that if a DNS *resolver* is running on a device capable
of "switching networks" (e.g. laptop), it MUST ensure this DNS cache
handling? I'm not aware of such standards-track RFC requirements so
far, and it's reaching a bit further than just these new RR types. Note
that the actual client (like web browser) most likely won't be able to
control this (optional) layer of local DNS cache, though there are
always options like attempting some DNS bypass (e.g. via DoH, most
popularly).
--Vladimir | knot-resolver.cz
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop