| rfc8483.txt | test8483.v2v3fixed.txt | |||
|---|---|---|---|---|
| skipping to change at page 2, line 12 ¶ | skipping to change at line 47 ¶ | |||
| and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
| https://www.rfc-editor.org/info/rfc8483. | https://www.rfc-editor.org/info/rfc8483. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| (https://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. | to this document. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. Requirements Notation and Conventions . . . . . . . . . . . . 5 | 2. Requirements Notation and Conventions | |||
| 3. Areas of Study . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Areas of Study | |||
| 3.1. Implementation of a Testbed like the Root Server System . 5 | 3.1. Implementation of a Testbed like the Root Server | |||
| 3.2. Yeti-Root Zone Distribution . . . . . . . . . . . . . . . 5 | System | |||
| 3.3. Yeti-Root Server Names and Addressing . . . . . . . . . . 5 | 3.2. Yeti-Root Zone Distribution | |||
| 3.4. IPv6-Only Yeti-Root Servers . . . . . . . . . . . . . . . 6 | 3.3. Yeti-Root Server Names and Addressing | |||
| 3.5. DNSSEC in the Yeti-Root Zone . . . . . . . . . . . . . . 6 | 3.4. IPv6-Only Yeti-Root Servers | |||
| 4. Yeti DNS Testbed Infrastructure . . . . . . . . . . . . . . . 7 | 3.5. DNSSEC in the Yeti-Root Zone | |||
| 4.1. Root Zone Retrieval . . . . . . . . . . . . . . . . . . . 8 | 4. Yeti DNS Testbed Infrastructure | |||
| 4.2. Transformation of Root Zone to Yeti-Root Zone . . . . . . 9 | 4.1. Root Zone Retrieval | |||
| 4.2.1. ZSK and KSK Key Sets Shared between DMs . . . . . . . 10 | 4.2. Transformation of Root Zone to Yeti-Root Zone | |||
| 4.2.2. Unique ZSK per DM; No Shared KSK . . . . . . . . . . 10 | 4.2.1. ZSK and KSK Key Sets Shared between DMs | |||
| 4.2.3. Preserving Root Zone NSEC Chain and ZSK RRSIGs . . . 11 | 4.2.2. Unique ZSK per DM; No Shared KSK | |||
| 4.3. Yeti-Root Zone Distribution . . . . . . . . . . . . . . . 12 | 4.2.3. Preserving Root Zone NSEC Chain and ZSK | |||
| 4.4. Synchronization of Service Metadata . . . . . . . . . . . 12 | RRSIGs | |||
| 4.5. Yeti-Root Server Naming Scheme . . . . . . . . . . . . . 13 | 4.3. Yeti-Root Zone Distribution | |||
| 4.6. Yeti-Root Servers . . . . . . . . . . . . . . . . . . . . 14 | 4.4. Synchronization of Service Metadata | |||
| 4.7. Experimental Traffic . . . . . . . . . . . . . . . . . . 16 | 4.5. Yeti-Root Server Naming Scheme | |||
| 4.8. Traffic Capture and Analysis . . . . . . . . . . . . . . 16 | 4.6. Yeti-Root Servers | |||
| 5. Operational Experience with the Yeti DNS Testbed . . . . . . 17 | 4.7. Experimental Traffic | |||
| 5.1. Viability of IPv6-Only Operation . . . . . . . . . . . . 17 | 4.8. Traffic Capture and Analysis | |||
| 5.1.1. IPv6 Fragmentation . . . . . . . . . . . . . . . . . 18 | 5. Operational Experience with the Yeti DNS Testbed | |||
| 5.1.2. Serving IPv4-Only End-Users . . . . . . . . . . . . . 19 | 5.1. Viability of IPv6-Only Operation | |||
| 5.2. Zone Distribution . . . . . . . . . . . . . . . . . . . . 19 | 5.1.1. IPv6 Fragmentation | |||
| 5.2.1. Zone Transfers . . . . . . . . . . . . . . . . . . . 19 | 5.1.2. Serving IPv4-Only End-Users | |||
| 5.2.2. Delays in Yeti-Root Zone Distribution . . . . . . . . 20 | 5.2. Zone Distribution | |||
| 5.2.3. Mixed RRSIGs from Different DM ZSKs . . . . . . . . . 21 | 5.2.1. Zone Transfers | |||
| 5.3. DNSSEC KSK Rollover . . . . . . . . . . . . . . . . . . . 22 | 5.2.2. Delays in Yeti-Root Zone Distribution | |||
| 5.3.1. Failure-Case KSK Rollover . . . . . . . . . . . . . . 22 | 5.2.3. Mixed RRSIGs from Different DM ZSKs | |||
| 5.3.2. KSK Rollover vs. BIND9 Views . . . . . . . . . . . . 22 | 5.3. DNSSEC KSK Rollover | |||
| 5.3.3. Large Responses during KSK Rollover . . . . . . . . . 23 | 5.3.1. Failure-Case KSK Rollover | |||
| 5.4. Capture of Large DNS Response . . . . . . . . . . . . . . 24 | 5.3.2. KSK Rollover vs. BIND9 Views | |||
| 5.5. Automated Maintenance of the Hints File . . . . . . . . . 24 | 5.3.3. Large Responses during KSK Rollover | |||
| 5.6. Root Label Compression in Knot DNS Server . . . . . . . . 25 | 5.4. Capture of Large DNS Response | |||
| 6. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 5.5. Automated Maintenance of the Hints File | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | 5.6. Root Label Compression in Knot DNS Server | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | 6. Conclusions | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 7. Security Considerations | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 29 | 8. IANA Considerations | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 29 | 9. References | |||
| Appendix A. Yeti-Root Hints File . . . . . . . . . . . . . . . . 33 | 9.1. Normative References | |||
| Appendix B. Yeti-Root Server Priming Response . . . . . . . . . 34 | 9.2. Informative References | |||
| Appendix C. Active IPv6 Prefixes in Yeti DNS Testbed . . . . . . 36 | Appendix A. Yeti-Root Hints File | |||
| Appendix D. Tools Developed for Yeti DNS Testbed . . . . . . . . 36 | Appendix B. Yeti-Root Server Priming Response | |||
| Appendix E. Controversy . . . . . . . . . . . . . . . . . . . . 37 | Appendix C. Active IPv6 Prefixes in Yeti DNS Testbed | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 38 | Appendix D. Tools Developed for Yeti DNS Testbed | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 | Appendix E. Controversy | |||
| Acknowledgments | ||||
| Authors' Addresses | ||||
| 1. Introduction | 1. Introduction | |||
| The Domain Name System (DNS), as originally specified in [RFC1034] | The Domain Name System (DNS), as originally specified in [RFC1034] | |||
| and [RFC1035], has proved to be an enduring and important platform | and [RFC1035], has proved to be an enduring and important platform | |||
| upon which almost every end-user of the Internet relies. Despite its | upon which almost every end-user of the Internet relies. Despite its | |||
| longevity, extensions to the protocol, new implementations, and | longevity, extensions to the protocol, new implementations, and | |||
| refinements to DNS operations continue to emerge both inside and | refinements to DNS operations continue to emerge both inside and | |||
| outside the IETF. | outside the IETF. | |||
| The Root Server system in particular has seen technical innovation | The Root Server system in particular has seen technical innovation | |||
| and development, for example, in the form of wide-scale anycast | and development, for example, in the form of wide-scale anycast | |||
| deployment, the mitigation of unwanted traffic on a global scale, the | deployment, the mitigation of unwanted traffic on a global scale, the | |||
| widespread deployment of Response Rate Limiting [RRL], the | widespread deployment of Response Rate Limiting [RRL], the | |||
| introduction of IPv6 transport, the deployment of DNSSEC, changes in | introduction of IPv6 transport, the deployment of DNSSEC, changes in | |||
| DNSSEC key sizes, and preparations to roll the root zone's Key | DNSSEC key sizes, and preparations to roll the root zone's Key | |||
| Signing Key (KSK) and corresponding trust anchor. These projects | Signing Key (KSK) and corresponding trust anchor. These projects | |||
| created tremendous qualitative operational change and required | created tremendous qualitative operational change and required | |||
| impressive caution and study prior to implementation. They took | impressive caution and study prior to implementation. They took | |||
| place in parallel with the quantitative expansion or delegations for | place in parallel with the quantitative expansion or delegations for | |||
| new TLDs (see <https://newgtlds.icann.org/>). | new TLDs (see https://newgtlds.icann.org/). | |||
| Aspects of the operational structure of the Root Server system have | Aspects of the operational structure of the Root Server system have | |||
| been described in such documents as [TNO2009], [ISC-TN-2003-1], | been described in such documents as [TNO2009], [ISC-TN-2003-1], | |||
| [RSSAC001], and [RFC7720]. Such references, considered together, | [RSSAC001], and [RFC7720]. Such references, considered together, | |||
| provide sufficient insight into the operations of the system as a | provide sufficient insight into the operations of the system as a | |||
| whole that it is straightforward to imagine structural changes to the | whole that it is straightforward to imagine structural changes to the | |||
| Root Server system's infrastructure and to wonder what the | Root Server system's infrastructure and to wonder what the | |||
| operational implications of such changes might be. | operational implications of such changes might be. | |||
| The Yeti DNS Project was conceived in May 2015 with the aim of | The Yeti DNS Project was conceived in May 2015 with the aim of | |||
| skipping to change at page 5, line 28 ¶ | skipping to change at line 203 ¶ | |||
| is not affiliated with the IETF, ICANN, IANA, or any Root Server | is not affiliated with the IETF, ICANN, IANA, or any Root Server | |||
| Operator. Thus, the topics and areas for study were selected by (and | Operator. Thus, the topics and areas for study were selected by (and | |||
| for) the proponents of the Yeti project to address their own concerns | for) the proponents of the Yeti project to address their own concerns | |||
| and in the hope that the information and tools provided would be of | and in the hope that the information and tools provided would be of | |||
| wider interest. | wider interest. | |||
| Each example included below is illustrated with indicative questions. | Each example included below is illustrated with indicative questions. | |||
| 3.1. Implementation of a Testbed like the Root Server System | 3.1. Implementation of a Testbed like the Root Server System | |||
| o How can a testbed be constructed and deployed on the Internet, | * How can a testbed be constructed and deployed on the Internet, | |||
| allowing useful public participation without any risk of | allowing useful public participation without any risk of | |||
| disruption of the Root Server system? | disruption of the Root Server system? | |||
| o How can representative traffic be introduced into such a testbed | * How can representative traffic be introduced into such a testbed | |||
| such that insights into the impact of specific differences between | such that insights into the impact of specific differences between | |||
| the testbed and the Root Server system can be observed? | the testbed and the Root Server system can be observed? | |||
| 3.2. Yeti-Root Zone Distribution | 3.2. Yeti-Root Zone Distribution | |||
| o What are the scaling properties of Yeti-Root zone distribution as | * What are the scaling properties of Yeti-Root zone distribution as | |||
| the number of Yeti-Root servers, Yeti-Root server instances, or | the number of Yeti-Root servers, Yeti-Root server instances, or | |||
| intermediate distribution points increases? | intermediate distribution points increases? | |||
| 3.3. Yeti-Root Server Names and Addressing | 3.3. Yeti-Root Server Names and Addressing | |||
| o What naming schemes other than those closely analogous to the use | * What naming schemes other than those closely analogous to the use | |||
| of ROOT-SERVERS.NET in the production root zone are practical, and | of ROOT-SERVERS.NET in the production root zone are practical, and | |||
| what are their respective advantages and disadvantages? | what are their respective advantages and disadvantages? | |||
| o What are the risks and benefits of signing the zone that contains | * What are the risks and benefits of signing the zone that contains | |||
| the names of the Yeti-Root servers? | the names of the Yeti-Root servers? | |||
| o What automatic mechanisms might be useful to improve the rate at | * What automatic mechanisms might be useful to improve the rate at | |||
| which clients of Yeti-Root servers are able to react to a Yeti- | which clients of Yeti-Root servers are able to react to a Yeti- | |||
| Root server renumbering event? | Root server renumbering event? | |||
| 3.4. IPv6-Only Yeti-Root Servers | 3.4. IPv6-Only Yeti-Root Servers | |||
| o Are there negative operational effects in the use of IPv6-only | * Are there negative operational effects in the use of IPv6-only | |||
| Yeti-Root servers, compared to the use of servers that are dual- | Yeti-Root servers, compared to the use of servers that are dual- | |||
| stack? | stack? | |||
| o What effect does the IPv6 fragmentation model have on the | * What effect does the IPv6 fragmentation model have on the | |||
| operation of Yeti-Root servers, compared with that of IPv4? | operation of Yeti-Root servers, compared with that of IPv4? | |||
| 3.5. DNSSEC in the Yeti-Root Zone | 3.5. DNSSEC in the Yeti-Root Zone | |||
| o Is it practical to sign the Yeti-Root zone using multiple, | * Is it practical to sign the Yeti-Root zone using multiple, | |||
| independently operated DNSSEC signers and multiple corresponding | independently operated DNSSEC signers and multiple corresponding | |||
| Zone Signing Keys (ZSKs)? | Zone Signing Keys (ZSKs)? | |||
| o To what extent is [RFC5011] ("Automated Updates of DNS Security | * To what extent is [RFC5011] ("Automated Updates of DNS Security | |||
| (DNSSEC) Trust Anchors") supported by resolvers? | (DNSSEC) Trust Anchors") supported by resolvers? | |||
| o Does the KSK Rollover plan designed and in the process of being | * Does the KSK Rollover plan designed and in the process of being | |||
| implemented by ICANN work as expected on the Yeti testbed? | implemented by ICANN work as expected on the Yeti testbed? | |||
| o What is the operational impact of using much larger RSA key sizes | * What is the operational impact of using much larger RSA key sizes | |||
| in the ZSKs used in a root? | in the ZSKs used in a root? | |||
| o What are the operational consequences of choosing DNSSEC | * What are the operational consequences of choosing DNSSEC | |||
| algorithms other than RSA to sign a root? | algorithms other than RSA to sign a root? | |||
| 4. Yeti DNS Testbed Infrastructure | 4. Yeti DNS Testbed Infrastructure | |||
| The purpose of the testbed is to allow DNS queries from stub | The purpose of the testbed is to allow DNS queries from stub | |||
| resolvers, mediated by recursive resolvers, to be delivered to Yeti- | resolvers, mediated by recursive resolvers, to be delivered to Yeti- | |||
| Root servers, and for corresponding responses generated on the Yeti- | Root servers, and for corresponding responses generated on the Yeti- | |||
| Root servers to be returned, as illustrated in Figure 1. | Root servers to be returned, as illustrated in Figure 1. | |||
| ,----------. ,-----------. ,------------. | ,----------. ,-----------. ,------------. | |||
| skipping to change at page 7, line 28 ¶ | skipping to change at line 280 ¶ | |||
| `- resolver `- Yeti-Root trust `- with DNSKEY RRset | `- resolver `- Yeti-Root trust `- with DNSKEY RRset | |||
| configured anchor signed by | configured anchor signed by | |||
| Yeti-Root KSK | Yeti-Root KSK | |||
| Figure 1: High-Level Testbed Components | Figure 1: High-Level Testbed Components | |||
| To use the Yeti DNS testbed, a recursive resolver must be configured | To use the Yeti DNS testbed, a recursive resolver must be configured | |||
| to use the Yeti-Root servers. That configuration consists of a list | to use the Yeti-Root servers. That configuration consists of a list | |||
| of names and addresses for the Yeti-Root servers (often referred to | of names and addresses for the Yeti-Root servers (often referred to | |||
| as a "hints file") that replaces the corresponding hints used for the | as a "hints file") that replaces the corresponding hints used for the | |||
| production Root Server system (Appendix A). If resolvers are | production Root Server system (Section appendix.a). If resolvers are | |||
| configured to validate DNSSEC, then they also need to be configured | configured to validate DNSSEC, then they also need to be configured | |||
| with a DNSSEC trust anchor that corresponds to a KSK used in the Yeti | with a DNSSEC trust anchor that corresponds to a KSK used in the Yeti | |||
| DNS Project, in place of the normal trust anchor set used for the | DNS Project, in place of the normal trust anchor set used for the | |||
| Root Zone. | Root Zone. | |||
| Since the Yeti root(s) are signed with Yeti keys, rather than those | Since the Yeti root(s) are signed with Yeti keys, rather than those | |||
| used by the IANA Root, corresponding changes are needed in the | used by the IANA Root, corresponding changes are needed in the | |||
| resolver trust anchors. Corresponding changes are required in the | resolver trust anchors. Corresponding changes are required in the | |||
| Yeti-Root hints file Appendix A. Those changes would be properly | Yeti-Root hints file Section appendix.a. Those changes would be | |||
| rejected as bogus by any validator using the production Root Server | properly rejected as bogus by any validator using the production Root | |||
| system's root zone trust anchor set. | Server system's root zone trust anchor set. | |||
| Stub resolvers become part of the Yeti DNS testbed by their use of | Stub resolvers become part of the Yeti DNS testbed by their use of | |||
| recursive resolvers that are configured as described above. | recursive resolvers that are configured as described above. | |||
| The data flow from IANA to stub resolvers through the Yeti testbed is | The data flow from IANA to stub resolvers through the Yeti testbed is | |||
| illustrated in Figure 2 and is described in more detail in the | illustrated in Figure 2 and is described in more detail in the | |||
| sections that follow. | sections that follow. | |||
| ,----------------. | ,----------------. | |||
| ,-- / IANA Root Zone / ---. | ,-- / IANA Root Zone / ---. | |||
| | `----------------' | | | `----------------' | | |||
| | | | | | | | | |||
| | | | Root Zone | | | | Root Zone | |||
| ,--------------. ,---V---. ,---V---. ,---V---. | ,--------------. ,---V---. ,---V---. ,---V---. | |||
| | Yeti Traffic | | BII | | WIDE | | TISF | | | Yeti Traffic | | BII | | WIDE | | TISF | | |||
| | Collection | | DM | | DM | | DM | | | Collection | | DM | | DM | | DM | | |||
| `----+----+----' `---+---' `---+---' `---+---' | `----+----+----' `---+---' `---+---' `---+---' | |||
| | | ,-----' ,-------' `----. | | | ,-----' ,-------' `----. | |||
| | | | | | Yeti-Root | | | | | | Yeti-Root | |||
| ^ ^ | | | Zone | ^ ^ | | | Zone | |||
| | | ,---V---. ,---V---. ,---V---. | | | ,---V---. ,---V---. ,---V---. | |||
| | `---+ Yeti | | Yeti | . . . . . . . | Yeti | | | `---+ Yeti | | Yeti | . . . . . . . | Yeti | | |||
| | | Root | | Root | | Root | | | | Root | | Root | | Root | | |||
| | `---+---' `---+---' `---+---' | | `---+---' `---+---' `---+---' | |||
| | | | | DNS | | | | | DNS | |||
| | | | | Response | | | | | Response | |||
| | ,--V----------V-------------------------V--. | | ,--V----------V-------------------------V--. | |||
| `---------+ Yeti Resolvers | | `---------+ Yeti Resolvers | | |||
| `--------------------+---------------------' | `--------------------+---------------------' | |||
| | DNS | | DNS | |||
| | Response | | Response | |||
| ,--------------------V---------------------. | ,--------------------V---------------------. | |||
| | Yeti Stub Resolvers | | | Yeti Stub Resolvers | | |||
| `------------------------------------------' | `------------------------------------------' | |||
| The three coordinators of the Yeti DNS testbed: | The three coordinators of the Yeti DNS testbed: | |||
| BII : Beijing Internet Institute | BII : Beijing Internet Institute | |||
| WIDE: Widely Integrated Distributed Environment Project | WIDE: Widely Integrated Distributed Environment Project | |||
| TISF: A collaborative engineering and security project by Paul Vixie | TISF: A collaborative engineering and security project by Paul Vixie | |||
| Figure 2: Testbed Data Flow | Figure 2: Testbed Data Flow | |||
| Note that the roots are not bound to Distribution Masters (DMs). DMs | Note that the roots are not bound to Distribution Masters (DMs). DMs | |||
| update their zone on a schedule described in Section 4.1. Each DM | update their zone on a schedule described in Section 4.1. Each DM | |||
| that updates the latest zone can notify all roots, so the zone | that updates the latest zone can notify all roots, so the zone | |||
| transfer can happen between any DM and any root. | transfer can happen between any DM and any root. | |||
| 4.1. Root Zone Retrieval | 4.1. Root Zone Retrieval | |||
| skipping to change at page 9, line 23 ¶ | skipping to change at line 365 ¶ | |||
| At the time of writing, unauthenticated zone transfers of the Root | At the time of writing, unauthenticated zone transfers of the Root | |||
| Zone are available directly from B-Root, C-Root, F-Root, G-Root, | Zone are available directly from B-Root, C-Root, F-Root, G-Root, | |||
| K-Root, and L-Root; two servers XFR.CJR.DNS.ICANN.ORG and | K-Root, and L-Root; two servers XFR.CJR.DNS.ICANN.ORG and | |||
| XFR.LAX.DNS.ICANN.ORG; and via FTP from sites maintained by the Root | XFR.LAX.DNS.ICANN.ORG; and via FTP from sites maintained by the Root | |||
| Zone Maintainer and the IANA Functions Operator. The Yeti DNS | Zone Maintainer and the IANA Functions Operator. The Yeti DNS | |||
| testbed retrieves the Root Zone using zone transfers from F-Root. | testbed retrieves the Root Zone using zone transfers from F-Root. | |||
| The schedule on which F-Root is polled by each Yeti DM is as follows: | The schedule on which F-Root is polled by each Yeti DM is as follows: | |||
| +-------------+-----------------------+ | +-------------+-----------------------+ | |||
| | DM Operator | Time | | | DM Operator | Time | | |||
| +-------------+-----------------------+ | +=============+=======================+ | |||
| | BII | UTC hour + 00 minutes | | | BII | UTC hour + 00 minutes | | |||
| +-------------+-----------------------+ | ||||
| | WIDE | UTC hour + 20 minutes | | | WIDE | UTC hour + 20 minutes | | |||
| +-------------+-----------------------+ | ||||
| | TISF | UTC hour + 40 minutes | | | TISF | UTC hour + 40 minutes | | |||
| +-------------+-----------------------+ | +-------------+-----------------------+ | |||
| Table 1 | ||||
| The Yeti DNS testbed uses multiple DMs, each of which acts | The Yeti DNS testbed uses multiple DMs, each of which acts | |||
| autonomously and equivalently to its siblings. Any single DM can act | autonomously and equivalently to its siblings. Any single DM can act | |||
| to distribute new revisions of the Yeti-Root zone and is also | to distribute new revisions of the Yeti-Root zone and is also | |||
| responsible for signing the RRsets that are changed as part of the | responsible for signing the RRsets that are changed as part of the | |||
| transformation of the Root Zone into the Yeti-Root zone described in | transformation of the Root Zone into the Yeti-Root zone described in | |||
| Section 4.2. This multiple DM model intends to provide a basic | Section 4.2. This multiple DM model intends to provide a basic | |||
| structure to implement the idea of shared zone control as proposed in | structure to implement the idea of shared zone control as proposed in | |||
| [ITI2014]. | [ITI2014]. | |||
| 4.2. Transformation of Root Zone to Yeti-Root Zone | 4.2. Transformation of Root Zone to Yeti-Root Zone | |||
| skipping to change at page 12, line 9 ¶ | skipping to change at line 498 ¶ | |||
| replacement signatures over the apex DNSKEY and NS RRsets. Source | replacement signatures over the apex DNSKEY and NS RRsets. Source | |||
| data would continue to flow from the Root Server system through the | data would continue to flow from the Root Server system through the | |||
| Hidden Master to the set of DMs, but no DNSSEC operations would be | Hidden Master to the set of DMs, but no DNSSEC operations would be | |||
| required on the DMs, and the source NSEC and most RRSIGs would remain | required on the DMs, and the source NSEC and most RRSIGs would remain | |||
| intact. | intact. | |||
| This approach has been suggested in order to keep minimal changes | This approach has been suggested in order to keep minimal changes | |||
| from the IANA Root zone and provide cryptographically verifiable | from the IANA Root zone and provide cryptographically verifiable | |||
| confidence that no owner name in the root zone had been changed in | confidence that no owner name in the root zone had been changed in | |||
| the process of producing the Yeti-Root zone from the Root Zone, | the process of producing the Yeti-Root zone from the Root Zone, | |||
| thereby addressing one of the concerns described in Appendix E in a | thereby addressing one of the concerns described in | |||
| way that can be verified automatically. | Section appendix.e in a way that can be verified automatically. | |||
| 4.3. Yeti-Root Zone Distribution | 4.3. Yeti-Root Zone Distribution | |||
| Each Yeti DM is configured with a full list of Yeti-Root server | Each Yeti DM is configured with a full list of Yeti-Root server | |||
| addresses to send NOTIFY [RFC1996] messages to. This also forms the | addresses to send NOTIFY [RFC1996] messages to. This also forms the | |||
| basis for an address-based access-control list for zone transfers. | basis for an address-based access-control list for zone transfers. | |||
| Authentication by address could be replaced with more rigorous | Authentication by address could be replaced with more rigorous | |||
| mechanisms (e.g., using Transaction Signatures (TSIGs) [RFC2845]). | mechanisms (e.g., using Transaction Signatures (TSIGs) [RFC2845]). | |||
| This has not been done at the time of writing since the use of | This has not been done at the time of writing since the use of | |||
| address-based controls avoids the need for the distribution of shared | address-based controls avoids the need for the distribution of shared | |||
| skipping to change at page 13, line 16 ¶ | skipping to change at line 551 ¶ | |||
| remote servers. For example, at BII we push to all three DMs' | remote servers. For example, at BII we push to all three DMs' | |||
| repositories as follows: | repositories as follows: | |||
| $ git remote -v | $ git remote -v | |||
| origin yeticonf@yeti-conf.dns-lab.net:dm (fetch) | origin yeticonf@yeti-conf.dns-lab.net:dm (fetch) | |||
| origin yeticonf@yeti-conf.dns-lab.net:dm (push) | origin yeticonf@yeti-conf.dns-lab.net:dm (push) | |||
| origin yeticonf@yeti-dns.tisf.net:dm (push) | origin yeticonf@yeti-dns.tisf.net:dm (push) | |||
| origin yeticonf@yeti-repository.wide.ad.jp:dm (push) | origin yeticonf@yeti-repository.wide.ad.jp:dm (push) | |||
| For more detailed information on DM synchronization, please see this | For more detailed information on DM synchronization, please see this | |||
| document in Yeti's GitHub repository: <https://github.com/BII-Lab/ | document in Yeti's GitHub repository: https://github.com/BII-Lab/ | |||
| Yeti-Project/blob/master/doc/Yeti-DM-Sync.md>. | Yeti-Project/blob/master/doc/Yeti-DM-Sync.md. | |||
| 4.5. Yeti-Root Server Naming Scheme | 4.5. Yeti-Root Server Naming Scheme | |||
| The current naming scheme for Root Servers was normalized to use | The current naming scheme for Root Servers was normalized to use | |||
| single-character host names ("A" through "M") under the domain ROOT- | single-character host names ("A" through "M") under the domain ROOT- | |||
| SERVERS.NET, as described in [RSSAC023]. The principal benefit of | SERVERS.NET, as described in [RSSAC023]. The principal benefit of | |||
| this naming scheme was that DNS label compression could be used to | this naming scheme was that DNS label compression could be used to | |||
| produce a priming response that would fit within 512 bytes at the | produce a priming response that would fit within 512 bytes at the | |||
| time it was introduced, where 512 bytes is the maximum DNS message | time it was introduced, where 512 bytes is the maximum DNS message | |||
| size using UDP transport without EDNS(0) [RFC6891]. | size using UDP transport without EDNS(0) [RFC6891]. | |||
| skipping to change at page 13, line 49 ¶ | skipping to change at line 584 ¶ | |||
| empty additional section if the configuration parameter "minimum- | empty additional section if the configuration parameter "minimum- | |||
| responses" is set, forcing resolvers to complete the priming process | responses" is set, forcing resolvers to complete the priming process | |||
| with a set of conventional recursive lookups in order to resolve | with a set of conventional recursive lookups in order to resolve | |||
| addresses for each Yeti-Root server. The Yeti-Root servers running | addresses for each Yeti-Root server. The Yeti-Root servers running | |||
| NSD were observed to return a fully populated additional section | NSD were observed to return a fully populated additional section | |||
| (depending, of course, on the EDNS buffer size in use). | (depending, of course, on the EDNS buffer size in use). | |||
| Various approaches to normalize the composition of the priming | Various approaches to normalize the composition of the priming | |||
| response were considered, including: | response were considered, including: | |||
| o Require use of DNS implementations that exhibit a desired behavior | * Require use of DNS implementations that exhibit a desired behavior | |||
| in the priming response. | in the priming response. | |||
| o Modify nameserver software or configuration as used by Yeti-Root | * Modify nameserver software or configuration as used by Yeti-Root | |||
| servers. | servers. | |||
| o Isolate the names of Yeti-Root servers in one or more zones that | * Isolate the names of Yeti-Root servers in one or more zones that | |||
| could be slaved on each Yeti-Root server, renaming servers as | could be slaved on each Yeti-Root server, renaming servers as | |||
| necessary, giving each a source of authoritative data with which | necessary, giving each a source of authoritative data with which | |||
| the authority section of a priming response could be fully | the authority section of a priming response could be fully | |||
| populated. This is the approach used in the Root Server system | populated. This is the approach used in the Root Server system | |||
| with the ROOT-SERVERS.NET zone. | with the ROOT-SERVERS.NET zone. | |||
| The potential mitigation of renaming all Yeti-Root servers using a | The potential mitigation of renaming all Yeti-Root servers using a | |||
| scheme that would allow their names to exist directly in the root | scheme that would allow their names to exist directly in the root | |||
| zone was not considered because that approach implies the invention | zone was not considered because that approach implies the invention | |||
| of new top-level labels not present in the Root Zone. | of new top-level labels not present in the Root Zone. | |||
| skipping to change at page 15, line 7 ¶ | skipping to change at line 621 ¶ | |||
| 4.6. Yeti-Root Servers | 4.6. Yeti-Root Servers | |||
| Various volunteers have donated authoritative servers to act as Yeti- | Various volunteers have donated authoritative servers to act as Yeti- | |||
| Root servers. At the time of writing, there are 25 Yeti-Root servers | Root servers. At the time of writing, there are 25 Yeti-Root servers | |||
| distributed globally, one of which is named using a label as | distributed globally, one of which is named using a label as | |||
| specified in IDNA2008 [RFC5890] (it is shown in the following list in | specified in IDNA2008 [RFC5890] (it is shown in the following list in | |||
| punycode). | punycode). | |||
| +-------------------------------------+---------------+-------------+ | +-------------------------------------+---------------+-------------+ | |||
| | Name | Operator | Location | | | Name | Operator | Location | | |||
| +-------------------------------------+---------------+-------------+ | +=====================================+===============+=============+ | |||
| | bii.dns-lab.net | BII | CHINA | | | bii.dns-lab.net | BII | CHINA | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns.tsif.net | TSIF | USA | | | yeti-ns.tsif.net | TSIF | USA | | |||
| | yeti-ns.wide.ad.jp | WIDE Project | Japan | | +-------------------------------------+---------------+-------------+ | |||
| | yeti-ns.wide.ad.jp | WIDE | Japan | | ||||
| | | Project | | | ||||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns.as59715.net | as59715 | Italy | | | yeti-ns.as59715.net | as59715 | Italy | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | dahu1.yeti.eu.org | Dahu Group | France | | | dahu1.yeti.eu.org | Dahu Group | France | | |||
| | ns-yeti.bondis.org | Bond Internet | Spain | | +-------------------------------------+---------------+-------------+ | |||
| | ns-yeti.bondis.org | Bond | Spain | | ||||
| | | Internet | | | ||||
| | | Systems | | | | | Systems | | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns.ix.ru | Russia | MSK-IX | | | yeti-ns.ix.ru | Russia | MSK-IX | | |||
| | yeti.bofh.priv.at | CERT Austria | Austria | | +-------------------------------------+---------------+-------------+ | |||
| | yeti.bofh.priv.at | CERT | Austria | | ||||
| | | Austria | | | ||||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti.ipv6.ernet.in | ERNET India | India | | | yeti.ipv6.ernet.in | ERNET India | India | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-dns01.dnsworkshop.org | dnsworkshop | Germany | | | yeti-dns01.dnsworkshop.org | dnsworkshop | Germany | | |||
| | | /informnis | | | | | /informnis | | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | dahu2.yeti.eu.org | Dahu Group | France | | | dahu2.yeti.eu.org | Dahu Group | France | | |||
| | yeti.aquaray.com | Aqua Ray SAS | France | | +-------------------------------------+---------------+-------------+ | |||
| | yeti.aquaray.com | Aqua Ray | France | | ||||
| | | SAS | | | ||||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns.switch.ch | SWITCH | Switzerland | | | yeti-ns.switch.ch | SWITCH | Switzerland | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns.lab.nic.cl | NIC Chile | Chile | | | yeti-ns.lab.nic.cl | NIC Chile | Chile | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns1.dns-lab.net | BII | China | | | yeti-ns1.dns-lab.net | BII | China | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns2.dns-lab.net | BII | China | | | yeti-ns2.dns-lab.net | BII | China | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns3.dns-lab.net | BII | China | | | yeti-ns3.dns-lab.net | BII | China | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | ca...a23dc.yeti-dns.net | Yeti-ZA | South | | | ca...a23dc.yeti-dns.net | Yeti-ZA | South | | |||
| | | | Africa | | | | | Africa | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | 3f...374cd.yeti-dns.net | Yeti-AU | Australia | | | 3f...374cd.yeti-dns.net | Yeti-AU | Australia | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti1.ipv6.ernet.in | ERNET India | India | | | yeti1.ipv6.ernet.in | ERNET India | India | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | xn--r2bi1c.xn--h2bv6c0a.xn--h2brj9c | ERNET India | India | | | xn--r2bi1c.xn--h2bv6c0a.xn--h2brj9c | ERNET India | India | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-dns02.dnsworkshop.org | dnsworkshop | USA | | | yeti-dns02.dnsworkshop.org | dnsworkshop | USA | | |||
| | | /informnis | | | | | /informnis | | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti.mind-dns.nl | Monshouwer | Netherlands | | | yeti.mind-dns.nl | Monshouwer | Netherlands | | |||
| | | Internet | | | | | Internet | | | |||
| | | Diensten | | | | | Diensten | | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti-ns.datev.net | DATEV | Germany | | | yeti-ns.datev.net | DATEV | Germany | | |||
| +-------------------------------------+---------------+-------------+ | ||||
| | yeti.jhcloos.net. | jhcloos | USA | | | yeti.jhcloos.net. | jhcloos | USA | | |||
| +-------------------------------------+---------------+-------------+ | +-------------------------------------+---------------+-------------+ | |||
| Table 2 | ||||
| The current list of Yeti-Root servers is made available to a | The current list of Yeti-Root servers is made available to a | |||
| participating resolver first using a substitute hints file Appendix A | participating resolver first using a substitute hints file | |||
| and subsequently by the usual resolver priming process [RFC8109]. | Section appendix.a and subsequently by the usual resolver priming | |||
| All Yeti-Root servers are IPv6-only, because of the IPv6-only | process [RFC8109]. All Yeti-Root servers are IPv6-only, because of | |||
| Internet of the foreseeable future, and hence the Yeti-Root hints | the IPv6-only Internet of the foreseeable future, and hence the Yeti- | |||
| file contains no IPv4 addresses and the Yeti-Root zone contains no | Root hints file contains no IPv4 addresses and the Yeti-Root zone | |||
| IPv4 glue records. Note that the rationale of an IPv6-only testbed | contains no IPv4 glue records. Note that the rationale of an | |||
| is to test whether an IPv6-only root can survive any problem or | IPv6-only testbed is to test whether an IPv6-only root can survive | |||
| impact when IPv4 is turned off, much like the context of the IETF | any problem or impact when IPv4 is turned off, much like the context | |||
| SUNSET4 WG [SUNSET4]. | of the IETF SUNSET4 WG [SUNSET4]. | |||
| At the time of writing, all root servers within the Root Server | At the time of writing, all root servers within the Root Server | |||
| system serve the ROOT-SERVERS.NET zone in addition to the root zone, | system serve the ROOT-SERVERS.NET zone in addition to the root zone, | |||
| and all but one also serve the ARPA zone. Yeti-Root servers serve | and all but one also serve the ARPA zone. Yeti-Root servers serve | |||
| the Yeti-Root zone only. | the Yeti-Root zone only. | |||
| Significant software diversity exists across the set of Yeti-Root | Significant software diversity exists across the set of Yeti-Root | |||
| servers, as reported by their volunteer operators at the time of | servers, as reported by their volunteer operators at the time of | |||
| writing: | writing: | |||
| o Platform: 18 of 25 Yeti-Root servers are implemented on a Virtual | * Platform: 18 of 25 Yeti-Root servers are implemented on a Virtual | |||
| Private Server (VPS) rather than bare metal. | Private Server (VPS) rather than bare metal. | |||
| o Operating System: 15 Yeti-Root servers run on Linux (Ubuntu, | * Operating System: 15 Yeti-Root servers run on Linux (Ubuntu, | |||
| Debian, CentOS, Red Hat, and ArchLinux); 4 run on FreeBSD; 1 on | Debian, CentOS, Red Hat, and ArchLinux); 4 run on FreeBSD; 1 on | |||
| NetBSD; and 1 on Windows Server 2016. | NetBSD; and 1 on Windows Server 2016. | |||
| o DNS software: 16 of 25 Yeti-Root servers use BIND9 (versions | * DNS software: 16 of 25 Yeti-Root servers use BIND9 (versions | |||
| varying between 9.9.7 and 9.10.3); 4 use NSD (4.10 and 4.15); 2 | varying between 9.9.7 and 9.10.3); 4 use NSD (4.10 and 4.15); 2 | |||
| use Knot (2.0.1 and 2.1.0); 1 uses Bundy (1.2.0); 1 uses PowerDNS | use Knot (2.0.1 and 2.1.0); 1 uses Bundy (1.2.0); 1 uses PowerDNS | |||
| (4.1.3); and 1 uses MS DNS (10.0.14300.1000). | (4.1.3); and 1 uses MS DNS (10.0.14300.1000). | |||
| 4.7. Experimental Traffic | 4.7. Experimental Traffic | |||
| For the Yeti DNS testbed to be useful as a platform for | For the Yeti DNS testbed to be useful as a platform for | |||
| experimentation, it needs to carry statistically representative | experimentation, it needs to carry statistically representative | |||
| traffic. Several approaches have been taken to load the system with | traffic. Several approaches have been taken to load the system with | |||
| traffic, including both real-world traffic triggered by end-users and | traffic, including both real-world traffic triggered by end-users and | |||
| synthetic traffic. | synthetic traffic. | |||
| Resolvers that have been explicitly configured to participate in the | Resolvers that have been explicitly configured to participate in the | |||
| testbed, as described in Section 4, are a source of real-world, end- | testbed, as described in Section 4, are a source of real-world, end- | |||
| user traffic. Due to an efficient cache mechanism, the mean query | user traffic. Due to an efficient cache mechanism, the mean query | |||
| rate is less than 100 qps in the Yeti testbed, but a variety of | rate is less than 100 qps in the Yeti testbed, but a variety of | |||
| sources were observed as active during 2017, as summarized in | sources were observed as active during 2017, as summarized in | |||
| Appendix C. | Section appendix.c. | |||
| Synthetic traffic has been introduced to the system from time to time | Synthetic traffic has been introduced to the system from time to time | |||
| in order to increase traffic loads. Approaches include the use of | in order to increase traffic loads. Approaches include the use of | |||
| distributed measurement platforms such as RIPE ATLAS to send DNS | distributed measurement platforms such as RIPE ATLAS to send DNS | |||
| queries to Yeti-Root servers and the capture of traffic (sent from | queries to Yeti-Root servers and the capture of traffic (sent from | |||
| non-Yeti resolvers to the Root Server system) that was subsequently | non-Yeti resolvers to the Root Server system) that was subsequently | |||
| modified and replayed towards Yeti-Root servers. | modified and replayed towards Yeti-Root servers. | |||
| 4.8. Traffic Capture and Analysis | 4.8. Traffic Capture and Analysis | |||
| Traffic capture of queries and responses is available in the testbed | Traffic capture of queries and responses is available in the testbed | |||
| in both Yeti resolvers and Yeti-Root servers in anticipation of | in both Yeti resolvers and Yeti-Root servers in anticipation of | |||
| experiments that require packet-level visibility into DNS traffic. | experiments that require packet-level visibility into DNS traffic. | |||
| Traffic capture is performed on Yeti-Root servers using either | Traffic capture is performed on Yeti-Root servers using either | |||
| o dnscap <https://www.dns-oarc.net/tools/dnscap> or | * dnscap https://www.dns-oarc.net/tools/dnscap or | |||
| o pcapdump, part of the pcaputils Debian package | * pcapdump, part of the pcaputils Debian package | |||
| <https://packages.debian.org/sid/pcaputils>, with a patch to | https://packages.debian.org/sid/pcaputils, with a patch to | |||
| facilitate triggered file upload (see <https://bugs.debian.org/ | facilitate triggered file upload (see https://bugs.debian.org/cgi- | |||
| cgi-bin/bugreport.cgi?bug=545985>). | bin/bugreport.cgi?bug=545985). | |||
| PCAP-format files containing packet captures are uploaded using rsync | PCAP-format files containing packet captures are uploaded using rsync | |||
| to central storage. | to central storage. | |||
| 5. Operational Experience with the Yeti DNS Testbed | 5. Operational Experience with the Yeti DNS Testbed | |||
| The following sections provide commentary on the operation and impact | The following sections provide commentary on the operation and impact | |||
| analyses of the Yeti DNS testbed described in Section 4. More | analyses of the Yeti DNS testbed described in Section 4. More | |||
| detailed descriptions of observed phenomena are available in the Yeti | detailed descriptions of observed phenomena are available in the Yeti | |||
| DNS mailing list archives <http://lists.yeti-dns.org/pipermail/ | DNS mailing list archives http://lists.yeti-dns.org/pipermail/ | |||
| discuss/> and on the Yeti DNS blog <https://yeti-dns.org/blog.html>. | discuss/ and on the Yeti DNS blog https://yeti-dns.org/blog.html. | |||
| 5.1. Viability of IPv6-Only Operation | 5.1. Viability of IPv6-Only Operation | |||
| All Yeti-Root servers were deployed with IPv6 connectivity, and no | All Yeti-Root servers were deployed with IPv6 connectivity, and no | |||
| IPv4 addresses for any Yeti-Root server were made available (e.g., in | IPv4 addresses for any Yeti-Root server were made available (e.g., in | |||
| the Yeti hints file or in the DNS itself). This implementation | the Yeti hints file or in the DNS itself). This implementation | |||
| decision constrained the Yeti-Root system to be v6 only. | decision constrained the Yeti-Root system to be v6 only. | |||
| DNS implementations are generally adept at using both IPv4 and IPv6 | DNS implementations are generally adept at using both IPv4 and IPv6 | |||
| when both are available. Servers that cannot be reliably reached | when both are available. Servers that cannot be reliably reached | |||
| skipping to change at page 22, line 38 ¶ | skipping to change at line 1010 ¶ | |||
| 5.3.2. KSK Rollover vs. BIND9 Views | 5.3.2. KSK Rollover vs. BIND9 Views | |||
| The second Yeti KSK rollover was designed with similar phases to the | The second Yeti KSK rollover was designed with similar phases to the | |||
| ICANN's KSK rollover, although with modified timings to reduce the | ICANN's KSK rollover, although with modified timings to reduce the | |||
| time required to complete the process. The "slot" used in this | time required to complete the process. The "slot" used in this | |||
| rollover was ten days long, as follows: | rollover was ten days long, as follows: | |||
| +-----------------+----------------+----------+ | +-----------------+----------------+----------+ | |||
| | | Old Key: 19444 | New Key | | | | Old Key: 19444 | New Key | | |||
| +-----------------+----------------+----------+ | +=================+================+==========+ | |||
| | slot 1 | pub+sign | | | | slot 1 | pub+sign | | | |||
| +-----------------+----------------+----------+ | ||||
| | slot 2, 3, 4, 5 | pub+sign | pub | | | slot 2, 3, 4, 5 | pub+sign | pub | | |||
| +-----------------+----------------+----------+ | ||||
| | slot 6, 7 | pub | pub+sign | | | slot 6, 7 | pub | pub+sign | | |||
| +-----------------+----------------+----------+ | ||||
| | slot 8 | revoke | pub+sign | | | slot 8 | revoke | pub+sign | | |||
| +-----------------+----------------+----------+ | ||||
| | slot 9 | | pub+sign | | | slot 9 | | pub+sign | | |||
| +-----------------+----------------+----------+ | +-----------------+----------------+----------+ | |||
| Table 3 | ||||
| During this rollover exercise, a problem was observed on one Yeti | During this rollover exercise, a problem was observed on one Yeti | |||
| resolver that was running BIND 9.10.4-p2 [KROLL-ISSUE]. That | resolver that was running BIND 9.10.4-p2 [KROLL-ISSUE]. That | |||
| resolver was configured with multiple views serving clients in | resolver was configured with multiple views serving clients in | |||
| different subnets at the time that the KSK rollover began. DNSSEC | different subnets at the time that the KSK rollover began. DNSSEC | |||
| validation failures were observed following the completion of the KSK | validation failures were observed following the completion of the KSK | |||
| rollover, triggered by the addition of a new view that was intended | rollover, triggered by the addition of a new view that was intended | |||
| to serve clients from a new subnet. | to serve clients from a new subnet. | |||
| BIND 9.10 requires "managed-keys" configuration to be specified in | BIND 9.10 requires "managed-keys" configuration to be specified in | |||
| every view, a detail that was apparently not obvious to the operator | every view, a detail that was apparently not obvious to the operator | |||
| skipping to change at page 23, line 32 ¶ | skipping to change at line 1059 ¶ | |||
| As described in Section 4.2.2, in the Yeti DNS testbed each DM can | As described in Section 4.2.2, in the Yeti DNS testbed each DM can | |||
| maintain control of its own set of ZSKs, which can undergo rollover | maintain control of its own set of ZSKs, which can undergo rollover | |||
| independently. During a KSK rollover where concurrent ZSK rollovers | independently. During a KSK rollover where concurrent ZSK rollovers | |||
| are executed by each of three DMs, the maximum number of apex DNSKEY | are executed by each of three DMs, the maximum number of apex DNSKEY | |||
| RRs present is eight (incoming and outgoing KSK, plus incoming and | RRs present is eight (incoming and outgoing KSK, plus incoming and | |||
| outgoing of each of three ZSKs). In practice, however, such | outgoing of each of three ZSKs). In practice, however, such | |||
| concurrency did not occur; only the BII ZSK was rolled during the KSK | concurrency did not occur; only the BII ZSK was rolled during the KSK | |||
| rollover, and hence only three DNSKEY RRset configurations were | rollover, and hence only three DNSKEY RRset configurations were | |||
| observed: | observed: | |||
| o 3 ZSKs and 2 KSKs, DNSKEY response of 1975 octets; | * 3 ZSKs and 2 KSKs, DNSKEY response of 1975 octets; | |||
| o 3 ZSKs and 1 KSK, DNSKEY response of 1414 octets; and | * 3 ZSKs and 1 KSK, DNSKEY response of 1414 octets; and | |||
| o 2 ZSKs and 1 KSK, DNSKEY response of 1139 octets. | * 2 ZSKs and 1 KSK, DNSKEY response of 1139 octets. | |||
| RIPE Atlas probes were used as described in Section 5.1.1 to send | RIPE Atlas probes were used as described in Section 5.1.1 to send | |||
| DNSKEY queries directly to Yeti-Root servers. The numbers of queries | DNSKEY queries directly to Yeti-Root servers. The numbers of queries | |||
| and failures were recorded and categorized according to the response | and failures were recorded and categorized according to the response | |||
| sizes at the time the queries were sent. A summary of the results | sizes at the time the queries were sent. A summary of the results | |||
| ([YetiLR]) is as follows: | ([YetiLR]) is as follows: | |||
| +---------------+----------+---------------+--------------+ | +---------------+----------+---------------+--------------+ | |||
| | Response Size | Failures | Total Queries | Failure Rate | | | Response Size | Failures | Total Queries | Failure Rate | | |||
| +---------------+----------+---------------+--------------+ | +===============+==========+===============+==============+ | |||
| | 1139 | 274 | 64252 | 0.0042 | | | 1139 | 274 | 64252 | 0.0042 | | |||
| +---------------+----------+---------------+--------------+ | ||||
| | 1414 | 3141 | 126951 | 0.0247 | | | 1414 | 3141 | 126951 | 0.0247 | | |||
| +---------------+----------+---------------+--------------+ | ||||
| | 1975 | 2920 | 42529 | 0.0687 | | | 1975 | 2920 | 42529 | 0.0687 | | |||
| +---------------+----------+---------------+--------------+ | +---------------+----------+---------------+--------------+ | |||
| Table 4 | ||||
| The general approach illustrated briefly here provides a useful | The general approach illustrated briefly here provides a useful | |||
| example of how the design of the Yeti DNS testbed, separate from the | example of how the design of the Yeti DNS testbed, separate from the | |||
| Root Server system but constructed as a live testbed on the Internet, | Root Server system but constructed as a live testbed on the Internet, | |||
| facilitates the use of general-purpose active measurement facilities | facilitates the use of general-purpose active measurement facilities | |||
| (such as RIPE Atlas probes) as well as internal passive measurement | (such as RIPE Atlas probes) as well as internal passive measurement | |||
| (such as packet capture). | (such as packet capture). | |||
| 5.4. Capture of Large DNS Response | 5.4. Capture of Large DNS Response | |||
| Packet capture is a common approach in production DNS systems where | Packet capture is a common approach in production DNS systems where | |||
| skipping to change at page 24, line 27 ¶ | skipping to change at line 1105 ¶ | |||
| inbound query traffic is often sufficient, since responses can be | inbound query traffic is often sufficient, since responses can be | |||
| synthesized with knowledge of the zones being served at the time the | synthesized with knowledge of the zones being served at the time the | |||
| query was received. Queries are generally small enough not to be | query was received. Queries are generally small enough not to be | |||
| fragmented, and even with TCP transport are generally packed within a | fragmented, and even with TCP transport are generally packed within a | |||
| single segment. | single segment. | |||
| The Yeti DNS testbed has different requirements; in particular, there | The Yeti DNS testbed has different requirements; in particular, there | |||
| is a desire to compare responses obtained from the Yeti | is a desire to compare responses obtained from the Yeti | |||
| infrastructure with those received from the Root Server system in | infrastructure with those received from the Root Server system in | |||
| response to a single query stream (e.g., using the "Yeti Many Mirror | response to a single query stream (e.g., using the "Yeti Many Mirror | |||
| Verifier" (YmmV) as described in Appendix D). Some Yeti-Root servers | Verifier" (YmmV) as described in Section appendix.d). Some Yeti-Root | |||
| were capable of recovering complete DNS messages from within | servers were capable of recovering complete DNS messages from within | |||
| nameservers, e.g., using dnstap; however, not all servers provided | nameservers, e.g., using dnstap; however, not all servers provided | |||
| that functionality, and a consistent approach was desirable. | that functionality, and a consistent approach was desirable. | |||
| The requirement to perform passive capture of responses from the wire | The requirement to perform passive capture of responses from the wire | |||
| together with experiments that were expected (and in some cases | together with experiments that were expected (and in some cases | |||
| designed) to trigger fragmentation and use of TCP transport led to | designed) to trigger fragmentation and use of TCP transport led to | |||
| the development of a new tool, PcapParser, to perform fragment and | the development of a new tool, PcapParser, to perform fragment and | |||
| TCP stream reassembly from raw packet capture data. A brief | TCP stream reassembly from raw packet capture data. A brief | |||
| description of PcapParser is included in Appendix D. | description of PcapParser is included in Section appendix.d. | |||
| 5.5. Automated Maintenance of the Hints File | 5.5. Automated Maintenance of the Hints File | |||
| Renumbering events in the Root Server system are relatively rare. | Renumbering events in the Root Server system are relatively rare. | |||
| Although each such event is accompanied by the publication of an | Although each such event is accompanied by the publication of an | |||
| updated hints file in standard locations, the task of updating local | updated hints file in standard locations, the task of updating local | |||
| copies of that file used by DNS resolvers is manual, and the process | copies of that file used by DNS resolvers is manual, and the process | |||
| has an observably long tail. For example, in 2015 J-Root was still | has an observably long tail. For example, in 2015 J-Root was still | |||
| receiving traffic at its old address some thirteen years after | receiving traffic at its old address some thirteen years after | |||
| renumbering [Wessels2015]. | renumbering [Wessels2015]. | |||
| skipping to change at page 25, line 14 ¶ | skipping to change at line 1141 ¶ | |||
| By contrast, due to the experimental nature of the system and the | By contrast, due to the experimental nature of the system and the | |||
| fact that it is operated mainly by volunteers, Yeti-Root servers are | fact that it is operated mainly by volunteers, Yeti-Root servers are | |||
| added, removed, and renumbered with much greater frequency. A tool | added, removed, and renumbered with much greater frequency. A tool | |||
| to facilitate automatic maintenance of hints files was therefore | to facilitate automatic maintenance of hints files was therefore | |||
| created: [hintUpdate]. | created: [hintUpdate]. | |||
| The automated procedure followed by the hintUpdate tool is as | The automated procedure followed by the hintUpdate tool is as | |||
| follows. | follows. | |||
| 1. Use the local resolver to obtain a response to the query | 1. Use the local resolver to obtain a response to the query "./IN/ | |||
| "./IN/NS". | NS". | |||
| 2. Use the local resolver to obtain a set of IPv4 and IPv6 addresses | 2. Use the local resolver to obtain a set of IPv4 and IPv6 addresses | |||
| for each name server. | for each name server. | |||
| 3. Validate all signatures obtained from the local resolvers and | 3. Validate all signatures obtained from the local resolvers and | |||
| confirm that all data is signed. | confirm that all data is signed. | |||
| 4. Compare the data obtained to that contained within the currently | 4. Compare the data obtained to that contained within the currently | |||
| active hints file; if there are differences, rotate the old one | active hints file; if there are differences, rotate the old one | |||
| away and replace it with a new one. | away and replace it with a new one. | |||
| skipping to change at page 26, line 22 ¶ | skipping to change at line 1197 ¶ | |||
| derived from the root zone published by the IANA with only those | derived from the root zone published by the IANA with only those | |||
| structural modifications necessary to ensure its function in the | structural modifications necessary to ensure its function in the | |||
| testbed system. The Yeti DNS testbed has proven to be a useful | testbed system. The Yeti DNS testbed has proven to be a useful | |||
| platform to address many questions that would be challenging to | platform to address many questions that would be challenging to | |||
| answer using the production Root Server system, such as those | answer using the production Root Server system, such as those | |||
| included in Section 3. | included in Section 3. | |||
| Indicative findings following from the construction and operation of | Indicative findings following from the construction and operation of | |||
| the Yeti DNS testbed include: | the Yeti DNS testbed include: | |||
| o Operation in a pure IPv6-only environment; confirmation of a | * Operation in a pure IPv6-only environment; confirmation of a | |||
| significant failure rate in the transmission of large responses | significant failure rate in the transmission of large responses | |||
| (~7%), but no other persistent failures observed. Two cases in | (~7%), but no other persistent failures observed. Two cases in | |||
| which Yeti-Root servers failed to retrieve the Yeti-Root zone due | which Yeti-Root servers failed to retrieve the Yeti-Root zone due | |||
| to fragmentation of TCP segments; mitigated by setting a TCP MSS | to fragmentation of TCP segments; mitigated by setting a TCP MSS | |||
| of 1220 octets (see Section 5.1.1). | of 1220 octets (see Section 5.1.1). | |||
| o Successful operation with three autonomous Yeti-Root zone signers | * Successful operation with three autonomous Yeti-Root zone signers | |||
| and 25 Yeti-Root servers, and confirmation that IXFR is not an | and 25 Yeti-Root servers, and confirmation that IXFR is not an | |||
| appropriate transfer mechanism of zones that are structurally | appropriate transfer mechanism of zones that are structurally | |||
| incongruent across different transfer paths (see Section 5.2). | incongruent across different transfer paths (see Section 5.2). | |||
| o ZSK size increased to 2048 bits and multiple KSK rollovers | * ZSK size increased to 2048 bits and multiple KSK rollovers | |||
| executed to exercise support of RFC 5011 in validating resolvers; | executed to exercise support of RFC 5011 in validating resolvers; | |||
| identification of pitfalls relating to views in BIND9 when | identification of pitfalls relating to views in BIND9 when | |||
| configured with "managed-keys" (see Section 5.3). | configured with "managed-keys" (see Section 5.3). | |||
| o Use of natural (non-normalized) names for Yeti-Root servers | * Use of natural (non-normalized) names for Yeti-Root servers | |||
| exposed some differences between implementations in the inclusion | exposed some differences between implementations in the inclusion | |||
| of additional-section glue in responses to priming queries; | of additional-section glue in responses to priming queries; | |||
| however, despite this inefficiency, Yeti resolvers were observed | however, despite this inefficiency, Yeti resolvers were observed | |||
| to function adequately (see Section 4.5). | to function adequately (see Section 4.5). | |||
| o It was observed that Knot 2.0 performed label compression on the | * It was observed that Knot 2.0 performed label compression on the | |||
| root (empty) label. This resulted in an increased encoding size | root (empty) label. This resulted in an increased encoding size | |||
| for references to the root label, since a pointer is encoded as | for references to the root label, since a pointer is encoded as | |||
| two octets whilst the root label itself only requires one (see | two octets whilst the root label itself only requires one (see | |||
| Section 5.6). | Section 5.6). | |||
| o Some tools were developed in response to the operational | * Some tools were developed in response to the operational | |||
| experience of running and using the Yeti DNS testbed: DNS fragment | experience of running and using the Yeti DNS testbed: DNS fragment | |||
| and DNS Additional Truncated Response (ATR) for large DNS | and DNS Additional Truncated Response (ATR) for large DNS | |||
| responses, a BIND9 patch for additional-section glue, YmmV, and | responses, a BIND9 patch for additional-section glue, YmmV, and | |||
| IPv6 defrag for capturing and mirroring traffic. In addition, a | IPv6 defrag for capturing and mirroring traffic. In addition, a | |||
| tool to facilitate automatic maintenance of hints files was | tool to facilitate automatic maintenance of hints files was | |||
| created (see Appendix D). | created (see Section appendix.d). | |||
| The Yeti DNS testbed was used only by end-users whose local | The Yeti DNS testbed was used only by end-users whose local | |||
| infrastructure providers had made the conscious decision to do so, as | infrastructure providers had made the conscious decision to do so, as | |||
| is appropriate for an experimental, non-production system. So far, | is appropriate for an experimental, non-production system. So far, | |||
| no serious user complaints have reached Yeti's mailing list during | no serious user complaints have reached Yeti's mailing list during | |||
| Yeti normal operation. Adding more instances into the Yeti root | Yeti normal operation. Adding more instances into the Yeti root | |||
| system may help to enhance the quality of service, but it is | system may help to enhance the quality of service, but it is | |||
| generally accepted that Yeti DNS performance is good enough to serve | generally accepted that Yeti DNS performance is good enough to serve | |||
| the purpose of DNS Root testbed. | the purpose of DNS Root testbed. | |||
| The experience gained during the operation of the Yeti DNS testbed | The experience gained during the operation of the Yeti DNS testbed | |||
| suggested several topics worthy of further study: | suggested several topics worthy of further study: | |||
| o Priming truncation and TCP-only Yeti-Root servers: observe and | * Priming truncation and TCP-only Yeti-Root servers: observe and | |||
| measure the worst-possible case for priming truncation by | measure the worst-possible case for priming truncation by | |||
| responding with TC=1 to all priming queries received over UDP | responding with TC=1 to all priming queries received over UDP | |||
| transport, forcing clients to retry using TCP. This should also | transport, forcing clients to retry using TCP. This should also | |||
| give some insight into the usefulness of TCP-only DNS in general. | give some insight into the usefulness of TCP-only DNS in general. | |||
| o KSK ECDSA Rollover: one possible way to reduce DNSKEY response | * KSK ECDSA Rollover: one possible way to reduce DNSKEY response | |||
| sizes is to change to an elliptic curve signing algorithm. While | sizes is to change to an elliptic curve signing algorithm. While | |||
| in principle this can be done separately for the KSK and the ZSK, | in principle this can be done separately for the KSK and the ZSK, | |||
| the RIPE NCC has done research recently and discovered that some | the RIPE NCC has done research recently and discovered that some | |||
| resolvers require that both KSK and ZSK use the same algorithm. | resolvers require that both KSK and ZSK use the same algorithm. | |||
| This means that an algorithm roll also involves a KSK roll. | This means that an algorithm roll also involves a KSK roll. | |||
| Performing an algorithm roll at the root would be an interesting | Performing an algorithm roll at the root would be an interesting | |||
| challenge. | challenge. | |||
| o Sticky Notify for zone transfer: the non-applicability of IXFR as | * Sticky Notify for zone transfer: the non-applicability of IXFR as | |||
| a zone transfer mechanism in the Yeti DNS testbed could be | a zone transfer mechanism in the Yeti DNS testbed could be | |||
| mitigated by the implementation of a sticky preference for master | mitigated by the implementation of a sticky preference for master | |||
| server for each slave. This would be so that an initial AXFR | server for each slave. This would be so that an initial AXFR | |||
| response could be followed up with IXFR requests without | response could be followed up with IXFR requests without | |||
| compromising zone integrity in the case (as with Yeti) that | compromising zone integrity in the case (as with Yeti) that | |||
| equivalent but incongruent versions of a zone are served by | equivalent but incongruent versions of a zone are served by | |||
| different masters. | different masters. | |||
| o Key distribution for zone transfer credentials: the use of a | * Key distribution for zone transfer credentials: the use of a | |||
| shared secret between slave and master requires key distribution | shared secret between slave and master requires key distribution | |||
| and management whose scaling properties are not ideally suited to | and management whose scaling properties are not ideally suited to | |||
| systems with large numbers of transfer clients. Other approaches | systems with large numbers of transfer clients. Other approaches | |||
| for key distribution and authentication could be considered. | for key distribution and authentication could be considered. | |||
| o DNS is a tree-based hierarchical database. Mathematically, it has | * DNS is a tree-based hierarchical database. Mathematically, it has | |||
| a root node and dependency between parent and child nodes. So, | a root node and dependency between parent and child nodes. So, | |||
| any failures and instability of parent nodes (Root in Yeti's case) | any failures and instability of parent nodes (Root in Yeti's case) | |||
| may impact their child nodes if there is a human mistake, a | may impact their child nodes if there is a human mistake, a | |||
| malicious attack, or even an earthquake. It is proposed to define | malicious attack, or even an earthquake. It is proposed to define | |||
| technology and practices to allow any organization, from the | technology and practices to allow any organization, from the | |||
| smallest company to nations, to be self-sufficient in their DNS. | smallest company to nations, to be self-sufficient in their DNS. | |||
| o In Section 3.12 of [RFC8324], a "Centrally Controlled Root" is | * In Section 3.12 of [RFC8324], a "Centrally Controlled Root" is | |||
| viewed as an issue of DNS. In future work, it would be | viewed as an issue of DNS. In future work, it would be | |||
| interesting to test some technical tools like blockchain [BC] to | interesting to test some technical tools like blockchain [BC] to | |||
| either remove the technical requirement for a central authority | either remove the technical requirement for a central authority | |||
| over the root or enhance the security and stability of the | over the root or enhance the security and stability of the | |||
| existing Root. | existing Root. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| As introduced in Section 4.4, service metadata is synchronized among | As introduced in Section 4.4, service metadata is synchronized among | |||
| 3 DMs using Git tool. Any security issue around Git may affect Yeti | 3 DMs using Git tool. Any security issue around Git may affect Yeti | |||
| DM operation. For example, a hacker may compromise one DM's Git | DM operation. For example, a hacker may compromise one DM's Git | |||
| repository and push unwanted changes to the Yeti DM system; this may | repository and push unwanted changes to the Yeti DM system; this may | |||
| introduce a bad root server or bad key for a period of time. | introduce a bad root server or bad key for a period of time. | |||
| The Yeti resolver needs the bootstrapping files to join the testbed, | The Yeti resolver needs the bootstrapping files to join the testbed, | |||
| like the hints file and trust anchor of Yeti. All required | like the hints file and trust anchor of Yeti. All required | |||
| information is published on <yeti-dns.org> and <github.com>. If a | information is published on yeti-dns.org and github.com. If a hacker | |||
| hacker tampers with those websites by creating a fake page, a new | tampers with those websites by creating a fake page, a new resolver | |||
| resolver may lose its way and be configured with a bad root. | may lose its way and be configured with a bad root. | |||
| DNSSEC is an important research goal in the Yeti DNS testbed. To | DNSSEC is an important research goal in the Yeti DNS testbed. To | |||
| reduce the central function of DNSSEC for Root zone, we sign the | reduce the central function of DNSSEC for Root zone, we sign the | |||
| Yeti-Root zone using multiple, independently operated DNSSEC signers | Yeti-Root zone using multiple, independently operated DNSSEC signers | |||
| and multiple corresponding ZSKs (see Section 4.2). To verify ICANN's | and multiple corresponding ZSKs (see Section 4.2). To verify ICANN's | |||
| KSK rollover, we rolled the Yeti KSK three times according to RFC | KSK rollover, we rolled the Yeti KSK three times according to RFC | |||
| 5011, and we do have some observations (see Section 5.3). In | 5011, and we do have some observations (see Section 5.3). In | |||
| addition, larger RSA key sizes were used in the testbed before | addition, larger RSA key sizes were used in the testbed before | |||
| 2048-bit keys were used in the ZSK signing process of the IANA Root | 2048-bit keys were used in the ZSK signing process of the IANA Root | |||
| zone. | zone. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document has no IANA actions. | This document has no IANA actions. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P.V., "Domain names - concepts and | |||
| STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, | |||
| <https://www.rfc-editor.org/info/rfc1034>. | November 1987, <https://www.rfc-editor.org/info/rfc1034>. | |||
| [RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P.V., "Domain names - implementation and | |||
| specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
| November 1987, <https://www.rfc-editor.org/info/rfc1035>. | November 1987, <https://www.rfc-editor.org/info/rfc1035>. | |||
| [RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995, | [RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995, | |||
| DOI 10.17487/RFC1995, August 1996, | DOI 10.17487/RFC1995, August 1996, | |||
| <https://www.rfc-editor.org/info/rfc1995>. | <https://www.rfc-editor.org/info/rfc1995>. | |||
| [RFC1996] Vixie, P., "A Mechanism for Prompt Notification of Zone | [RFC1996] Vixie, P., "A Mechanism for Prompt Notification of Zone | |||
| Changes (DNS NOTIFY)", RFC 1996, DOI 10.17487/RFC1996, | Changes (DNS NOTIFY)", RFC 1996, DOI 10.17487/RFC1996, | |||
| August 1996, <https://www.rfc-editor.org/info/rfc1996>. | August 1996, <https://www.rfc-editor.org/info/rfc1996>. | |||
| skipping to change at page 29, line 38 ¶ | skipping to change at line 1352 ¶ | |||
| [RFC5890] Klensin, J., "Internationalized Domain Names for | [RFC5890] Klensin, J., "Internationalized Domain Names for | |||
| Applications (IDNA): Definitions and Document Framework", | Applications (IDNA): Definitions and Document Framework", | |||
| RFC 5890, DOI 10.17487/RFC5890, August 2010, | RFC 5890, DOI 10.17487/RFC5890, August 2010, | |||
| <https://www.rfc-editor.org/info/rfc5890>. | <https://www.rfc-editor.org/info/rfc5890>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [ATR] Song, L., "ATR: Additional Truncation Response for Large | [ATR] Song, L., "ATR: Additional Truncation Response for Large | |||
| DNS Response", Work in Progress, draft-song-atr-large- | DNS Response", Work in Progress, draft-song-atr-large- | |||
| resp-02, August 2018. | resp-02, 2 August 2018. | |||
| [BC] Wikipedia, "Blockchain", September 2018, | [BC] Wikipedia, "Blockchain", September 2018, | |||
| <https://en.wikipedia.org/w/ | <https://en.wikipedia.org/w/ | |||
| index.php?title=Blockchain&oldid=861681529>. | index.php?title=Blockchain&oldid=861681529>. | |||
| [FRAGDROP] Jaeggli, J., Colitti, L., Kumari, W., Vyncke, E., Kaeo, | [FRAGDROP] Jaeggli, J., Colitti, L., Kumari, W., Vyncke, E., Kaeo, | |||
| M., and T. Taylor, "Why Operators Filter Fragments and | M., and T. Taylor, "Why Operators Filter Fragments and | |||
| What It Implies", Work in Progress, draft-taylor-v6ops- | What It Implies", Work in Progress, draft-taylor-v6ops- | |||
| fragdrop-02, December 2013. | fragdrop-02, 3 December 2013. | |||
| [FRAGMENTS] | [FRAGMENTS]Sivaraman, M., Kerr, S., and D. Song, "DNS message | |||
| Sivaraman, M., Kerr, S., and D. Song, "DNS message | ||||
| fragments", Work in Progress, draft-muks-dns-message- | fragments", Work in Progress, draft-muks-dns-message- | |||
| fragments-00, July 2015. | fragments-00, 20 July 2015. | |||
| [hintUpdate] | [hintUpdate] | |||
| "Hintfile Auto Update", commit de428c0, October 2015, | "Hintfile Auto Update", commit de428c0, October 2015, | |||
| <https://github.com/BII-Lab/Hintfile-Auto-Update>. | <https://github.com/BII-Lab/Hintfile-Auto-Update>. | |||
| [HOW_ATR_WORKS] | [HOW_ATR_WORKS] | |||
| Huston, G., "How well does ATR actually work?", | Huston, G., "How well does ATR actually work?", | |||
| APNIC blog, April 2018, | APNIC blog, 16 April 2018, | |||
| <https://blog.apnic.net/2018/04/16/ | <https://blog.apnic.net/2018/04/16/how-well-does-atr- | |||
| how-well-does-atr-actually-work/>. | actually-work/>. | |||
| [ICANN2010] | [ICANN2010]Schlyter, J., Lamb, R., and R. Balasubramanian, "DNSSEC | |||
| Schlyter, J., Lamb, R., and R. Balasubramanian, "DNSSEC | ||||
| Key Management Implementation for the Root Zone (DRAFT)", | Key Management Implementation for the Root Zone (DRAFT)", | |||
| May 2010, <http://www.root-dnssec.org/wp-content/ | 11 May 2010, | |||
| uploads/2010/05/draft-icann-dnssec-keymgmt-01.txt>. | <http://www.root-dnssec.org/wp-content/uploads/2010/05/ | |||
| draft-icann-dnssec-keymgmt-01.txt>. | ||||
| [ICANN2016] | [ICANN2016]Design Team, "Root Zone KSK Rollover Plan", March 2016, | |||
| Design Team, "Root Zone KSK Rollover Plan", March 2016, | <https://www.iana.org/reports/2016/root-ksk-rollover- | |||
| <https://www.iana.org/reports/2016/ | design-20160307.pdf>. | |||
| root-ksk-rollover-design-20160307.pdf>. | ||||
| [ICANN2017] | [ICANN2017]ICANN, "2017 KSK Rollover External Test Plan", 22 July | |||
| ICANN, "2017 KSK Rollover External Test Plan", July 2016, | 2016, | |||
| <https://www.icann.org/en/system/files/files/ | <https://www.icann.org/en/system/files/files/ksk-rollover- | |||
| ksk-rollover-external-test-plan-22jul16-en.pdf>. | external-test-plan-22jul16-en.pdf>. | |||
| [IPv6-frag-DNS] | [IPv6-frag-DNS] | |||
| Huston, G., "Dealing with IPv6 fragmentation in the DNS", | Huston, G., "Dealing with IPv6 fragmentation in the DNS", | |||
| APNIC blog, August 2017, | APNIC blog, 22 August 2017, | |||
| <https://blog.apnic.net/2017/08/22/ | <https://blog.apnic.net/2017/08/22/dealing-ipv6- | |||
| dealing-ipv6-fragmentation-dns>. | fragmentation-dns>. | |||
| [ISC-BIND] Risk, V., "2017 Root Key Rollover - What Does it Mean for | [ISC-BIND] Risk, V., "2017 Root Key Rollover - What Does it Mean for | |||
| BIND Users?", Internet Systems Consortium, December 2016, | BIND Users?", Internet Systems Consortium, December 2016, | |||
| <https://www.isc.org/blogs/2017-root-key-rollover-what- | <https://www.isc.org/blogs/2017-root-key-rollover-what- | |||
| does-it-mean-for-bind-users/>. | does-it-mean-for-bind-users/>. | |||
| [ISC-TN-2003-1] | [ISC-TN-2003-1] | |||
| Abley, J., "Hierarchical Anycast for Global Service | Abley, J., "Hierarchical Anycast for Global Service | |||
| Distribution", March 2003, | Distribution", March 2003, | |||
| <http://ftp.isc.org/isc/pubs/tn/isc-tn-2003-1.txt>. | <http://ftp.isc.org/isc/pubs/tn/isc-tn-2003-1.txt>. | |||
| [ITI2014] ICANN, "Identifier Technology Innovation Report", May | [ITI2014] ICANN, "Identifier Technology Innovation Report", 15 May | |||
| 2014, <https://www.icann.org/en/system/files/files/ | 2014, | |||
| iti-report-15may14-en.pdf>. | <https://www.icann.org/en/system/files/files/iti-report- | |||
| 15may14-en.pdf>. | ||||
| [KROLL-ISSUE] | [KROLL-ISSUE] | |||
| Song, D., "A DNSSEC issue during Yeti KSK rollover", Yeti | Song, D., "A DNSSEC issue during Yeti KSK rollover", Yeti | |||
| DNS blog, October 2016, <http://yeti-dns.org/yeti/blog/ | DNS blog, October 2016, | |||
| 2016/10/26/A-DNSSEC-issue-during-Yeti-KSK-rollover.html>. | <http://yeti-dns.org/yeti/blog/2016/10/26/A-DNSSEC-issue- | |||
| during-Yeti-KSK-rollover.html>. | ||||
| [PINZ] Song, D., "Yeti experiment plan for PINZ", Yeti DNS blog, | [PINZ] Song, D., "Yeti experiment plan for PINZ", Yeti DNS blog, | |||
| May 2018, <http://yeti-dns.org/yeti/blog/2018/05/01/ | May 2018, | |||
| Experiment-plan-for-PINZ.html>. | <http://yeti-dns.org/yeti/blog/2018/05/01/Experiment-plan- | |||
| for-PINZ.html>. | ||||
| [RFC2826] Internet Architecture Board, "IAB Technical Comment on the | [RFC2826] Internet Architecture Board, "IAB Technical Comment on the | |||
| Unique DNS Root", RFC 2826, DOI 10.17487/RFC2826, May | Unique DNS Root", RFC 2826, DOI 10.17487/RFC2826, May | |||
| 2000, <https://www.rfc-editor.org/info/rfc2826>. | 2000, <https://www.rfc-editor.org/info/rfc2826>. | |||
| [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>. | |||
| skipping to change at page 32, line 11 ¶ | skipping to change at line 1467 ¶ | |||
| Resolver with Priming Queries", BCP 209, RFC 8109, | Resolver with Priming Queries", BCP 209, RFC 8109, | |||
| DOI 10.17487/RFC8109, March 2017, | DOI 10.17487/RFC8109, March 2017, | |||
| <https://www.rfc-editor.org/info/rfc8109>. | <https://www.rfc-editor.org/info/rfc8109>. | |||
| [RFC8324] Klensin, J., "DNS Privacy, Authorization, Special Uses, | [RFC8324] Klensin, J., "DNS Privacy, Authorization, Special Uses, | |||
| Encoding, Characters, Matching, and Root Structure: Time | Encoding, Characters, Matching, and Root Structure: Time | |||
| for Another Look?", RFC 8324, DOI 10.17487/RFC8324, | for Another Look?", RFC 8324, DOI 10.17487/RFC8324, | |||
| February 2018, <https://www.rfc-editor.org/info/rfc8324>. | February 2018, <https://www.rfc-editor.org/info/rfc8324>. | |||
| [RRL] Vixie, P. and V. Schryver, "Response Rate Limiting in the | [RRL] Vixie, P. and V. Schryver, "Response Rate Limiting in the | |||
| Domain Name System (DNS RRL)", June 2012, | Domain Name System (DNS RRL)", 10 June 2012, | |||
| <http://www.redbarn.org/dns/ratelimits>. | <http://www.redbarn.org/dns/ratelimits>. | |||
| [RSSAC001] Root Server System Advisory Committee (RSSAC), "Service | [RSSAC001] Root Server System Advisory Committee (RSSAC), "Service | |||
| Expectations of Root Servers", RSSAC001 Version 1, | Expectations of Root Servers", RSSAC001 Version 1, 4 | |||
| December 2015, | December 2015, | |||
| <https://www.icann.org/en/system/files/files/ | <https://www.icann.org/en/system/files/files/rssac-001- | |||
| rssac-001-root-service-expectations-04dec15-en.pdf>. | root-service-expectations-04dec15-en.pdf>. | |||
| [RSSAC023] Root Server System Advisory Committee (RSSAC), "History of | [RSSAC023] Root Server System Advisory Committee (RSSAC), "History of | |||
| the Root Server System", November 2016, | the Root Server System", 4 November 2016, | |||
| <https://www.icann.org/en/system/files/files/ | <https://www.icann.org/en/system/files/files/rssac- | |||
| rssac-023-04nov16-en.pdf>. | 023-04nov16-en.pdf>. | |||
| [SUNSET4] IETF, "Sunsetting IPv4 (sunset4) Concluded WG", | [SUNSET4] IETF, "Sunsetting IPv4 (sunset4) Concluded WG", January | |||
| <https://datatracker.ietf.org/wg/sunset4/about/>. | 2019, <https://datatracker.ietf.org/wg/sunset4/about/>. | |||
| [TNO2009] Gijsen, B., Jamakovic, A., and F. Roijers, "Root Scaling | [TNO2009] Gijsen, B., Jamakovic, A., and F. Roijers, "Root Scaling | |||
| Study: Description of the DNS Root Scaling Model", | Study: Description of the DNS Root Scaling Model", | |||
| TNO report, September 2009, | TNO report, 29 September 2009, | |||
| <https://www.icann.org/en/system/files/files/ | <https://www.icann.org/en/system/files/files/root-scaling- | |||
| root-scaling-model-description-29sep09-en.pdf>. | model-description-29sep09-en.pdf>. | |||
| [USE_MIN_MTU] | [USE_MIN_MTU] | |||
| Andrews, M., "TCP Fails To Respect IPV6_USE_MIN_MTU", Work | Andrews, M., "TCP Fails To Respect IPV6_USE_MIN_MTU", Work | |||
| in Progress, draft-andrews-tcp-and-ipv6-use-minmtu-04, | in Progress, draft-andrews-tcp-and-ipv6-use-minmtu-04, 18 | |||
| October 2015. | October 2015. | |||
| [Wessels2015] | [Wessels2015] | |||
| Wessels, D., Castonguay, J., and P. Barber, "Thirteen | Wessels, D., Castonguay, J., and P. Barber, "Thirteen | |||
| Years of 'Old J-Root'", DNS-OARC Fall 2015 Workshop, | Years of 'Old J-Root'", DNS-OARC Fall 2015 Workshop, | |||
| October 2015, <https://indico.dns-oarc.net/event/24/ | October 2015, <https://indico.dns- | |||
| session/10/contribution/10/material/slides/0.pdf>. | oarc.net/event/24/session/10/contribution/10/material/ | |||
| slides/0.pdf>. | ||||
| [YetiLR] "Observation on Large response issue during Yeti KSK | [YetiLR] "Observation on Large response issue during Yeti KSK | |||
| rollover", Yeti DNS blog, August 2017, | rollover", Yeti DNS blog, 2 August 2017, | |||
| <https://yeti-dns.org/yeti/blog/2017/08/02/ | <https://yeti-dns.org/yeti/blog/2017/08/02/large-packet- | |||
| large-packet-impact-during-yeti-ksk-rollover.html>. | impact-during-yeti-ksk-rollover.html>. | |||
| Appendix A. Yeti-Root Hints File | Appendix A. Yeti-Root Hints File | |||
| The following hints file (complete and accurate at the time of | The following hints file (complete and accurate at the time of | |||
| writing) causes a DNS resolver to use the Yeti DNS testbed in place | writing) causes a DNS resolver to use the Yeti DNS testbed in place | |||
| of the production Root Server system and hence participate in | of the production Root Server system and hence participate in | |||
| experiments running on the testbed. | experiments running on the testbed. | |||
| Note that some lines have been wrapped in the text that follows in | Note that some lines have been wrapped in the text that follows in | |||
| order to fit within the production constraints of this document. | order to fit within the production constraints of this document. | |||
| skipping to change at page 36, line 9 ¶ | skipping to change at line 1653 ¶ | |||
| ;; Query time: 163 msec | ;; Query time: 163 msec | |||
| ;; SERVER: 2001:4b98:dc2:45:216:3eff:fe4b:8c5b#53 | ;; SERVER: 2001:4b98:dc2:45:216:3eff:fe4b:8c5b#53 | |||
| ;; WHEN: Tue Nov 14 16:45:37 +08 2017 | ;; WHEN: Tue Nov 14 16:45:37 +08 2017 | |||
| ;; MSG SIZE rcvd: 1222 | ;; MSG SIZE rcvd: 1222 | |||
| Appendix C. Active IPv6 Prefixes in Yeti DNS Testbed | Appendix C. Active IPv6 Prefixes in Yeti DNS Testbed | |||
| The following table shows the prefixes that were active during 2017. | The following table shows the prefixes that were active during 2017. | |||
| +----------------------+---------------------------------+----------+ | +----------------------+--------------------------+----------+ | |||
| | Prefix | Originator | Location | | | Prefix | Originator | Location | | |||
| +----------------------+---------------------------------+----------+ | +======================+==========================+==========+ | |||
| | 240c::/28 | BII | CN | | | 240c::/28 | BII | CN | | |||
| | 2001:6d0:6d06::/48 | MSK-IX | RU | | +----------------------+--------------------------+----------+ | |||
| | 2001:1488::/32 | CZ.NIC | CZ | | | 2001:6d0:6d06::/48 | MSK-IX | RU | | |||
| | 2001:620::/32 | SWITCH | CH | | +----------------------+--------------------------+----------+ | |||
| | 2001:470::/32 | Hurricane Electric, Inc. | US | | | 2001:1488::/32 | CZ.NIC | CZ | | |||
| | 2001:0DA8:0202::/48 | BUPT6-CERNET2 | CN | | +----------------------+--------------------------+----------+ | |||
| | 2001:19f0:6c00::/38 | Choopa, LLC | US | | | 2001:620::/32 | SWITCH | CH | | |||
| | 2001:da8:205::/48 | BJTU6-CERNET2 | CN | | +----------------------+--------------------------+----------+ | |||
| | 2001:62a::/31 | Vienna University Computer | AT | | | 2001:470::/32 | Hurricane Electric, Inc. | US | | |||
| | | Center | | | +----------------------+--------------------------+----------+ | |||
| | 2001:67c:217c::/48 | AFNIC | FR | | | 2001:0DA8:0202::/48 | BUPT6-CERNET2 | CN | | |||
| | 2a02:2478::/32 | Profitbricks GmbH | DE | | +----------------------+--------------------------+----------+ | |||
| | 2001:1398:1::/48 | NIC Chile | CL | | | 2001:19f0:6c00::/38 | Choopa, LLC | US | | |||
| | 2001:4490:dc4c::/46 | NIB (National Internet | IN | | +----------------------+--------------------------+----------+ | |||
| | | Backbone) | | | | 2001:da8:205::/48 | BJTU6-CERNET2 | CN | | |||
| | 2001:4b98::/32 | Gandi | FR | | +----------------------+--------------------------+----------+ | |||
| | 2a02:aa8:0:2000::/52 | T-Systems-Eltec | ES | | | 2001:62a::/31 | Vienna University | AT | | |||
| | 2a03:b240::/32 | Netskin GmbH | CH | | | | Computer Center | | | |||
| | 2801:1a0::/42 | Universidad de Ibague | CO | | +----------------------+--------------------------+----------+ | |||
| | 2a00:1cc8::/40 | ICT Valle Umbra s.r.l. | IT | | | 2001:67c:217c::/48 | AFNIC | FR | | |||
| | 2a02:cdc0::/29 | ORG-CdSB1-RIPE | IT | | +----------------------+--------------------------+----------+ | |||
| +----------------------+---------------------------------+----------+ | | 2a02:2478::/32 | Profitbricks GmbH | DE | | |||
| +----------------------+--------------------------+----------+ | ||||
| | 2001:1398:1::/48 | NIC Chile | CL | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2001:4490:dc4c::/46 | NIB (National Internet | IN | | ||||
| | | Backbone) | | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2001:4b98::/32 | Gandi | FR | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2a02:aa8:0:2000::/52 | T-Systems-Eltec | ES | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2a03:b240::/32 | Netskin GmbH | CH | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2801:1a0::/42 | Universidad de Ibague | CO | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2a00:1cc8::/40 | ICT Valle Umbra s.r.l. | IT | | ||||
| +----------------------+--------------------------+----------+ | ||||
| | 2a02:cdc0::/29 | ORG-CdSB1-RIPE | IT | | ||||
| +----------------------+--------------------------+----------+ | ||||
| Table 5 | ||||
| Appendix D. Tools Developed for Yeti DNS Testbed | Appendix D. Tools Developed for Yeti DNS Testbed | |||
| Various tools were developed to support the Yeti DNS testbed, a | Various tools were developed to support the Yeti DNS testbed, a | |||
| selection of which are described briefly below. | selection of which are described briefly below. | |||
| YmmV ("Yeti Many Mirror Verifier") is designed to make it easy and | YmmV ("Yeti Many Mirror Verifier") is designed to make it easy and | |||
| safe for a DNS administrator to capture traffic sent from a resolver | safe for a DNS administrator to capture traffic sent from a resolver | |||
| to the Root Server system and to replay it towards Yeti-Root servers. | to the Root Server system and to replay it towards Yeti-Root servers. | |||
| Responses from both systems are recorded and compared, and | Responses from both systems are recorded and compared, and | |||
| differences are logged. See <https://github.com/BII-Lab/ymmv>. | differences are logged. See https://github.com/BII-Lab/ymmv. | |||
| PcapParser is a module used by YmmV which reassembles fragmented IPv6 | PcapParser is a module used by YmmV which reassembles fragmented IPv6 | |||
| datagrams and TCP segments from a PCAP archive and extracts DNS | datagrams and TCP segments from a PCAP archive and extracts DNS | |||
| messages contained within them. See <https://github.com/RunxiaWan/ | messages contained within them. See https://github.com/RunxiaWan/ | |||
| PcapParser>. | PcapParser. | |||
| DNS-layer-fragmentation implements DNS proxies that perform | DNS-layer-fragmentation implements DNS proxies that perform | |||
| application-level fragmentation of DNS messages, based on | application-level fragmentation of DNS messages, based on | |||
| [FRAGMENTS]. The idea with these proxies is to explore splitting DNS | [FRAGMENTS]. The idea with these proxies is to explore splitting DNS | |||
| messages in the protocol itself, so they will not by fragmented by | messages in the protocol itself, so they will not by fragmented by | |||
| the IP layer. See <https://github.com/BII-Lab/DNS-layer- | the IP layer. See https://github.com/BII-Lab/DNS-layer- | |||
| Fragmentation>. | Fragmentation. | |||
| DNS_ATR is an implementation of DNS Additional Truncated Response | DNS_ATR is an implementation of DNS Additional Truncated Response | |||
| (ATR), as described in [ATR] and [HOW_ATR_WORKS]. DNS_ATR acts as a | (ATR), as described in [ATR] and [HOW_ATR_WORKS]. DNS_ATR acts as a | |||
| proxy between resolver and authoritative servers, forwarding queries | proxy between resolver and authoritative servers, forwarding queries | |||
| and responses as a silent and transparent listener. Responses that | and responses as a silent and transparent listener. Responses that | |||
| are larger than a nominated threshold (1280 octets by default) | are larger than a nominated threshold (1280 octets by default) | |||
| trigger additional truncated responses to be sent immediately | trigger additional truncated responses to be sent immediately | |||
| following the large response. See <https://github.com/songlinjian/ | following the large response. See https://github.com/songlinjian/ | |||
| DNS_ATR>. | DNS_ATR. | |||
| Appendix E. Controversy | Appendix E. Controversy | |||
| The Yeti DNS Project, its infrastructure and the various experiments | The Yeti DNS Project, its infrastructure and the various experiments | |||
| that have been carried out using that infrastructure, have been | that have been carried out using that infrastructure, have been | |||
| described by people involved in the project in many public meetings | described by people involved in the project in many public meetings | |||
| at technical venues since its inception. The mailing lists using | at technical venues since its inception. The mailing lists using | |||
| which the operation of the infrastructure has been coordinated are | which the operation of the infrastructure has been coordinated are | |||
| open to join, and their archives are public. The project as a whole | open to join, and their archives are public. The project as a whole | |||
| has been the subject of robust public discussion. | has been the subject of robust public discussion. | |||
| skipping to change at page 39, line 7 ¶ | skipping to change at line 1798 ¶ | |||
| Chonm. | Chonm. | |||
| The authors also acknowledge the assistance of the Independent | The authors also acknowledge the assistance of the Independent | |||
| Submissions Editorial Board, and of the following reviewers whose | Submissions Editorial Board, and of the following reviewers whose | |||
| opinions helped improve the clarity of this document: | opinions helped improve the clarity of this document: | |||
| Joe Abley, Paul Mockapetris, and Subramanian Moonesamy. | Joe Abley, Paul Mockapetris, and Subramanian Moonesamy. | |||
| Authors' Addresses | Authors' Addresses | |||
| Linjian Song (editor) | ||||
| Beijing Internet Institute | ||||
| 2nd Floor, Building 5, No.58 Jing Hai Wu Lu, BDA | ||||
| Beijing 100176 | ||||
| China | China | |||
| 100176 | ||||
| Beijing | ||||
| 2nd Floor, Building 5, No.58 Jing Hai Wu Lu, BDA | ||||
| Beijing Internet Institute | ||||
| Linjian Song (editor) | ||||
| Email: songlinjian@gmail.com | Email: songlinjian@gmail.com | |||
| URI: http://www.biigroup.com/ | URI: http://www.biigroup.com/ | |||
| Dong Liu | ||||
| Beijing Internet Institute | ||||
| 2nd Floor, Building 5, No.58 Jing Hai Wu Lu, BDA | ||||
| Beijing 100176 | ||||
| China | China | |||
| 100176 | ||||
| Beijing | ||||
| 2nd Floor, Building 5, No.58 Jing Hai Wu Lu, BDA | ||||
| Beijing Internet Institute | ||||
| Dong Liu | ||||
| Email: dliu@biigroup.com | Email: dliu@biigroup.com | |||
| URI: http://www.biigroup.com/ | URI: http://www.biigroup.com/ | |||
| Paul Vixie | Paul Vixie | |||
| TISF | TISF | |||
| 11400 La Honda Road | 11400 La Honda Road | |||
| Woodside, California 94062 | Woodside, California 94062 | |||
| United States of America | United States of America | |||
| Email: vixie@tisf.net | Email: vixie@tisf.net | |||
| URI: http://www.redbarn.org/ | URI: http://www.redbarn.org/ | |||
| Akira Kato | ||||
| Keio University/WIDE Project | ||||
| Graduate School of Media Design, 4-1-1 Hiyoshi, Kohoku | ||||
| Yokohama 223-8526 | ||||
| Japan | Japan | |||
| 〒223-8526 | ||||
| Graduate School of Media Design, 4-1-1 Hiyoshi, Kohoku | ||||
| Keio University/WIDE Project | ||||
| Akira Kato | ||||
| Email: kato@wide.ad.jp | Email: kato@wide.ad.jp | |||
| URI: http://www.kmd.keio.ac.jp/ | URI: http://www.kmd.keio.ac.jp/ | |||
| Shane Kerr | Shane Kerr | |||
| Antoon Coolenlaan 41 | Antoon Coolenlaan 41 | |||
| Uithoorn 1422 GN | Uithoorn | |||
| The Netherlands | ||||
| Email: shane@time-travellers.org | Email: shane@time-travellers.org | |||
| End of changes. 128 change blocks. | ||||
| 255 lines changed or deleted | 329 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||