On 11/1/2021 11:58 AM, Eric Orth wrote:
The important part for preserving compatibility with potential future
changes is the "recipients MUST ignore any SvcParams that are present"
part.
I don't understand what would be different if the record sender SHOULD
became a MUST. Recipients wouldn't be able to behave any differently
because they would still need to ignore rather than reject params in
order to preserve compatibility with future supported alias params.
Am I missing something?
If there's not a big difference either way that I'm missing, I would
lean towards preferring SHOULD because I don't think strong MUST-level
rules should be set when it isn't necessary for the protocol. The
reason to not set params in an alias record is that they'll be ignored
and thus just a waste of bandwidth, but nothing else bad would happen
and it wouldn't limit the capabilities of the protocol. Sounds like a
SHOULD situation to me.
On Mon, Nov 1, 2021 at 11:36 AM Ben Schwartz
<bemasc=40google....@dmarc.ietf.org> wrote:
This text is a "SHOULD NOT" because there has been some discussion
of potential future uses for SvcParams in AliasMode. If
implementations follow the current text, this kind of extension
can be backwards-compatible.
I agree that the resulting behavior creates a typo hazard for zone
administrators. Perhaps we could keep the "SHOULD NOT", but add a
line like "Zone file parsers MAY emit a warning"?
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop
Eric et al -
"SHOULD" and "should" are inherently dangerous as they lead to ambiguity
and different conclusions from the same data. Mark's note made me go
and take a look at this document and simply searching for "should" shows
a number of problems.
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.
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.
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.
2.4.2 "....zone owners SHOULD NOT ... " should be lower case as humans
are not protocol elements. This is operational guidance rather than
protocol guidance.
2.4.3 "...implementations SHOULD enforce..." - this one is iffy as I
don't think "zone file implementations" is a consistent term of art.
You could place the enforcement with the server - e.g. "SHOULD refuse to
serve inconsistent ServiceMode RRs"? Or perhaps with the DNSSEC signing
tool?
3 - "SVCB-optional clients SHOULD issue in parallel..." - is
satisfactory because it describes client behavior and refers to a
section the describes the reasoning. However, is "in parallel" here a
term of art? "in conjunction" may be a better phrasing.
3 - "Clients SHOULD try higher-priority..." is mostly satisfactory, but
needs to at least explain the implications of not going in strict
priority mode. However, there appears to be no good reason not to make
this a MUST - see back to the comment 2.4.1 - "SHOULD be given
preference" with respect to ambiguity.
3. "...client SHOULD attempt..." - is not satisfactory as it doesn't
describe why you should or shouldn't do this and leaves the implementer
guessing.
3.1 - "...client SHOULD abandon..." is not satisfactory as the text
really describes a MUST. E.g. security errors are either permanent
failure, or transient with a retry, they are never to be ignored.
Reading this suggests that ignoring is sufficient. If you leave
"SHOULD", then clarify what not abandoning the connection means - e.g.
retrying it for some amount of times, but never accepting falsified data.
3.1. "...it SHOULD apply..." - not satisfactory as the text describes a
MUST. There is no good reason and every reason not to treat the SVCB
validation differently than an A/AAAA response.
3.1. "....client SHOULD fall back..." - not satisfactory as the text
fails to describe what happens if you don't fall back. At the least
this needs a discussion of why falling back makes sense and its impact
on security.
3.2 "...proxies SHOULD arrange..." is not satisfactory because of the
"or" clause ambiguity and a lack of implementer guidance on which
choices make sense in which situations.
___________________ pausing here to do other work
________________________________
In general, the document substantially overuses SHOULD clauses. I'd
recommend the authors and participants take a harder look at each
SHOULD, and, if they want to leave a SHOULD in place, ensure they've
described the options sufficiently for an implementer to make an
informed decision.
Mike
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop