Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended-error-03.txt
Wes Hardaker <wjhns1@hardakers.net> Thu, 20 December 2018 23:20 UTC
Return-Path: <wjhns1@hardakers.net>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 49C82131054; Thu, 20 Dec 2018 15:20:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JeaUCznZfZiA; Thu, 20 Dec 2018 15:20:25 -0800 (PST)
Received: from mail.hardakers.net (mail.hardakers.net [168.150.192.181]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C9387130DF4; Thu, 20 Dec 2018 15:20:24 -0800 (PST)
Received: from localhost (unknown [10.0.0.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.hardakers.net (Postfix) with ESMTPSA id 52EF921D04; Thu, 20 Dec 2018 15:20:22 -0800 (PST)
From: Wes Hardaker <wjhns1@hardakers.net>
To: internet-drafts@ietf.org
Cc: i-d-announce@ietf.org, dnsop@ietf.org
References: <154534677023.19023.8195828695262063685@ietfa.amsl.com>
Date: Thu, 20 Dec 2018 15:20:22 -0800
In-Reply-To: <154534677023.19023.8195828695262063685@ietfa.amsl.com> (internet-drafts@ietf.org's message of "Thu, 20 Dec 2018 14:59:30 -0800")
Message-ID: <yblwoo3bxah.fsf@w7.hardakers.net>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/wbB49CVFAQJG8MzxWRO8xU7Mzrk>
Subject: Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended-error-03.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Dec 2018 23:20:28 -0000
internet-drafts@ietf.org writes: > Title : Extended DNS Errors > Authors : Warren Kumari > Evan Hunt > Roy Arends > Wes Hardaker > David C Lawrence > Filename : draft-ietf-dnsop-extended-error-03.txt > Pages : 12 > Date : 2018-12-20 Folks, With a LOT of embarrassment, I did a lot of editing and discussing to bring the draft into much better shape. We had a LC issued while discussing the draft with the chair only to find out that our memory of its state was far worse than reality. Though it wasn't the worst thing in the world, it needed a fair amount of improvement. That being said, thank you to everyone that submitted comments about it and all of those issues have been addressed (details below). In the mean time, the new draft is much stronger. One of the comments about the draft previously was "are their implementations?", as that became a sort of pseudo-requirement since the original start of the work. So with that, we're very curious: QUESTION: Is anyone planning on implementation this draft? Otherwise, here's the results of the rest of the comments and concerns that came about in the Last Call: 1 Shane Kerr's review .. 1.1 DONE Plus there's also this odd bit of stray text laying around: .. 1.2 DONE Also is this correct: .. 1.3 DONE Also, this text seems a bit unclear: .. 1.4 DONE EXTRA-TEXT and EXTRA-INFO duplication .. 1.5 DONE encoding of the EXTRA-TEXT field .. 1.6 DONE I am not sure I agree with these recommendations: .. 1.7 DONE How to add multiple EDE .. 1.8 CANCELED Implementation required 2 Peter Spacek .. 2.1 DONE EDNS handling as mentioned elsewhere in this thread .. 2.2 CANCELED lack of implementation reports 3 Joe Abley .. 3.1 DONE Fix IANA registry template 4 Donald Eastlake .. 4.1 DONE two dimensional table is unneeded .. 4.2 DONE rcodes are only 4 bits 1 Shane Kerr's review ===================== Dear DNS colleagues, I definitely agree with George that last call seems a bit premature. As he points out, section 6 is a large open question. We need to either change EDNS behavior to allow an unsolicited EDNS option in a response or change this draft to include an appropriate EDNS option when it queries. Personally I think the draft should specify that the query should include an empty version of this EDNS option to indicate support (this is actually helpful, as it doesn't make too much sense sending back extra information that clients will ignore, decades of BIND adding useless ADDITIONAL section data notwithstanding). 1.1 DONE Plus there's also this odd bit of stray text laying around: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is a reference to an "external" (non-RFC / draft) thing: ([IANA.AS_Numbers]). And this is a link to an [ID:[I-D.ietf-sidr-iana-objects]]. + Result: removed 1.2 DONE Also is this correct: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ o OPTION-LENGTH, 2 octets ((defined in [RFC6891]) contains the length of the payload (everything after OPTION-LENGTH) in octets and should be 4. If I am correct there are at least 6 octets after the OPTION-LENGTH and possibly more if EXTRA-TEXT is present. + Result: fixed text to say "OPTION-LENGTH, 2 octets ((defined in [RFC6891]) contains the length of the payload (everything after OPTION-LENGTH) in octets and should be 6 plus the length of the EXTRA-TEXT section (which may be a zero-length string)." 1.3 DONE Also, this text seems a bit unclear: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ R - Retry The R (or Retry) flag provides a hint to the receiver that it should retry the query, probably by querying another server. If the R bit is set (1), the sender believes that retrying the query may provide a successful answer next time; if the R bit is clear (0), the sender believes that it should not ask another server. The "probably by querying another server" is odd. In my mind it should explicitly apply to querying another server ONLY. + Result: that's fair. Changed it to " it should retry the query to another server." 1.4 DONE EXTRA-TEXT and EXTRA-INFO duplication ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The draft refers to EXTRA-TEXT twice, and EXTRA-INFO once which is presumably meant to be the same thing. + Result: switched to all EXTRA-TEXT 1.5 DONE encoding of the EXTRA-TEXT field ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In any case, I think the encoding of this field should be specified as either ASCII or UTF-8. I prefer UTF-8, because otherwise I won't be able to send back 🤯 emoji in error messages (and the authors won't be able to use the 🍄 emoji that they clearly want). + Resolution: we're proposing ASCII to keep the protocol simple and to match TXT records. These are not intended to be end user messages but rather administrative hints for operators. + resulting text: A variable length, ASCII encoded, EXTRA-TEXT field holding additional textual information. It may be zero length when no additional textual information is included. 1.6 DONE I am not sure I agree with these recommendations: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4.1.5. Extended DNS Error Code 5 - Unsupported DNSKEY Algorithm The resolver attempted to perform DNSSEC validation, but a DNSKEY RRSET contained only unknown algorithms. The R flag should not be set. 4.1.6. Extended DNS Error Code 6 - Unsupported DS Algorithm The resolver attempted to perform DNSSEC validation, but a DS RRSET contained only unknown algorithms. The R flag should not be set. This seems like a case where a stub resolver may want to try another full-service resolver that may support more algorithms, so perhaps the text "The R flag should not be set" should be removed. + Resolution: we agree; text changed 1.7 DONE How to add multiple EDE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ While the draft suggests that it is possible to add multiple EDE to a message: o RESPONSE-CODE, 2 octets: this SHOULD be a copy of the RCODE from the primary DNS packet. When including multiple extended error EDNS0 records in a response in order to provide additional error information, the RESPONSE-CODE MAY be a different RCODE. It is not explicit about how this is done. If the intention is for a resolver to forward this back to a stub resolver, then it needs to be mentioned, probably in section 3, something like this. However, then we also need some text describing how a client behaves when presented with multiple EDE. + Tried to clean this up with new text about multiple inserts. Please see what you think! 1.8 CANCELED Implementation required ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Finally, do we have any implementations of this draft? It seems pretty straightforward, but I don't actually think that it's possible to develop interoperable code with the draft as it stands today. I vaguely recall that we wanted running code going forward to try to starve the DNS camel... + issue response moved to a generic multiple-people issue 2 Peter Spacek ============== I believe the document is not ready for multiple reasons: 2.1 DONE EDNS handling as mentioned elsewhere in this thread ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Response: we believe we have handled all other issues; please let us know if you disagree. 2.2 CANCELED lack of implementation reports ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With my implementer hat on, this might not be as easy to implement as we would like. An actual implementation might uncover various weird corner cases so I'm against advacing this document before there are implementations for *real* resolvers/DNSSEC validators. + issue response moved to a generic multiple-people issue 3 Joe Abley =========== 3.1 DONE Fix IANA registry template ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> With IANA registry requests, I may be wrong here, but I thought we >> had some (boilerplate?) language about how IANA is asked to operate >> the registry: what criteria judge acceptance. Is it like the OID >> and basically open (hair oil) slather, or is it only at WG RFC >> documented request? > > If there is a better template, we'd >> certainly like to hear it. RFC 8126 contains exactly the guidance you're looking for. When creating a new registry you not only need to specify the schema and the initial rows to populate the new table with (as you started in section 5.2, although the formatting of the table is a bit horrifying); you also need to specify the name of the registry, required information for future additions and the registration policy. Happy to contribute some text if that seems useful. + Response: cleaned up and tried to make it pretty 4 Donald Eastlake ================= I like the Extended Error Code using EDNS idea. This was effectively what was done with TSIG and TKEY that have an expanded Error field inside the RR. However: 4.1 DONE two dimensional table is unneeded ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> I don't see any reason for the complex two-dimensional table to new error codes. Given that 16 bits is available for "INFO-CODE" (which I think, to follow the DNS nomenclature used in TSIG and TKEY, should just be called "Error"), I don't see why these extended error codes, which provide more detail beyond the top level Error code value, can't be from the single unified DNS error code table. That way, wherever you get a DNS Error code (from RCODE or the EDNS extended error field or the TSIG or TKEY error fields or wherever, there is just one table to look it up in. For example, you could Reserve 4096 through 8191 for this purpose, which is probably enough values :-) + response: this was discussed multiple times in previous working group meetings and on the mailing list, and the general consensus was to use a multiple-lookup table. Continue reading into the next issue for further information on a decent compromise: 4.2 DONE rcodes are only 4 bits ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> Since RCODEs are 4 bits, I don't see why a 16-bit RESPONSE-CODE field is required. Even if you want to be able to provide additional information for the 12-bit error codes of RCODE as extended by base EDNS, there is still enough room in the previous 16-bit word which has 15 unused bits in it. Just move the RESPONSE-CODE up into the previous word + Response: you're right about the 4 bits of course. Somehow our initial remembrance of this got lost in the double table issue. So to simplify both this issue, and the previous, we've decided to merge the two codes into a 4-bit RCODE value and a 12-bit INFO-CODE value. This actually allows implementers to treat it easily as two codes, if they'd prefer, or a single 16b-bit code if they'd rather handle it that way while preserving interoperability between everything. -- Wes Hardaker USC/ISI
- [DNSOP] I-D Action: draft-ietf-dnsop-extended-err… internet-drafts
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Wes Hardaker
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… VladimĂr ÄŚunát
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Jared Mauch
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Joe Abley
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Wes Hardaker
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Warren Kumari
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Patrik Fältström
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Donald Eastlake
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Wes Hardaker
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Wes Hardaker
- Re: [DNSOP] I-D Action: draft-ietf-dnsop-extended… Wes Hardaker