<?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.2.7 -->

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

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

<rfc ipr="trust200902" docName="draft-schwartz-httpbis-dns-alt-svc-00" category="std">

  <front>
    <title abbrev="Alt-Svc via DNS">Finding HTTP Alternative Services via the Domain Name Service</title>

    <author initials="B." surname="Schwartz" fullname="Ben Schwartz">
      <organization>Google</organization>
      <address>
        <email>bemasc@google.com</email>
      </address>
    </author>
    <author initials="M." surname="Bishop" fullname="Mike Bishop">
      <organization>Akamai Technologies</organization>
      <address>
        <email>mbishop@evequefou.be</email>
      </address>
    </author>

    <date />

    <area>General</area>
    <workgroup>HTTP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The HTTP Alternative Services (Alt-Svc) mechanism allows an
HTTP origin to be served from multiple network endpoints, and over
multiple protocols.  However, the client must first contact the
origin server, in order to learn of the alternative services.  This
draft proposes a straightforward mapping of Alt-Svc into
DNS, allowing clients to learn of these services before their first
contact with the origin.  This arrangement offers potential benefits to
both performance and privacy.</t>



    </abstract>


  </front>

  <middle>


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

<t>The HTTP Alternative Services standard <xref target="AltSvc"/> defines</t>

<t><list style="symbols">
  <t>an extensible data model for describing alternative network endpoints
that are authoritative for an origin</t>
  <t>the “Alt-Svc Field Value”, a text format for representing this
information</t>
  <t>standards for sending information in this format from a server to a
client over HTTP/1.1 and HTTP/2.</t>
</list></t>

<t>Together, these components provide a toolkit that has proven useful and
effective for informing a client of alternative services for an origin.
However, making use of an alternative service requires contacting the
origin server first.  This creates an obvious performance cost: users
wait for a full HTTP connection initiation (multiple roundtrips) before
learning of an alternative service that is preferred by the origin.  The
first connection also publicly reveals the user’s intended destination
to all entities along the network path.</t>

<t>This draft proposes a straightforward mechanism to distribute the
Alt-Svc Field Value, in its standard text format, through
the DNS.  If a client receives this information during DNS resolution,
it can skip the initial connection and proceed directly to an
alternative service.</t>

<section anchor="terminology" title="Terminology">
<t>For consistency with <xref target="AltSvc"/>, we adopt the following definitions
* An “origin” is an information source as in <xref target="RFC6454"/>.
* The “origin server” is the server that the client would reach when
  accessing the origin in the absence of Alt-Svc.
* An “alternative service” is a different server that can serve the
  origin.</t>

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”,
“MAY”, and “OPTIONAL” in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
</section>
<section anchor="the-altsvc-record-type" title="The ALTSVC record type">

<t>The ALTSVC DNS resource record (RR) type (RRTYPE ???) is used to
associate an Alternative Service Field Value with an origin.
Abstractly, the origin consists of a scheme (typically “https”), a host
name, and a port (typically “443”).</t>

<t>In the case of the ALTSVC RR, the origin is represented by prefixing the
scheme and port with “_”, then concatenating them with the host,
resulting in a domain name like “_https._443.www.example.com.”.</t>

<t>The RDATA portion of an ALTSVC resource record contains an Alt-Svc
Field Value, exactly as defined in Section 4 of <xref target="AltSvc"/>.</t>

<t>For example, if the operator of https://www.example.com
intends to include an HTTP response header like</t>

<t>Alt-Svc: h2=”:8000”; ma=60</t>

<t>They would also publish an ALTSVC DNS record like</t>

<t>_https._443.www.example.com. 60S IN ALTSVC “h2=\“:8000\””</t>

<t>This data type can be represented as an Unknown RR as described in
<xref target="RFC3597"/>:</t>

<t>_https._443.www.example.com. 60S IN TYPE??? \# 10 68323D223A3830303022</t>

<t>This construction is intended to be extensible in two ways.  First,
any extensions that are made to the Alt-Svc format for transmission over
HTTPS are also applicable here, unless expressly mentioned otherwise.
Second, including the scheme in the DNS name allows for ALTSVC to serve
schemes other than HTTPS, such as HTTP with Opportunistic Security
<xref target="RFC8164"/>) and any future schemes for which Alt-Svc may be defined.</t>

<section anchor="comparison-with-alternatives" title="Comparison with alternatives">

<t>The ALTSVC record type closely resembles some existing record types.</t>

<section anchor="differences-from-the-srv-rrtype" title="Differences from the SRV RRTYPE">

<t>An SRV record can perform a similar function to the ALTSVC record,
informing a client to look in a different location for a service.
However, there are several differences:</t>

<t><list style="symbols">
  <t>SRV records are typically mandatory, whereas clients will always
continue to function correctly without making use of Alt-Svc.</t>
  <t>SRV records cannot instruct the client to switch or upgrade
protocols, whereas Alt-Svc can signal such an upgrade (e.g. to
HTTP/2).</t>
  <t>SRV records are not extensible, whereas Alt-Svc can be extended with
new parameters.  For example, this is what allows the privacy
improvements related to SNI selection in <xref target="AltSvcSNI"/>.</t>
  <t>Using SRV records would not allow a client to skip processing of the
Alt-Svc information in a subsequent connection, so it does not confer
a performance advantage.</t>
</list></t>

</section>
<section anchor="differences-from-the-txt-rrtype" title="Differences from the TXT RRTYPE">

<t>The ALTSVC record uses an identical format to a TXT record, and could
be implemented as such.  However, we define a new record type for
clarity, and to respect the use of TXT for human-readable notes as
recommended in <xref target="RFC5507"/>.</t>

</section>
</section>
</section>
<section anchor="differences-from-alt-svc-as-transmitted-over-http" title="Differences from Alt-Svc as transmitted over HTTP">

<t>Publishing an ALTSVC record in DNS is intended to be equivalent to
transmitting this field value over HTTP, and receiving an ALTSVC record
is intended to be equivalent to receiving this field value over HTTP.
However, there are some small differences in the intended client and
server behavior.</t>

<section anchor="omitting-max-age" title="Omitting Max Age">

<t>When publishing an ALTSVC record in DNS, server operators MUST omit the
“ma” parameter, which encodes the “max age” (i.e. expiration time) of
an Alt-Svc Field Value.  Instead, server operators SHOULD encode the
expiration time in the DNS TTL, and MUST NOT set a TTL longer than the
intended “max age”.</t>

<t>Server operators MAY publish multiple ALTSVC records as an RRSET, with
semantics equivalent to other mechanisms of providing multiple Alt-Svc
values to the client.  When publishing an RRSET with multiple ALTSVC
records, the server operator MUST set the overall TTL to the minimum
of the “max age” values (following Section 5.2 of <xref target="RFC2181"/>).</t>

<t>When receiving an ALTSVC record, clients MAY synthesize a new “ma”
parameter from the DNS
TTL, in order to interoperate with Alt-Svc processing subsystems.</t>

</section>
<section anchor="interaction-with-other-standards" title="Interaction with other standards">

<t>The purpose of this standard is to reduce connection latency and
improve user privacy.  Server operators implementing this standard
SHOULD also implement TLS 1.3 <xref target="I-D.ietf-tls-tls13"/> and OCSP Stapling
<xref target="RFC6066"/>, both of which confer substantial performance and privacy
benefits when used in combination with ALTSVC records.</t>

<t>To realize the greatest privacy benefits, this proposal is intended for
use with a privacy-preserving DNS transport (like DNS over TLS
<xref target="RFC7858"/> or DNS over HTTPS <xref target="DOH"/>),
and with the “SNI” Alt-Svc Parameter
<xref target="AltSvcSNI"/>.  However, performance
improvements, and some modest privacy improvements, are possible without
the use of those standards.</t>

</section>
<section anchor="granularity-and-lifetime-control" title="Granularity and lifetime control">

<t>Sending Alt-Svc over HTTP allows the server to tailor the Alt-Svc
Field Value specifically to the client.  When using an ALTSVC DNS
record, groups of clients will necessarily receive the same Alt-Svc
Field Value.  Therefore, this standard is not suitable for servers that
require single-client granularity in Alt-Svc.  Server operators that
want to serve different Alt-Svc Field Values to different geographic
or network regions SHOULD configure their authoritative DNS server to
respect the EDNS0 Client Subnet extension <xref target="RFC7871"/>.</t>

<t>Some DNS caching systems incorrectly extend the lifetime of DNS
records beyond the stated TTL.  Server operators MUST NOT rely on
ALTSVC records expiring on time, and MAY shorten the TTL to compensate.</t>

</section>
</section>
<section anchor="client-behaviors" title="Client behaviors">

<section anchor="cache-interaction" title="Cache interaction">

<t>If the client has an Alt-Svc cache, and a usable Alt-Svc value is
present in that cache, then the client SHOULD NOT issue an ALTSVC DNS
query.  Instead, the client SHOULD proceed with alternative service
connection as usual.</t>

<t>If the client has a cached Alt-Svc entry that is expiring, the
client MAY perform an ALTSVC query to refresh the entry.</t>

</section>
<section anchor="optimizing-for-performance" title="Optimizing for performance">

<t>Clients that are optimizing for performance (i.e. minimum connection
setup time) SHOULD implement the following connection sequence:</t>

<t><list style="numbers">
  <t>Issue address (AAAA and/or A) queries, immediately followed by the
ALTSVC query.</t>
  <t>If an ALTSVC response is received first, proceed with alternative
service connection and ignore the address responses if they are no
longer relevant.</t>
  <t>Otherwise, initiate connection to the origin server.</t>
  <t>As soon as an Alt-Svc field value is received, through the DNS or
over HTTP, proceed with alternative service connection.  Do not
abort this connection if an Alt-Svc field value is received from the
other source later.</t>
</list></t>

<t>If the ALTSVC and address queries return approximately simultaneously,
this process typically saves three roundtrips on a fresh connection
that uses Alt-Svc: one each for TCP, TLS 1.3, and HTTP.  (On subsequent
connections, the Alt-Svc information is expected to be cached, so this
procedure does not apply.)</t>

<t>If a client can cache Alt-Svc entries that were received over both HTTP
and DNS, the client MAY prefer entries that were received over HTTP.
These records may be more narrowly targeted for the specific client.</t>

<t>As an additional optimization, when choosing among multiple Alt-Svc
values, clients MAY prefer those that will not require an address
query, either because the corresponding address record is
already in cache or because the host is an IP address.</t>

<t>Note that this procedure does not rely on recursive resolvers handling
the ALTSVC record type correctly.  If ALTSVC queries receive spurious
NXDOMAIN responses, or even no response at all, connections will proceed
as usual without any delay.</t>

</section>
<section anchor="optimizing-for-privacy" title="Optimizing for privacy">

<t>Clients that are optimizing for privacy SHOULD implement <xref target="AltSvcSNI"/>
and DNS over a secure transport (e.g. <xref target="RFC7858"/> or <xref target="DOH"/>).
Use of a secure transport is important not only for privacy protection,
but also to ensure that queries for the new ALTSVC RRTYPE are handled
correctly.  Additionally, these clients SHOULD implement the following
connection sequence:</t>

<t><list style="numbers">
  <t>Issue the ALTSVC DNS query first, immediately followed by the
address queries.</t>
  <t>Wait for the ALTSVC record response.</t>
  <t>If the response is nonempty, proceed with alternative service
connection and ignore the address query responses.</t>
  <t>Otherwise, wait for the address queries and connect as usual.</t>
</list></t>

<t>Note that this process is also expected to be faster than Alt-Svc over
HTTP in the case of HTTP Opportunistic Upgrade Probing (Section 2 of
<xref target="RFC8164"/>).</t>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>Alt-Svc Field Values are intended for distribution over untrusted
channels, and clients are REQUIRED to verify that the alternative
service is authoritative for the origin (Section 2.1 of <xref target="AltSvc"/>).
Therefore, DNSSEC signing and validation are OPTIONAL for publishing
and using ALTSVC records.</t>

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

<t>This draft requires assignment of a new DNS RRTYPE value.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="AltSvc" target='https://www.rfc-editor.org/info/rfc7838'>
<front>
<title>HTTP Alternative Services</title>
<author initials='M.' surname='Nottingham' fullname='M. Nottingham'><organization /></author>
<author initials='P.' surname='McManus' fullname='P. McManus'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke'><organization /></author>
<date year='2016' month='April' />
<abstract><t>This document specifies &quot;Alternative Services&quot; for HTTP, which allow an origin's resources to be authoritatively available at a separate network location, possibly accessed with a different protocol configuration.</t></abstract>
</front>
<seriesInfo name='RFC' value='7838'/>
<seriesInfo name='DOI' value='10.17487/RFC7838'/>
</reference>



<reference  anchor="RFC6454" target='https://www.rfc-editor.org/info/rfc6454'>
<front>
<title>The Web Origin Concept</title>
<author initials='A.' surname='Barth' fullname='A. Barth'><organization /></author>
<date year='2011' month='December' />
<abstract><t>This document defines the concept of an &quot;origin&quot;, which is often used as the scope of authority or privilege by user agents.  Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites.  In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string.  It also defines an HTTP header field, named &quot;Origin&quot;, that indicates which origins are associated with an HTTP request.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6454'/>
<seriesInfo name='DOI' value='10.17487/RFC6454'/>
</reference>



<reference  anchor="RFC2119" target='https://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="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference  anchor="RFC3597" target='https://www.rfc-editor.org/info/rfc3597'>
<front>
<title>Handling of Unknown DNS Resource Record (RR) Types</title>
<author initials='A.' surname='Gustafsson' fullname='A. Gustafsson'><organization /></author>
<date year='2003' month='September' />
<abstract><t>Extending the Domain Name System (DNS) with new Resource Record (RR) types currently requires changes to name server software.  This document specifies the changes necessary to allow future DNS implementations to handle new RR types transparently.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3597'/>
<seriesInfo name='DOI' value='10.17487/RFC3597'/>
</reference>



<reference anchor="AltSvcSNI">
<front>
<title>The "SNI" Alt-Svc Parameter</title>

<author initials='M' surname='Bishop' fullname='Mike Bishop'>
    <organization />
</author>

<date month='January' day='9' year='2018' />

<abstract><t>HTTP Alternative Services provides a mechanism for an origin to declare that its content is accessible via some other combination of host, port, and protocol.  In the process of using such an alternative, an observer can identify that the client is requesting resources from a particular hostname.  This document extends HTTP Alternative Services, in combination with Secondary Certificate Authentication, to enable clients not to disclose the origin to which they intend to connect.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-bishop-httpbis-sni-altsvc-01' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-bishop-httpbis-sni-altsvc-01.txt' />
</reference>



<reference  anchor="RFC2181" target='https://www.rfc-editor.org/info/rfc2181'>
<front>
<title>Clarifications to the DNS Specification</title>
<author initials='R.' surname='Elz' fullname='R. Elz'><organization /></author>
<author initials='R.' surname='Bush' fullname='R. Bush'><organization /></author>
<date year='1997' month='July' />
<abstract><t>This document considers some areas that have been identified as problems with the specification of the Domain Name System, and proposes remedies for the defects identified. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2181'/>
<seriesInfo name='DOI' value='10.17487/RFC2181'/>
</reference>



<reference anchor="I-D.ietf-tls-tls13">
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<date month='January' day='5' year='2018' />

<abstract><t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-tls13-23' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-tls13-23.txt' />
</reference>



<reference  anchor="RFC6066" target='https://www.rfc-editor.org/info/rfc6066'>
<front>
<title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
<author initials='D.' surname='Eastlake 3rd' fullname='D. Eastlake 3rd'><organization /></author>
<date year='2011' month='January' />
<abstract><t>This document provides specifications for existing TLS extensions.  It is a companion document for RFC 5246, &quot;The Transport Layer Security (TLS) Protocol Version 1.2&quot;.  The extensions specified are server_name, max_fragment_length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_request.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6066'/>
<seriesInfo name='DOI' value='10.17487/RFC6066'/>
</reference>



<reference  anchor="RFC7858" target='https://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>



<reference anchor="DOH">
<front>
<title>DNS Queries over HTTPS</title>

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

<author initials='P' surname='McManus' fullname='Patrick McManus'>
    <organization />
</author>

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

<abstract><t>DNS queries sometimes experience problems with end to end connectivity at times and places where HTTPS flows freely.  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.  This document describes how to run DNS service over HTTP using https:// URIs.  [[ There is a repository for this draft at https://github.com/dohwg/ draft-ietf-doh-dns-over-https ]].</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-doh-dns-over-https-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-doh-dns-over-https-02.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC8164" target='https://www.rfc-editor.org/info/rfc8164'>
<front>
<title>Opportunistic Security for HTTP/2</title>
<author initials='M.' surname='Nottingham' fullname='M. Nottingham'><organization /></author>
<author initials='M.' surname='Thomson' fullname='M. Thomson'><organization /></author>
<date year='2017' month='May' />
<abstract><t>This document describes how &quot;http&quot; URIs can be accessed using Transport Layer Security (TLS) and HTTP/2 to mitigate pervasive monitoring attacks.  This mechanism not a replacement for &quot;https&quot; URIs; it is vulnerable to active attacks.</t></abstract>
</front>
<seriesInfo name='RFC' value='8164'/>
<seriesInfo name='DOI' value='10.17487/RFC8164'/>
</reference>



<reference  anchor="RFC5507" target='https://www.rfc-editor.org/info/rfc5507'>
<front>
<title>Design Choices When Expanding the DNS</title>
<author><organization>IAB</organization></author>
<author initials='P.' surname='Faltstrom' fullname='P. Faltstrom' role='editor'><organization /></author>
<author initials='R.' surname='Austein' fullname='R. Austein' role='editor'><organization /></author>
<author initials='P.' surname='Koch' fullname='P. Koch' role='editor'><organization /></author>
<date year='2009' month='April' />
<abstract><t>This note discusses how to extend the DNS with new data for a new application.  DNS extension discussions too often focus on reuse of the TXT Resource Record Type.  This document lists different mechanisms to extend the DNS, and concludes that the use of a new DNS Resource Record Type is the best solution.  This memo provides information  for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='5507'/>
<seriesInfo name='DOI' value='10.17487/RFC5507'/>
</reference>



<reference  anchor="RFC7871" target='https://www.rfc-editor.org/info/rfc7871'>
<front>
<title>Client Subnet in DNS Queries</title>
<author initials='C.' surname='Contavalli' fullname='C. Contavalli'><organization /></author>
<author initials='W.' surname='van der Gaast' fullname='W. van der Gaast'><organization /></author>
<author initials='D.' surname='Lawrence' fullname='D. Lawrence'><organization /></author>
<author initials='W.' surname='Kumari' fullname='W. Kumari'><organization /></author>
<date year='2016' month='May' />
<abstract><t>This document describes an Extension Mechanisms for DNS (EDNS0) option that is in active use to carry information about the network that originated a DNS query and the network for which the subsequent response can be cached.  Since it has some known operational and privacy shortcomings, a revision will be worked through the IETF for improvement.</t></abstract>
</front>
<seriesInfo name='RFC' value='7871'/>
<seriesInfo name='DOI' value='10.17487/RFC7871'/>
</reference>




    </references>




  </back>

<!-- ##markdown-source:
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

-->

</rfc>

