On 26. 10. 21 11:14, Vladimír Čunát wrote:
Hello.
DNS Error reporting SHOULD be done using DNS Query Name Minimization
[RFC7816 <https://datatracker.ietf.org/doc/html/rfc7816>] to improve privacy.
It's just a detail and "SHOULD" isn't strong, but I expect it might be
worth elaborating here. The name used in the reporting query adds a few
labels to the failing QNAME and the whole reporting agent domain, so
together that's lots of labels, and expending a packet for *each* of
those labels would seem quite wasteful. Perhaps we could agree on some
boundary (e.g. around the "_er" label) under which minimization isn't
recommended anymore, and put that as a suggestion into the text?
We need to consider & document interaction between Query Name
Minimization and NXDOMAIN processing as per RFC 8020. If minimization &
RFC 8020 are on default then it might very easily happen that most of
_er subtrees (which are presumably empty) will be cut out by cache and
nothing will be sent out when an error is detected.
All in all, I think the text should warn about this interaction instead
of mandating query name minimization on/off.
The reporting resolver MUST NOT report about queries and responses
from an encrypted channel (such as DNS over TLS [RFC7858
<https://datatracker.ietf.org/doc/html/rfc7858>] and DNS
over HTTPS [RFC8484 <https://datatracker.ietf.org/doc/html/rfc8484>]).
I believe this needs some explanation at least (in the text, ideally).
The failing query triggering the report is towards an authoritative
server (i.e. unencrypted), and the reporting queries do not really carry
more information. They may travel by a different path, but on the whole
I can't see significant motivation for the paragraph, especially in
"MUST NOT" form.
I will use stronger language: This is under-specified to the point where
it starts causing confusion.
* Is the paragraph considering channel from stub to resolver?
* From resolver to auth?
* Both?
* What to do with queries executed by resolver on its own (prefetch)?
* What if multiple clients are waiting for the same query, using
different channels? (query deduplication in the resolver)
etc.
I think this should go to Security Considerations section and be left
for implementations to decide. MUST mandate is way too strong and does
not accommodate implementation- and deployment- specific circumstances.
This method MUST NOT
be deployed by default on reporting resolvers and authoritative
servers without requiring an explicit configuration element.
I'm not so sure about forbidding this on resolvers so strongly, but
certainly OK if the WG prefers it that way. (On auths it wouldn't make
sense to enable by default; what agent?) If the error-reporting is
meant really seriously, I'd rather improve the mechanism to never induce
significant overhead and encourage enabling it by default on resolvers
(at some point).
To make the error-reporting work, you need noticeable commitment to
deploy on both sides, because otherwise the perceived benefit from
deploying might be quite low. On resolver side, I believe that it will
be quite rare for operators to tweak such highly technical options[*].
So if this MUST be off by default, you at least need commitment from
some significant operators - say, I'm not even sure if Quad9 by
themselves would suffice to bootstrap this.
I agree. Mandating "disabled by default" configuration on _resolvers_
sounds like a way to get to a working-but-never-deployed protocol.
--
Petr Špaček @ ISC
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop