| < draft-ietf-dnsop-extended-error-06.txt | draft-ietf-dnsop-extended-error-07.txt > | |||
|---|---|---|---|---|
| Network Working Group W. Kumari | Network Working Group W. Kumari | |||
| Internet-Draft Google | Internet-Draft Google | |||
| Intended status: Standards Track E. Hunt | Intended status: Standards Track E. Hunt | |||
| Expires: January 9, 2020 ISC | Expires: February 10, 2020 ISC | |||
| R. Arends | R. Arends | |||
| ICANN | ICANN | |||
| W. Hardaker | W. Hardaker | |||
| USC/ISI | USC/ISI | |||
| D. Lawrence | D. Lawrence | |||
| Oracle + Dyn | Oracle + Dyn | |||
| July 08, 2019 | August 09, 2019 | |||
| Extended DNS Errors | Extended DNS Errors | |||
| draft-ietf-dnsop-extended-error-06 | draft-ietf-dnsop-extended-error-07 | |||
| Abstract | Abstract | |||
| This document defines an extensible method to return additional | This document defines an extensible method to return additional | |||
| information about the cause of DNS errors. Though created primarily | information about the cause of DNS errors. Though created primarily | |||
| to extend SERVFAIL to provide additional information about the cause | to extend SERVFAIL to provide additional information about the cause | |||
| of DNS and DNSSEC failures, the Extended DNS Errors option defined in | of DNS and DNSSEC failures, the Extended DNS Errors option defined in | |||
| this document allows all response types to contain extended error | this document allows all response types to contain extended error | |||
| information. | information. | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on January 9, 2020. | This Internet-Draft will expire on February 10, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction and background . . . . . . . . . . . . . . . . . 3 | 1. Introduction and background . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Requirements notation . . . . . . . . . . . . . . . . . . 4 | 1.1. Requirements notation . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Extended Error EDNS0 option format . . . . . . . . . . . . . 4 | 2. Extended Error EDNS0 option format . . . . . . . . . . . . . 4 | |||
| 3. Use of the Extended DNS Error option . . . . . . . . . . . . 5 | 3. Use of the Extended DNS Error option . . . . . . . . . . . . 4 | |||
| 3.1. The R (Retry) flag . . . . . . . . . . . . . . . . . . . 5 | 3.1. The INFO-CODE field . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. The RESPONSE-CODE field . . . . . . . . . . . . . . . . . 5 | 3.2. The EXTRA-TEXT field . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. The INFO-CODE field . . . . . . . . . . . . . . . . . . . 6 | 4. Defined Extended DNS Errors . . . . . . . . . . . . . . . . . 5 | |||
| 3.4. The EXTRA-TEXT field . . . . . . . . . . . . . . . . . . 6 | 4.1. Extended DNS Error Code 0 - Other . . . . . . . . . . . . 5 | |||
| 4. Defined Extended DNS Errors . . . . . . . . . . . . . . . . . 6 | 4.2. Extended DNS Error Code 1 - | |||
| 4.1. INFO-CODEs for use with RESPONSE-CODE: NOERROR(0) . . . . 6 | Unsupported DNSKEY Algorithm . . . . . . . . . . . . . . 5 | |||
| 4.1.1. NOERROR Extended DNS Error Code 1 - Unsupported | 4.3. Extended DNS Error Code 2 - Unsupported | |||
| DNSKEY Algorithm . . . . . . . . . . . . . . . . . . 6 | DS Algorithm . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1.2. NOERROR Extended DNS Error Code 2 - Unsupported | 4.4. Extended DNS Error Code 3 - Stale Answer . . . . . . . . 5 | |||
| DS Algorithm . . . . . . . . . . . . . . . . . . . . 6 | 4.5. Extended DNS Error Code 4 - Forged Answer . . . . . . . . 6 | |||
| 4.1.3. INFO-CODEs for use with RESPONSE-CODE: NOERROR(3) . . 7 | 4.6. Extended DNS Error Code 5 - DNSSEC Indeterminate . . . . 6 | |||
| 4.1.4. NOERROR Extended DNS Error Code 4 - Forged answer . . 7 | 4.7. Extended DNS Error Code 6 - DNSSEC Bogus . . . . . . . . 6 | |||
| 4.1.5. SERVFAIL Extended DNS Error Code 5 - DNSSEC | 4.8. Extended DNS Error Code 7 - Signature Expired . . . . . . 6 | |||
| Indeterminate . . . . . . . . . . . . . . . . . . . . 7 | 4.9. Extended DNS Error Code 8 - Signature Not Yet Valid . . . 6 | |||
| 4.2. INFO-CODEs for use with RESPONSE-CODE: SERVFAIL(2) . . . 7 | 4.10. Extended DNS Error Code 9 - DNSKEY Missing . . . . . . . 6 | |||
| 4.2.1. SERVFAIL Extended DNS Error Code 1 - DNSSEC Bogus . . 7 | 4.11. Extended DNS Error Code 10 - RRSIGs Missing . . . . . . . 6 | |||
| 4.2.2. SERVFAIL Extended DNS Error Code 2 - Signature | 4.12. Extended DNS Error Code 11 - No Zone Key Bit Set . . . . 6 | |||
| Expired . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.13. Extended DNS Error Code 12 - NSEC Missing . . . . . . . . 6 | |||
| 4.2.3. SERVFAIL Extended DNS Error Code 3 - Signature Not | 4.14. Extended DNS Error Code 13 - Cached Error . . . . . . . . 7 | |||
| Yet Valid . . . . . . . . . . . . . . . . . . . . . . 7 | 4.15. Extended DNS Error Code 14 - Not Ready . . . . . . . . . 7 | |||
| 4.2.4. SERVFAIL Extended DNS Error Code 4 - DNSKEY missing . 7 | 4.16. Extended DNS Error Code 15 - Blocked . . . . . . . . . . 7 | |||
| 4.2.5. SERVFAIL Extended DNS Error Code 5 - RRSIGs missing . 8 | 4.17. Extended DNS Error Code 16 - Censored . . . . . . . . . . 7 | |||
| 4.2.6. SERVFAIL Extended DNS Error Code 6 - No Zone Key Bit | 4.18. Extended DNS Error Code 17 - Prohibited . . . . . . . . . 7 | |||
| Set . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.19. Extended DNS Error Code 18 - Stale Answer . . . . . . . . 7 | |||
| 4.2.7. SERVFAIL Extended DNS Error Code 7 - No | 4.20. Extended DNS Error Code 19 - Lame . . . . . . . . . . . . 7 | |||
| Reachable Authority . . . . . . . . . . . . . . . . . 8 | 4.21. Extended DNS Error Code 20 - Deprecated . . . . . . . . . 8 | |||
| 4.2.8. SERVFAIL Extended DNS Error Code 8 - NSEC Missing . . 8 | 4.22. Extended DNS Error Code 21 - No Reachable Authority . . . 8 | |||
| 4.2.9. SERVFAIL Extended DNS Error Code 9 - Cached Error . . 8 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.2.10. SERVFAIL Extended DNS Error Code 10 - Not Ready . . . 8 | 5.1. A New Extended Error Code EDNS Option . . . . . . . . . . 8 | |||
| 4.3. INFO-CODEs for use with RESPONSE-CODE: NOTIMP(4) . . . . 8 | 5.2. New Double-Index Registry Table for Extended Error Codes 8 | |||
| 4.3.1. NOTIMP Extended DNS Error Code 1 - Deprecated . . . . 8 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.4. INFO-CODEs for use with RESPONSE-CODE: REFUSED(5) . . . . 8 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4.4.1. REFUSED Extended DNS Error Code 1 - Lame . . . . . . 8 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4.4.2. REFUSED Extended DNS Error Code 2 - Prohibited . . . 9 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| 4.5. INFO-CODEs for use with RESPONSE-CODE: NXDOMAIN(3) . . . 9 | 8.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
| 4.5.1. NXDOMAIN Extended DNS Error Code 1 - Blocked . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4.6. INFO-CODEs for use with RESPONSE-CODE: NXDOMAIN(3) . . . 9 | ||||
| 4.6.1. NXDOMAIN Extended DNS Error Code 2 - Censored . . . . 9 | ||||
| 4.7. INFO-CODEs for use with RESPONSE-CODE: NXDOMAIN(3) . . . 9 | ||||
| 4.7.1. NXDOMAIN Extended DNS Error Code 3 - Stale Answer . . 9 | ||||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 5.1. A New Extended Error Code EDNS Option . . . . . . . . . . 10 | ||||
| 5.2. New Double-Index Registry Table for Extended Error Codes 10 | ||||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | ||||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 14 | ||||
| Appendix A. Changes / Author Notes. . . . . . . . . . . . . . . 14 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
| 1. Introduction and background | 1. Introduction and background | |||
| There are many reasons that a DNS query may fail, some of them | There are many reasons that a DNS query may fail, some of them | |||
| transient, some permanent; some can be resolved by querying another | transient, some permanent; some can be resolved by querying another | |||
| server, some are likely best handled by stopping resolution. | server, some are likely best handled by stopping resolution. | |||
| Unfortunately, the error signals that a DNS server can return are | Unfortunately, the error signals that a DNS server can return are | |||
| very limited, and are not very expressive. This means that | very limited, and are not very expressive. This means that | |||
| applications and resolvers often have to "guess" at what the issue is | applications and resolvers often have to "guess" at what the issue is | |||
| - e.g. was the answer marked REFUSED because of a lame delegation, or | - e.g. was the answer marked REFUSED because of a lame delegation, or | |||
| skipping to change at page 3, line 50 ¶ | skipping to change at page 3, line 36 ¶ | |||
| Unfortunately, SERVFAIL is used to signal many sorts of DNS errors, | Unfortunately, SERVFAIL is used to signal many sorts of DNS errors, | |||
| and so the stub resolver simply asks the next configured DNS | and so the stub resolver simply asks the next configured DNS | |||
| resolver. The result of trying the next resolver is one of two | resolver. The result of trying the next resolver is one of two | |||
| outcomes: either the next resolver also validates, a SERVFAIL is | outcomes: either the next resolver also validates, a SERVFAIL is | |||
| returned again, and the user gets an (largely) incomprehensible error | returned again, and the user gets an (largely) incomprehensible error | |||
| message; or the next resolver is not a validating resolver, and the | message; or the next resolver is not a validating resolver, and the | |||
| user is returned a potentially harmful result. | user is returned a potentially harmful result. | |||
| This document specifies a mechanism to extend (or annotate) DNS | This document specifies a mechanism to extend (or annotate) DNS | |||
| errors to provide additional information about the cause of the | errors to provide additional information about the cause of the | |||
| error. When properly authenticated, this information can be used by | error. These extended error codes are specially useful when received | |||
| the resolver to make a decision regarding whether or not to retry or | by resolvers, to return to stub resolvers or to downstream resolvers. | |||
| it can be used or by technical users attempting to debug issues. | ||||
| These extended error codes are specially useful when received by | ||||
| resolvers, to return to stub resolvers or to downstream resolvers. | ||||
| Authoritative servers MAY parse and use them, but most error codes | Authoritative servers MAY parse and use them, but most error codes | |||
| would make no sense for them. Authoritative servers may need to | would make no sense for them. Authoritative servers may need to | |||
| generate extended error codes though. | generate extended error codes though. | |||
| 1.1. Requirements notation | 1.1. Requirements notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| skipping to change at page 4, line 32 ¶ | skipping to change at page 4, line 18 ¶ | |||
| Error (EDE) information in DNS messages. The option is structured as | Error (EDE) information in DNS messages. The option is structured as | |||
| follows: | follows: | |||
| 1 1 1 1 1 1 | 1 1 1 1 1 1 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | |||
| 0: | OPTION-CODE | | 0: | OPTION-CODE | | |||
| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | |||
| 2: | OPTION-LENGTH | | 2: | OPTION-LENGTH | | |||
| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | |||
| 4: | RCODE | R | Res | | 4: | INFO-CODE | | |||
| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ||||
| 6: | INFO-CODE | | ||||
| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | |||
| 6: / EXTRA-TEXT ... / | 6: / EXTRA-TEXT ... / | |||
| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | |||
| Field definition details: | Field definition details: | |||
| o OPTION-CODE, 2 octets (defined in [RFC6891]), for EDE is TBD. | o OPTION-CODE, 2 octets (defined in [RFC6891]]), for EDE is TBD. | |||
| [RFC Editor: change TBD to the proper code once assigned by IANA.] | [RFC Editor: change TBD to the proper code once assigned by IANA.] | |||
| o OPTION-LENGTH, 2 octets ((defined in [RFC6891]) contains the | o OPTION-LENGTH, 2 octets ((defined in [RFC6891]]) contains the | |||
| length of the payload (everything after OPTION-LENGTH) in octets | length of the payload (everything after OPTION-LENGTH) in octets | |||
| and should be 4 plus the length of the EXTRA-TEXT section (which | and should be 4 plus the length of the EXTRA-TEXT section (which | |||
| may be a zero-length string). | may be a zero-length string). | |||
| o The RETRY flag, 1 bit; the RETRY bit (R) indicates a flag defined | ||||
| for use in this specification. | ||||
| o The RESERVED bits, 4 bits: these bits are reserved for future use, | ||||
| potentially as additional flags. The RESERVED bits MUST be set to | ||||
| 0 by the sender and MUST be ignored by the receiver. | ||||
| o RESPONSE-CODE, 12 bits: the concatenation of the upper 8-bits of | ||||
| the RCODE (stored in the TTL field of the EDNS0 resource record | ||||
| [RFC2671]) and the 4 bits of the RCODE field of the DNS message. | ||||
| o INFO-CODE, 16-bits, which is the principal contribution of this | o INFO-CODE, 16-bits, which is the principal contribution of this | |||
| document. | document. | |||
| o EXTRA-TEXT, a variable length, UTF-8 encoded, text field that may | o EXTRA-TEXT, a variable length, UTF-8 encoded, text field that may | |||
| hold additional textual information. Note: EXTRA-TEXT may be zero | hold additional textual information. Note: EXTRA-TEXT may be zero | |||
| octets in length, indicating there is no EXTRA-TEXT included. | octets in length, indicating there is no EXTRA-TEXT included. | |||
| 3. Use of the Extended DNS Error option | 3. Use of the Extended DNS Error option | |||
| The Extended DNS Error (EDE) is an EDNS option. It can be included | The Extended DNS Error (EDE) is an EDNS option. It can be included | |||
| in any response (SERVFAIL, NXDOMAIN, REFUSED, etc) to a query that | in any response (SERVFAIL, NXDOMAIN, REFUSED, etc) to a query that | |||
| includes OPT Pseudo-RR [RFC6891]. This document includes a set of | includes OPT Pseudo-RR [RFC6891]. This document includes a set of | |||
| initial codepoints (and requests to the IANA to add them to the | initial codepoints (and requests to the IANA to add them to the | |||
| registry), but is extensible via the IANA registry to allow | registry), but is extensible via the IANA registry to allow | |||
| additional error and information codes to be defined in the future. | additional error and information codes to be defined in the future. | |||
| The fields of the Extended DNS Error option are defined further in | The fields of the Extended DNS Error option are defined further in | |||
| the following sub-sections. | the following sub-sections. | |||
| 3.1. The R (Retry) flag | 3.1. The INFO-CODE field | |||
| The R (Retry) flag provides a hint as to what the receiver may want | ||||
| to do with this annotated error. Specifically, the R (or Retry) flag | ||||
| provides a hint to the receiver that it should retry the query to | ||||
| 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 the resolver should not | ||||
| ask another server. | ||||
| The mechanism is specifically designed to be extensible, and so | ||||
| implementations may receive EDE codes that it does not understand. | ||||
| The R flag allows implementations to make a decision as to what to do | ||||
| if it receives a response with an unknown code - retry or drop the | ||||
| query. Note that this flag is only a suggestion. Unless a | ||||
| protective transport mechanism (like TSIG [RFC2845] or (D)TLS xref | ||||
| target="RFC7858"/>, [RFC8094]) is used, the bit's value could have | ||||
| have been altered by a person-in-the-middle. Receivers can choose to | ||||
| ignore this hint. See the security considerations for additional | ||||
| considerations. | ||||
| 3.2. The RESPONSE-CODE field | ||||
| This 12-bit value SHOULD be a copy of the combined RCODE from the | ||||
| extended RCODE field defined in the EDNS0 optional resource record | ||||
| (stored in the TTL field of the EDNS0 resource record [RFC2671]) and | ||||
| the 4 bits of the RCODE field of the DNS message. RESPONSE-CODEs MAY | ||||
| use a different RCODE to provide additional or better information. | ||||
| For example, multiple EDNS0/EDE records may be included in the | ||||
| response and the supplemental EDNS0/EDE records may wish to include | ||||
| other RESPONSE-CODE values based on communication results with other | ||||
| DNS servers. | ||||
| 3.3. The INFO-CODE field | ||||
| This 16-bit value provides the additional context for the RESPONSE- | ||||
| CODE value. This combination of the RESPONSE-CODE and the INFO-CODE | ||||
| serve as a joint-index into the IANA "Extended DNS Errors" registry. | ||||
| Note to implementers: the combination of the RESPONSE-CODE and INFO- | This 16-bit value, encoded in network (MSB) byte order, provides the | |||
| CODE fits within a 24-bit field, allowing implementers the choice of | additional context for the RESPONSE-CODE of the DNS message. The | |||
| treating the combination as either two separate values, as defined in | INFO-CODE serves as an index to the "Extended DNS Errors" registry | |||
| this document, or as a single 24-bit integer as long as the results | Section 5.1. | |||
| are deterministic. | ||||
| 3.4. The EXTRA-TEXT field | 3.2. The EXTRA-TEXT field | |||
| The UTF-8-encoded, EXTRA-TEXT field may be zero-length, or may hold | The UTF-8-encoded, EXTRA-TEXT field may be zero-length, or may hold | |||
| additional information useful to network operators. | additional information useful to network operators. | |||
| 4. Defined Extended DNS Errors | 4. Defined Extended DNS Errors | |||
| This document defines some initial EDE codes. The mechanism is | This document defines some initial EDE codes. The mechanism is | |||
| intended to be extensible, and additional code-points can be | intended to be extensible, and additional code-points can be | |||
| registered in the "Extended DNS Errors" registry. This document | registered in the "Extended DNS Errors" registry Section 5.1. The | |||
| provides suggestions for the R flag, but the originating server may | INFO-CODE from the EDE EDNS option is used to serve as an index into | |||
| ignore these recommendations if it knows better. | the "Extended DNS Error codes" IANA registry, the initial values for | |||
| which are defined in the following sub-sections. | ||||
| The RESPONSE-CODE and the INFO-CODE from the EDE EDNS option is used | 4.1. Extended DNS Error Code 0 - Other | |||
| to serve as a double index into the "Extended DNS Error codes" IANA | ||||
| registry, the initial values for which are defined in the following | ||||
| sub-sections. | ||||
| 4.1. INFO-CODEs for use with RESPONSE-CODE: NOERROR(0) | The error in question falls into a category that does not match known | |||
| extended error codes. Implementations SHOULD include a EXTRA-TEXT | ||||
| value to augment this error code with additional information. | ||||
| 4.1.1. NOERROR Extended DNS Error Code 1 - Unsupported DNSKEY Algorithm | 4.2. Extended DNS Error Code 1 - Unsupported DNSKEY Algorithm | |||
| The resolver attempted to perform DNSSEC validation, but a DNSKEY | The resolver attempted to perform DNSSEC validation, but a DNSKEY | |||
| RRSET contained only unknown algorithms. The R flag should be set. | RRSET contained only unknown algorithms. | |||
| 4.1.2. NOERROR Extended DNS Error Code 2 - Unsupported DS Algorithm | 4.3. Extended DNS Error Code 2 - Unsupported DS Algorithm | |||
| The resolver attempted to perform DNSSEC validation, but a DS RRSET | The resolver attempted to perform DNSSEC validation, but a DS RRSET | |||
| contained only unknown algorithms. The R flag should be set. | contained only unknown algorithms. | |||
| 4.1.3. INFO-CODEs for use with RESPONSE-CODE: NOERROR(3) | ||||
| 4.1.3.1. NOERROR Extended DNS Error Code 3 - Stale Answer | 4.4. Extended DNS Error Code 3 - Stale Answer | |||
| The resolver was unable to resolve answer within its time limits and | The resolver was unable to resolve answer within its time limits and | |||
| decided to answer with a previously cached data instead of answering | decided to answer with a previously cached data instead of answering | |||
| with an error. This is typically caused by problems on authoritative | with an error. This is typically caused by problems on authoritative | |||
| side, possibly as result of a DoS attack. The R flag should not be | side, possibly as result of a DoS attack. | |||
| set, since retrying is likely to create additional load without | ||||
| yielding a more fresh answer. | ||||
| 4.1.4. NOERROR Extended DNS Error Code 4 - Forged answer | 4.5. Extended DNS Error Code 4 - Forged Answer | |||
| For policy reasons (legal obligation, or malware filtering, for | For policy reasons (legal obligation, or malware filtering, for | |||
| instance), an answer was forged. The R flag should not be set. | instance), an answer was forged. | |||
| 4.1.5. SERVFAIL Extended DNS Error Code 5 - DNSSEC Indeterminate | 4.6. Extended DNS Error Code 5 - DNSSEC Indeterminate | |||
| The resolver attempted to perform DNSSEC validation, but validation | The resolver attempted to perform DNSSEC validation, but validation | |||
| ended in the Indeterminate state. The R flag should not be set. | ended in the Indeterminate state. | |||
| 4.2. INFO-CODEs for use with RESPONSE-CODE: SERVFAIL(2) | ||||
| 4.2.1. SERVFAIL Extended DNS Error Code 1 - DNSSEC Bogus | 4.7. Extended DNS Error Code 6 - DNSSEC Bogus | |||
| The resolver attempted to perform DNSSEC validation, but validation | The resolver attempted to perform DNSSEC validation, but validation | |||
| ended in the Bogus state. The R flag should not be set. | ended in the Bogus state. | |||
| 4.2.2. SERVFAIL Extended DNS Error Code 2 - Signature Expired | 4.8. Extended DNS Error Code 7 - Signature Expired | |||
| The resolver attempted to perform DNSSEC validation, a signature in | The resolver attempted to perform DNSSEC validation, a signature in | |||
| the validation chain was expired. The R flag should not be set. | the validation chain was expired. | |||
| 4.2.3. SERVFAIL Extended DNS Error Code 3 - Signature Not Yet Valid | 4.9. Extended DNS Error Code 8 - Signature Not Yet Valid | |||
| The resolver attempted to perform DNSSEC validation, but the | The resolver attempted to perform DNSSEC validation, but the | |||
| signatures received were not yet valid. The R flag should not be | signatures received were not yet valid. | |||
| set. | ||||
| 4.2.4. SERVFAIL Extended DNS Error Code 4 - DNSKEY missing | 4.10. Extended DNS Error Code 9 - DNSKEY Missing | |||
| A DS record existed at a parent, but no supported matching DNSKEY | A DS record existed at a parent, but no supported matching DNSKEY | |||
| record could be found for the child. The R flag should not be set. | record could be found for the child. | |||
| 4.2.5. SERVFAIL Extended DNS Error Code 5 - RRSIGs missing | 4.11. Extended DNS Error Code 10 - RRSIGs Missing | |||
| The resolver attempted to perform DNSSEC validation, but no RRSIGs | The resolver attempted to perform DNSSEC validation, but no RRSIGs | |||
| could be found for at least one RRset where RRSIGs were expected. | could be found for at least one RRset where RRSIGs were expected. | |||
| 4.2.6. SERVFAIL Extended DNS Error Code 6 - No Zone Key Bit Set | 4.12. Extended DNS Error Code 11 - No Zone Key Bit Set | |||
| The resolver attempted to perform DNSSEC validation, but no Zone Key | The resolver attempted to perform DNSSEC validation, but no Zone Key | |||
| Bit was set in a DNSKEY. | Bit was set in a DNSKEY. | |||
| 4.2.7. SERVFAIL Extended DNS Error Code 7 - No Reachable Authority | 4.13. Extended DNS Error Code 12 - NSEC Missing | |||
| The resolver could not reach any of the authoritative name servers | ||||
| (or they refused to reply). The R flag should be set. | ||||
| 4.2.8. SERVFAIL Extended DNS Error Code 8 - NSEC Missing | ||||
| The resolver attempted to perform DNSSEC validation, but the | The resolver attempted to perform DNSSEC validation, but the | |||
| requested data was missing and a covering NSEC or NSEC3 was not | requested data was missing and a covering NSEC or NSEC3 was not | |||
| provided. The R flag should be set. | provided. | |||
| 4.2.9. SERVFAIL Extended DNS Error Code 9 - Cached Error | 4.14. Extended DNS Error Code 13 - Cached Error | |||
| The resolver has cached SERVFAIL for this query without additional | The resolver has cached SERVFAIL for this query without additional | |||
| information. Th R flag should be set. | information. | |||
| 4.2.10. SERVFAIL Extended DNS Error Code 10 - Not Ready | 4.15. Extended DNS Error Code 14 - Not Ready | |||
| The server is unable to answer the query as it is not fully up and | The server is unable to answer the query as it is not fully up and | |||
| functional yet. | functional yet. | |||
| 4.3. INFO-CODEs for use with RESPONSE-CODE: NOTIMP(4) | 4.16. Extended DNS Error Code 15 - Blocked | |||
| 4.3.1. NOTIMP Extended DNS Error Code 1 - Deprecated | ||||
| The requested operation or query is not supported as its use has been | ||||
| deprecated. Implementations should not set the R flag. (Retrying | ||||
| request elsewhere is unlikely to yield any other results.) | ||||
| 4.4. INFO-CODEs for use with RESPONSE-CODE: REFUSED(5) | The resolver attempted to perfom a DNS query but the domain is | |||
| blacklisted due to a security policy implemented on the server being | ||||
| directly talked to. | ||||
| 4.4.1. REFUSED Extended DNS Error Code 1 - Lame | 4.17. Extended DNS Error Code 16 - Censored | |||
| An authoritative server that receives a query (with the RD bit clear) | The resolver attempted to perfom a DNS query but the domain was | |||
| for a domain for which it is not authoritative SHOULD include this | blacklisted by a security policy imposed upon the server being talked | |||
| EDE code in the SERVFAIL response. A resolver that receives a query | to. Note that how the imposed policy is applied is irrelevant (in- | |||
| (with the RD bit clear) SHOULD include this EDE code in the REFUSED | band DNS somehow, court order, etc). | |||
| response. Implementations should set the R flag in this case | ||||
| (another nameserver or resolver might not be lame). | ||||
| 4.4.2. REFUSED Extended DNS Error Code 2 - Prohibited | 4.18. Extended DNS Error Code 17 - Prohibited | |||
| An authoritative or recursive resolver that receives a query from an | An authoritative or recursive resolver that receives a query from an | |||
| "unauthorized" client can annotate its REFUSED message with this | "unauthorized" client can annotate its REFUSED message with this | |||
| code. Examples of "unauthorized" clients are recursive queries from | code. Examples of "unauthorized" clients are recursive queries from | |||
| IP addresses outside the network, blacklisted IP addresses, local | IP addresses outside the network, blacklisted IP addresses, local | |||
| policy, etc. | policy, etc. | |||
| Implementations SHOULD allow operators to define what to set the R | 4.19. Extended DNS Error Code 18 - Stale Answer | |||
| flag to in this case. | ||||
| 4.5. INFO-CODEs for use with RESPONSE-CODE: NXDOMAIN(3) | ||||
| 4.5.1. NXDOMAIN Extended DNS Error Code 1 - Blocked | ||||
| The resolver attempted to perfom a DNS query but the domain is | The resolver was unable to resolve answer within its time limits and | |||
| blacklisted due to a security policy implemented on the server being | decided to answer with a previously cached NXDOMAIN answer instead of | |||
| directly talked to. The R flag should be set. | answering with an error. This is typically caused by problems on | |||
| authoritative side, possibly as result of a DoS attack. | ||||
| 4.6. INFO-CODEs for use with RESPONSE-CODE: NXDOMAIN(3) | 4.20. Extended DNS Error Code 19 - Lame | |||
| 4.6.1. NXDOMAIN Extended DNS Error Code 2 - Censored | An authoritative server that receives a query (with the RD bit clear) | |||
| for a domain for which it is not authoritative SHOULD include this | ||||
| EDE code in the SERVFAIL response. A resolver that receives a query | ||||
| (with the RD bit clear) SHOULD include this EDE code in the REFUSED | ||||
| response. | ||||
| The resolver attempted to perfom a DNS query but the domain was | 4.21. Extended DNS Error Code 20 - Deprecated | |||
| blacklisted by a security policy imposed upon the server being talked | ||||
| to. Note that how the imposed policy is applied is irrelevant (in- | ||||
| band DNS somehow, court order, etc). The R flag should be set. | ||||
| 4.7. INFO-CODEs for use with RESPONSE-CODE: NXDOMAIN(3) | The requested operation or query is not supported as its use has been | |||
| deprecated. | ||||
| 4.7.1. NXDOMAIN Extended DNS Error Code 3 - Stale Answer | 4.22. Extended DNS Error Code 21 - No Reachable Authority | |||
| The resolver was unable to resolve answer within its time limits and | The resolver could not reach any of the authoritative name servers | |||
| decided to answer with a previously cached NXDOMAIN answer instead of | (or they refused to reply). | |||
| answering with an error. This is typically caused by problems on | ||||
| authoritative side, possibly as result of a DoS attack. The R flag | ||||
| should not be set, since retrying is likely to create additional load | ||||
| without yielding a more fresh answer. | ||||
| 5. IANA Considerations | 5. IANA Considerations | |||
| 5.1. A New Extended Error Code EDNS Option | 5.1. A New Extended Error Code EDNS Option | |||
| This document defines a new EDNS(0) option, entitled "Extended DNS | This document defines a new EDNS(0) option, entitled "Extended DNS | |||
| Error", assigned a value of TBD1 from the "DNS EDNS0 Option Codes | Error", assigned a value of TBD1 from the "DNS EDNS0 Option Codes | |||
| (OPT)" registry [to be removed upon publication: | (OPT)" registry [to be removed upon publication: | |||
| [http://www.iana.org/assignments/dns-parameters/dns- | [http://www.iana.org/assignments/dns-parameters/dns- | |||
| parameters.xhtml#dns-parameters-11] | parameters.xhtml#dns-parameters-11] | |||
| Value Name Status Reference | Value Name Status Reference | |||
| ----- ---------------- ------ ------------------ | ----- ---------------- ------ ------------------ | |||
| TBD Extended DNS Error TBD [ This document ] | TBD Extended DNS Error TBD [ This document ] | |||
| 5.2. New Double-Index Registry Table for Extended Error Codes | 5.2. New Double-Index Registry Table for Extended Error Codes | |||
| This document defines a new double-index IANA registry table, where | This document defines a new double-index IANA registry table, where | |||
| the first index value is the combined RCODE value (see the | the index value is the INFO-CODE from the Extended DNS Error EDNS | |||
| Section 3.2 section) and the second index value is the INFO-CODE from | option defined in this document. The IANA is requested to create and | |||
| the Extended DNS Error EDNS option defined in this document. The | maintain this "Extended DNS Error codes" registry. The code-point | |||
| IANA is requested to create and maintain this "Extended DNS Error | space for each INFO-CODE index is to be broken into 3 ranges: | |||
| codes" registry. The codepoint space for each INFO-CODE index is to | ||||
| be broken into 3 ranges: | ||||
| o 0 - 65023: Specification required. | o 0 - : Specification required. | |||
| o 65023 - 65279: First come, first served. | o 65023 - 65279: First come, first served. | |||
| o 65280 - 65536: Experimental / Private use | o 65280 - 32767: Experimental / Private use | |||
| A starting set of entries, based on the contents of this document, is | A starting set of entries, based on the contents of this document, is | |||
| as follows: | as follows: | |||
| RESPONSE-CODE: 0 (NOERROR) | INFO-CODE: 0 | |||
| Purpose: Other Error | ||||
| Reference: Section 4.1 | ||||
| INFO-CODE: 1 | INFO-CODE: 1 | |||
| Purpose: Unsupported DNSKEY | Purpose: Unsupported DNSKEY Algorithm | |||
| Reference: Section 4.1.1 | Reference: Section 4.2 | |||
| RESPONSE-CODE: 0 (NOERROR) | ||||
| INFO-CODE: 2 | INFO-CODE: 2 | |||
| Purpose: Unsupported DS Algorithm | Purpose: Unsupported DS Algorithm | |||
| Reference: Section 4.1.2 | Reference: Section 4.3 | |||
| RESPONSE-CODE: 3 (NOERROR) | ||||
| INFO-CODE: 3 | INFO-CODE: 3 | |||
| Purpose: Answering with stale/cached data | Purpose: Answering with stale/cached data | |||
| Reference: Section 4.1.3.1 | Reference: Section 4.4 | |||
| RESPONSE-CODE: 0 (NOERROR) | ||||
| INFO-CODE: 4 | INFO-CODE: 4 | |||
| Purpose: Forged answer | Purpose: Forged Answer | |||
| Reference: Section 4.1.4 | Reference: Section 4.5 | |||
| RESPONSE-CODE: 0 (NOERROR) | ||||
| INFO-CODE: 5 | INFO-CODE: 5 | |||
| Purpose: DNSSEC Indeterminate | Purpose: DNSSEC Indeterminate | |||
| Reference: Section 4.1.5 | Reference: Section 4.6 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 6 | |||
| INFO-CODE: 1 | ||||
| Purpose: DNSSEC Bogus | Purpose: DNSSEC Bogus | |||
| Reference: Section 4.2.1 | Reference: Section 4.7 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 7 | |||
| INFO-CODE: 2 | ||||
| Purpose: Signature Expired | Purpose: Signature Expired | |||
| Reference: Section 4.2.2 | Reference: Section 4.8 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 8 | |||
| INFO-CODE: 3 | ||||
| Purpose: Signature Not Yet Valid | Purpose: Signature Not Yet Valid | |||
| Reference: Section 4.2.3 | Reference: Section 4.9 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 9 | |||
| INFO-CODE: 4 | Purpose: DNSKEY Missing | |||
| Purpose: DNSKEY missing | Reference: Section 4.10 | |||
| Reference: Section 4.2.4 | ||||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 10 | |||
| INFO-CODE: 5 | Purpose: RRSIGs Missing | |||
| Purpose: RRSIGs missing | Reference: Section 4.11 | |||
| Reference: Section 4.2.5 | ||||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 11 | |||
| INFO-CODE: 6 | ||||
| Purpose: No Zone Key Bit Set | Purpose: No Zone Key Bit Set | |||
| Reference: Section 4.2.6 | Reference: Section 4.12 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 12 | |||
| INFO-CODE: 7 | ||||
| Purpose: No NSEC records could be obtained | Purpose: No NSEC records could be obtained | |||
| Reference: Section 4.2.8 | Reference: Section 4.13 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 13 | |||
| INFO-CODE: 9 | ||||
| Purpose: The SERVFAIL error comes from the cache | Purpose: The SERVFAIL error comes from the cache | |||
| Reference: Section 4.2.9 | Reference: Section 4.14 | |||
| RESPONSE-CODE: 2 (SERVFAIL) | INFO-CODE: 14 | |||
| INFO-CODE: 10 | ||||
| Purpose: Not Ready. | Purpose: Not Ready. | |||
| Reference: Section 4.15 | ||||
| Reference: Section 4.2.10 | INFO-CODE: 15 | |||
| RESPONSE-CODE: 3 (NXDOMAIN) | ||||
| INFO-CODE: 1 | ||||
| Purpose: Blocked | Purpose: Blocked | |||
| Reference: Section 4.5.1 | Reference: Section 4.16 | |||
| RESPONSE-CODE: 3 (NXDOMAIN) | INFO-CODE: 16 | |||
| INFO-CODE: 2 | ||||
| Purpose: Censored | Purpose: Censored | |||
| Reference: Section 4.6.1 | Reference: Section 4.17 | |||
| RESPONSE-CODE: 3 (NXDOMAIN) | INFO-CODE: 17 | |||
| INFO-CODE: 3 | Purpose: Prohibited | |||
| Purpose: Answering with stale/cached NXDOMAIN data | Reference: Section 4.18 | |||
| Reference: Section 4.7.1 | ||||
| RESPONSE-CODE: 4 (NOTIMP) | INFO-CODE: 18 | |||
| INFO-CODE: 1 | Purpose: Answering with stale/cached NXDOMAIN data | |||
| Purpose: | Reference: Section 4.19 | |||
| Reference: Section 4.4.2 | ||||
| RESPONSE-CODE: 5 (REFUSED) | INFO-CODE: 19 | |||
| INFO-CODE: 1 | ||||
| Purpose: Lame | Purpose: Lame | |||
| Reference: Section 4.4.1 | Reference: Section 4.20 | |||
| RESPONSE-CODE: 5 (REFUSED) | INFO-CODE: 20 | |||
| INFO-CODE: 2 | Purpose: Deprecated | |||
| Purpose: Prohibited | Reference: Section 4.21 | |||
| Reference: Section 4.4.2 | ||||
| INFO-CODE: 21 | ||||
| Purpose: No Reachable Authority | ||||
| Reference: Section 4.21 | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| Though DNSSEC continues to be deployed, unfortunately a significant | Though DNSSEC continues to be deployed, unfortunately a significant | |||
| number of clients (~11% according to [GeoffValidation]) that receive | number of clients (~11% according to [GeoffValidation]) that receive | |||
| a SERVFAIL from a validating resolver because of a DNSSEC validaion | a SERVFAIL from a validating resolver because of a DNSSEC validaion | |||
| issue will simply ask the next (potentially non-validating) resolver | issue will simply ask the next (potentially non-validating) resolver | |||
| in their list, and thus don't get any of the protections which DNSSEC | in their list, and thus don't get any of the protections which DNSSEC | |||
| should provide. This is very similar to a kid asking his mother if | should provide. This is very similar to a kid asking his mother if | |||
| he can have another cookie. When the mother says "No, it will ruin | he can have another cookie. When the mother says "No, it will ruin | |||
| skipping to change at page 13, line 8 ¶ | skipping to change at page 11, line 7 ¶ | |||
| getting a "Yes, sure, have a cookie!". | getting a "Yes, sure, have a cookie!". | |||
| This information is unauthenticated information, and an attacker (e.g | This information is unauthenticated information, and an attacker (e.g | |||
| MITM or malicious recursive server) could insert an extended error | MITM or malicious recursive server) could insert an extended error | |||
| response into already untrusted data -- ideally clients and resolvers | response into already untrusted data -- ideally clients and resolvers | |||
| would not trust any unauthenticated information, but until we live in | would not trust any unauthenticated information, but until we live in | |||
| an era where all DNS answers are authenticated via DNSSEC or other | an era where all DNS answers are authenticated via DNSSEC or other | |||
| mechanisms, there are some tradeoffs. As an example, an attacker who | mechanisms, there are some tradeoffs. As an example, an attacker who | |||
| is able to insert the DNSSEC Bogus Extended Error into a packet could | is able to insert the DNSSEC Bogus Extended Error into a packet could | |||
| instead simply reply with a fictitious address (A or AAAA) record. | instead simply reply with a fictitious address (A or AAAA) record. | |||
| The R bit hint and extended error information are informational - | ||||
| implementations can choose how much to trust this information and | ||||
| validating resolvers / stubs may choose to put a different weight on | ||||
| it. | ||||
| 7. Acknowledgements | 7. Acknowledgements | |||
| The authors wish to thank Joe Abley, Mark Andrews, Stephane | The authors wish to thank Joe Abley, Mark Andrews, Stephane | |||
| Bortzmeyer, Vladimir Cunat, Peter DeVries, Peter van Dijk, Donald | Bortzmeyer, Vladimir Cunat, Peter DeVries, Peter van Dijk, Donald | |||
| Eastlake, Bob Harold, Evan Hunt, Geoff Huston, Shane Kerr, Edward | Eastlake, Bob Harold, Geoff Huston, Shane Kerr, Edward Lewis, Carlos | |||
| Lewis, Carlos M. Martinez, George Michelson, Michael Sheldon, Petr | M. Martinez, George Michelson, Michael Sheldon, Petr Spacek, Ondrej | |||
| Spacek, Ondrej Sury, Loganaden Velvindron, and Paul Vixie. They also | Sury, Loganaden Velvindron, and Paul Vixie. They also vaguely | |||
| vaguely remember discussing this with a number of people over the | remember discussing this with a number of people over the years, but | |||
| years, but have forgotten who all they were -- if you were one of | have forgotten who all they were -- if you were one of them, and are | |||
| them, and are not listed, please let us know and we'll acknowledge | not listed, please let us know and we'll acknowledge you. | |||
| you. | ||||
| I also want to thank the band "Infected Mushroom" for providing a | I also want to thank the band "Infected Mushroom" for providing a | |||
| good background soundtrack (and to see if I can get away with this!) | good background soundtrack (and to see if I can get away with this!) | |||
| Another author would like to thank the band "Mushroom Infectors". | Another author would like to thank the band "Mushroom Infectors". | |||
| This was funny at the time we wrote it, but I cannot remember why... | This was funny at the time we wrote it, but we cannot remember why... | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| skipping to change at page 14, line 22 ¶ | skipping to change at page 12, line 15 ¶ | |||
| [RFC2845] Vixie, P., Gudmundsson, O., Eastlake 3rd, D., and B. | [RFC2845] Vixie, P., Gudmundsson, O., Eastlake 3rd, D., and B. | |||
| Wellington, "Secret Key Transaction Authentication for DNS | Wellington, "Secret Key Transaction Authentication for DNS | |||
| (TSIG)", RFC 2845, DOI 10.17487/RFC2845, May 2000, | (TSIG)", RFC 2845, DOI 10.17487/RFC2845, May 2000, | |||
| <https://www.rfc-editor.org/info/rfc2845>. | <https://www.rfc-editor.org/info/rfc2845>. | |||
| [RFC8094] Reddy, T., Wing, D., and P. Patil, "DNS over Datagram | [RFC8094] Reddy, T., Wing, D., and P. Patil, "DNS over Datagram | |||
| Transport Layer Security (DTLS)", RFC 8094, | Transport Layer Security (DTLS)", RFC 8094, | |||
| DOI 10.17487/RFC8094, February 2017, <https://www.rfc- | DOI 10.17487/RFC8094, February 2017, <https://www.rfc- | |||
| editor.org/info/rfc8094>. | editor.org/info/rfc8094>. | |||
| Appendix A. Changes / Author Notes. | ||||
| [RFC Editor: Please remove this section before publication ] | ||||
| From -00 to -01: | ||||
| o Address comments from IETF meeting. | ||||
| o document copying the response code | ||||
| o mention zero length fields are ok | ||||
| o clarify lookup procedure | ||||
| o mention that table isn't done | ||||
| From -03 to -IETF 00: | ||||
| o Renamed to draft-ietf-dnsop-extended-error | ||||
| From -02 to -03: | ||||
| o Added David Lawrence -- I somehow missed that in last version. | ||||
| From -00 to -01; | ||||
| o Fixed up some of the text, minor clarifications. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Warren Kumari | Warren Kumari | |||
| 1600 Amphitheatre Parkway | 1600 Amphitheatre Parkway | |||
| Mountain View, CA 94043 | Mountain View, CA 94043 | |||
| US | US | |||
| Email: warren@kumari.net | Email: warren@kumari.net | |||
| Evan Hunt | Evan Hunt | |||
| ISC | ISC | |||
| End of changes. 98 change blocks. | ||||
| 311 lines changed or deleted | 179 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||