On 12/3/2019 5:21 PM, Ralf Weber wrote:
Moin!
On 3 Dec 2019, at 3:15, Michael StJohns wrote:
From 2181:
The TC bit should be set in responses only when an RRSet is required
as a part of the response, but could not be included in its
entirety.
The TC bit should not be set merely because some extra information
could have been included, but there was insufficient room.
I finally got a chance to go back and do some reading and found the
above.
The way I read this is that setting the bit simply because you
couldn't include diagnostic info is a no-no. Let's not do it.
I disagree. The EDNS0 OPT RRSet is needed and thus if can not be
fitted entirely a TC bit has to be set. Also 2181 was before EDNS0 so
IMHO it doesn’t apply here anyway. EDE is all is new stuff we have to
decide over what do with it now and not some ancient RFC. And a lot of
people (including me) have said that they, because of the rare cases
this appears, see TC as the right solution as it is simple and
backwards compatible. EDE already is complex we should not increase it
complexity for a rare corner case.
*bleah*
In the querying EDNS0 set a bit (EDERequested) that says "Consider EDE
as 'important' in the response - return TC if there is an overflow and
EDE is omitted". Maybe set a second bit (EDERequired) that says "EDE
is more important than any other data - return it at the head of the
response and drop something else in preference."
Responder:
If EDERequested or EDERequired is set, and overflow occurs because of
the EDE, set the TC bit on the response.
If EDERequired is set, return the EDE EDNS0 option in preference to any
other data - you may still end up setting the TC bit if other info is
omitted.
The first bit says that the client understands EDE and that it considers
it is as important as any other data and should not be omitted without
setting the TC bit.
Clients that don't understand EDE (e.g. most of them right now) that
would ignore EDE anyways don't need to re-query for data that they don't
understand.
Clients that do understand EDE leave both bits unset if they really
don't care about the reasons why (e.g. the typical end user), can set
the first bit if they do (typical resolver) and can set both bits for
debugging (the geeks in the DNSOP group).
In the case of truncation due to EDE, omit the EDE option from the
response EDNS0 RR. If you're still overflowing, set the TC. (E.g. this
isn't about omitting the EDNS0 in the response, only about removing
bloat when the client hasn't indicated the bloat is useful.
Later, Mike
So long
-Ralf
—--
Ralf Weber
_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop