Internet DRAFT - draft-vavrusa-dnsop-aaaa-for-free
draft-vavrusa-dnsop-aaaa-for-free
Network Working Group M. Vavrusa
Internet-Draft O. Gudmundsson
Intended status: Standards Track CloudFlare Inc.
Expires: September 22, 2016 March 21, 2016
Providing AAAA records for free with QTYPE=A
draft-vavrusa-dnsop-aaaa-for-free-00
Abstract
This document enables DNS servers to include AAAA addresses in the
answer section for DNS queries with QTYPE=A in order to reduce the
number of resolver round-trips during address lookups, and also
provides guidance for recursive DNS servers in accepting such
records.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 22, 2016.
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Vavrusa & Gudmundsson Expires September 22, 2016 [Page 1]
Internet-Draft dns-dnsop-a-aaaa March 2016
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Behaviour of authoritative DNS servers . . . . . . . . . . . 3
4. Behaviour of recursive DNS servers . . . . . . . . . . . . . 3
5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.1. Response to QTYPE=A with additional AAAA . . . . . . . . 3
5.2. Response to QTYPE=A with missing AAAA . . . . . . . . . . 4
5.3. Response to QTYPE=A with missing A, but added AAAA . . . 4
6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
7. Performance Considerations . . . . . . . . . . . . . . . . . 5
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
9.1. Normative References . . . . . . . . . . . . . . . . . . 5
9.2. Informative References . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
Over the years, there have been a number of attempts to extend DNS to
allow multiple questions in a DNS query. While it is possible to
place more than one query in the question section there is is only
one RCODE for the combined answer and there are no semantics on how
to set the RCODE if there are multiple questions that have different
results.
1.1. Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
1.2. Terminology
The reader is assumed to be familiar with the basic DNS concepts
described in [RFC1034], [RFC1035], [RFC2181] and [RFC6891]. Further
DNS terminology is clarified in [RFC7719].
2. Motivation
The DNS specification [RFC1034] [RFC1035] doesn't provide any
guidance on how to handle records in answer sections with matching
QNAME, but mismatching QTYPE with the exception of CNAME and DNAME
records.
Vavrusa & Gudmundsson Expires September 22, 2016 [Page 2]
Internet-Draft dns-dnsop-a-aaaa March 2016
The most frequently looked up types are address records, A for IPv4
addresses, and AAAA for IPv6 addresses. Stub resolvers attempt to
optimize latency by issuing both queries in parallel, but both
recursive and authoritative DNS servers then treat both queries
independently, thus in the worst case, loss of one answer triggers
requery for both. Furthermore, when client is behind an anycast
resolver cluster, the two queries may go to different resolver
instances. Resolvers also use queries for both record types
internally when determining referral chain topology, and the loss of
one answer leads either to an added round-trip if requerying, or
suboptimal address selection if the recursor continues without it.
3. Behaviour of authoritative DNS servers
The authoritative server MAY treat a query with QTYPE=A effectively
as a request for any IP address type, regardless of the address
protocol with all the requirements due to [RFC1035] , [RFC4035].
Namely, the authoritative server MUST add DNSSEC signatures for any
such records if the zone is signed.
However, if there is a direct answer to the original question, but no
records for other address protocols, the authoritative DNS server
SHOULD NOT prove their non-existence. In this respect, they are
treated as additional data.
4. Behaviour of recursive DNS servers
The recursive resolver MAY accept RRs with TYPE=AAAA and owner equal
to SNAME, therefore a direct answer to the query or matching the the
final target of the CNAME chain. They MUST be treated as
authoritative data as in [RFC2181], 5.4.1.
Notably, a recursive resolver MUST verify DNSSEC signatures on any
such records and it MUST reject any such records if the validation
fails, and the zone is not provably secure. In other words, they are
subject to the same requirements as a direct answer.
A resolver SHOULD accept other IP address records even if there are
no records matching the original QTYPE, given that authoritative DNS
server proves non-existence of the direct answer.
5. Examples
5.1. Response to QTYPE=A with additional AAAA
Vavrusa & Gudmundsson Expires September 22, 2016 [Page 3]
Internet-Draft dns-dnsop-a-aaaa March 2016
+-----------------------------------------+
Header | QR AA RCODE=NOERROR |
+-----------------------------------------+
Question | ns1.example. IN A |
+-----------------------------------------+
Answer | ns1.example. IN A 192.0.2.1 |
| ns1.example. IN AAAA 2001:db8::1 |
+-----------------------------------------+
Authority | <empty> |
+-----------------------------------------+
Additional | <empty> |
+-----------------------------------------+
Figure 1
5.2. Response to QTYPE=A with missing AAAA
+-----------------------------------------+
Header | QR AA RCODE=NOERROR |
+-----------------------------------------+
Question | ns2.example. IN A |
+-----------------------------------------+
Answer | ns2.example. IN A 192.0.2.1 |
+-----------------------------------------+
Authority | <empty> |
+-----------------------------------------+
Additional | <empty> |
+-----------------------------------------+
Figure 2
5.3. Response to QTYPE=A with missing A, but added AAAA
+-----------------------------------------+
Header | QR AA RCODE=NOERROR |
+-----------------------------------------+
Question | ns3.example. IN A |
+-----------------------------------------+
Answer | ns3.example. IN AAAA 2001:db8::2 |
+-----------------------------------------+
Authority | example. IN SOA a.example. x.w.example. |
| 1081539377 3600 300 3600000 3600 |
+-----------------------------------------+
Additional | <empty> |
+-----------------------------------------+
Figure 3
Vavrusa & Gudmundsson Expires September 22, 2016 [Page 4]
Internet-Draft dns-dnsop-a-aaaa March 2016
6. Security Considerations
In cases where a caching resolver either doesn't validate or the
authoritative answer is insecure, a successful spoofing attack may
poison both address types in one successful attempt. However, the
chance of successful spoofing attack is not affected.
7. Performance Considerations
Some resolvers might reject the answer due to "extra" records in the
answer section, but more likely the resolver will discard the AAAA
records, thus we are no different than today.
8. Acknowledgements
Dani Grant, Vicky Shrestha and Filippo Valsorda provided valuable
comments on the draft.
9. References
9.1. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,
<http://www.rfc-editor.org/info/rfc1034>.
[RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
November 1987, <http://www.rfc-editor.org/info/rfc1035>.
[RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS
Specification", RFC 2181, DOI 10.17487/RFC2181, July 1997,
<http://www.rfc-editor.org/info/rfc2181>.
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
<http://www.rfc-editor.org/info/rfc4035>.
[RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
for DNS (EDNS(0))", STD 75, RFC 6891,
DOI 10.17487/RFC6891, April 2013,
<http://www.rfc-editor.org/info/rfc6891>.
[RFC7719] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS
Terminology", RFC 7719, DOI 10.17487/RFC7719, December
2015, <http://www.rfc-editor.org/info/rfc7719>.
Vavrusa & Gudmundsson Expires September 22, 2016 [Page 5]
Internet-Draft dns-dnsop-a-aaaa March 2016
9.2. Informative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
Authors' Addresses
Marek Vavrusa
CloudFlare Inc.
101 Townsend St.
San Francisco 94107
USA
Email: mvavrusa@cloudflare.com
Olafur Gudmundsson
CloudFlare Inc.
101 Townsend St.
San Francisco 94107
USA
Email: olafur@cloudflare.com
Vavrusa & Gudmundsson Expires September 22, 2016 [Page 6]