| < draft-ietf-dnsop-nsec-aggressiveuse-05.txt | draft-ietf-dnsop-nsec-aggressiveuse-06.txt > | |||
|---|---|---|---|---|
| Network Working Group K. Fujiwara | Network Working Group K. Fujiwara | |||
| Internet-Draft JPRS | Internet-Draft JPRS | |||
| Updates: 4035 (if approved) A. Kato | Updates: 4035 (if approved) A. Kato | |||
| Intended status: Standards Track Keio/WIDE | Intended status: Standards Track Keio/WIDE | |||
| Expires: April 23, 2017 W. Kumari | Expires: May 20, 2017 W. Kumari | |||
| October 20, 2016 | November 16, 2016 | |||
| Aggressive use of NSEC/NSEC3 | Aggressive use of NSEC/NSEC3 | |||
| draft-ietf-dnsop-nsec-aggressiveuse-05 | draft-ietf-dnsop-nsec-aggressiveuse-06 | |||
| Abstract | Abstract | |||
| The DNS relies upon caching to scale; however, the cache lookup | The DNS relies upon caching to scale; however, the cache lookup | |||
| generally requires an exact match. This document specifies the use | generally requires an exact match. This document specifies the use | |||
| of NSEC/NSEC3 resource records to allow DNSSEC validating resolvers | of NSEC/NSEC3 resource records to allow DNSSEC validating resolvers | |||
| to generate negative answers within a range, and positive answers | to generate negative answers within a range, and positive answers | |||
| from wildcards. This increases performance / decreases latency, | from wildcards. This increases performance / decreases latency, | |||
| decreases resource utilization on both authoritative and recursive | decreases resource utilization on both authoritative and recursive | |||
| servers, and also increases privacy. It may also help increase | servers, and also increases privacy. It may also help increase | |||
| skipping to change at page 2, line 7 ¶ | skipping to change at page 2, line 7 ¶ | |||
| 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 April 23, 2017. | This Internet-Draft will expire on May 20, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
| skipping to change at page 2, line 30 ¶ | skipping to change at page 2, line 30 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Background . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Background . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5. Aggressive Negative Caching . . . . . . . . . . . . . . . . . 5 | 5. Aggressive use of Cache . . . . . . . . . . . . . . . . . . . 5 | |||
| 5.1. NSEC . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. NSEC . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.2. NSEC3 . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 5.2. NSEC3 . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.3. Wildcards . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.3. Wildcards . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.4. Consideration on TTL . . . . . . . . . . . . . . . . . . 7 | 5.4. Consideration on TTL . . . . . . . . . . . . . . . . . . 7 | |||
| 6. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 6. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Update to RFC 4035 . . . . . . . . . . . . . . . . . . . . . 8 | 7. Update to RFC 4035 . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 10. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | 10. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11.1. Change History . . . . . . . . . . . . . . . . . . . . . 10 | 11.1. Change History . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 11.1.1. Version draft-fujiwara-dnsop-nsec-aggressiveuse-01 . 12 | 11.1.1. Version draft-fujiwara-dnsop-nsec-aggressiveuse-01 . 12 | |||
| 11.1.2. Version draft-fujiwara-dnsop-nsec-aggressiveuse-02 . 13 | 11.1.2. Version draft-fujiwara-dnsop-nsec-aggressiveuse-02 . 13 | |||
| 11.1.3. Version draft-fujiwara-dnsop-nsec-aggressiveuse-03 . 13 | 11.1.3. Version draft-fujiwara-dnsop-nsec-aggressiveuse-03 . 13 | |||
| 11.2. new section . . . . . . . . . . . . . . . . . . . . . . 13 | 11.2. new section . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
| skipping to change at page 3, line 25 ¶ | skipping to change at page 3, line 25 ¶ | |||
| information they have in the cache. This allows validating resolvers | information they have in the cache. This allows validating resolvers | |||
| to respond with NXDOMAIN immediately if the name in question falls | to respond with NXDOMAIN immediately if the name in question falls | |||
| into a range expressed by a NSEC/NSEC3 resource record already in the | into a range expressed by a NSEC/NSEC3 resource record already in the | |||
| cache. It also allows the synthesis of positive answers in the | cache. It also allows the synthesis of positive answers in the | |||
| presence of wildcard records. | presence of wildcard records. | |||
| Aggressive Negative Caching was first proposed in Section 6 of DNSSEC | Aggressive Negative Caching was first proposed in Section 6 of DNSSEC | |||
| Lookaside Validation (DLV) [RFC5074] in order to find covering NSEC | Lookaside Validation (DLV) [RFC5074] in order to find covering NSEC | |||
| records efficiently. | records efficiently. | |||
| Section 3 of [I-D.vixie-dnsext-resimprove] "Stopping Downward Cache | [RFC8020] proposes a first step to using NXDOMAIN information for | |||
| Search on NXDOMAIN" and [I-D.ietf-dnsop-nxdomain-cut] proposed | more effective caching. This takes this technique further. | |||
| another approach to use NXDOMAIN information effectively. | ||||
| 2. Terminology | 2. Terminology | |||
| 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 RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| Many of the specialized terms used in this document are defined in | Many of the specialized terms used in this document are defined in | |||
| DNS Terminology [RFC7719]. | DNS Terminology [RFC7719]. | |||
| skipping to change at page 4, line 8 ¶ | skipping to change at page 4, line 4 ¶ | |||
| 3. Problem Statement | 3. Problem Statement | |||
| The DNS negative cache caches negative (non-existent) information, | The DNS negative cache caches negative (non-existent) information, | |||
| and requires an exact match in most instances [RFC2308]. | and requires an exact match in most instances [RFC2308]. | |||
| Assume that the (DNSSEC signed) "example.com" zone contains: | Assume that the (DNSSEC signed) "example.com" zone contains: | |||
| albatross.example.com IN A 192.0.2.1 | albatross.example.com IN A 192.0.2.1 | |||
| elephant.example.com IN A 192.0.2.2 | elephant.example.com IN A 192.0.2.2 | |||
| zebra.example.com IN A 192.0.2.3 | zebra.example.com IN A 192.0.2.3 | |||
| If a validating resolver receives a query for cat.example.com, it | If a validating resolver receives a query for cat.example.com, it | |||
| contacts its resolver (which may be itself) to query the example.com | contacts its resolver (which may be itself) to query the example.com | |||
| servers and will get back an NSEC record starting that there are no | servers and will get back an NSEC record starting that there are no | |||
| records (alphabetically) between albatross and elephant, or an NSEC3 | records (alphabetically) between albatross and elephant, or an NSEC3 | |||
| record stating there is nothing between two hashed names. The | record stating there is nothing between two hashed names. The | |||
| resolver then knows that cat.example.com does not exist; however, it | resolver then knows that cat.example.com does not exist; however, it | |||
| does not use the fact that the proof covers a range (albatross to | does not use the fact that the proof covers a range (albatross to | |||
| elephant) to suppress queries for other labels that fall within this | elephant) to suppress queries for other labels that fall within this | |||
| range. This means that if the validating resolver gets a query for | range. This means that if the validating resolver gets a query for | |||
| ball.example.com (or dog.example.com) it will once again go off and | ball.example.com (or dog.example.com) it will once again go off and | |||
| query the example.com servers for these names. | query the example.com servers for these names. | |||
| Apart from wasting bandwidth, this also wastes resources on the | ||||
| recursive server (it needs to keep state for outstanding queries), | ||||
| wastes resources on the authoritative server (it has to answer | ||||
| additional questions), increases latency (the end user has to wait | ||||
| longer than necessary to get back an NXDOMAIN answer), can be used by | ||||
| attackers to cause a DoS (see additional resources), and also has | ||||
| privacy implications (e.g: typos leak out further than necessary). | ||||
| Now, assume that the (DNSSEC signed) "example.org" zone contains: | Now, assume that the (DNSSEC signed) "example.org" zone contains: | |||
| avocado.example.org IN A 192.0.2.1 | avocado.example.org IN A 192.0.2.1 | |||
| *.example.org IN A 192.0.2.2 | *.example.org IN A 192.0.2.2 | |||
| zucchini.example.org IN A 192.0.2.3 | zucchini.example.org IN A 192.0.2.3 | |||
| If a query is received for leek.example.org, it contacts its resolver | If a query is received for leek.example.org, it contacts its resolver | |||
| (which may be itself) to query the example.org servers and will get | (which may be itself) to query the example.org servers and will get | |||
| back an NSEC record stating that there are no records | back an NSEC record stating that there are no records | |||
| (alphabetically) between avocado and zucchini (or an NSEC3 record | (alphabetically) between avocado and zucchini (or an NSEC3 record | |||
| stating there is nothing between two hashed names), as well as an | stating there is nothing between two hashed names), as well as an | |||
| answer for leek.example.org, with the label count of the signature | answer for leek.example.org, with the label count of the signature | |||
| set to two (see [RFC7129], section 5.3 for more details). | set to two (see [RFC7129], section 5.3 for more details). | |||
| Apart from wasting bandwidth, this also wastes resources on the | If the validating resolver gets a query for banana.example.org it | |||
| recursive server (it needs to keep state for outstanding queries), | will once again go off and query the example.com servers for | |||
| wastes resources on the authoritative server (it has to answer | banana.example.com (even though it already has proof that there is a | |||
| additional questions), increases latency (the end user has to wait | wildcard record) - just like above, this has privacy implications, | |||
| longer than necessary to get back an NXDOMAIN answer), can be used by | wastes resources, can be used to contribute to a DoS, etc. | |||
| attackers to cause a DoS (see additional resources), and also has | ||||
| privacy implications (e.g: typos leak out further than necessary). | ||||
| 4. Background | 4. Background | |||
| DNSSEC [RFC4035] and [RFC5155] both provide "authenticated denial of | DNSSEC [RFC4035] and [RFC5155] both provide "authenticated denial of | |||
| existence"; this is a cryptographic proof that the queried for name | existence"; this is a cryptographic proof that the queried for name | |||
| does not exist, accomplished by providing a (DNSSEC secured) record | does not exist, accomplished by providing a (DNSSEC secured) record | |||
| containing the names which appear alphabetically before and after the | containing the names which appear alphabetically before and after the | |||
| queried for name. In the first example above, if the (DNSSEC | queried for name. In the first example above, if the (DNSSEC | |||
| validating) recursive server were to query for dog.example.com it | validating) recursive server were to query for dog.example.com it | |||
| would receive a (signed) NSEC record stating that there are no labels | would receive a (signed) NSEC record stating that there are no labels | |||
| skipping to change at page 5, line 43 ¶ | skipping to change at page 5, line 45 ¶ | |||
| We believe this recommendation can be relaxed because, in the absense | We believe this recommendation can be relaxed because, in the absense | |||
| of this technique, a lookup for the exact name could have come in | of this technique, a lookup for the exact name could have come in | |||
| during this interval, and so a negative answer could already be | during this interval, and so a negative answer could already be | |||
| cached (see [RFC2308] for more background). This means that zone | cached (see [RFC2308] for more background). This means that zone | |||
| operators should have no expectation that an added name would work | operators should have no expectation that an added name would work | |||
| immediately. With DNSSEC and Aggressive NSEC, the TTL of the NSEC | immediately. With DNSSEC and Aggressive NSEC, the TTL of the NSEC | |||
| record is the authoritative statement of how quickly a name can start | record is the authoritative statement of how quickly a name can start | |||
| working within a zone. | working within a zone. | |||
| 5. Aggressive Negative Caching | 5. Aggressive use of Cache | |||
| Section 4.5 of [RFC4035] says that "In theory, a resolver could use | Section 4.5 of [RFC4035] says that "In theory, a resolver could use | |||
| wildcards or NSEC RRs to generate positive and negative responses | wildcards or NSEC RRs to generate positive and negative responses | |||
| (respectively) until the TTL or signatures on the records in question | (respectively) until the TTL or signatures on the records in question | |||
| expire. However, it seems prudent for resolvers to avoid blocking | expire. However, it seems prudent for resolvers to avoid blocking | |||
| new authoritative data or synthesizing new data on their own. | new authoritative data or synthesizing new data on their own. | |||
| Resolvers that follow this recommendation will have a more consistent | ||||
| view of the namespace". | ||||
| This document relaxes this this restriction, as follows: | Resolvers that follow this recommendation will have a more consistent | |||
| view of the namespace". This document relaxes this this restriction, | ||||
| +--------------------------------------------------------------+ | see Section 7 for more detail. | |||
| | Once the records are validated, DNSSEC enabled validating | | ||||
| | resolvers MAY use wildcards and NSEC/NSEC3 resource records | | ||||
| | to generate positive and negative responses until the | | ||||
| | effective TTLs or signatures for those records expire. | | ||||
| +--------------------------------------------------------------+ | ||||
| If the negative cache of the validating resolver has sufficient | If the negative cache of the validating resolver has sufficient | |||
| information to validate the query, the resolver SHOULD use NSEC, | information to validate the query, the resolver SHOULD use NSEC, | |||
| NSEC3 and wildcard records aggressively. Otherwise, it MUST fall | NSEC3 and wildcard records aggressively. Otherwise, it MUST fall | |||
| back to send the query to the authoritative DNS servers. | back to send the query to the authoritative DNS servers. | |||
| It is recommended that resolvers that implement Aggressive Negative | It is recommended that resolvers that implement Aggressive Negative | |||
| Caching provide a configuration switch to disable the feature. | Caching provide a configuration switch to disable the feature. | |||
| Separate configuration switches may be implemented for the aggressive | Separate configuration switches may be implemented for the aggressive | |||
| use of NSEC, NSEC3 and wildcard records, and it is recommended to | use of NSEC, NSEC3 and wildcard records, and it is recommended to | |||
| skipping to change at page 7, line 39 ¶ | skipping to change at page 7, line 33 ¶ | |||
| validating resolvers limit the maximum effective TTL value of | validating resolvers limit the maximum effective TTL value of | |||
| negative responses (NSEC/NSEC3 RRs) to this same value. | negative responses (NSEC/NSEC3 RRs) to this same value. | |||
| Section 5 of [RFC2308]also states that a negative cache entry TTL is | Section 5 of [RFC2308]also states that a negative cache entry TTL is | |||
| taken from the minimum of the SOA.MINIMUM field and SOA's TTL. This | taken from the minimum of the SOA.MINIMUM field and SOA's TTL. This | |||
| can be less than the TTL of an NSEC or NSEC3 record, since their TTL | can be less than the TTL of an NSEC or NSEC3 record, since their TTL | |||
| is equal to the SOA.MINIMUM field (see [RFC4035]section 2.3 and | is equal to the SOA.MINIMUM field (see [RFC4035]section 2.3 and | |||
| [RFC5155] section 3.) | [RFC5155] section 3.) | |||
| A resolver that supports aggressive use of NSEC and NSEC3 should | A resolver that supports aggressive use of NSEC and NSEC3 should | |||
| reduce the TTL of NSEC and NSEC3 records to match the TTL of the SOA | reduce the TTL of NSEC and NSEC3 records to match the SOA.MINIMUM | |||
| record in the authority section of a negative response, if the SOA | field in the authority section of a negative response, if SOA.MINIMUM | |||
| TTL is smaller. | is smaller. | |||
| 6. Benefits | 6. Benefits | |||
| The techniques described in this document provide a number of | The techniques described in this document provide a number of | |||
| benefits, including (in no specific order): | benefits, including (in no specific order): | |||
| Reduced latency: By answering directly from cache, validating | Reduced latency: By answering directly from cache, validating | |||
| resolvers can immediately inform clients that the name they are | resolvers can immediately inform clients that the name they are | |||
| looking for does not exist, improving the user experience. | looking for does not exist, improving the user experience. | |||
| Decreased recursive server load: By answering negative queries from | Decreased recursive server load: By answering queries from the cache | |||
| the cache, validating servers avoid having to send a query and | by synthesizing answers, validating servers avoid having to send a | |||
| wait for a response. In addition to decreasing the bandwidth | query and wait for a response. In addition to decreasing the | |||
| used, it also means that the server does not need to allocate and | bandwidth used, it also means that the server does not need to | |||
| maintain state, thereby decreasing memory and CPU load. | allocate and maintain state, thereby decreasing memory and CPU | |||
| load. | ||||
| Decreased authorative server load: Because recursive servers can | Decreased authorative server load: Because recursive servers can | |||
| answer (negative) queries without asking the authoritative server, | answer queries without asking the authoritative server, the | |||
| the authoritative servers receive fewer queries. This decreases | authoritative servers receive fewer queries. This decreases the | |||
| the authoritative server bandwidth, queries per second and CPU | authoritative server bandwidth, queries per second and CPU | |||
| utilization. | utilization. | |||
| The scale of the benefit depends upon multiple factors, including the | The scale of the benefit depends upon multiple factors, including the | |||
| query distribution. For example, at the time of this writing, around | query distribution. For example, at the time of this writing, around | |||
| 65% of queries to Root Name servers result in NXDOMAIN responses (see | 65% of queries to Root Name servers result in NXDOMAIN responses (see | |||
| statistics from [root-servers.org]); this technique will eliminate a | statistics from [root-servers.org]); this technique will eliminate a | |||
| sizable quantity of these. | sizable quantity of these. | |||
| The technique described in this document may also mitigate so-called | The technique described in this document may also mitigate so-called | |||
| "random QNAME attacks", in which attackers send many queries for | "random QNAME attacks", in which attackers send many queries for | |||
| skipping to change at page 9, line 49 ¶ | skipping to change at page 9, line 45 ¶ | |||
| it is inappropriate for inclusion in a published RFC." ] | it is inappropriate for inclusion in a published RFC." ] | |||
| Unbound currently implements aggressive negative caching, as does | Unbound currently implements aggressive negative caching, as does | |||
| Google Public DNS. | Google Public DNS. | |||
| 11. Acknowledgments | 11. Acknowledgments | |||
| The authors gratefully acknowledge DLV [RFC5074] author Samuel Weiler | The authors gratefully acknowledge DLV [RFC5074] author Samuel Weiler | |||
| and the Unbound developers. | and the Unbound developers. | |||
| The authors would like to specifically thank Stephane Bortzmeyer, | The authors would like to specifically thank Stephane Bortzmeyer (for | |||
| Tony Finch, Tatuya JINMEI for extensive review and comments, and also | standing next to and helping edit), Tony Finch, Tatuya JINMEI for | |||
| Mark Andrews, Casey Deccio, Alexander Dupuy, Olafur Gudmundsson, Bob | extensive review and comments, and also Mark Andrews, Casey Deccio, | |||
| Harold, Shumon Huque, John Levine, Pieter Lexis and Matthijs Mekking | Alexander Dupuy, Olafur Gudmundsson, Bob Harold, Shumon Huque, John | |||
| (who even sent pull requests!). Mark Andrews also provided the text | Levine, Pieter Lexis and Matthijs Mekking (who even sent pull | |||
| requests!). Mark Andrews also provided the text | ||||
| (https://www.ietf.org/mail-archive/web/dnsop/current/msg18332.html) | (https://www.ietf.org/mail-archive/web/dnsop/current/msg18332.html) | |||
| which we made into Appendix B | which we made into Appendix B. | |||
| 11.1. Change History | 11.1. Change History | |||
| RFC Editor: Please remove this section prior to publication. | RFC Editor: Please remove this section prior to publication. | |||
| -05 to -06: | ||||
| o Moved some dangling text around - when the examples were added | ||||
| some text added in the wrong place. | ||||
| o There were some bits which mentioned "negative" in the title. | ||||
| o We had the cut-and-paste of what changed in 4035 twice. | ||||
| -04 to -05: | -04 to -05: | |||
| o Bob pointed out that I did a stupid - when I added the wildcard to | o Bob pointed out that I did a stupid - when I added the wildcard to | |||
| 'example.com' I made the example wrong / confusing. I have | 'example.com' I made the example wrong / confusing. I have | |||
| attempted to fix this by adding a second example zone | attempted to fix this by adding a second example zone | |||
| (example.org) with the wildcard instead. | (example.org) with the wildcard instead. | |||
| o More helpful changes (in a pull request, thanks!) from Matthijs | o More helpful changes (in a pull request, thanks!) from Matthijs | |||
| o Included Mark Andrew's useful explanation of how to tell ENT from | o Included Mark Andrew's useful explanation of how to tell ENT from | |||
| skipping to change at page 10, line 46 ¶ | skipping to change at page 11, line 4 ¶ | |||
| answers. | answers. | |||
| * Reworded much of the Wildcard text. | * Reworded much of the Wildcard text. | |||
| o Incorporated pull request from Tony Finch (thanks!): | o Incorporated pull request from Tony Finch (thanks!): | |||
| https://github.com/wkumari/draft-ietf-dnsop-nsec-aggressiveuse/ | https://github.com/wkumari/draft-ietf-dnsop-nsec-aggressiveuse/ | |||
| pull/1 | pull/1 | |||
| o More fixups from Tony (including text): https://www.ietf.org/mail- | o More fixups from Tony (including text): https://www.ietf.org/mail- | |||
| archive/web/dnsop/current/msg18271.html. This included much | archive/web/dnsop/current/msg18271.html. This included much | |||
| clearer text on TTL, refernces to the NSEC / NSEC3 RFCs (instead | clearer text on TTL, references to the NSEC / NSEC3 RFCs (instead | |||
| of my clumsy summary), good text on replays, etc. | of my clumsy summary), good text on replays, etc. | |||
| o Converted the "zone file" to a figure to make it more readable. | o Converted the "zone file" to a figure to make it more readable. | |||
| o Text from Tim W: "If a validating resolver receives a query for | o Text from Tim W: "If a validating resolver receives a query for | |||
| cat.example.com, it contacts its resolver (which may be itself) to | cat.example.com, it contacts its resolver (which may be itself) to | |||
| query..." - which satisfies Jinmei's concern (which I was too | query..." - which satisfies Jinmei's concern (which I was too | |||
| dense to grock). | dense to grock). | |||
| o Fixup of the "validation required" in security considerations. | o Fixup of the "validation required" in security considerations. | |||
| skipping to change at page 14, line 35 ¶ | skipping to change at page 14, line 35 ¶ | |||
| Bortzmeyer, S. and S. Huque, "NXDOMAIN really means there | Bortzmeyer, S. and S. Huque, "NXDOMAIN really means there | |||
| is nothing underneath", draft-ietf-dnsop-nxdomain-cut-03 | is nothing underneath", draft-ietf-dnsop-nxdomain-cut-03 | |||
| (work in progress), May 2016. | (work in progress), May 2016. | |||
| [I-D.vixie-dnsext-resimprove] | [I-D.vixie-dnsext-resimprove] | |||
| Vixie, P., Joffe, R., and F. Neves, "Improvements to DNS | Vixie, P., Joffe, R., and F. Neves, "Improvements to DNS | |||
| Resolvers for Resiliency, Robustness, and Responsiveness", | Resolvers for Resiliency, Robustness, and Responsiveness", | |||
| draft-vixie-dnsext-resimprove-00 (work in progress), June | draft-vixie-dnsext-resimprove-00 (work in progress), June | |||
| 2010. | 2010. | |||
| [RFC8020] Bortzmeyer, S. and S. Huque, "NXDOMAIN: There Really Is | ||||
| Nothing Underneath", RFC 8020, DOI 10.17487/RFC8020, | ||||
| November 2016, <http://www.rfc-editor.org/info/rfc8020>. | ||||
| [root-servers.org] | [root-servers.org] | |||
| IANA, "Root Server Technical Operations Assn", | IANA, "Root Server Technical Operations Assn", | |||
| <http://www.root-servers.org/>. | <http://www.root-servers.org/>. | |||
| Appendix A. Detailed implementation notes | Appendix A. Detailed implementation notes | |||
| o Previously, cached negative responses were indexed by QNAME, | o Previously, cached negative responses were indexed by QNAME, | |||
| QCLASS, QTYPE, and the setting of the CD bit (see RFC 4035, | QCLASS, QTYPE, and the setting of the CD bit (see RFC 4035, | |||
| Section 4.7), and only queries matching the index key would be | Section 4.7), and only queries matching the index key would be | |||
| answered from the cache. With aggressive negative caching, the | answered from the cache. With aggressive negative caching, the | |||
| End of changes. 22 change blocks. | ||||
| 47 lines changed or deleted | 59 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/ | ||||