|
|
|
|
|
|
|
|
|
|
|
Internet Engineering Task Force M. Parthasarathy, Ed. |
|
|
Internet-Draft Apple Inc. |
|
|
Intended status: Standards Track P. Vixie |
|
|
Expires: March 30, 2012 ISC |
|
|
September 27, 2011 |
|
|
|
|
|
|
|
|
|
|
|
draft-mohan-dns-query-xml-00 |
|
|
|
|
|
Abstract |
|
|
|
|
|
This memo presents a technique for representing DNS messages using |
|
|
XML. This enables DNS query transactions to be transported over |
|
|
HTTP/HTTPS. |
|
|
|
|
|
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 March 30, 2012. |
|
|
|
|
|
Copyright Notice |
|
|
|
|
|
Copyright (c) 2011 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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 1] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
Table of Contents |
|
|
|
|
|
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 |
|
|
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 |
|
|
2. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 3 |
|
|
3. DNS XML Query . . . . . . . . . . . . . . . . . . . . . . . . 3 |
|
|
4. XML Representation of DNS Message . . . . . . . . . . . . . . 4 |
|
|
5. DNS Message Format . . . . . . . . . . . . . . . . . . . . . . 4 |
|
|
6. DNS Resource Record Format . . . . . . . . . . . . . . . . . . 7 |
|
|
7. Message Compression . . . . . . . . . . . . . . . . . . . . . 8 |
|
|
8. Message Update . . . . . . . . . . . . . . . . . . . . . . . . 8 |
|
|
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 |
|
|
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 |
|
|
11. Security Considerations . . . . . . . . . . . . . . . . . . . 8 |
|
|
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 |
|
|
12.1. Normative References . . . . . . . . . . . . . . . . . . . 9 |
|
|
12.2. Informative References . . . . . . . . . . . . . . . . . . 9 |
|
|
Appendix A. Appendix A . . . . . . . . . . . . . . . . . . . . . 9 |
|
|
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 2] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
1. Introduction |
|
|
|
|
|
Domain Name System (DNS) is specified in RFC 1035 [RFC1035] and its |
|
|
security extensions (DNSSEC) are specified in RFC 4034 [RFC4034] and |
|
|
RFC 4035 [RFC4035]. DNSSEC provides origin authentication and |
|
|
integrity protection for DNS data. While signing the authority data |
|
|
and verifying such signatures in recursive or stub validators are |
|
|
well understood and well solved problems, the channel between |
|
|
authority servers and validators is commonly unusable for DNSSEC- |
|
|
secured transactions due to overreach in customer premises equipment, |
|
|
firewalls, intrusion detection systems, and non-DNSSEC-aware |
|
|
recursive name servers operated by enterprises or service providers. |
|
|
HTTP [RFC2616] is known to work in such environments and has become |
|
|
the de facto tunneling protocol in the Internet. To facilitate |
|
|
tunneling DNS messages over HTTP, this document describes a method of |
|
|
encoding a DNS message, including the resource records, as an XML |
|
|
object [XML]. |
|
|
|
|
|
1.1. Requirements Language |
|
|
|
|
|
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 RFC 2119 [RFC2119]. |
|
|
|
|
|
|
|
|
2. Protocol Overview |
|
|
|
|
|
In traditional DNS communication, the DNS stub resolver communicates |
|
|
with a recursive server which in turn communicates with the |
|
|
authoritative servers to fetch the DNS data. To fetch the DNS XML |
|
|
data, the resolver communicates with a web server using HTTP/HTTPS. |
|
|
It issues a GET request with parameters using the URI format in |
|
|
[RFC2396] indicating the attributes of the query as it would do in a |
|
|
normal DNS query. The web server on receiving the request retrieves |
|
|
the DNS data and formats in XML before sending it back to the |
|
|
resolver. The resolver may issue multiple DNS queries either using a |
|
|
single or multiple TCP connection to the server whose details are |
|
|
beyond the scope of this document. |
|
|
|
|
|
|
|
|
3. DNS XML Query |
|
|
|
|
|
The resolver issues a HTTP GET request with parameters to fetch the |
|
|
DNS XML data. The structure of the query is as follows: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 3] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
https://server_address/dns_service/ |
|
|
query?name=NAME&type=TYPE&ID=VALUE&RD=VALUE&CD=VALUE&DO=VALUE |
|
|
|
|
|
dns_service - tells the web server that the GET request is to |
|
|
fetch the DNS records |
|
|
|
|
|
query - indicates that this GET request is a DNS query and it |
|
|
should return the DNS Response formatted in XML |
|
|
|
|
|
name - The domain name being looked up |
|
|
|
|
|
type - Type of the query as specified under "TYPE" field in the |
|
|
RRTYPE registry in [IANA_DNS]. |
|
|
|
|
|
ID - Corresponds to the ID value in the DNS query. When there |
|
|
are multiple queries in flight, the ID in the response can be |
|
|
used to match the request. |
|
|
|
|
|
RD - Corresponds to the "RD" bit in the DNS query. Set to 1 if |
|
|
recursion is desired or 0 otherwise. |
|
|
|
|
|
CD - Corresponds to the "CD" bit in the DNS query. Set to 1 if |
|
|
validation will be done by the end host or 0 otherwise. |
|
|
|
|
|
DO - Corresponds to the "DNSSEC OK" bit in the DNS query. It |
|
|
reflects the setting of the DNSSEC OK bit in EDNS0 option. |
|
|
|
|
|
|
|
|
4. XML Representation of DNS Message |
|
|
|
|
|
The XML representation of the DNS message maps the DNS header |
|
|
specified in section 4.1.1 of [RFC1035] to XML representation. |
|
|
|
|
|
|
|
|
5. DNS Message Format |
|
|
|
|
|
The DNS message is enclosed under the root element "response", under |
|
|
which all the other elements appear. |
|
|
|
|
|
<response> |
|
|
|
|
|
All the other elements are enclosed within this element. |
|
|
|
|
|
</response> |
|
|
|
|
|
The XML representation of the DNS header does not represent all the |
|
|
fields. Only RCODE, the AA bit and the CD bit of the second sixteen |
|
|
bit field (that follows the ID field) is represented. The fields |
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 4] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
QDCOUNT and the question section are omitted. If the resolver |
|
|
converts the XML representation into binary format for processing, |
|
|
the omitted fields should be inferred appropriately. Rest of the |
|
|
fields are described below. |
|
|
|
|
|
<id> |
|
|
|
|
|
The value of this field is copied from the HTTP request |
|
|
parameters. It is used by the resolver to match the response |
|
|
to the request. |
|
|
|
|
|
</id> |
|
|
|
|
|
<aa> |
|
|
|
|
|
Corresponds to the AA bit in the header. If AA is set, this |
|
|
element is set to 1 and otherwise 0. |
|
|
|
|
|
</aa> |
|
|
|
|
|
<ad> |
|
|
|
|
|
Corresponds to the AD bit in the header. If AD is set, this |
|
|
element is set to 1 and otherwise 0. |
|
|
|
|
|
</ad> |
|
|
|
|
|
<cd> |
|
|
|
|
|
Corresponds to the CD bit in the header. If CD is set, this |
|
|
element is set to 1 and otherwise 0. |
|
|
|
|
|
</cd> |
|
|
|
|
|
<rcode> |
|
|
|
|
|
RCODE of the response represented as specified under "Name" |
|
|
field of the RCODE registry in [IANA_DNS]. |
|
|
|
|
|
</rcode> |
|
|
|
|
|
<anscount> |
|
|
|
|
|
Number of answers in the answers element described below |
|
|
|
|
|
</anscount> |
|
|
|
|
|
<answers> |
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 5] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
This section contains all the records in the answer section of the |
|
|
response with each resource record in the answer element. |
|
|
|
|
|
<answer> |
|
|
|
|
|
Each answer element contains a resource record |
|
|
|
|
|
</answer> |
|
|
|
|
|
</answers> |
|
|
|
|
|
<nscount> |
|
|
|
|
|
Number of authorities in the authorities element described |
|
|
below |
|
|
|
|
|
</nscount> |
|
|
|
|
|
<authorities> |
|
|
|
|
|
This section contains all the records in the authority section of |
|
|
the response with each resource record in the authority element. |
|
|
|
|
|
<authority> |
|
|
|
|
|
Each authority element contains a resource record |
|
|
|
|
|
</authority> |
|
|
|
|
|
</authorities> |
|
|
|
|
|
<arcount> |
|
|
|
|
|
Number of additional records in the additionals element given |
|
|
below |
|
|
|
|
|
</arcount> |
|
|
|
|
|
<additionals> |
|
|
|
|
|
This section contains all the records in the additional section of |
|
|
the response with each resource record in the additional element. |
|
|
|
|
|
<additional> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 6] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
Each additional element contains a resource record |
|
|
|
|
|
</additional> |
|
|
|
|
|
</additionals> |
|
|
|
|
|
|
|
|
6. DNS Resource Record Format |
|
|
|
|
|
Every DNS resource record contains a name, type, class, ttl, rdlength |
|
|
and type specific rdata. The XML elements for each of these are |
|
|
described below. |
|
|
|
|
|
<name> |
|
|
|
|
|
Textual representation of the domain name to which this |
|
|
resource record pertains as it appears in the master file |
|
|
|
|
|
</name> |
|
|
|
|
|
<type> |
|
|
|
|
|
Type of the RDATA field as specified under "TYPE" field in the |
|
|
RRTYPE registry in [IANA_DNS]. |
|
|
|
|
|
</type> |
|
|
|
|
|
<class> |
|
|
|
|
|
Class of the RDATA field as specified under "Name" field in the |
|
|
Class registry in [IANA_DNS]. |
|
|
|
|
|
</class> |
|
|
|
|
|
<ttl> |
|
|
|
|
|
Time to live value of this resource record in seconds |
|
|
|
|
|
</ttl> |
|
|
|
|
|
<rdlength> |
|
|
|
|
|
Length of the RDATA field |
|
|
|
|
|
</rdlength> |
|
|
|
|
|
<rdata> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 7] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
RDATA is represented as zero or more words of hexadecimal data |
|
|
described in RFC 3597 [RFC3597]. The special token \# and |
|
|
RDATA length are not included. |
|
|
|
|
|
</rdata> |
|
|
|
|
|
|
|
|
7. Message Compression |
|
|
|
|
|
Message compression is not supported. All names should be fully |
|
|
expanded. |
|
|
|
|
|
|
|
|
8. Message Update |
|
|
|
|
|
DNS Update RFC 2136 [RFC2136] is not supported. |
|
|
|
|
|
|
|
|
9. Acknowledgements |
|
|
|
|
|
TBD |
|
|
|
|
|
|
|
|
10. IANA Considerations |
|
|
|
|
|
This memo includes no request to IANA. |
|
|
|
|
|
|
|
|
11. Security Considerations |
|
|
|
|
|
In the current DNS system, there is no trust relationship between the |
|
|
stub resolver and the rest of the system. When the users connect to |
|
|
the Internet using their ISP that provides the Internet service, they |
|
|
expect the ISP to provide trustworthy DNS service. When they connect |
|
|
to the Internet from hotspots and other places, there is no trust |
|
|
whatsoever. There are also many popular open recursive resolvers |
|
|
that are available in the Internet today that provide DNS resolution. |
|
|
Similarly, the DNS service described in this document may be provided |
|
|
via both HTTP and HTTPS. Depending on the stub resolver's trust |
|
|
relationship with the DNS service provider, it can use HTTP or HTTPS. |
|
|
When DNSSEC is used, the DNS data can be authenticated independently. |
|
|
|
|
|
DNSSEC itself cannot be used to validate the IP address of the server |
|
|
that is providing the DNS service using the method described in this |
|
|
document. |
|
|
|
|
|
|
|
|
12. References |
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 8] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
12.1. Normative References |
|
|
|
|
|
[RFC1035] Mockapetris, P., "Domain names - implementation and |
|
|
specification", STD 13, RFC 1035, November 1987. |
|
|
|
|
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate |
|
|
Requirement Levels", BCP 14, RFC 2119, March 1997. |
|
|
|
|
|
[RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource Record |
|
|
(RR) Types", RFC 3597, September 2003. |
|
|
|
|
|
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. |
|
|
Rose, "Resource Records for the DNS Security Extensions", |
|
|
RFC 4034, March 2005. |
|
|
|
|
|
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. |
|
|
Rose, "Protocol Modifications for the DNS Security |
|
|
Extensions", RFC 4035, March 2005. |
|
|
|
|
|
12.2. Informative References |
|
|
|
|
|
[IANA_DNS] |
|
|
"Domain Name System Parameters", |
|
|
<http://www.iana.org/assignments/dns-parameters>. |
|
|
|
|
|
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound, |
|
|
"Dynamic Updates in the Domain Name System (DNS UPDATE)", |
|
|
RFC 2136, April 1997. |
|
|
|
|
|
[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform |
|
|
Resource Identifiers (URI): Generic Syntax", RFC 2396, |
|
|
August 1998. |
|
|
|
|
|
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., |
|
|
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext |
|
|
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. |
|
|
|
|
|
[XML] T, Bray., J, Paoli., and Sperberg-McQueen. C.M., |
|
|
"Extensible Markup Language (XML)", 1998. |
|
|
|
|
|
|
|
|
Appendix A. Appendix A |
|
|
|
|
|
This section provides a few sample queries and responses |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 9] |
|
|
|
|
|
Internet-Draft DNS QUERY XML September 2011 |
|
|
|
|
|
|
|
|
QUERY: https://server_address/dns_service/ |
|
|
query?name=www.isc.org&type=A&ID=2345&RD=1 |
|
|
|
|
|
RESPONSE: |
|
|
|
|
|
<?xml version="1.0" encoding="US-ASCII"?> |
|
|
|
|
|
<response> |
|
|
|
|
|
<ID>2345</id> |
|
|
|
|
|
<aa>1</aa> |
|
|
|
|
|
<rcode>0</rcode> |
|
|
|
|
|
<anscount>1</anscount> |
|
|
|
|
|
<answers> |
|
|
|
|
|
<answer>9514402A</answer> |
|
|
|
|
|
</answers> |
|
|
|
|
|
</response> |
|
|
|
|
|
|
|
|
Authors' Addresses |
|
|
|
|
|
Mohan Parthasarathy (editor) |
|
|
Apple Inc. |
|
|
1 Infinite loop |
|
|
Cupertino, 95014 |
|
|
USA |
|
|
|
|
|
Phone: +1 408 862 7901 |
|
|
Email: mparthasarathy@apple.com |
|
|
|
|
|
|
|
|
Paul Vixie |
|
|
ISC |
|
|
950 Charter Street |
|
|
Redwood City, 94063 |
|
|
USA |
|
|
|
|
|
Phone: +1 650 423 1300 |
|
|
Email: vixie@isc.org |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parthasarathy & Vixie Expires March 30, 2012 [Page 10] |
|
|
|
|
|
|