<?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-01" 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</t>

<t><list style="symbols">
  <t>An “origin” is an information source as in <xref target="RFC6454"/>.</t>
  <t>The “origin server” is the server that the client would reach when
accessing the origin in the absence of Alt-Svc.</t>
  <t>An “alternative service” is a different server that can serve the
origin.</t>
</list></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>

