<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.37 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-hoffman-dns-over-https-00" category="std">

  <front>
    <title abbrev="DNS Queries over HTTPS">DNS Queries over HTTPS</title>

    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization>ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>
    <author initials="P." surname="McManus" fullname="Patrick McManus">
      <organization>Mozilla</organization>
      <address>
        <email>pmcmanus@mozilla.com</email>
      </address>
    </author>

    <date year="2017" month="May" day="03"/>

    <area>Art</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>DNS queries sometimes experience problems with end to end connectivity
at times and places where HTTPS flows freely.</t>

<t>HTTPS provides the most practical mechanism for reliable end to end
communication. Its use of TLS provides integrity and confidentiality
guarantees and its use of HTTP allows it to interoperate with proxies,
firewalls, and authentication systems where required for transit.</t>

<t>This document describes how to run DNS service over HTTP using
https:// URIs.</t>

<t>[ This paragraph is to be removed when this document is published as an RFC ]
Comments on this draft can be sent to the DNS over HTTP mailing list at
<eref target="https://www.ietf.org/mailman/listinfo/dnsoverhttp">https://www.ietf.org/mailman/listinfo/dnsoverhttp</eref>.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>The Internet does not always provide end to end reachability for
native DNS. On-path network devices may spoof DNS responses, block DNS
requests, or just redirect DNS queries to different DNS servers that give
less-than-honest answers.</t>

<t>Over time, there have been many proposals for using HTTP and HTTPS as
a substrate for DNS queries and responses. To date, none of those
proposals have made it beyond early discussion, partially due to
disagreement about what the appropriate formatting should be and
partially because they did not follow HTTP best practices.</t>

<t>This document defines a specific protocol for sending DNS <xref target="RFC1035"/>
queries and getting DNS responses over modern versions of HTTP
<xref target="RFC7540"/> using https:// (and therefore TLS <xref target="RFC5246"/> security for
integrity and confidentiality).</t>

<t>The described approach is more than a tunnel over HTTP. It establishes
default media formatting types for requests and responses but uses
normal HTTP content negotiation mechanisms for selecting alternatives
that endpoints may prefer in anticipation of serving new use cases. In
addition to this media type negotiation, it aligns itself with HTTP
features such as caching, proxying, and compression.</t>

<t>The integration with HTTP provides a transport suitable for both
traditional DNS clients and native web applications seeking access to
the DNS.</t>

<t>A server that supports this protocol is called a “DNS API server” to
differentiate it from a “DNS server” (one that uses the regular DNS
protocol).  Similarly, a client that supports this protocol is called a
“DNS API client”.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>In this document, the key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are to be interpreted as
described in BCP 14, RFC 2119 <xref target="RFC2119"/>.</t>

</section>
<section anchor="use-cases" title="Use Cases">

<t>There are two primary use cases for this protocol.</t>

<t>The primary one is to prevent on-path network devices from interfering
with native DNS operations. This interference includes, but is not
limited to, spoofing DNS responses, blocking DNS requests, and
tracking. HTTP authentication and proxy friendliness are expected to
make this protocol function in some environments where DNS directly on
TLS (<xref target="RFC7858"/>) would not.</t>

<t>A secondary use case is web applications that want to access DNS
information. Standardizing an HTTPS mechanism allows this to be done
in a way consistent with the cross-origin resource sharing <xref target="CORS"/>
security model of the web and also integrate the caching mechanisms of DNS
with those of HTTP. These applications may be interested in using a
different media type than traditional clients.</t>

<t>[ This paragraph is to be removed when this document is published as an RFC ]
Note that these use cases are different than those in a
similar protocol described at
<xref target="I-D.ietf-dnsop-dns-wireformat-http"/>. The use case for that protocol
is proxying DNS queries over HTTP instead of over DNS itself.  The use
cases in this document all involve query origination instead of proxying.</t>

</section>
<section anchor="protocol-requirements" title="Protocol Requirements">

<t>The protocol described here bases its design on the following protocol requirements:</t>

<t><list style="symbols">
  <t>The protocol must use normal HTTP semantics.</t>
  <t>The query format must be able to be flexible enough to express every normal
DNS query.</t>
  <t>The protocol must allow implementations to use HTTP’s content
negotiation mechanism.</t>
  <t>The protocol must ensure interoperable media formats through a
mandatory to implement format wherein a query must be able to
contain one or more EDNS extensions, including those not yet defined.</t>
  <t>The protocol must use a secure transport that meets the
requirements for modern https://.</t>
</list></t>

<section anchor="non-requirements" title="Non-requirements">

<t><list style="symbols">
  <t>Supporting network-specific DNS64 <xref target="RFC6147"/></t>
  <t>Supporting other network-specific inferences from plaintext DNS queries</t>
  <t>Supporting insecure HTTP</t>
  <t>Supporitng legacy HTTP versions</t>
</list></t>

</section>
</section>
<section anchor="the-http-request" title="The HTTP Request">

<t>The URI scheme MUST be https.</t>

<t>The path SHOULD be “/.well-known/dns-query” but a different path can
be used if the DNS API Client has prior knowledge about a DNS API
service on a different path at the origin being used. (See <xref target="iana"/>
for the registration of this in the well-known URI registry.) Using
the well-known path allows automated discovery of a DNS API Service,
and also helps contextualize DNS Query requests pushed over an active
HTTP/2 connection.</t>

<t>Some forms of the request may also include a HTTP query as defined by
<xref target="RFC3986"/>.</t>

<t>A DNS API Client encodes the DNS query into the HTTP request in one
of two different methods:</t>

<t><list style="hanging">
  <t hangText='GET:'>
  Using the on-the-wire representation of a DNS message defined in
<xref target="RFC1035"/> as the query string portion of the URI, encoded as
necessary with <xref target="RFC3986"/>, using the GET HTTP method. This is the
preferred approach because it is friendlier to HTTP caches.</t>
  <t hangText='POST:'>
  Including the DNS query as the message body of the HTTP
request, with the request using the POST method. The body MUST use a media
type selected by the DNS API Client, and that media type MUST be indicated by the
request’s Content-Type header.</t>
</list></t>

<t>The DNS request MAY have one or more EDNS(0) extensions <xref target="RFC6891"/>.</t>

<t>The DNS API Client SHOULD include an HTTP “Accept:” request header to
say what type of content can be understood in response. The client
MUST be prepared to process “application/dns-udpwireformat” responses
but MAY process any other type it receives.</t>

<t>In order to maximize cache friendliness, DNS API Clients SHOULD
use the same ID (the first two bytes of the header) for every DNS request.
The exact mechanism for doing so is dependent on the media type in use.
HTTP semantics correlate the request and response which eliminates the need
for the ID in a media type such as application/dns-udpwireformat.
Using a constant value greatly increases the opportunity for successful caching.</t>

<t>DNS API clients can use HTTP/2 padding and compression in the same way
that other HTTP/2 clients use (or don’t use) them.</t>

<section anchor="example" title="Example">

<t>For example, assume a DNS API server is following this specification
on origin https://dnsserver.example.net/ and the well-known path.
The example uses HTTP/2 formatting from <xref target="RFC7540"/>.</t>

<t>A query for the IN A records for “www.example.com” with recursion
turned on using the GET approach would be:</t>

<figure><artwork><![CDATA[
:method = GET
:scheme = https
:authority = dnsserver.example.net
:path = /.well-known/dns-query?%ab%cd%01%00%00%01%00%00%00%00 (no CR)
                         %00%00%03www%07example%03com%00%00%01%00%01
accept = application/dns-udpwireformat, application/dns-futureJsonDns
]]></artwork></figure>

<t>The same DNS query, using the second method of HTTP encoding would be:</t>

<figure><artwork><![CDATA[
:method = POST
:scheme = https
:authority = dnsserver.example.net
:path = /.well-known/dns-query
accept = application/dns-udpwireformat, application/dns-futureJsonDns
content-type = application/dns-udpwireformat
content-length = 33

<33 bytes represented by the following hex encoding>
abcd 0100 0001 0000 0000 0000 0377 7777
0765 7861 6d70 6c65 0363 6f6d 0000 0100
01
]]></artwork></figure>

</section>
</section>
<section anchor="the-http-response" title="The HTTP Response">

<t>Different response media types will provide more or less information from a DNS
response. For example, one response type might include the information from the
DNS header bytes while another might omit it. The amount and type of information
that a media type gives is solely up to the format, and not defined in
this protocol.</t>

<t>At the time this is published, the response types are works in progress. The
only known response type is “application/dns-udpwireformat”, but it is likely that
at least one JSON-based response format might be defined in the future.</t>

<t>The DNS response MAY have one or more EDNS(0) extensions, depending on the
extension definition of the extensions given in the DNS request.</t>

<t>Native HTTP methods are used to correlate requests and
responses. Responses may be returned in a different temporal order than
requests were made using the protocols native multistreaming
functionality.</t>

<t>In the HTTP responses, the HTTP cache headers SHOULD be set to expire
at the same time as the shortest DNS TTL in the response. Because DNS
provides only caching but not revalidation semantics, DNS over HTTP
responses should not carry revalidation response headers
(such as Last-Modified: or Etag:) or return 304 responses.</t>

<t>A DNS API Server MUST be able to process application/dns-udpwireformat
request messages.</t>

<t>A DNS API Server SHOULD respond with HTTP status code 415 upon receiving a
media type it is unable to process.</t>

<t>This document does not change the definition of any HTTP response codes or
otherwise proscribe their use.</t>

<section anchor="example-1" title="Example">

<t>This is an example response for a query for the IN A records for
“www.example.com” with recursion turned on. The response bears one
record with an address of 93.184.216.34 and a TTL of 128 seconds.</t>

<figure><artwork><![CDATA[
:status = 200
content-type = application/dns-udpwireformat
content-length = 64
cache-control = max-age=128

<64 bytes represented by the following hex encoding>
abcd 8180 0001 0001 0000 0000 0377 7777
0765 7861 6d70 6c65 0363 6f6d 0000 0100

0103 7777 7707 6578 616d 706c 6503 636f
6d00 0001 0001 0000 0080 0004 5Db8 d822
]]></artwork></figure>

</section>
</section>
<section anchor="http-integration" title="HTTP Integration">

<t>In order to satisfy the security requirements of DNS over HTTPS, this
protocol MUST use HTTP/2 <xref target="RFC7540"/> or its successors. HTTP/2
enforces a modern TLS profile necessary for achieving the security
requirements of this protocol.</t>

<t>This protocol MUST be used with https scheme URI <xref target="RFC7230"/>.</t>

<t>The messages in classic UDP based DNS <xref target="RFC1035"/> are inherently unordered and have low
overhead. A competitive HTTP transport needs to support
reordering, priority, parallelism, and header compression. For this
additional reason, this protocol MUST use HTTP/2 <xref target="RFC7540"/> or its
successors.</t>

</section>
<section anchor="iana" title="IANA Considerations">

<t>This specification registers a Well-Known URI <xref target="RFC5785"/>:</t>

<t><list style="symbols">
  <t>URI Suffix: dns-query</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): [this specification]</t>
</list></t>

<t>(Note for the -00 draft: a request for the media type
application/dns-udpwireformat has already been submitted separately from
this draft because it may be useful for other documents as well. That
application is pending approval.)</t>

</section>
<section anchor="Security" title="Security Considerations">

<t>Running DNS over https:// relies on the security of the underlying
HTTP connection. By requiring at least <xref target="RFC7540"/> levels of support
for TLS this protocol expects to use current best practices for secure
transport.</t>

<t>Session level encryption has well known weaknesses with respect to
traffic analysis which might be particularly acute when dealing with
DNS queries. Sections 10.6 (Compression) and 10.7 (Padding) of
<xref target="RFC7540"/> provide some further advice on mitigations within an
HTTP/2 context.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>Joe Hildebrand contributed lots of material for a different iteration of this document.
Helpful early comments were given by Ben Schwartz and Mark Nottingham.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor='RFC1035' target='http://www.rfc-editor.org/info/rfc1035'>
<front>
<title>Domain names - implementation and specification</title>
<author initials='P.V.' surname='Mockapetris' fullname='P.V. Mockapetris'><organization /></author>
<date year='1987' month='November' />
<abstract><t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System.  It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t></abstract>
</front>
<seriesInfo name='STD' value='13'/>
<seriesInfo name='RFC' value='1035'/>
<seriesInfo name='DOI' value='10.17487/RFC1035'/>
</reference>



<reference  anchor='RFC2119' target='http://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor='RFC3986' target='http://www.rfc-editor.org/info/rfc3986'>
<front>
<title>Uniform Resource Identifier (URI): Generic Syntax</title>
<author initials='T.' surname='Berners-Lee' fullname='T. Berners-Lee'><organization /></author>
<author initials='R.' surname='Fielding' fullname='R. Fielding'><organization /></author>
<author initials='L.' surname='Masinter' fullname='L. Masinter'><organization /></author>
<date year='2005' month='January' />
<abstract><t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='66'/>
<seriesInfo name='RFC' value='3986'/>
<seriesInfo name='DOI' value='10.17487/RFC3986'/>
</reference>



<reference  anchor='RFC5246' target='http://www.rfc-editor.org/info/rfc5246'>
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
<author initials='T.' surname='Dierks' fullname='T. Dierks'><organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2008' month='August' />
<abstract><t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5246'/>
<seriesInfo name='DOI' value='10.17487/RFC5246'/>
</reference>



<reference  anchor='RFC5785' target='http://www.rfc-editor.org/info/rfc5785'>
<front>
<title>Defining Well-Known Uniform Resource Identifiers (URIs)</title>
<author initials='M.' surname='Nottingham' fullname='M. Nottingham'><organization /></author>
<author initials='E.' surname='Hammer-Lahav' fullname='E. Hammer-Lahav'><organization /></author>
<date year='2010' month='April' />
<abstract><t>This memo defines a path prefix for &quot;well-known locations&quot;, &quot;/.well-known/&quot;, in selected Uniform Resource Identifier (URI) schemes.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5785'/>
<seriesInfo name='DOI' value='10.17487/RFC5785'/>
</reference>



<reference  anchor='RFC7230' target='http://www.rfc-editor.org/info/rfc7230'>
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
<author initials='R.' surname='Fielding' fullname='R. Fielding' role='editor'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke' role='editor'><organization /></author>
<date year='2014' month='June' />
<abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the &quot;http&quot; and &quot;https&quot; Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t></abstract>
</front>
<seriesInfo name='RFC' value='7230'/>
<seriesInfo name='DOI' value='10.17487/RFC7230'/>
</reference>



<reference  anchor='RFC7540' target='http://www.rfc-editor.org/info/rfc7540'>
<front>
<title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title>
<author initials='M.' surname='Belshe' fullname='M. Belshe'><organization /></author>
<author initials='R.' surname='Peon' fullname='R. Peon'><organization /></author>
<author initials='M.' surname='Thomson' fullname='M. Thomson' role='editor'><organization /></author>
<date year='2015' month='May' />
<abstract><t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2).  HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection.  It also introduces unsolicited push of representations from servers to clients.</t><t>This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax.  HTTP's existing semantics remain unchanged.</t></abstract>
</front>
<seriesInfo name='RFC' value='7540'/>
<seriesInfo name='DOI' value='10.17487/RFC7540'/>
</reference>



<reference  anchor='RFC7858' target='http://www.rfc-editor.org/info/rfc7858'>
<front>
<title>Specification for DNS over Transport Layer Security (TLS)</title>
<author initials='Z.' surname='Hu' fullname='Z. Hu'><organization /></author>
<author initials='L.' surname='Zhu' fullname='L. Zhu'><organization /></author>
<author initials='J.' surname='Heidemann' fullname='J. Heidemann'><organization /></author>
<author initials='A.' surname='Mankin' fullname='A. Mankin'><organization /></author>
<author initials='D.' surname='Wessels' fullname='D. Wessels'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2016' month='May' />
<abstract><t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS.  Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626.  In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t><t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group.  It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t></abstract>
</front>
<seriesInfo name='RFC' value='7858'/>
<seriesInfo name='DOI' value='10.17487/RFC7858'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='I-D.ietf-dnsop-dns-wireformat-http'>
<front>
<title>DNS wire-format over HTTP</title>

<author initials='L' surname='Song' fullname='Linjian Song'>
    <organization />
</author>

<author initials='P' surname='Vixie' fullname='Paul Vixie'>
    <organization />
</author>

<author initials='S' surname='Kerr' fullname='Shane Kerr'>
    <organization />
</author>

<author initials='R' surname='Wan' fullname='Runxia Wan'>
    <organization />
</author>

<date month='March' day='28' year='2017' />

<abstract><t>This memo introduces a way to tunnel DNS data over HTTP.  This may be useful in any situation where DNS is not working properly, such as when there is middlebox misbehavior.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-dnsop-dns-wireformat-http-01' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-dnsop-dns-wireformat-http-01.txt' />
</reference>



<reference  anchor='RFC6147' target='http://www.rfc-editor.org/info/rfc6147'>
<front>
<title>DNS64: DNS Extensions for Network Address Translation from IPv6 Clients to IPv4 Servers</title>
<author initials='M.' surname='Bagnulo' fullname='M. Bagnulo'><organization /></author>
<author initials='A.' surname='Sullivan' fullname='A. Sullivan'><organization /></author>
<author initials='P.' surname='Matthews' fullname='P. Matthews'><organization /></author>
<author initials='I.' surname='van Beijnum' fullname='I. van Beijnum'><organization /></author>
<date year='2011' month='April' />
<abstract><t>DNS64 is a mechanism for synthesizing AAAA records from A records. DNS64 is used with an IPv6/IPv4 translator to enable client-server communication between an IPv6-only client and an IPv4-only server, without requiring any changes to either the IPv6 or the IPv4 node, for the class of applications that work through NATs.  This document specifies DNS64, and provides suggestions on how it should be deployed in conjunction with IPv6/IPv4 translators.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6147'/>
<seriesInfo name='DOI' value='10.17487/RFC6147'/>
</reference>



<reference  anchor='RFC6891' target='http://www.rfc-editor.org/info/rfc6891'>
<front>
<title>Extension Mechanisms for DNS (EDNS(0))</title>
<author initials='J.' surname='Damas' fullname='J. Damas'><organization /></author>
<author initials='M.' surname='Graff' fullname='M. Graff'><organization /></author>
<author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></author>
<date year='2013' month='April' />
<abstract><t>The Domain Name System's wire protocol includes a number of fixed fields whose range has been or soon will be exhausted and does not allow requestors to advertise their capabilities to responders.  This document describes backward-compatible mechanisms for allowing the protocol to grow.</t><t>This document updates the Extension Mechanisms for DNS (EDNS(0)) specification (and obsoletes RFC 2671) based on feedback from deployment experience in several implementations.  It also obsoletes RFC 2673 (&quot;Binary Labels in the Domain Name System&quot;) and adds considerations on the use of extended labels in the DNS.</t></abstract>
</front>
<seriesInfo name='STD' value='75'/>
<seriesInfo name='RFC' value='6891'/>
<seriesInfo name='DOI' value='10.17487/RFC6891'/>
</reference>


<reference anchor="CORS" target="https://www.w3.org/TR/cors/">
  <front>
    <title>Cross-Origin Resource Sharing</title>
    <author >
      <organization>W3C</organization>
    </author>
    <date year="2014"/>
  </front>
</reference>


    </references>


<section anchor="previous-work-on-dns-over-http-or-in-other-formats" title="Previous Work on DNS over HTTP or in Other Formats">

<t>The following is an incomplete list of earlier work that related to DNS over HTTP/1 or representing DNS
data in other formats.</t>

<t>The list includes links to the tools.ietf.org site (because these documents
are all expired) and web sites of software.</t>

<t><list style="symbols">
  <t>https://tools.ietf.org/html/draft-mohan-dns-query-xml</t>
  <t>https://tools.ietf.org/html/draft-daley-dnsxml</t>
  <t>https://tools.ietf.org/html/draft-dulaunoy-dnsop-passive-dns-cof</t>
  <t>https://tools.ietf.org/html/draft-bortzmeyer-dns-json</t>
  <t>https://www.nlnetlabs.nl/projects/dnssec-trigger/</t>
</list></t>

</section>


  </back>
</rfc>

