| < draft-sury-dnsop-cname-plus-dname-00.txt | draft-sury-dnsop-cname-plus-dname-01.txt > | |||
|---|---|---|---|---|
| dnsop O. Sury | dnsop O. Sury | |||
| Internet-Draft Internet Systems Consortium | Internet-Draft Internet Systems Consortium | |||
| Updates: 1034 (if approved) July 15, 2018 | Updates: 1034 (if approved) July 15, 2018 | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: January 16, 2019 | Expires: January 16, 2019 | |||
| CNAME+DNAME Name Redirection | CNAME+DNAME Name Redirection | |||
| draft-sury-dnsop-cname-plus-dname-00 | draft-sury-dnsop-cname-plus-dname-01 | |||
| Abstract | Abstract | |||
| This document updates RFC1034 to allow coexistence of the CNAME | This document updates RFC1034 to allow coexistence of the CNAME | |||
| Resource Record with DNAME Resource Record at the same owner node, | Resource Record with DNAME Resource Record at the same owner node, | |||
| which provides redirection for a sub-tree of the domain name tree in | which provides redirection for a sub-tree of the domain name tree in | |||
| the DNS system, in a parent zone. By allowing this cooexistence, DNS | the DNS system, in a parent zone. By allowing this cooexistence, DNS | |||
| system will have a way how to create a sub-tree redirection together | system will have a way how to create a sub-tree redirection together | |||
| that includes the Resource Records owner name. This would allow | that includes the Resource Records owner name. This would allow | |||
| parent zones to create full domain aliases. | parent zones to create full domain aliases. | |||
| skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. CNAME+DNAME Bundle . . . . . . . . . . . . . . . . . . . . . 4 | 3. CNAME+DNAME Bundle . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Query processing . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Query processing . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.1. Processing by Authoritative Servers . . . . . . . . . . . 4 | 4.1. Processing by Authoritative Servers . . . . . . . . . . . 4 | |||
| 4.2. Processing by Recursive Servers . . . . . . . . . . . . . 4 | 4.2. Processing by Recursive Servers . . . . . . . . . . . . . 4 | |||
| 5. Implementation Report . . . . . . . . . . . . . . . . . . . . 4 | 5. Implementation Report . . . . . . . . . . . . . . . . . . . . 4 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 5 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 5 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 5 | 8.2. Informative References . . . . . . . . . . . . . . . . . 5 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 1. Introduction | 1. Introduction | |||
| RFC 1034 [RFC1034] defines CNAME resource record for cases when there | RFC 1034 [RFC1034] defines CNAME resource record for cases when there | |||
| are multiple names for single host. A CNAME resource record | are multiple names for single host. A CNAME resource record | |||
| identifies its owner name as an alias, and specifies the | identifies its owner name as an alias, and specifies the | |||
| corresponding canonical name in the RDATA section of the resource | corresponding canonical name in the RDATA section of the resource | |||
| record. If a CNAME resource record is present at a node, no other | record. If a CNAME resource record is present at a node, no other | |||
| data MUST be present; this ensures that the data for a canonical name | data MUST be present; this ensures that the data for a canonical name | |||
| and its aliases cannot be different. This rule also insures that a | and its aliases cannot be different. This rule also insures that a | |||
| skipping to change at page 4, line 22 ¶ | skipping to change at page 4, line 22 ¶ | |||
| Existing rules for a DNAME RR and a CNAME RR are still valid with | Existing rules for a DNAME RR and a CNAME RR are still valid with | |||
| following exception: The DNAME and CNAME resource records MAY co- | following exception: The DNAME and CNAME resource records MAY co- | |||
| exist at the same owner name in the parent zone. | exist at the same owner name in the parent zone. | |||
| 4.1. Processing by Authoritative Servers | 4.1. Processing by Authoritative Servers | |||
| The authoritative server implementations MUST allow CNAME record when | The authoritative server implementations MUST allow CNAME record when | |||
| there is a DNAME record for the same name and vice versa. | there is a DNAME record for the same name and vice versa. | |||
| TODO: Experiment with returning DNAME together with CNAME. | The authoritative server implementations compliant with this | |||
| specification SHOULD add an associated DNAME record into an | ||||
| ADDITIONAL (or ANSWER?) section for any non-DNAME query along with | ||||
| the CNAME record that would be normally required. This would allow | ||||
| recursive DNS server implementation that understand the DNAME record | ||||
| to synthetize the answers for the subtree directly without making an | ||||
| additional queries to the respective authoritative DNS servers. | ||||
| 4.2. Processing by Recursive Servers | 4.2. Processing by Recursive Servers | |||
| The recursive server implementations MUST NOT deny CNAME record when | The recursive server implementations MUST NOT deny CNAME record when | |||
| there is a DNAME record already present in the cache for the same | there is a DNAME record already present in the cache for the same | |||
| name and vice versa. | name and vice versa. | |||
| The recursive DNS server implementation SHOULD accept the extra DNAME | ||||
| resource record that would be returned along with the CNAME record in | ||||
| the ADDITIONAL (or ANSWER?) section. | ||||
| 5. Implementation Report | 5. Implementation Report | |||
| The author has implemented a change for BIND 9 authoritative server | The author has implemented a change for BIND 9 authoritative server | |||
| during the IETF Hackathon in Montreal, and the domain with | during the IETF Hackathon in Montreal, and the domain with | |||
| CNAME+DNAME can be tested at www.cname-plus-dname.rocks. | CNAME+DNAME can be tested at www.cname-plus-dname.rocks. | |||
| The conducted experiment confirmed that BIND, Unbound and Google | The conducted experiment confirmed that BIND, Unbound and Google | |||
| Public DNS work fine, Knot Resolver has a bug that makes the DNS | Public DNS work fine, Knot Resolver has a bug that makes the DNS | |||
| answer contain the DNAME records, but with RCODE=SERVFAIL, and | answer contain the DNAME records, but with RCODE=SERVFAIL, and | |||
| PowerDNS returns RCODE=SERVFAIL for any DNAME query. The other | PowerDNS returns RCODE=SERVFAIL for any DNAME query. The other | |||
| public DNS implementations follow the errors of their respective | public DNS implementations follow the errors of their respective | |||
| deployed software. | deployed software. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The security is the same as security of the individual CNAME and | In case the recursive DNS server looking for records has enabled DNS | |||
| DNAME records. | Query Name Minimization (RFC 7816 [RFC7816]), the CNAME+DNAME | |||
| specification might make the resolver send one more label than needed | ||||
| from the original DNS Query Name to the nameservers authoritative for | ||||
| the CNAME+DNAME records unless the authoritative DNS server | ||||
| preemptively returns DNAME record along with the CNAME resource | ||||
| record for the minimized query, and at the same time the recursive | ||||
| DNS server understand the additional data in the answer and utilizes | ||||
| it to synthetize the answer. | ||||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document makes no requests of IANA. | This document makes no requests of IANA. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
| skipping to change at page 5, line 40 ¶ | skipping to change at page 6, line 12 ¶ | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [RFC3743] Konishi, K., Huang, K., Qian, H., and Y. Ko, "Joint | [RFC3743] Konishi, K., Huang, K., Qian, H., and Y. Ko, "Joint | |||
| Engineering Team (JET) Guidelines for Internationalized | Engineering Team (JET) Guidelines for Internationalized | |||
| Domain Names (IDN) Registration and Administration for | Domain Names (IDN) Registration and Administration for | |||
| Chinese, Japanese, and Korean", RFC 3743, | Chinese, Japanese, and Korean", RFC 3743, | |||
| DOI 10.17487/RFC3743, April 2004, | DOI 10.17487/RFC3743, April 2004, | |||
| <https://www.rfc-editor.org/info/rfc3743>. | <https://www.rfc-editor.org/info/rfc3743>. | |||
| [RFC7816] Bortzmeyer, S., "DNS Query Name Minimisation to Improve | ||||
| Privacy", RFC 7816, DOI 10.17487/RFC7816, March 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7816>. | ||||
| Author's Address | Author's Address | |||
| Ondrej Sury | Ondrej Sury | |||
| Internet Systems Consortium | Internet Systems Consortium | |||
| CZ | CZ | |||
| Email: ondrej@isc.org | Email: ondrej@isc.org | |||
| End of changes. 7 change blocks. | ||||
| 7 lines changed or deleted | 28 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||