<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-v6ops-prefer8781-07" number="9872" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" updates="" obsoletes="" xml:lang="en" prepTime="2025-09-30T20:23:51" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-v6ops-prefer8781-07" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9872" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="NAT64 Prefix Discovery">Recommendations for Discovering IPv6 Prefix Used for IPv6 Address Synthesis</title>
    <seriesInfo name="RFC" value="9872" stream="IETF"/>
    <author fullname="Nick Buraglio">
      <organization showOnFrontPage="true">Energy Sciences Network</organization>
      <address>
        <email>buraglio@forwardingplane.net</email>
      </address>
    </author>
    <author fullname="Tommy Jensen">
      <organization showOnFrontPage="true"/>
      <address>
        <email>tojens.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Jen Linkova">
      <organization showOnFrontPage="true">Google</organization>
      <address>
        <email>furry13@gmail.com</email>
      </address>
    </author>
    <date month="09" year="2025"/>
    <area>OPS</area>
    <workgroup>v6ops</workgroup>
    <keyword>IPv6</keyword>
    <keyword>DNS64</keyword>
    <keyword>PREF64</keyword>
    <keyword>NAT64</keyword>
    <keyword>CLAT</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">On networks providing IPv4-IPv6 translation (RFC 7915), hosts and other endpoints need to know the IPv6 prefix(es) used for translation (the NAT64 prefix (RFC 6052)). This document provides guidelines for NAT64 prefix discovery, specifically recommending obtaining the NAT64 prefix from the Router Advertisement option (RFC 8781) when available.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9872" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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 Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-recommendations-for-pref64-">Recommendations for PREF64 Discovery</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deployment-recommendations-">Deployment Recommendations for Endpoints</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deployment-recommendations-f">Deployment Recommendations for Operators</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.2.2">
                  <li pn="section-toc.1-1.3.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mobile-network-consideratio">Mobile Network Considerations</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-migration-considerations">Migration Considerations</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-existing-issues-with-rfc-70">Existing Issues with RFC 7050</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dependency-on-network-provi">Dependency on Network-Provided Recursive Resolvers</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-network-stack-initializatio">Network Stack Initialization Delay</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-latency-in-updates-propagat">Latency in Updates Propagation</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multihoming-implications">Multihoming Implications</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.5">
                <t indent="0" pn="section-toc.1-1.4.2.5.1"><xref derivedContent="4.5" format="counter" sectionFormat="of" target="section-4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-implications">Security Implications</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.5.2">
                  <li pn="section-toc.1-1.4.2.5.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.5.2.1.1"><xref derivedContent="4.5.1" format="counter" sectionFormat="of" target="section-4.5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-definition-of-secure-channe">Definition of Secure Channel</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.5.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.5.2.2.1"><xref derivedContent="4.5.2" format="counter" sectionFormat="of" target="section-4.5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-secure-channel-example-of-i">Secure Channel Example of IPsec</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.5.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.5.2.3.1"><xref derivedContent="4.5.3" format="counter" sectionFormat="of" target="section-4.5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-secure-channel-example-of-l">Secure Channel Example of Link Layer Encryption</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Devices translating between IPv4 and IPv6 packet headers <xref target="RFC7915" format="default" sectionFormat="of" derivedContent="RFC7915"/> use a NAT64 prefix to map IPv4 addresses into the IPv6 address space, and vice versa.
When a network provides NAT64, it is advantageous for endpoints to acquire the network's NAT64 prefixes (PREF64).
Discovering the PREF64 enables endpoints to:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-2">
        <li pn="section-1-2.1">
          <t indent="0" pn="section-1-2.1.1">Implement the customer-side translator (CLAT) function of the 464XLAT architecture <xref target="RFC6877" format="default" sectionFormat="of" derivedContent="RFC6877"/>.</t>
        </li>
        <li pn="section-1-2.2">
          <t indent="0" pn="section-1-2.2.1">Translate IPv4 literals to IPv6 literals (<xref target="RFC8305" section="7.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8305#section-7.1" derivedContent="RFC8305"/>).</t>
        </li>
        <li pn="section-1-2.3">
          <t indent="0" pn="section-1-2.3.1">Perform local DNS64 <xref target="RFC6147" format="default" sectionFormat="of" derivedContent="RFC6147"/> functions.</t>
        </li>
        <li pn="section-1-2.4">
          <t indent="0" pn="section-1-2.4.1">Support applications relying on IPv4 address referral (<xref target="RFC7225" section="3.2.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7225#section-3.2.2" derivedContent="RFC7225"/>).</t>
        </li>
      </ul>
      <t indent="0" pn="section-1-3">Dynamic PREF64 discovery is useful to keep the NAT64 prefix configuration up-to-date, particularly for unmanaged endpoints or endpoints that move between networks.
<xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> introduces the first DNS64-based mechanism for PREF64 discovery per the analysis described in <xref target="RFC7051" format="default" sectionFormat="of" derivedContent="RFC7051"/>.
However, subsequent methods have been developed to address the limitations of the mechanism described in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/>.</t>
      <t indent="0" pn="section-1-4">For instance, <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> defines a Neighbor Discovery <xref target="RFC4861" format="default" sectionFormat="of" derivedContent="RFC4861"/> option for Router Advertisements (RAs) to convey PREF64 information to hosts.
      This approach offers several advantages (<xref target="RFC8781" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8781#section-3" derivedContent="RFC8781"/>), including fate sharing with other host network configuration parameters.</t>
      <t indent="0" pn="section-1-5">Due to fundamental shortcomings of the mechanism defined in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> (see <xref target="issues" format="default" sectionFormat="of" derivedContent="Section 4"/> for more details), <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> describes the preferred solution for new deployments.
Implementations should strive for consistent PREF64 acquisition methods.
The DNS64-based mechanism of <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> should be employed only when RA-based PREF64 delivery is unavailable or as a fallback for legacy systems incapable of processing the PREF64 RA Option.</t>
    </section>
    <section anchor="terminology" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <dl spacing="normal" newline="false" indent="3" pn="section-2-1">
        <dt pn="section-2-1.1">DNS64:</dt>
        <dd pn="section-2-1.2">A mechanism for synthesizing AAAA records from A records,
  defined in <xref target="RFC6147" format="default" sectionFormat="of" derivedContent="RFC6147"/>.</dd>
        <dt pn="section-2-1.3">NAT64:</dt>
        <dd pn="section-2-1.4">A mechanism for translating IPv6 packets to IPv4 packets,
  and vice versa.  The translation is done by translating the packet headers
  according to the IP/ICMP Translation Algorithm defined in <xref target="RFC7915" format="default" sectionFormat="of" derivedContent="RFC7915"/>. NAT64 translators can operate in stateful mode <xref target="RFC6144" format="default" sectionFormat="of" derivedContent="RFC6144"/> or stateless mode <xref target="RFC6877" format="default" sectionFormat="of" derivedContent="RFC6877"/> (e.g., customer-side translator (CLAT)).
  This document uses "NAT64" as a generalized term
  for a translator, which uses the stateless IP/ICMP Translation Algorithm
  defined in <xref target="RFC7915" format="default" sectionFormat="of" derivedContent="RFC7915"/> and operates within a framework for
  IPv4/IPv6 translation described in <xref target="RFC6144" format="default" sectionFormat="of" derivedContent="RFC6144"/>.</dd>
        <dt pn="section-2-1.5">PREF64:</dt>
        <dd pn="section-2-1.6">Pref64::/n or NAT64 prefix. An IPv6 prefix used for
  IPv6 address synthesis <xref target="RFC6146" format="default" sectionFormat="of" derivedContent="RFC6146"/>.</dd>
        <dt pn="section-2-1.7">RA:</dt>
        <dd pn="section-2-1.8">Router Advertisement. A packet used by Neighbor Discovery
  <xref target="RFC4861" format="default" sectionFormat="of" derivedContent="RFC4861"/> and SLAAC to advertise the presence of the routers,
  together with other IPv6 configuration information.</dd>
        <dt pn="section-2-1.9">SLAAC:</dt>
        <dd pn="section-2-1.10">Stateless Address Autoconfiguration <xref target="RFC4862" format="default" sectionFormat="of" derivedContent="RFC4862"/>.</dd>
      </dl>
      <t indent="0" pn="section-2-2">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/>
        <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals,
    as shown here. 
</t>
    </section>
    <section anchor="recommendations-for-pref64-discovery" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-recommendations-for-pref64-">Recommendations for PREF64 Discovery</name>
      <section anchor="deployment-recommendations-for-endpoints" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-deployment-recommendations-">Deployment Recommendations for Endpoints</name>
        <t indent="0" pn="section-3.1-1">Endpoints <bcp14>SHOULD</bcp14> attempt to obtain PREF64 information from RAs per <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/>, instead of using the method described in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/>.
In the absence of the PREF64 information in RAs, an endpoint <bcp14>MAY</bcp14> choose to fall back to the mechanism defined in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/>.
This recommendation to prefer the mechanism defined in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> over the one defined in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> is consistent with <xref target="RFC8781" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8781#section-5.1" derivedContent="RFC8781"/>.</t>
      </section>
      <section anchor="deployment-recommendations-for-operators" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-deployment-recommendations-f">Deployment Recommendations for Operators</name>
        <t indent="0" pn="section-3.2-1">Network operators deploying NAT64 <bcp14>SHOULD</bcp14> provide PREF64 information in Router Advertisements per <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/>.</t>
        <section anchor="mobile-network-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.1">
          <name slugifiedName="name-mobile-network-consideratio">Mobile Network Considerations</name>
          <t indent="0" pn="section-3.2.1-1">While support for the option specified in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> is widely integrated into modern operating systems on mobile endpoints, equipment deployed in mobile network environments often lacks abilities to include the PREF64 Option into RAs.
Therefore, the immediate deployment and enablement of PREF64 by mobile operators may not currently be feasible and the recommendations outlined in this document are not presently applicable to mobile network operators.
These environments are encouraged to incorporate the option specified in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> when made practical by infrastructure upgrades or software stack feature additions.</t>
        </section>
        <section anchor="migration-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.2">
          <name slugifiedName="name-migration-considerations">Migration Considerations</name>
          <t indent="0" pn="section-3.2.2-1">Transitioning from the heuristic procedure in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> to using the approach in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> might require a period of time where both mechanisms coexist.
How long this may take depends on the endpoint footprint, particularly the presence and number of endpoints running outdated operating systems that do not support the option in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/>.
Operators are advised to take those factors into account prior to removing support for the heuristic procedure in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/>, noting that it is still safe to add support for the approach in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> since endpoints that support it will always prefer it over <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> if they follow RFC requirements.</t>
          <t indent="0" pn="section-3.2.2-2">Migrating away from DNS64-based discovery also reduces dependency on DNS64 in general, thereby eliminating DNSSEC and DNS64 incompatibility concerns (<xref target="RFC6147" section="6.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc6147#section-6.2" derivedContent="RFC6147"/>).</t>
        </section>
      </section>
    </section>
    <section anchor="issues" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-existing-issues-with-rfc-70">Existing Issues with RFC 7050</name>
      <t indent="0" pn="section-4-1">DNS-based discovery of the NAT64 prefix introduces some challenges, which make this approach less preferable than the latest developed alternatives (such as the PREF64 RA Option <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/>).
This section outlines the key issues associated with <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> with a focus on those not discussed in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> or in the analysis of solutions for hosts to discover the NAT64 prefix <xref target="RFC7051" format="default" sectionFormat="of" derivedContent="RFC7051"/>.</t>
      <t indent="0" pn="section-4-2">Signalling PREF64 in the RA Option addresses all issues outlined in this section (see <xref target="RFC8781" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8781#section-3" derivedContent="RFC8781"/> for details).</t>
      <section anchor="dependency-on-network-provided-recursive-resolvers" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-dependency-on-network-provi">Dependency on Network-Provided Recursive Resolvers</name>
        <t indent="0" pn="section-4.1-1">The presence or absence of NAT64 functionality, as well as its
associated prefix (if present), are network-dependent attributes.
Therefore, <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> requires the endpoint discovering the prefix to use the DNS64 resolvers provided by the network.
If the device or an application is configured to use other recursive resolvers or runs a local recursive resolver, the corresponding name resolution APIs and libraries are required to recognize 'ipv4only.arpa.' as a special name and give it special treatment.
This issue and remediation approach are discussed in <xref target="RFC8880" format="default" sectionFormat="of" derivedContent="RFC8880"/>.
However, it has been observed that very few implementations of the method described in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> support the requirements specified in <xref target="RFC8880" format="default" sectionFormat="of" derivedContent="RFC8880"/> for special treatment of 'ipv4only.arpa.'.
	As a result, configuring such systems and applications to use resolvers other than the one provided by the network breaks the PREF64 discovery, leading to degraded user experience.</t>
        <t indent="0" pn="section-4.1-2">VPN applications may override the endpoint's DNS configuration, for example, by configuring enterprise DNS servers as the node's recursive resolvers and forcing all name resolution through the VPN.
These enterprise DNS servers typically lack DNS64 functionality and therefore cannot provide information about the PREF64 used within the local network.
	If the VPN is configured in so-called "split tunneling" mode (when only a subset of network traffic is routed into the VPN tunnel), endpoints may not discover the necessary PREF64, which negatively impacts their connectivity on IPv6-only networks.</t>
        <t indent="0" pn="section-4.1-3">If both the network-provided DNS64 and the endpoint's resolver happen to utilize the Well-Known Prefix (64:ff9b::/96) <xref target="RFC6052" format="default" sectionFormat="of" derivedContent="RFC6052"/>, the endpoint would end up using a PREF64 that's valid for the current network.
However, if the endpoint changes its network attachment, it can't detect if the new network lacks NAT64 entirely or uses a network-specific prefix (NSP) <xref target="RFC6144" format="default" sectionFormat="of" derivedContent="RFC6144"/> for NAT64.</t>
        <t indent="0" pn="section-4.1-4">Signalling PREF64 in an RA Option decouples the PREF64 discovery from the host's DNS resolver configuration.</t>
      </section>
      <section anchor="network-stack-initialization-delay" numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-network-stack-initializatio">Network Stack Initialization Delay</name>
        <t indent="0" pn="section-4.2-1">When using SLAAC, an IPv6 host typically requires a single RA to acquire its network configuration.
For IPv6-only endpoints, timely PREF64 discovery is critical, particularly for those performing local DNS64 or NAT64 functions, such as CLAT <xref target="RFC6877" format="default" sectionFormat="of" derivedContent="RFC6877"/>.
Until a PREF64 is obtained, the endpoint's IPv4-only applications and communication to IPv4-only destinations are impaired.
The mechanism defined in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> does not bundle PREF64 information with other network configuration parameters and requires at least one round-trip time (to send a DNS request and receive a response) after the network stack configuration is completed.</t>
        <t indent="0" pn="section-4.2-2">On the other hand, advertising PREF64 in an RA eliminates the period when the host obtains IPv6 addresses and default routers but no PREF64.</t>
      </section>
      <section anchor="latency-in-updates-propagation" numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-latency-in-updates-propagat">Latency in Updates Propagation</name>
        <t indent="0" pn="section-4.3-1"><xref target="RFC7050" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7050#section-3" derivedContent="RFC7050"/> states:</t>
        <blockquote pn="section-4.3-2">The node <bcp14>SHALL</bcp14> cache the replies it receives during the Pref64::/n discovery procedure, and it <bcp14>SHOULD</bcp14> repeat the discovery process ten seconds before the TTL of the Well-Known Name's synthetic AAAA resource record expires.</blockquote>
        <t indent="0" pn="section-4.3-3">As a result, once a PREF64 is discovered, it will be used until the TTL expires or until the node disconnects from the network.
There is no mechanism for an operator to force the PREF64 rediscovery on the node without disconnecting the node from the network.
If the operator needs to change the PREF64 value used in the network, they need to proactively reduce the TTL value returned by the DNS64 server.
This method has two significant drawbacks:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.3-4">
          <li pn="section-4.3-4.1">
            <t indent="0" pn="section-4.3-4.1.1">Many networks utilize external DNS64 servers and therefore have no control over the TTL value if the PREF64 needs to be changed or withdrawn.</t>
          </li>
          <li pn="section-4.3-4.2">
            <t indent="0" pn="section-4.3-4.2.1">The PREF64 changes need to be planned and executed at least TTL seconds in advance. If the operator needs to notify nodes that a particular prefix must not be used (e.g., during a network outage or if the nodes learned a rogue PREF64 as a result of an attack), it might not be possible without interrupting the network connectivity for the affected nodes.</t>
          </li>
        </ul>
        <t indent="0" pn="section-4.3-5">The mechanism defined in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> allows notifying hosts about PREF64 changes immediately by sending an RA with updated information.</t>
      </section>
      <section anchor="multihoming-implications" numbered="true" removeInRFC="false" toc="include" pn="section-4.4">
        <name slugifiedName="name-multihoming-implications">Multihoming Implications</name>
        <t indent="0" pn="section-4.4-1"><xref target="RFC7050" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7050#section-3" derivedContent="RFC7050"/> requires a node to examine all received AAAA resource records to discover one or more PREF64s and to utilize all learned prefixes.
However, this approach presents challenges in some multihomed topologies where different DNS64 servers belonging to different ISPs might return different PREF64s.
In such cases, it is crucial that traffic destined for synthesized addresses is sent to the correct NAT64 and the source address selected for those flows belongs to the prefix from that ISP's address space.
In other words, the node needs to associate each discovered PREF64 with upstream information, including the IPv6 prefix and default gateway.
Currently, there is no reliable way for a node to map a DNS64 response (and the prefix learned from it) to a specific upstream in a multihoming scenario.
Consequently, the node might inadvertently select an incorrect source address for a given PREF64 and/or send traffic to the incorrect uplink.</t>
        <t indent="0" pn="section-4.4-2">Advertising PREF64 in RAs allows hosts to track which PREF64 was advertised by which router and use that information to select the correct next hop.
<xref section="8" target="I-D.ietf-v6ops-claton" format="default" sectionFormat="of" derivedLink="https://datatracker.ietf.org/doc/html/draft-ietf-v6ops-claton-08#section-8" derivedContent="CLAT"/> discusses this scenario in more details.</t>
      </section>
      <section anchor="security-implications" numbered="true" removeInRFC="false" toc="include" pn="section-4.5">
        <name slugifiedName="name-security-implications">Security Implications</name>
        <t indent="0" pn="section-4.5-1">As discussed in <xref target="RFC7050" section="7" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7050#section-7" derivedContent="RFC7050"/>, the DNS-based PREF64 discovery is prone to DNS spoofing attacks.
In addition to creating a wider attack surface for IPv6 deployments, <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> has other security challenges, which are discussed below.</t>
        <section anchor="secure-channel-def" numbered="true" removeInRFC="false" toc="include" pn="section-4.5.1">
          <name slugifiedName="name-definition-of-secure-channe">Definition of Secure Channel</name>
          <t indent="0" pn="section-4.5.1-1"><xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> requires a node's communication channel with a DNS64 server to be a "secure channel", which it defines to mean "a communication channel a node has between itself and a DNS64 server protecting DNS protocol-related messages from interception and tampering".
	  This need is redundant when another communication mechanism of IPv6-related configuration, specifically RAs, can already be defended against tampering, for example, by enabling RA-Guard <xref target="RFC6105" format="default" sectionFormat="of" derivedContent="RFC6105"/>.
When the mechanism defined in <xref target="RFC8781" format="default" sectionFormat="of" derivedContent="RFC8781"/> is used in place of the one defined in <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/>,
nodes only need to implement one defense mechanism; requiring nodes to implement two defense mechanisms creates an unnecessary risk.</t>
        </section>
        <section anchor="secure-channel-example-of-ipsec" numbered="true" removeInRFC="false" toc="include" pn="section-4.5.2">
          <name slugifiedName="name-secure-channel-example-of-i">Secure Channel Example of IPsec</name>
          <t indent="0" pn="section-4.5.2-1">One of the two examples that <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> defines to qualify a communication channel with a DNS64 server is the use of an "IPsec-based virtual private network (VPN) tunnel". As of the time of this writing, this is not supported as a practice by any common operating system DNS client. While they could, there have also since been multiple mechanisms defined for performing DNS-specific encryption, such as those defined in <xref target="RFC9499" format="default" sectionFormat="of" derivedContent="RFC9499"/>, that would be more appropriately scoped to the applicable DNS traffic. These are also compatible with encrypted DNS advertisement by the network using Discovery of Network-designated Resolvers <xref target="RFC9463" format="default" sectionFormat="of" derivedContent="RFC9463"/>, which would ensure the clients know in advance that the DNS64 server supported the encryption mechanism.</t>
        </section>
        <section anchor="secure-channel-example-of-link-layer-encryption" numbered="true" removeInRFC="false" toc="include" pn="section-4.5.3">
          <name slugifiedName="name-secure-channel-example-of-l">Secure Channel Example of Link Layer Encryption</name>
          <t indent="0" pn="section-4.5.3-1">The other example given by <xref target="RFC7050" format="default" sectionFormat="of" derivedContent="RFC7050"/> that would allow a communication channel with a DNS64 server to qualify as a "secure channel" is the use of a "link layer utilizing data encryption technologies". As of the time of this writing, most common link layer implementations use data encryption already with no extra effort needed on the part of network nodes. While this appears to be a trivial way to satisfy this requirement, it also renders the requirement meaningless since any node along the path can still read the higher-layer DNS traffic containing the translation prefix. This seems to be at odds with the definition of "secure channel", as explained in <xref section="2.2" sectionFormat="of" target="RFC7050" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7050#section-2.2" derivedContent="RFC7050"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">Obtaining PREF64 information using RAs improves the overall security of an IPv6-only endpoint as it mitigates all attack vectors related to a spoofed or rogue DNS response, as discussed in <xref target="RFC7050" section="7" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7050#section-7" derivedContent="RFC7050"/>.
Security considerations related to obtaining PREF64 information from RAs are discussed in <xref target="RFC8781" section="7" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8781#section-7" derivedContent="RFC8781"/>.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-v6ops-claton" to="CLAT"/>
    <references anchor="sec-combined-references" pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-7.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">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="RFC7050" target="https://www.rfc-editor.org/info/rfc7050" quoteTitle="true" derivedAnchor="RFC7050">
          <front>
            <title>Discovery of the IPv6 Prefix Used for IPv6 Address Synthesis</title>
            <author fullname="T. Savolainen" initials="T." surname="Savolainen"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <date month="November" year="2013"/>
            <abstract>
              <t indent="0">This document describes a method for detecting the presence of DNS64 and for learning the IPv6 prefix used for protocol translation on an access network. The method depends on the existence of a well-known IPv4-only fully qualified domain name "ipv4only.arpa.". The information learned enables nodes to perform local IPv6 address synthesis and to potentially avoid NAT64 on dual-stack and multi-interface deployments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7050"/>
          <seriesInfo name="DOI" value="10.17487/RFC7050"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">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="RFC8781" target="https://www.rfc-editor.org/info/rfc8781" quoteTitle="true" derivedAnchor="RFC8781">
          <front>
            <title>Discovering PREF64 in Router Advertisements</title>
            <author fullname="L. Colitti" initials="L." surname="Colitti"/>
            <author fullname="J. Linkova" initials="J." surname="Linkova"/>
            <date month="April" year="2020"/>
            <abstract>
              <t indent="0">This document specifies a Neighbor Discovery option to be used in Router Advertisements (RAs) to communicate prefixes of Network Address and Protocol Translation from IPv6 clients to IPv4 servers (NAT64) to hosts.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8781"/>
          <seriesInfo name="DOI" value="10.17487/RFC8781"/>
        </reference>
      </references>
      <references anchor="sec-informative-references" pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-v6ops-claton" target="https://datatracker.ietf.org/doc/html/draft-ietf-v6ops-claton-08" quoteTitle="true" derivedAnchor="CLAT">
          <front>
            <title>464XLAT Customer-side Translator (CLAT): Node Recommendations</title>
            <author fullname="Lorenzo Colitti" initials="L." surname="Colitti">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <author fullname="Jen Linkova" initials="J." surname="Linkova">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <author fullname="Tommy Jensen" initials="T." surname="Jensen"/>
            <date day="17" month="September" year="2025"/>
            <abstract>
              <t indent="0">464XLAT [RFC6877] defines an architecture for providing IPv4 connectivity across an IPv6-only network. The solution contains two key elements: provider-side translator (PLAT) and customer-side translator (CLAT). This document complements [RFC6877] and updates Requirements for IPv6 Customer Edge Routers to Support IPv4-as- a-Service (RFC8585) by providing recommendations for the node developers on enabling and disabling CLAT functions.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-claton-08"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4861" target="https://www.rfc-editor.org/info/rfc4861" quoteTitle="true" derivedAnchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t indent="0">This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
        <reference anchor="RFC4862" target="https://www.rfc-editor.org/info/rfc4862" quoteTitle="true" derivedAnchor="RFC4862">
          <front>
            <title>IPv6 Stateless Address Autoconfiguration</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <date month="September" year="2007"/>
            <abstract>
              <t indent="0">This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4862"/>
          <seriesInfo name="DOI" value="10.17487/RFC4862"/>
        </reference>
        <reference anchor="RFC6052" target="https://www.rfc-editor.org/info/rfc6052" quoteTitle="true" derivedAnchor="RFC6052">
          <front>
            <title>IPv6 Addressing of IPv4/IPv6 Translators</title>
            <author fullname="C. Bao" initials="C." surname="Bao"/>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="X. Li" initials="X." surname="Li"/>
            <date month="October" year="2010"/>
            <abstract>
              <t indent="0">This document discusses the algorithmic translation of an IPv6 address to a corresponding IPv4 address, and vice versa, using only statically configured information. It defines a well-known prefix for use in algorithmic translations, while allowing organizations to also use network-specific prefixes when appropriate. Algorithmic translation is used in IPv4/IPv6 translators, as well as other types of proxies and gateways (e.g., for DNS) used in IPv4/IPv6 scenarios. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6052"/>
          <seriesInfo name="DOI" value="10.17487/RFC6052"/>
        </reference>
        <reference anchor="RFC6105" target="https://www.rfc-editor.org/info/rfc6105" quoteTitle="true" derivedAnchor="RFC6105">
          <front>
            <title>IPv6 Router Advertisement Guard</title>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="C. Popoviciu" initials="C." surname="Popoviciu"/>
            <author fullname="J. Mohacsi" initials="J." surname="Mohacsi"/>
            <date month="February" year="2011"/>
            <abstract>
              <t indent="0">Routed protocols are often susceptible to spoof attacks. The canonical solution for IPv6 is Secure Neighbor Discovery (SEND), a solution that is non-trivial to deploy. This document proposes a light-weight alternative and complement to SEND based on filtering in the layer-2 network fabric, using a variety of filtering criteria, including, for example, SEND status. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6105"/>
          <seriesInfo name="DOI" value="10.17487/RFC6105"/>
        </reference>
        <reference anchor="RFC6144" target="https://www.rfc-editor.org/info/rfc6144" quoteTitle="true" derivedAnchor="RFC6144">
          <front>
            <title>Framework for IPv4/IPv6 Translation</title>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="X. Li" initials="X." surname="Li"/>
            <author fullname="C. Bao" initials="C." surname="Bao"/>
            <author fullname="K. Yin" initials="K." surname="Yin"/>
            <date month="April" year="2011"/>
            <abstract>
              <t indent="0">This note describes a framework for IPv4/IPv6 translation. This is in the context of replacing Network Address Translation - Protocol Translation (NAT-PT), which was deprecated by RFC 4966, and to enable networks to have IPv4 and IPv6 coexist in a somewhat rational manner while transitioning to an IPv6 network. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6144"/>
          <seriesInfo name="DOI" value="10.17487/RFC6144"/>
        </reference>
        <reference anchor="RFC6146" target="https://www.rfc-editor.org/info/rfc6146" quoteTitle="true" derivedAnchor="RFC6146">
          <front>
            <title>Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers</title>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <author fullname="I. van Beijnum" initials="I." surname="van Beijnum"/>
            <date month="April" year="2011"/>
            <abstract>
              <t indent="0">This document describes stateful NAT64 translation, which allows IPv6-only clients to contact IPv4 servers using unicast UDP, TCP, or ICMP. One or more public IPv4 addresses assigned to a NAT64 translator are shared among several IPv6-only clients. When stateful NAT64 is used in conjunction with DNS64, no changes are usually required in the IPv6 client or the IPv4 server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6146"/>
          <seriesInfo name="DOI" value="10.17487/RFC6146"/>
        </reference>
        <reference anchor="RFC6147" target="https://www.rfc-editor.org/info/rfc6147" quoteTitle="true" derivedAnchor="RFC6147">
          <front>
            <title>DNS64: DNS Extensions for Network Address Translation from IPv6 Clients to IPv4 Servers</title>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="A. Sullivan" initials="A." surname="Sullivan"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <author fullname="I. van Beijnum" initials="I." surname="van Beijnum"/>
            <date month="April" year="2011"/>
            <abstract>
              <t indent="0">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="RFC6877" target="https://www.rfc-editor.org/info/rfc6877" quoteTitle="true" derivedAnchor="RFC6877">
          <front>
            <title>464XLAT: Combination of Stateful and Stateless Translation</title>
            <author fullname="M. Mawatari" initials="M." surname="Mawatari"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <author fullname="C. Byrne" initials="C." surname="Byrne"/>
            <date month="April" year="2013"/>
            <abstract>
              <t indent="0">This document describes an architecture (464XLAT) for providing limited IPv4 connectivity across an IPv6-only network by combining existing and well-known stateful protocol translation (as described in RFC 6146) in the core and stateless protocol translation (as described in RFC 6145) at the edge. 464XLAT is a simple and scalable technique to quickly deploy limited IPv4 access service to IPv6-only edge networks without encapsulation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6877"/>
          <seriesInfo name="DOI" value="10.17487/RFC6877"/>
        </reference>
        <reference anchor="RFC7051" target="https://www.rfc-editor.org/info/rfc7051" quoteTitle="true" derivedAnchor="RFC7051">
          <front>
            <title>Analysis of Solution Proposals for Hosts to Learn NAT64 Prefix</title>
            <author fullname="J. Korhonen" initials="J." role="editor" surname="Korhonen"/>
            <author fullname="T. Savolainen" initials="T." role="editor" surname="Savolainen"/>
            <date month="November" year="2013"/>
            <abstract>
              <t indent="0">Hosts and applications may benefit from learning if an IPv6 address is synthesized and if NAT64 and DNS64 are present in a network. This document analyzes all proposed solutions (known at the time of writing) for communicating whether the synthesis is taking place, what address format was used, and what IPv6 prefix was used by the NAT64 and DNS64. These solutions enable both NAT64 avoidance and local IPv6 address synthesis. The document concludes by recommending the standardization of the approach based on heuristic discovery.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7051"/>
          <seriesInfo name="DOI" value="10.17487/RFC7051"/>
        </reference>
        <reference anchor="RFC7225" target="https://www.rfc-editor.org/info/rfc7225" quoteTitle="true" derivedAnchor="RFC7225">
          <front>
            <title>Discovering NAT64 IPv6 Prefixes Using the Port Control Protocol (PCP)</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <date month="May" year="2014"/>
            <abstract>
              <t indent="0">This document defines a new Port Control Protocol (PCP) option to learn the IPv6 prefix(es) used by a PCP-controlled NAT64 device to build IPv4-converted IPv6 addresses. This option is needed for successful communications when IPv4 addresses are used in referrals.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7225"/>
          <seriesInfo name="DOI" value="10.17487/RFC7225"/>
        </reference>
        <reference anchor="RFC7915" target="https://www.rfc-editor.org/info/rfc7915" quoteTitle="true" derivedAnchor="RFC7915">
          <front>
            <title>IP/ICMP Translation Algorithm</title>
            <author fullname="C. Bao" initials="C." surname="Bao"/>
            <author fullname="X. Li" initials="X." surname="Li"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="T. Anderson" initials="T." surname="Anderson"/>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <date month="June" year="2016"/>
            <abstract>
              <t indent="0">This document describes the Stateless IP/ICMP Translation Algorithm (SIIT), which translates between IPv4 and IPv6 packet headers (including ICMP headers). This document obsoletes RFC 6145.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7915"/>
          <seriesInfo name="DOI" value="10.17487/RFC7915"/>
        </reference>
        <reference anchor="RFC8305" target="https://www.rfc-editor.org/info/rfc8305" quoteTitle="true" derivedAnchor="RFC8305">
          <front>
            <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2017"/>
            <abstract>
              <t indent="0">Many communication protocols operating over the modern Internet use hostnames. These often resolve to multiple IP addresses, each of which may have different performance and connectivity characteristics. Since specific addresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on a network, clients that attempt multiple connections in parallel have a chance of establishing a connection more quickly. This document specifies requirements for algorithms that reduce this user-visible delay and provides an example algorithm, referred to as "Happy Eyeballs". This document obsoletes the original algorithm description in RFC 6555.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8305"/>
          <seriesInfo name="DOI" value="10.17487/RFC8305"/>
        </reference>
        <reference anchor="RFC8880" target="https://www.rfc-editor.org/info/rfc8880" quoteTitle="true" derivedAnchor="RFC8880">
          <front>
            <title>Special Use Domain Name 'ipv4only.arpa'</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2020"/>
            <abstract>
              <t indent="0">NAT64 (Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers) allows client devices using IPv6 to communicate with servers that have only IPv4 connectivity.</t>
              <t indent="0">The specification for how a client discovers its local network's NAT64 prefix (RFC 7050) defines the special name 'ipv4only.arpa' for this purpose. However, in its Domain Name Reservation Considerations section (Section 8.1), that specification (RFC 7050) indicates that the name actually has no particularly special properties that would require special handling.</t>
              <t indent="0">Consequently, despite the well-articulated special purpose of the name, 'ipv4only.arpa' was not recorded in the Special-Use Domain Names registry as a name with special properties.</t>
              <t indent="0">This document updates RFC 7050. It describes the special treatment required and formally declares the special properties of the name. It also adds similar declarations for the corresponding reverse mapping names.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8880"/>
          <seriesInfo name="DOI" value="10.17487/RFC8880"/>
        </reference>
        <reference anchor="RFC9463" target="https://www.rfc-editor.org/info/rfc9463" quoteTitle="true" derivedAnchor="RFC9463">
          <front>
            <title>DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." role="editor" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="N. Cook" initials="N." surname="Cook"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t indent="0">This document specifies new DHCP and IPv6 Router Advertisement options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, DNS over TLS, and DNS over QUIC). Particularly, it allows a host to learn an Authentication Domain Name together with a list of IP addresses and a set of service parameters to reach such encrypted DNS resolvers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9463"/>
          <seriesInfo name="DOI" value="10.17487/RFC9463"/>
        </reference>
        <reference anchor="RFC9499" target="https://www.rfc-editor.org/info/rfc9499" quoteTitle="true" derivedAnchor="RFC9499">
          <front>
            <title>DNS Terminology</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <date month="March" year="2024"/>
            <abstract>
              <t indent="0">The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
              <t indent="0">This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="219"/>
          <seriesInfo name="RFC" value="9499"/>
          <seriesInfo name="DOI" value="10.17487/RFC9499"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank the following people for their
      valuable contributions: <contact fullname="Mike Bishop"/>, <contact fullname="Mohamed Boucadair"/>, <contact fullname="Lorenzo Colitti"/>,
      <contact fullname="Tom Costello"/>, <contact fullname="Charles Eckel"/>,
      <contact fullname="Susan Hares"/>, <contact fullname="Nick Heatley"/>,
      <contact fullname="Ted Lemon"/>, <contact fullname="Gábor Lencse"/>, 
      <contact fullname="David Lou"/>, <contact fullname="Peter Schmitt"/>,
      <contact fullname="Éric Vyncke"/>, and <contact fullname="Chongfeng       Xie"/>.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Nick Buraglio">
        <organization showOnFrontPage="true">Energy Sciences Network</organization>
        <address>
          <email>buraglio@forwardingplane.net</email>
        </address>
      </author>
      <author fullname="Tommy Jensen">
        <organization showOnFrontPage="true"/>
        <address>
          <email>tojens.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Jen Linkova">
        <organization showOnFrontPage="true">Google</organization>
        <address>
          <email>furry13@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
