<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-v6ops-ipv6-app-testing-08" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="ipv6-app-testing">Testing Applications' IPv6 Support</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-ipv6-app-testing-08"/>
    <author fullname="Philipp S. Tiesel">
      <organization>SAP SE</organization>
      <address>
        <email>philipp@tiesel.net</email>
        <email>philipp.tiesel@sap.com</email>
      </address>
    </author>
    <author fullname="Kyle Ouellette">
      <organization abbrev="UNH-IOL">University of New Hampshire Interoperability Labs</organization>
      <address>
        <email>kouellette@iol.unh.edu</email>
      </address>
    </author>
    <author fullname="Ben Patton">
      <organization abbrev="UNH-IOL">University of New Hampshire Interoperability Labs</organization>
      <address>
        <email>bpatton@iol.unh.edu</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Operations and Management</area>
    <workgroup>v6ops</workgroup>
    <keyword>Interoperability</keyword>
    <keyword>Deployment</keyword>
    <keyword>Operation</keyword>
    <keyword>IPv6 Failure</keyword>
    <keyword>IPv6 service</keyword>
    <keyword>Validation</keyword>
    <keyword>Application developer</keyword>
    <abstract>
      <?line 101?>

<t>This document provides guidance for application developers and Software-as-a-Service (SaaS) providers on how to approach IPv6 testing in Dual-stack (IPv4+IPv6), and IPv6-only scenarios, including "IPv6-only-strict" scenarios without any connectivity towards any relevant IPv4 endpoint.</t>
      <t>The document also discusses common misconceptions about the degree to which Operating Systems and libraries can abstract IPv6 issues away
and explains common regressions to avoid when deploying IPv6 support.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-v6ops-ipv6-app-testing/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-v6ops/draft-itef-v6ops-ipv6-app-testing"/>.</t>
    </note>
  </front>
  <middle>
    <?line 109?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>For the last 20 years, enabling applications for IPv6 has focused on coexistence with IPv4 and allowing traffic to shift towards IPv6 without breaking IPv4 operation.
This target has changed in part due to a series of national regulations mandating state entities to proceed in the transition to IPv6, e.g., in
China <xref target="CN-CAC-2023"/>, the United States of America <xref target="US-OMB-M-21-07"/>, Germany <xref target="DE-BIT-2020-14"/>, and the Czech Republic <xref target="CZ-ENDv4"/>.
IPv6 support thus means being fully functional in the absence of IPv4 and transition technologies providing connectivity to the IPv4 Internet.
Therefore, applications are expected to function regardless of whether they are used in an IPv4-only environment, a Dual-stack environment, or an IPv6-only environment, with or without connectivity to the IPv4 Internet. To achieve this, applications need to be verified against all these scenarios.</t>
      <t>While the availability of IPv6 support in applications has a considerable impact on the success of IPv6 deployment,
there exists no documented best current practices how to do so. There are, however, some documentation about specific applications such as SIP torture tests for IPv6 <xref target="RFC5118"/>.
Testing IPv6 compliance of network gear and Operating Systems (OSes) has been documented extensively.
While the IETF does not define compliance tests, best current practice exists for the behavior of general IPv6 nodes <xref target="RFC8504"/> and Customer Edge (CE) routers <xref target="RFC7084bis"/>.</t>
      <t>To fill that gap, this document provides guidance for application developers and cloud application providers on how to approach IPv6 testing.
It describes the parts of an application lifecycle to include, which communication scenarios they should consider validating against, and which common regressions to avoid when adding IPv6 support.
While many application developers assume that the network abstractions of the OS, communication libraries, and application frameworks will handle the transition towards IPv6 transparently, leaky abstractions within these frameworks will make it difficult for an application developer to write address family-independent code for features such as allow/deny lists, tracing, and logging.</t>
      <t>Testing cloud applications poses an additional challenge, as these are typically composed of hundreds to thousands of micro and macroservices, forming a complex distributed system that requires intricate communication and orchestration infrastructure to operate.
Enabling these applications to communicate over IPv6 requires careful analysis of data flows towards services, between components, and towards external services as well as analysis where IPv6 addresses may occur as metadata.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>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 <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.</t>
        <?line -20?>

</section>
      <section anchor="base-connectivity-scenarios">
        <name>Base Connectivity Scenarios</name>
        <t>This document defines the following four "base connectivity scenarios"
in which applications ought to be verified for availability and functional correctness:</t>
        <t><cref anchor="_1"><strong>Note to the RFC-Editor:</strong> The capitalization should match the one from <xref target="IPv6-ONLY"/> once it is published.</cref></t>
        <dl>
          <dt>IPv4-only:</dt>
          <dd>
            <t>A node or application that has native connectivity towards all endpoints relevant for the test scenario using IPv4 and no connectivity towards any relevant IPv6 endpoints.</t>
          </dd>
          <dt/>
          <dd>
            <t>While this definition is narrower than the one from <xref target="IPv6-ONLY"/>, and mirrors the <em>IPv6-only-strict</em> scenario, it refrains from calling it <em>IPv4-only-strict</em> for the sake of simplicity as transition technologies allowing IPv4-only endpoints to talk to arbitrary IPv6-only endpoints are not widely deployed and encapsulation cases mentioned in <xref target="IPv6-ONLY"/> are covered by the either the <em>Dual-stack</em> or <em>IPv6-only with NAT64</em> case.</t>
          </dd>
          <dt>Dual-stack:</dt>
          <dd>
            <t>A node or application that has native connectivity towards all endpoints relevant for the test scenario using IPv4 as well as using IPv6.</t>
          </dd>
          <dt/>
          <dd>
            <t>This case covers the <em>Dual-Stack</em> and <em>IPv6-Mostly (for clients not supporting Option 108 <xref target="RFC8925"/>)</em> cases in <xref target="IPv6-ONLY"/> and
narrows it down by defining the scope to test-relevant endpoints.</t>
          </dd>
          <dt>IPv6-only with NAT64:</dt>
          <dd>
            <t>A node or application that has native connectivity towards all endpoints relevant for the test scenario using IPv6 and connectivity towards IPv4 endpoints using a transition technology like NAT64, e.g., NAT64 in combination with CLAT <xref target="RFC6877"/>, DNS64 <xref target="RFC6147"/>, or local address synthesis. This document does not differentiate between stateful <xref target="RFC6146-bis"/> and stateless <xref target="RFC7915"/> NAT64 variants.</t>
          </dd>
          <dt/>
          <dd>
            <t>This case covers the <em>IPv6-Only</em> as well as <em>IPv6-Mostly (for clients supporting Option 108 <xref target="RFC8925"/>)</em> cases in <xref target="IPv6-ONLY"/> and
narrows them down by defining the scope to test-relevant endpoints.</t>
          </dd>
          <dt>IPv6-only-strict:</dt>
          <dd>
            <t>A node or application that has native IPv6 connectivity towards all endpoints relevant for the test scenario and no connectivity towards any relevant IPv4 endpoints, neither encapsulated nor translated.</t>
          </dd>
          <dt/>
          <dd>
            <t>This definition narrows down the <em>IPv6-Only-Strict</em> definition from <xref target="IPv6-ONLY"/> by defining the scope to test-relevant endpoints.</t>
          </dd>
          <dt>Single-Stack:</dt>
          <dd>
            <t>Refer to exclusive support of IPv4 or IPv6 stack.</t>
          </dd>
        </dl>
      </section>
      <section anchor="lifecycle-functions">
        <name>Lifecycle Functions</name>
        <t>Orthogonal to the base scenarios, this document defines lifecycle functions (i.e., the phases in which an application is approached during a simplified lifecycle of the application) in accordance to <xref target="US-NIST.SP.500-267Ar1"/> as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Installation: The installation of the application including any initial configuration required for
getting the application in a state where remote services are operational.</t>
          </li>
          <li>
            <t>User Interface: All forms of interactive access to the application (e.g., Web User Interface (UI) or API).</t>
          </li>
          <li>
            <t>Management: All forms of remote management and monitoring functions.</t>
          </li>
          <li>
            <t>Update: All forms of update functions, including both automatic and manual update mechanisms.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="objectives">
      <name>Testing Objectives</name>
      <t>As a basic principle, IPv6 application testing should always be derived from functional and integration testing.
Therefore, the goal is to verify that the expected behavior is consistent across all connectivity scenarios,
i.e., the application functions correctly in IPv4-only, Dual-stack, IPv6-only with NAT64, and IPv6-only-strict settings.</t>
      <t>This document does not include application-specific testing. For example, some IETF specifications (e.g., SIP <xref target="RFC3261"/>) contains broken IPv6 Augmented Backus-Naur Form (ABNF) and rules to compare URIs with embedded IPv6 addresses; fixes (e.g., <xref target="RFC5954"/>) must be used instead. Testing and validation of such application-specific matters are out the scope of this document.</t>
      <t>The following subsections provide guidance on which connectivity scenarios to include in a testing campaign for an ideal application that is supposed to run anywhere and how to approach testing complex cloud applications and exclude connectivity scenarios based on the environment they are deployed in.</t>
      <section anchor="scenarios">
        <name>Connectivity Scenarios</name>
        <t><xref target="scn_combinations"/> lists the combinations of connectivity scenarios that application testing <bcp14>SHOULD</bcp14> consider. Not testing some of these cases may lead to failures in operations.
Note, while the involved parties are listed here as "client" and "server" to reflect the most common case, the combinations can be used the same way when considering Peer-to-Peer (P2P) applications -- with "client" representing the initiating or first acting party.</t>
        <t>The first five scenarios marked as <em>base</em> should cover all major code paths and fallback conditions and <bcp14>MUST</bcp14> be validated to work as expected unless the application's architecture or deployment makes them irrelevant (see {complex-apps} for further discussion).
These include Dual-stack clients combined with IPv4-only and IPv6-only-strict servers, to test whether the additional address family confused the client.
The document also includes the cases with Dual-stack server and Single-Stack clients, to test whether a single address family at client side works as anticipated and look at the transition case using NAT64.</t>
        <t>This document does not include any special scenarios for 464XLAT <xref target="RFC6877"/> and IPv6-Mostly <xref target="V6MOPS"/>, as these architectures are from the client side indistinguishable from the Dual-stack or IPv6-only with NAT64 (IPv6-Mostly without CLAT).</t>
        <t>MTU issues, as described in <xref section="7.4.5" sectionFormat="of" target="V6MOPS"/>, that may arise form these scenarios are covered in <xref target="partially-broken"/>.</t>
        <t>This document also do not separate IPv4-only cases with and without NAT, despite that applications exist that assume NAT for IPv4 and do not work without, as these issues are also revealed by the IPv6 scenarios.</t>
        <t>For the IPv6-only data center case, where servers may be exposed to the IPv4-only Internet using NAT46, the case marked as IPv6-only-DC in <xref target="scn_combinations"/> <bcp14>SHOULD</bcp14> also be considered. This case <bcp14>MAY</bcp14> be omitted for deployments targeting IPv6-only clients.</t>
        <t>The other combinations are unlikely to exhibit additional problems for 'client/server'-based applications and, therefore, are marked as extended in <xref target="scn_combinations"/>.</t>
        <t>For P2P applications and applications with complex connection handling like using Session Traversal Utilities for NAT (STUN) <xref target="RFC8489"/> or Traversal Using Relays around NAT (TURN) <xref target="RFC8656"/>, skipping these scenarios is strongly discouraged.</t>
        <table anchor="scn_combinations">
          <name>Connectivity scenario combinations to consider</name>
          <thead>
            <tr>
              <th align="left">Client</th>
              <th align="left">Server</th>
              <th align="center">Classification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Dual-stack</td>
              <td align="left">IPv4-only</td>
              <td align="center">base</td>
            </tr>
            <tr>
              <td align="left">Dual-stack</td>
              <td align="left">IPv6-only-strict</td>
              <td align="center">base</td>
            </tr>
            <tr>
              <td align="left">IPv4-only</td>
              <td align="left">Dual-stack</td>
              <td align="center">base</td>
            </tr>
            <tr>
              <td align="left">IPv6-only with NAT64</td>
              <td align="left">IPv4-only</td>
              <td align="center">base</td>
            </tr>
            <tr>
              <td align="left">IPv6-only-strict</td>
              <td align="left">Dual-stack</td>
              <td align="center">base</td>
            </tr>
            <tr>
              <td align="left">IPv4-only</td>
              <td align="left">IPv6-only with NAT64</td>
              <td align="center">IPv6-only-DC</td>
            </tr>
            <tr>
              <td align="left">Dual-stack</td>
              <td align="left">Dual-stack</td>
              <td align="center">extended</td>
            </tr>
            <tr>
              <td align="left">IPv4-only</td>
              <td align="left">IPv4-only</td>
              <td align="center">extended</td>
            </tr>
            <tr>
              <td align="left">IPv6-only with NAT64</td>
              <td align="left">IPv6-only-strict</td>
              <td align="center">extended</td>
            </tr>
            <tr>
              <td align="left">IPv6-only-strict</td>
              <td align="left">IPv6-only-strict</td>
              <td align="center">extended</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="intermediaries">
        <name>Testing with Intermediaries (e.g., Proxies)</name>
        <t>Many application protocols support communicating across intermediates, most commonly HTTP, HTTP-Connect, SOCKS, or MASQUE proxies.
P2P applications often support TURN <xref target="RFC8656"/> as an intermediary to traverse NAT and provide connectivity between IPv4-only and IPv6-only hosts.
When testing connectivity scenarios for such an application, the additional test cases including a proxy <bcp14>MUST</bcp14> also be validated.</t>
        <t>As a proxy can convert between address families, all combinations shown in <xref target="scn_proxy"/>,
consisting of base scenarios towards the proxy and (assuming the same scenarios on both sides of the proxy) the respective base scenarios from the proxy to the server, should be considered for testing.</t>
        <table anchor="scn_proxy">
          <name>Base scenario combinations including a proxy to consider for IPv6 testing</name>
          <thead>
            <tr>
              <th align="left">Client</th>
              <th align="left">Proxy</th>
              <th align="left">Server</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Dual-stack</td>
              <td align="left">IPv4-only</td>
              <td align="left">Dual-stack</td>
            </tr>
            <tr>
              <td align="left">Dual-stack</td>
              <td align="left">IPv6-only-strict</td>
              <td align="left">Dual-stack</td>
            </tr>
            <tr>
              <td align="left">IPv4-only</td>
              <td align="left">Dual-stack</td>
              <td align="left">IPv4-only</td>
            </tr>
            <tr>
              <td align="left">IPv4-only</td>
              <td align="left">Dual-stack</td>
              <td align="left">IPv6-only-strict</td>
            </tr>
            <tr>
              <td align="left">IPv6-only with NAT64</td>
              <td align="left">IPv4-only</td>
              <td align="left">Dual-stack</td>
            </tr>
            <tr>
              <td align="left">IPv6-only-strict</td>
              <td align="left">Dual-stack</td>
              <td align="left">IPv4-only</td>
            </tr>
            <tr>
              <td align="left">IPv6-only-strict</td>
              <td align="left">Dual-stack</td>
              <td align="left">IPv6-only-strict</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="testing-name-resolution-issues">
        <name>Testing Name Resolution Issues</name>
        <t>As most applications use name resolution to bootstrap their connectivity,
it is necessary to consider name resolution aspects when testing IPv6 readiness.
While some name resolution issues only manifest in certain connectivity scenarios or can be mitigated by using Happy Eyeballs <xref target="RFC6555"/>/<xref target="RFC8305"/>,
others will just map to different connectivity scenarios.</t>
        <t>This section lists name resolution issues to consider for testing.</t>
        <section anchor="missing-dns-records">
          <name>Missing DNS Records</name>
          <t>While a server endpoint is intended to support Dual-stack connectivity,
A or AAAA DNS resource records for the endpoint may be missing (e.g., due to misconfiguration or broken tooling)
or does not reach the client endpoint (e.g., because it got filtered out by a middlebox or local resolver).
The same can happen for names discovered and resolved through mDNS <xref target="RFC6762"/>, for example.</t>
          <t>While deployment and integration testing should try to test for this kind of broken connectivity,
this scenario is usually indistinguishable from an IPv4-only or an IPv6-only server endpoint,
and, therefore, already addressed by testing the base scenarios above.</t>
        </section>
        <section anchor="incorrect-dns-resource-records">
          <name>Incorrect DNS Resource Records</name>
          <t>Independent of the deployed server endpoint,
there may be an A and AAAA resource record either pointing somewhere else,
e.g., to an old or planned deployment.</t>
          <t>For either IPv4-only or IPv6-only-strict clients, this scenario should always fail.</t>
          <t>For Dual-stack clients, it <bcp14>MUST</bcp14> be tested whether they can use the working IPv4-only or IPv6-only connectivity scenario, either by using Happy Eyeballs <xref target="RFC6555"/>/<xref target="RFC8305"/> or trying the next resolved address candidate after timeout.
Especially for the latter, it is advisable to verify whether the connection delay is acceptable of the desired use-case.</t>
          <t>IPv6-only clients with NAT64 are only expected to work with broken AAAA records when deployed with
CLAT (should behave like Dual-stack as discussed in <xref target="scenarios"/>) or
local NAT64 address (e.g., as when implementing Happy Eyeballs v2 <xref target="RFC8305"/>).
IPv6-only clients with NAT64 that rely on DNS64 only are expected to fail as the presence of AAAA records prevents synthesis of DNS64 records.</t>
          <t>Testing with IPv4-Mapped IPv6 addresses <xref target="RFC4291"/> in AAAA resource records is also recommended.
While this makes zero sense, it has been seen in the wild and should not confuse the client.</t>
        </section>
        <section anchor="dns-delegation-issues">
          <name>DNS Delegation Issues</name>
          <t>Integration testing for cloud applications <bcp14>MUST</bcp14> verify that the necessary domain names are resolvable from IPv4-only or IPv6-only-strict DNS resolvers.
<xref target="RFC10001"/> describes misconfigurations that may prevent this and should be prevented.</t>
        </section>
        <section anchor="testing-with-ip-literals">
          <name>Testing with IP Literals</name>
          <t>Most name resolution libraries support IP literals, i.e., textual representations of IP addresses.
Applications <bcp14>SHOULD</bcp14> be tested to determine whether they work as expected with IPv4 literals and all IPv6 address representations described in <xref target="RFC4291"/>. Some applications (client or server) may not allow for IPv4 literals.</t>
          <t>If there is a use case for link-local communication using IP literals, it <bcp14>MUST</bcp14> be tested whether the zone identifier can be entered as described in <xref target="RFC9844"/> and work as expected.</t>
        </section>
        <section anchor="testing-with-link-local-names">
          <name>Testing with Link-local Names</name>
          <t>A name such as <tt>example.local</tt> can resolve, e.g., through DNS-Based Service Discovery (?RFC6763),
to one or both of a link-local IPv4 address <xref target="RFC3927"/> and a link-local IPv6 address.
The latter is incomplete and possibly ambiguous unless associated with the relevant zone identifier or zone index <xref target="RFC4007"/>.
Applications <bcp14>SHOULD</bcp14> be tested to determine whether they work as expected with link-local names, particularly on a host with multiple network interfaces.</t>
        </section>
      </section>
      <section anchor="partially-broken">
        <name>Testing with Partially Broken Connectivity, MTU, and Fragmentation Issues</name>
        <t>When multiple address families are available, IP packets may traverse different forwarding paths depending on the address family.
Even when the same path is traversed, the path can exhibit distinct behaviors (e.g., dropping all or particular packets), especially in the presence of middleboxes.</t>
        <t>From the communication endpoints that are expected to be reachable using both address families,
some may only be reachable by one address family, while others may only be reachable by the other.
Testing applications against these scenarios can become a key enabler for users' acceptance of IPv6,
especially during a transition phase where partially broken connectivity is expected more frequently.</t>
        <t>In some cases, connectivity issues may only become apparent late in the communication process, for example, after a successful TCP handshake but before a TLS handshake succeeds.
In such scenarios, clients restricted to a single address family -- such as IPv6-only-strict clients -- may experience complete loss of connectivity in these scenarios,
while dual-stack clients often mask such failures by automatically falling back to another address family.</t>
        <t>In addition to partial blackholing, MTU issues may be limited to one address family or behave differently with respect to aspects like
MTU available, dropping of fragmented packets, and ICMP messages generated.
As only IPv4 supports on-path fragmentation, IPv6 is more dependent on working ICMP <em>packet too big</em> reporting.</t>
        <t>During deployment and integration testing, checking for partial blackholing and MTU issues <bcp14>MUST</bcp14> be done by testing with IPv4-only and IPv6-only-strict clients to detect such blackholes.
In case these issues can occur outside the testers' circle of control, it is advisable to simulate this type of failure and ensure that the application's behavior supports the detection and analysis of these errors.</t>
      </section>
      <section anchor="testing-without-ipv4-loopback-addresses-1270008">
        <name>Testing without IPv4 Loopback Addresses (127.0.0.0/8)</name>
        <t>Some applications and services may assume the existence and reachability of the IPv4 loopback addresses (127.0.0.0/8) when binding to a socket or for communicating with other services on the same host.
For example, a web server may explicitly listen on a 127.0.0.0/8 by default.
For IPv6-only-strict scenarios, system administrators may choose to disable IPv4, including loopback.
In such cases, applications may fail to operate correctly. Applications expecting to bind to an IPv4 loopback address may fail to start when these addresses are unavailable due to a bind failure.
Applications expecting these addresses to be available for inter-service communication will result in these services being unable to communicate properly.</t>
        <t>Because of this, when testing applications for the IPv6-only-strict scenario, it is <bcp14>RECOMMENDED</bcp14> to test the application in an environment without IPv4 on the loopback interface.</t>
      </section>
      <section anchor="lifecycle-considerations">
        <name>Testing Lifecycle Function Considerations</name>
        <t>To cover the whole lifecycle of an application including installation, user interface,
management, and update, it is recommended to test that the lifecycle functions defined in <xref target="lifecycle-functions"/> are operational within the connectivity scenarios defined in <xref target="scn_combinations"/>.
Testing the normal operations of the application is encompassed by the user interface lifecycle function.</t>
        <t>In particular, the following <bcp14>MUST</bcp14> be considered:</t>
        <ul spacing="normal">
          <li>
            <t>Installation: Installation may require communications with remote first-party services (e.g., activation/license server)
or remote third-party services (e.g., package repositories). In these scenarios, the installer acts as
the client, and the remote service acts as the server. In cases of remote third-party services, testing
all server scenarios in <xref target="scn_combinations"/> may not be feasible, and impact the client scenarios that
can be supported. For example, if a third-party service is IPv4-only, testing an IPv6-only-strict scenario will fail.</t>
          </li>
          <li>
            <t>User Interface: User interfaces can be incredibly complex with numerous contexts, views, API endpoints,
CLI commands, etc. When testing an application's user interface(s), the normal operations of the application should be verified.
Additionally, when testing non-web-based user interfaces, it is recommended to test components
of the interface that involve communications with remote services, and those that handle network configuration parameters.
For example, a network configuration interface may only accept IPv4 address literals for certain parameters.
For testing web-based user interfaces, see <xref target="web-app-considerations"/>.</t>
          </li>
          <li>
            <t>Management: Depending on the application, management functions may be provided via the user interface.
However, the application may have additional management functions (SNMP, syslog, etc.) that should be tested.
As the source triggering application behavior is crucial for logging and auditing functionality,
addresses recorded need to be verified to be represented correctly. See Section <xref target="addr-as-data"/> about representation of addresses.</t>
          </li>
          <li>
            <t>Update: Depending on the application, update functions may be exercised during installation. However, the application
may have additional update functions (e.g., automatic updates or manual update mechanisms) that should be tested.</t>
          </li>
        </ul>
      </section>
      <section anchor="complex-apps">
        <name>Testing Complex Cloud Applications and Applying Test Cases</name>
        <t>Complex applications and especially cloud applications typically involve many data flows into the application, across components, and towards external services.
In such a system, an application or component may be considered as a server for some communication flows,
while being a client in others.
Therefore, test cases need to cover each data flow in all relevant scenarios.</t>
        <t>As functional and integration tests are often defined as end-to-end test cases,
they often involve several components, e.g., micro-services, load-balancers, application gateways, logging, authentication, and authorization services, which use IP-based protocols between the components.
Therefore, an end-to-end test case breaks down to a series of flows between components, and for each of these flows,
it <bcp14>MUST</bcp14> be determine whether it is necessary to apply the connectivity scenarios from <xref target="scn_combinations"/> to it,
or whether the connectivity scenarios are only controlled by the deployment of the application.</t>
        <t>For external flows (i.e., flows outside the developers' control), usually all base scenarios from <xref target="scenarios"/> <bcp14>MUST</bcp14> be accounted for.</t>
        <t>If one side of the flow is under administrative control, the number of scenario combinations can still be limited:
For example, a cloud software provider choosing to deploy Dual-stack endpoints can skip all non-Dual-stack cases on the respective side of the communication.
For internal flows, the relevant scenarios only depend on the applications' architecture, and only scenarios planned in the deployment need to be considered.
From a networking perspective, flows between components are typically independent, as long as endpoints are not signaled inside of the protocol.
There is no need to run the Cartesian product of scenarios x communications as long as all relevant scenarios for a given flow are tested.</t>
        <t>In addition to the data flows, an implementation may include metadata about the data flow when communicating with backend systems, e.g., for logging or authorization purposes.
While the flows towards these backend systems themselves <bcp14>MAY</bcp14> be safe to ignore as outlined above,
the functional correctness of the backend systems for all kinds of IP address <bcp14>MUST</bcp14> be verified as part of the test series.
Ignoring IP addresses as data in the testing may result in malfunctions, like always denying access over IPv6, or security issues, like not logging access from IPv6 clients.</t>
      </section>
      <section anchor="web-app-considerations">
        <name>Special Considerations for Web-based Applications</name>
        <t>Web-based applications usually load resources from multiple parties, including Content Delivery Networks (CDNs) and analytic tools, involving data flows to all these parties.
When facing the requirement to support IPv6-only-strict users, being unable to load some resources due to missing/defective IPv6 support at the respective parties can have effects from missing analytics insights or ad revenue to severe functional defects rendering the application unusable.</t>
        <t>When testing such applications, it is not sufficient to only focus on the initial/main interactions,
but it is <bcp14>REQUIRED</bcp14> to consider all resources and parties providing them.
As Web browsers load these resources dynamically and third-party resources may themselves may request resources from more parties, this kind of testing usually requires an instrumented Web browser,
e.g., using <xref target="Selenium"/>.</t>
      </section>
      <section anchor="addr-as-data">
        <name>Considerations for Addresses as Data</name>
        <t>When applications process IP addresses as data (e.g., as part of logging or management functionality),
this functionality <bcp14>MUST</bcp14> work for all possible address families and representations.</t>
        <t>One challenge to consider is that the textual representation of IPv4 and IPv6 addresses are not canonical. Although <xref target="RFC5952"/> recommends a canonical format, all implementations <bcp14>MUST</bcp14> accept and be able to handle any legitimate <xref target="RFC4291"/> address format.
It allows several valid textual representations for the same address, which makes direct string comparison and arithmetic operations on addresses error-prone and slow.
For example, the IPv6 address <tt>2001:db8::1</tt> can be written as <tt>2001:db8:0:0:0:0:0:1</tt>, <tt>2001:0db8::0.0.0.1</tt>, or in several other forms.</t>
        <t>While custom logic to check, parse and process addresses is often error-prone and should be validated thoroughly,
modern environments and frameworks usually provide data structures that encapsulate the canonical binary representation and include methods for parsing the various textual representations, comparing addresses, performing subnet operations, and rendering addresses in a consistent format.</t>
        <t>For situations where textual representation of IPv6 addresses is needed -- such as in user interfaces, logging output, and text-based data formats like JSON, YAML, TOML, and XML -- <xref target="RFC5952"/> provides recommendations on which of the valid textual representations should be used.
Applications <bcp14>MUST</bcp14> be tested whether they follow <xref target="RFC5952"/> when rendering IPv6 addresses in textual form,
as required by national regulations like <xref target="US-NIST.SP.500-267Ar1"/>,
while accepting all valid representations defined in <xref target="RFC4291"/>.</t>
      </section>
    </section>
    <section anchor="testing-strategies">
      <name>Testing Strategies</name>
      <t>Naive IPv6 testing, based on end-to-end functional tests as outlined in <xref target="objectives"/>, would require running a set of functional tests in various connectivity scenarios.
In certain environments, setting up test cases for all scenarios can become forbiddingly expensive,
especially for complex cloud applications, application platforms, or when dealing with corporate IT environments.</t>
      <t>This section gives recommendations how to set up scenarios defined in <xref target="scenarios"/> and
present strategies to meet the relevant testing objective by modifying Dual-stack clients and servers to conclude the results for other scenario combinations (e.g., by tracing whether the right address family is used).</t>
      <section anchor="ipv6-only-strict-clients">
        <name>IPv6-only-strict Clients</name>
        <t>This is the most natural way to test whether IPv6-only-strict clients behave correctly.</t>
        <t>The client device is either placed in a network without IPv4 connectivity or the IPv4 stack is disabled on the device while it is in a Dual-stack network.
While most desktop OSes allow disabling IPv4, mobile OSes, such as Android and iOS, do not.
For mobiles OSes, an IPv6-only-strict environment is needed.</t>
        <t>In both cases, it has to be ensured that there is no way to access IPv4-only resources.
In particular, fallback to NAT64 must be prevented by disabling CLAT <xref target="CLAT"/>,
making sure DNS resolution does not perform DNS64 address synthesis <xref target="RFC6147"/>
and blocking the Well-known Prefix (WKP) <xref target="RFC6052"/> for these clients.
In addition, VPN services including privacy services like <xref target="iCloud-Private-Relay"/> need to be disabled as they can provide connectivity towards the IPv4 Internet.</t>
        <t>A note on the applicability of disabling IPv4:
Before disabling IPv4 make sure the environment supports IPv6-only operation.
Many desktop virtualization environments become unusable because IPv4 is needed to access and manage the virtual machines.
Some corporate environments may render the machines unusable as they require IPv4 connectivity for sign-on.</t>
      </section>
      <section anchor="ipv6-only-servers">
        <name>IPv6-only Servers</name>
        <t>IPv6-only servers are a good option when setting up an IPv6-only-strict client environment is infeasible and
clients are know to only contact a single server or a small number of servers under the testers' control.
Even if setting up an IPv6-only-strict server environment is infeasible,
most testing is also achievable by setting up a dedicated DNS name only containing an AAAA resource record pointing to the IPv6 addresses of an otherwise Dual-stack server.</t>
      </section>
      <section anchor="client-based-tracing">
        <name>Client-based Tracing</name>
        <t>If the tester can't limit the available address families, the tester can still trace and verify whether the address family desired for the scenario is used.</t>
        <t>Client-based tracing is especially useful when Dual-stack servers and clients are available and a conclusion for the IPv6-only-strict case is desired.
By using the clients' logging/tracing/debugging functionality, the tester can verify that the actual data flows happen over IPv6, which is preferred by most network abstractions. If the client allows changing the preference between IPv6 and IPv4, IPv4-only testing is also possible.</t>
        <t>The most relevant case for this strategy is testing Web applications.
By examining the Web browsers' performance log or using a plugin like <xref target="IPvFoo"/> that visualizes connectivity information, the tester can determine whether all resources are available using IPv6.</t>
      </section>
      <section anchor="server-based-tracing">
        <name>Server-based Tracing</name>
        <t>Analogue to tracing on the client side, it is also possible to look at the protocols used on the server side.</t>
        <t>While this is functionally equivalent for protocols where clients only communicate to a single server,
this approach is not feasible for Web-based applications where a client usually needs flows towards many servers, where client or network based tracing are the only feasible alternatives to testing with an IPv6-only-strict client.</t>
      </section>
      <section anchor="network-based-tracing">
        <name>Network-based Tracing</name>
        <t>If the communication pattern of an application is known well enough, a packet tracer as <xref target="Wireshark"/> allows to verify that an application in a Dual-stack environment uses IPv6 for all of its flows.
If this can be verified, failures in IPv6-only-strict environments are unlikely.</t>
        <t>While this is the least invasive method of testing IPv6-only-strict scenarios in a Dual-stack setup, it is the most error-prone as it requires the tester to fully understand the network flows of the application and requires the skills to interpret the output of a packet tracer.</t>
      </section>
    </section>
    <section anchor="failures">
      <name>Common Sources of IPv6 Related Failures and Misbehavior</name>
      <t>This section discusses special failure modes that can cause unexpected application behavior that is hard to debug.</t>
      <t>While some of these cases can be automatically mitigated, especially through generalizing the concept of Happy Eyeballs <xref target="RFC8305"/>, others may not.
In cases that developers choose not to mitigate erroneous application behavior, users and operators should be supported in the resolution by exposing specific and detailed error or debug messages.</t>
      <section anchor="enable-ipv6-feature-gates">
        <name>Enable IPv6 Feature Gates</name>
        <t>Some applications completely ignore IPv6 unless explicitly configured to enable IPv6.
This adds another class of user or configuration errors, like deploying an application without enabled IPv6 support in an IPv6-only environment.
As these feature gates are often buried deeply in the documentation and are often vendor, product, or component specific, every component needs to be checked to determine whether IPv6 support needs extra configuration.</t>
      </section>
      <section anchor="ignore-management-and-control-interfaces">
        <name>Ignore Management and Control Interfaces</name>
        <t>Ignoring management and control interfaces when enabling and testing applications for IPv6-only operation turns out to be a common pattern.
As already discussed in <xref target="lifecycle-considerations"/>, special care should be taken to cover all of these flows and avoid setups that require Dual-stack deployment.</t>
      </section>
      <section anchor="destination-address-selection-preference-and-address-filtering">
        <name>Destination Address Selection Preference and Address Filtering</name>
        <t>The destination address selection algorithm in <xref target="RFC6724"/> filters unavailable address families (Rule 1) and de-prioritizes non-matching address families (Rule 2)
and clearly prioritizes IPv6 GUA addresses over IPv4 addresses.
While most OSes and some alternative resolver libraries, such as <xref target="C-ARES"/>, implement <xref target="RFC6724"/> or its predecessor <xref target="RFC3484"/> correctly,
there are a number of notable and widely used implementations that implement something else, causing anything from unexpected behavior to hard-to-debug errors.</t>
        <ul spacing="normal">
          <li>
            <t>Most JAVA runtimes do the opposite and prefer IPv4 destinations over IPv6.
To prefer IPv6 addresses over IPv4, one needs to set the system property <tt>java.net.preferIPv6Addresses=true</tt>.</t>
          </li>
          <li>
            <t>Some applications only use the first address candidate from the <tt>getaddrinfo()</tt> and fail if the connection attempt to that one fails.</t>
          </li>
          <li>
            <t>Applications composed of services built on different programming languages or runtimes may behave inconsistently with regard to choosing destination addresses.</t>
          </li>
          <li>
            <t>NGINX (at the time of writing, since at least version 1.6 and unchanged in 1.31) has its own user DNS resolver without address filtering; thus, adding a <em>AAAA</em> resource record to a backend can render that backend unusable.
After having resolved a <em>AAAA</em> resource record, it is trying to open an IPv6 socket, even when the IPv6 stack is disabled.
As socket creation failure is not expected, an internal server error is sent back to the client. <xref target="NGINX.trac-552"/></t>
          </li>
          <li>
            <t>Some resolvers ignore address families for which no default route exists or where the default-route is pointing to an unsupported/ignored device.
This becomes cumbersome especially in split-VPN use cases (e.g. when trying to contact IPv6-only endpoints via the VPN while having IPv4-only Internet connectivity).</t>
          </li>
        </ul>
      </section>
      <section anchor="listening-on-ipv4-only">
        <name>Listening on IPv4 Only</name>
        <t>Many tutorials and programmer facing documentations have still not been updated to cover listening on multiple address families to accept connections from both IPv6 and IPv4.
Listening code should be checked to determine whether it supports distinct listening sockets for IPv6 and IPv4, or configures IPv6 sockets that also bind to IPv4,
e.g., by setting Listening code should also be able to deal with cases where IPv6 or IPv4 have been disabled in the OS.</t>
        <t>In deployments, it is recommended to always use tools like <tt>netstat</tt> or <tt>lsof</tt> to verify all relevant address families are listened on.</t>
      </section>
      <section anchor="input-validation-and-output-rendering">
        <name>Input Validation and Output Rendering</name>
        <t>While most libraries and application frameworks have decent IPv6 support,
there often is still application logic that prevents taking advantage of the IPv6 support by the underlying components.
Checking whether user input is a valid IPv4 address or rendering output under the assumption that an address is always an IPv4 address are typical examples for this class of limitations.</t>
        <t>Even applications that have been adopted to IPv6 may have based their input validation on wrong assumptions,
e.g., checking an IPv6 address is in <tt>2000::/3</tt>.
Therefore, test cases should include IPv6 addresses from GUA (<tt>2000::/3</tt>), ULA (<tt>fc00::/7</tt>), and NAT64 WKP (<tt>64:ff9b::/96</tt>), as well as link-local (<tt>fe80::/10</tt>) range.</t>
        <t>The link-local range needs special attention as addresses are incomplete and possibly ambiguous unless associated with the relevant zone identifier or zone index <xref target="RFC4007"/>.
Testing should verify that the zone identifier or zone index are correctly displayed and can be passed if endpoints may be link-local addresses.</t>
      </section>
      <section anchor="connectivity-checks">
        <name>Connectivity Checks</name>
        <t>Some applications perform connectivity checks to determine whether Internet access is available by trying to connect to one or more well-known endpoints.
If the connectivity check endpoints differ from the actual endpoints used by the application, this approach can lead to incorrect conclusions -
especially in IPv6-only environments when connectivity checks are IPv4-only or in environments with strict network polices or split-tunnel VPNs.
Applications should prefer implementing appropriate error handling for connectivity issues than relying on connectivity pre-checks.</t>
      </section>
      <section anchor="address-bindings-in-server-backends">
        <name>Address Bindings in Server Backends</name>
        <t>Some backend services use the remote IP address of previous requests as an additional security mechanism and prevent subsequent requests from different addresses.
Address changes, e.g., through Happy Eyeballs implementations trying switching address family or carrier grade NAT64 implementations mapping subsequent request to a different source, may therefore break within a session on these events.</t>
      </section>
      <section anchor="misbehaving-middleboxes">
        <name>Misbehaving Middleboxes</name>
        <t>In practice, many IPv6-related regressions uncovered during testing turn out to be caused by hidden components outside of the application developers' control.
Middleboxes (e.g., firewalls, virus scanners, and intrusion detection systems) can break end-to-end tests in surprising ways, like terminating TLS sessions over IPv6 with certain extensions in the <em>TLS client hello</em> while correctly passing the same flow over IPv4.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>Lab testing of applications for IPv6 compliance should always have the next step in mind: Deploying the application and providing the users with decent IPv6 support.
Therefore, end-to-end tests, especially of cloud applications, should also keep deployment steps, prerequisites, and risks in mind.</t>
      <t>This section discusses some issues to keep in mind when planning and executing IPv6 testing.</t>
      <section anchor="operational-scope-software-lifecycle">
        <name>Operational Scope &amp; Software Lifecycle</name>
        <t>Depending on the application and deployment model, the timing of deploying IPv6 support may be in control of the users' organization, the developers' organization, or neither of them.</t>
        <t>Based on this setup, certain combinations of IPv6-enabled clients, servers, and infrastructure in between may or may not be excluded from consideration.
Therefore, it <bcp14>MAY</bcp14> be necessary to add test cases for old software versions with known and already fixed bugs against newly IPv6-enabled servers.
If regressions and service disruptions cannot be ruled out by the tests, a per-user or per-customer tenant opt-in/opt-out/roll-back scheme for the IPv6 enablement <bcp14>SHOULD</bcp14> be considered.</t>
      </section>
      <section anchor="allow-deny-lists">
        <name>Allow &amp; Deny Lists</name>
        <t>Application-level IP allow and deny lists pose a special challenge for deploying IPv6 in a cloud application.
As users may already have IPv6 connectivity, adding IPv6 support to the server may cause clients to use IPv6 immediately.
Having no allow list entry for the users' IPv6 addresses results in service disruptions.
Happy Eyeballs as defined in <xref target="RFC8305"/> does not solve the problem as allow list checks usually take place after the transport connection has already been established.</t>
        <t>To prevent unintended exposure of services and mitigate allow or deny lists causing service disruptions when enabling IPv6,
it is <bcp14>RECOMMENDED</bcp14> to enable including IPv6 addresses in allow and deny lists way before rolling out IPv6 on the transport and communicated towards the users.
To further limit the probability of service disruptions, generalizing Happy Eyeballs to re-try using IPv4 after certain error conditions should be evaluated.</t>
      </section>
      <section anchor="component-and-service-reuse">
        <name>Component and Service Reuse</name>
        <t>If components or cloud services can be reused in other products, special care needs to be taken when planning IPv6 deployment.
The interaction contracts between the reusing parties and the service need to be checked
whether IPv6 enablement of the services also affects the flows of these.
Additional end-to-end tests, including the reusing parties, are recommended.
This is often a recursive process.</t>
      </section>
      <section anchor="ownership-of-software-components">
        <name>Ownership of Software Components</name>
        <t>Sometimes enabling IPv6 requires touching components that are not actively maintained anymore.
Operators have to be prepared for this and plan extra time or budget for updating or replacing these components.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The testing procedures described in this document do not create any new security implications.
Some security-related issues that should be considered and ruled out by appropriate testing are discussed in <xref target="failures"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="IPv6-ONLY">
          <front>
            <title>IPv6 Terminology Definitions</title>
            <author fullname="Jordi Palet Martinez" initials="J. P." surname="Martinez">
              <organization>The IPv6 Company</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   This document defines the terminology regarding the usage of
   expressions such as "IPv6-Only" and "IPv6-Mostly", in order to avoid
   confusions when using them in IETF and other documents.  In
   particular, a goal is to provide a reference that describes the
   actual "IPv6-Only" functionality being used in a given scope, not the
   installed protocol stack support.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-ipv6-only-06"/>
        </reference>
        <reference anchor="CLAT">
          <front>
            <title>464XLAT Customer-side Translator (CLAT): Node Behavior and Recommendations</title>
            <author fullname="Lorenzo Colitti" initials="L." surname="Colitti">
              <organization>Google</organization>
            </author>
            <author fullname="Jen Linkova" initials="J." surname="Linkova">
              <organization>Google</organization>
            </author>
            <author fullname="Tommy Jensen" initials="T." surname="Jensen">
              <organization>Cloudflare</organization>
            </author>
            <date day="5" month="March" year="2026"/>
            <abstract>
              <t>   464XLAT defines an architecture for providing IPv4 connectivity
   across an IPv6-only network.  The solution involves two functional
   elements: a provider-side translator (PLAT) and a customer-side
   translator (CLAT).  This document updates the 464XLAT specification
   (RFC6877) and Requirements for IPv6 Customer Edge Routers (RFC8585)
   by further defining CLAT node behavior and IPv6 Customer Edge Routers
   to support IPv4-as-a-Service by providing recommendations for node
   developers on enabling and disabling CLAT.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-claton-16"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <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 fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="March" year="1997"/>
              <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 fullname="B. Leiba" initials="B." surname="Leiba"/>
              <date month="May" year="2017"/>
              <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>
        </referencegroup>
        <reference anchor="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>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="RFC4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t>This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </reference>
        <reference anchor="RFC9844">
          <front>
            <title>Entering IPv6 Zone Identifiers in User Interfaces</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="August" year="2025"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined in the IPv6 Scoped Address Architecture specification (RFC 4007), should be entered into a user interface. This document obsoletes RFC 6874 and updates RFCs 4007, 7622, and 8089.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9844"/>
          <seriesInfo name="DOI" value="10.17487/RFC9844"/>
        </reference>
        <reference anchor="RFC4007">
          <front>
            <title>IPv6 Scoped Address Architecture</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="B. Zill" initials="B." surname="Zill"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes. According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4007"/>
          <seriesInfo name="DOI" value="10.17487/RFC4007"/>
        </reference>
        <reference anchor="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>
        <reference anchor="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>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="RFC6724">
          <front>
            <title>Default Address Selection for Internet Protocol Version 6 (IPv6)</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <author fullname="R. Draves" initials="R." surname="Draves"/>
            <author fullname="A. Matsumoto" initials="A." surname="Matsumoto"/>
            <author fullname="T. Chown" initials="T." surname="Chown"/>
            <date month="September" year="2012"/>
            <abstract>
              <t>This document describes two algorithms, one for source address selection and one for destination address selection. The algorithms specify default behavior for all Internet Protocol version 6 (IPv6) implementations. They do not override choices made by applications or upper-layer protocols, nor do they preclude the development of more advanced mechanisms for address selection. The two algorithms share a common context, including an optional mechanism for allowing administrators to provide policy that can override the default behavior. In dual-stack implementations, the destination address selection algorithm can consider both IPv4 and IPv6 addresses -- depending on the available source addresses, the algorithm might prefer IPv6 addresses over IPv4 addresses, or vice versa.</t>
              <t>Default address selection as defined in this specification applies to all IPv6 nodes, including both hosts and routers. This document obsoletes RFC 3484. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6724"/>
          <seriesInfo name="DOI" value="10.17487/RFC6724"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7084bis">
          <front>
            <title>Basic Requirements for IPv6 Customer Edge Routers</title>
            <author fullname="Gábor Lencse" initials="G." surname="Lencse">
              <organization>Széchenyi István University</organization>
            </author>
            <author fullname="Jordi Palet Martinez" initials="J. P." surname="Martinez">
              <organization>The IPv6 Company</organization>
            </author>
            <author fullname="Ben Patton" initials="B." surname="Patton">
              <organization>University of New Hampshire, Interoperability Lab (UNH-IOL)</organization>
            </author>
            <author fullname="Timothy Winters" initials="T." surname="Winters">
              <organization>QA Cafe</organization>
            </author>
            <date day="1" month="November" year="2026"/>
            <abstract>
              <t>   This document specifies requirements for an IPv6 Customer Edge (CE)
   router.  Specifically, the current version of this document focuses
   on the basic provisioning of an IPv6 CE router and the provisioning
   of IPv6 hosts attached to it.  The document obsoletes RFC 7084.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-rfc7084bis-08"/>
        </reference>
        <reference anchor="V6MOPS">
          <front>
            <title>IPv6-mostly Networks: Deployment and Operations Considerations</title>
            <author fullname="Nick Buraglio" initials="N." surname="Buraglio">
              <organization>Energy Sciences Network</organization>
            </author>
            <author fullname="Ondřej Caletka" initials="O." surname="Caletka">
              <organization>RIPE NCC</organization>
            </author>
            <author fullname="Jen Linkova" initials="J." surname="Linkova">
              <organization>Google</organization>
            </author>
            <date day="29" month="October" year="2026"/>
            <abstract>
              <t>   This document discusses a deployment scenario called "an IPv6-mostly
   network", when IPv6-only and IPv4-enabled endpoints coexist on the
   same network (e.g. local area network (LAN)).  This approach enables
   incremental transition from dual-stack to IPv6-only networks by
   allowing IPv6-capable devices to remain IPv6-only while the network
   is seamlessly supplying IPv4 addresses to those devices that require
   them.  This document discusses the requirements, recommendations, and
   challenges associated with deploying IPv6-mostly networks in
   enterprise and public Wi-Fi environments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-6mops-12"/>
        </reference>
        <reference anchor="RFC6146-bis">
          <front>
            <title>Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers</title>
            <author fullname="Marcelo Bagnulo" initials="M." surname="Bagnulo">
              <organization>UC3M</organization>
            </author>
            <author fullname="Philip Matthews" initials="P." surname="Matthews">
         </author>
            <author fullname="Jordi Palet Martinez" initials="J. P." surname="Martinez">
              <organization>The IPv6 Company</organization>
            </author>
            <date day="4" month="September" year="2026"/>
            <abstract>
              <t>   This document specifies a 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 stateful NAT64
   translator are shared among several IPv6-Only clients.  Stateful
   NAT64 translation also supports IPv4-initiated communications to a
   subset of the IPv6 hosts through configured bindings in the stateful
   NAT64 translator.  When the stateful NAT64 translation is used in
   conjunction with DNS64, no changes are required in either the IPv6
   client or the IPv4 server.

   This document obsoletes RFC 6146.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-rfc6146-bis-16"/>
        </reference>
        <reference anchor="CN-CAC-2023" target="http://www.cac.gov.cn/2023-04/27/c_1684239012351367.htm">
          <front>
            <title>2023 Work Arrangement for Further Promoting Large-scale IPv6 Deployment and Application</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="April" day="27"/>
          </front>
        </reference>
        <reference anchor="US-OMB-M-21-07" target="https://www.whitehouse.gov/wp-content/uploads/2020/11/M-21-07.pdf">
          <front>
            <title>M-21-07 - Completing the Transition to Internet Protocol Version 6 (IPv6)</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="November" day="19"/>
          </front>
          <seriesInfo name="United States of America Office of Management and Budget" value="Memorandum for Heads of Executive Departments and Agencies"/>
        </reference>
        <reference anchor="DE-BIT-2020-14" target="https://www.cio.bund.de/SharedDocs/downloads/Webs/CIO/DE/cio-bund/steuerung-it-bund/beschluesse_cio-board_KoITB/2020_14_Beschluss_Konferenz_IT_Beauftragte.pdf">
          <front>
            <title>Beschluss Nr. 2020/14 - Zukunftsfaehige Netzinfrastrukturen auf Basis von funktionsfiaehigem IPv6</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="November" day="11"/>
          </front>
          <seriesInfo name="Konferenz der IT-Beauftragten der Ressorts" value=""/>
          <annotation>Original link is broken - cached copy available at https://raw.githubusercontent.com/ietf-wg-v6ops/draft-itef-v6ops-ipv6-app-testing/refs/tags/draft-ietf-v6ops-ipv6-app-testing-05/references/DE-BIT-2020-14.pdf</annotation>
        </reference>
        <reference anchor="CZ-ENDv4" target="https://konecipv4.cz/">
          <front>
            <title>Czech Republic sets IPv4 end date</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="January" day="17"/>
          </front>
        </reference>
        <reference anchor="US-NIST.SP.500-267Ar1" target="https://nvlpubs.nist.gov/nistpubs/specialpublications/NIST.SP.500-267Ar1.pdf">
          <front>
            <title>NIST Special Publication 500-267 Revision 1 - NIST IPv6 Profile</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="November" day="23"/>
          </front>
        </reference>
        <reference anchor="iCloud-Private-Relay" target="https://developer.apple.com/videos/play/wwdc2021/10096/">
          <front>
            <title>Apple iCLoud Private Relay (WWDC2021)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IPvFoo" target="https://pmarks.net/ipvfoo">
          <front>
            <title>IPvFoo - a Chrome/Firefox extension that adds an icon to indicate whether the current page was fetched using IPv4 or IPv6.</title>
            <author initials="P." surname="Marks" fullname="Paul Marks">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Wireshark" target="https://www.wireshark.org/">
          <front>
            <title>Wireshark packet tracer</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="C-ARES" target="https://c-ares.org/">
          <front>
            <title>C-ARES - a modern DNS (stub) resolver library, written in C</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Selenium" target="https://www.selenium.dev/">
          <front>
            <title>Selenium WebDriver</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NGINX.trac-552" target="https://trac.nginx.org/nginx/ticket/552">
          <front>
            <title>Nginx doesn't honor net.ipv6.conf.all.disable_ipv6</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC5118">
          <front>
            <title>Session Initiation Protocol (SIP) Torture Test Messages for Internet Protocol Version 6 (IPv6)</title>
            <author fullname="V. Gurbani" initials="V." surname="Gurbani"/>
            <author fullname="C. Boulton" initials="C." surname="Boulton"/>
            <author fullname="R. Sparks" initials="R." surname="Sparks"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>This document provides examples of Session Initiation Protocol (SIP) test messages designed to exercise and "torture" the code of an IPv6-enabled SIP implementation. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5118"/>
          <seriesInfo name="DOI" value="10.17487/RFC5118"/>
        </reference>
        <reference anchor="RFC8504">
          <front>
            <title>IPv6 Node Requirements</title>
            <author fullname="T. Chown" initials="T." surname="Chown"/>
            <author fullname="J. Loughney" initials="J." surname="Loughney"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>This document defines requirements for IPv6 nodes. It is expected that IPv6 will be deployed in a wide range of devices and situations. Specifying the requirements for IPv6 nodes allows IPv6 to function well and interoperate in a large number of situations and deployments.</t>
              <t>This document obsoletes RFC 6434, and in turn RFC 4294.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="220"/>
          <seriesInfo name="RFC" value="8504"/>
          <seriesInfo name="DOI" value="10.17487/RFC8504"/>
        </reference>
        <reference anchor="RFC8925">
          <front>
            <title>IPv6-Only Preferred Option for DHCPv4</title>
            <author fullname="L. Colitti" initials="L." surname="Colitti"/>
            <author fullname="J. Linkova" initials="J." surname="Linkova"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>This document specifies a DHCPv4 option to indicate that a host supports an IPv6-only mode and is willing to forgo obtaining an IPv4 address if the network provides IPv6 connectivity. It also updates RFC 2563 to specify DHCPv4 server behavior when the server receives a DHCPDISCOVER not containing the Auto-Configure option but containing the new option defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8925"/>
          <seriesInfo name="DOI" value="10.17487/RFC8925"/>
        </reference>
        <reference anchor="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>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="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>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="RFC3261">
          <front>
            <title>SIP: Session Initiation Protocol</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="G. Camarillo" initials="G." surname="Camarillo"/>
            <author fullname="A. Johnston" initials="A." surname="Johnston"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="R. Sparks" initials="R." surname="Sparks"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="E. Schooler" initials="E." surname="Schooler"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3261"/>
          <seriesInfo name="DOI" value="10.17487/RFC3261"/>
        </reference>
        <reference anchor="RFC5954">
          <front>
            <title>Essential Correction for IPv6 ABNF and URI Comparison in RFC 3261</title>
            <author fullname="V. Gurbani" initials="V." role="editor" surname="Gurbani"/>
            <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
            <author fullname="B. Tate" initials="B." role="editor" surname="Tate"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document corrects the Augmented Backus-Naur Form (ABNF) production rule associated with generating IPv6 literals in RFC 3261. It also clarifies the rule for Uniform Resource Identifier (URI) comparison when the URIs contain textual representation of IP addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5954"/>
          <seriesInfo name="DOI" value="10.17487/RFC5954"/>
        </reference>
        <reference anchor="RFC8489">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with NAT traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution.</t>
              <t>This document obsoletes RFC 5389.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8489"/>
          <seriesInfo name="DOI" value="10.17487/RFC8489"/>
        </reference>
        <reference anchor="RFC8656">
          <front>
            <title>Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="T. Reddy" initials="T." role="editor" surname="Reddy"/>
            <author fullname="A. Johnston" initials="A." role="editor" surname="Johnston"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>If a host is located behind a NAT, it can be impossible for that host to communicate directly with other hosts (peers) in certain situations. In these situations, it is necessary for the host to use the services of an intermediate node that acts as a communication relay. This specification defines a protocol, called "Traversal Using Relays around NAT" (TURN), that allows the host to control the operation of the relay and to exchange packets with its peers using the relay. TURN differs from other relay control protocols in that it allows a client to communicate with multiple peers using a single relay address.</t>
              <t>The TURN protocol was designed to be used as part of the Interactive Connectivity Establishment (ICE) approach to NAT traversal, though it can also be used without ICE.</t>
              <t>This document obsoletes RFCs 5766 and 6156.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8656"/>
          <seriesInfo name="DOI" value="10.17487/RFC8656"/>
        </reference>
        <reference anchor="RFC6555">
          <front>
            <title>Happy Eyeballs: Success with Dual-Stack Hosts</title>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <date month="April" year="2012"/>
            <abstract>
              <t>When a server's IPv4 path and protocol are working, but the server's IPv6 path and protocol are not working, a dual-stack client application experiences significant connection delay compared to an IPv4-only client. This is undesirable because it causes the dual- stack client to have a worse user experience. This document specifies requirements for algorithms that reduce this user-visible delay and provides an algorithm. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6555"/>
          <seriesInfo name="DOI" value="10.17487/RFC6555"/>
        </reference>
        <reference anchor="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>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="RFC6762">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </reference>
        <reference anchor="RFC10001">
          <front>
            <title>Operational Guidelines for DNS Transport in Mixed IPv4/IPv6 Environments</title>
            <author fullname="Momoka" surname="Momoka"/>
            <author fullname="T. Fiebig" initials="T." surname="Fiebig"/>
            <date month="August" year="2026"/>
            <abstract>
              <t>This document provides guidelines and documents best current practice for operating authoritative DNS servers, recursive resolvers, and stub resolvers in a mixed IPv4/IPv6 environment. This document recommends that both authoritative DNS servers and recursive resolvers support IPv4 and IPv6. It also provides guidance on how recursive DNS resolvers should select upstream DNS servers, including when IPv4-embedded IPv6 addresses are available.</t>
              <t>This document obsoletes RFC 3901.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="91"/>
          <seriesInfo name="RFC" value="10001"/>
          <seriesInfo name="DOI" value="10.17487/RFC10001"/>
        </reference>
        <reference anchor="RFC3927">
          <front>
            <title>Dynamic Configuration of IPv4 Link-Local Addresses</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="E. Guttman" initials="E." surname="Guttman"/>
            <date month="May" year="2005"/>
            <abstract>
              <t>To participate in wide-area IP networking, a host needs to be configured with IP addresses for its interfaces, either manually by the user or automatically from a source on the network such as a Dynamic Host Configuration Protocol (DHCP) server. Unfortunately, such address configuration information may not always be available. It is therefore beneficial for a host to be able to depend on a useful subset of IP networking functions even when no address configuration is available. This document describes how a host may automatically configure an interface with an IPv4 address within the 169.254/16 prefix that is valid for communication with other devices connected to the same physical (or logical) link.</t>
              <t>IPv4 Link-Local addresses are not suitable for communication with devices not directly connected to the same physical (or logical) link, and are only used where stable, routable addresses are not available (such as on ad hoc or isolated networks). This document does not recommend that IPv4 Link-Local addresses and routable addresses be configured simultaneously on the same interface. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3927"/>
          <seriesInfo name="DOI" value="10.17487/RFC3927"/>
        </reference>
        <reference anchor="RFC3484">
          <front>
            <title>Default Address Selection for Internet Protocol version 6 (IPv6)</title>
            <author fullname="R. Draves" initials="R." surname="Draves"/>
            <date month="March" year="2003"/>
            <abstract>
              <t>This document describes two algorithms, for source address selection and for destination address selection. The algorithms specify default behavior for all Internet Protocol version 6 (IPv6) implementations. They do not override choices made by applications or upper-layer protocols, nor do they preclude the development of more advanced mechanisms for address selection. The two algorithms share a common context, including an optional mechanism for allowing administrators to provide policy that can override the default behavior. In dual stack implementations, the destination address selection algorithm can consider both IPv4 and IPv6 addresses - depending on the available source addresses, the algorithm might prefer IPv6 addresses over IPv4 addresses, or vice-versa. All IPv6 nodes, including both hosts and routers, must implement default address selection as defined in this specification. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3484"/>
          <seriesInfo name="DOI" value="10.17487/RFC3484"/>
        </reference>
      </references>
    </references>
    <?line 624?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to
Andrew Yourtchenko,
Axel Schemberg,
Brian E Carpenter,
Holger Fuessler,
Jeremy Duncan,
Jordi Palet,
Michael Perscheid,
Michael Richardson,
Mohamed Boucadair,
Nathan Sherrard,
Sulabh Soneji,
and
Tommy Jensen
for the discussions, the input, and all contribution.</t>
      <t>Special thanks to Jen Linkova and Timothy Winters for advise on how to shape the document and finding the right set of authors.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V9+3fbWHLm7/wrsO5z0pKXpCS3LNvKU5btac3YkmLJ0zPJ
ybpB8pLECAQYPCSzFf/vW19V3RcIerqT7GZyTtoCgfusW4+vHnc0Gg3uT5Mf
BnWTFrPPaV4W5jTZmHpQr9Kq+fzvbdmY+jQpysE6O03+tSmnw6Quq6Yy85r+
tVnhH/82aLImpw+f3Jq6yYpFcrZe59k0bbKyqL9PLq7vT5Kbdr2mD58M0smk
MtTpk2x9fzJK1+tRI189GczKaZGuqKFZlc6bUWaa+ej+pFzXo+67o8OXg7qd
rLK6pj6azZo+unh7+25AnZpFWW1Ok8l0PcjW1WnSVG3dPDs8fHX4bJBWJqWu
r9amktElNO/kQ1qkC7MyBQ3vYXGacJ+DO7N5KKvZ6SBJRslF0ZiqxGeTLM+a
DT98Y9Z5ucF3/KdrVb7ArN+lWd5Wxj+oTXWfTeXBH9M8m/kPgkVLZube5Ohu
MLg3RWswiEXWLNvJacLL8rCQlTnQpWrMrqXCl1XZrmnaPAI/9yeDQdo2y7Ki
1kf0WpLM2zyXHbhe0jTX6+RmnNxmpjY5/15Wi7TIfuHPT5Obs+vk5i3/YFY0
0VP+J6aylq//qeFPx4Vpuj+N5ad/qtP1eFqutgfwh01ukqvW5LlpGtPT+6ci
uzdVTXuRlPPk0jwkP6ardb3MKrO1W8n7dFJzG5b6Pl3+OLq4eh8MPrkrbW//
lJX5uC2WYzNrt0f22hTJddo0vG3/z0c1WXNX0ZAGRVmtqMN7pgvs6ujq8v2f
6QiM3oy7p6YsclDr+fuz260XpnmKaQyyYh62+PHd+YvDl8eTrN76oppP9Sd6
748nH66ub7beOVnh+HAzJ0fHJ6Md7djfMLjL0fnZ+ejZ4bMfhIiatFqY5jRZ
Ns369ODg4eFhPE2n40V5P54WB3hvdHh88OzFwfTz0cnL42c/vDo8evbD86Mf
Tl6Ml81K2hCmhJeTn8rqLjmrqrSQc57QfJN3bdUsTZVcV+WqZL71Ht2O6mlK
tMeHxZ9wZhTBEeUu6PRqDzSc0bMX9PDTzejqw+vRh9Gzo9Hhi+3Z1DqdhyWd
2WXZ1gazOnhYj6bEyKijg5a6TGc1Znl4cHR0oE2N17N5OC99TEfqvFytiW4x
AZpPckuzJAIEG2lKITo6gJglse8yT/4I+qQfT5I9zHGfGyW+RAcSdGBPMVFy
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
oHVFB0IGARup0Hz/rgXYFi1D7uNBnJHTLYjhsACpt4YKupkuHvN8Lo9vpYSW
4TngmC5XBAeNDOCHtaiwlMGMAr2FL9ol5dgSXR5flx2Mgn14qJgzQRkoeNd5
S2TXgz3ZFOlKhYIADB5K8m9xmITnPhYvxGnvknBZBeQbhSrbhbMnwNWm5UQq
FL1VF2UwahuJK1EHyNKWCzUYH5DaGN2Tehaymjcg+8fvIstV9zEuJCw+835W
5WMtLa8LWHsPGMAm+L6GYUcPhYEy+GLZrEYG9UWtsDcsii2jSV+h9rgtcRxR
RlZ7VLw/Wi4q798JrrTyng5ZCRGXj5OzHP6FxVIDjZ6/ev6M9EgHdXHVeft2
Ire2SQpYLGRVbCiYhK6hhSqfUBQLFmpuFnQoVrC2w6g5vzDcAxcW59C42hlR
nLO2M0LQF7tcuVW2to9Eg84yDkEHR9MCL8j0tx5SkihL0g2Iq4bIYhGsHbtM
R0RDhfgwaxpdx3do3UBuNj8/Ozw8Op1NXp6eHv1swVR780wa/n7o/u/o56E+
P+QP2ck4xlNWWd16iFuTy1a5fIMpF5IH5cqlG+xF56iu2thURT4CflqZjZbY
mp/HUH0dEVJwQCz5ZjjQS3YCX5VWJfH1xi0TsAmSfNBc4Wul5KDknSjqjtpg
YVSbLnmLpe60uWWpqSiYpGXtqG8IWHoHtQzt9kOi2JUYQse2db/rdoLSBJ4W
hnpSrQAJFrCwFzNIWSxLwUwadUb9K97LKvQ3z+xJvC9QtGnRg2iarNhGWB2b
apt1a10i1IvqJaIT8JgkhCT5/c3V5TD589mH98Pk9gr/H5/86cN79BRxAXeX
gGMH/mDI0VKV8Ntn01MSaq50HL/fSnYQd1c8JtbR/T50V61wo8Cch4O09nXv
yGbvvR6GV2VncT4LTAlrs4F6MuPtqODAfRjEBIe14G5gYxvU2h0MLlOnGbnI
F1c8KkBdAl1GganACODOgqJyX4nv8YJbbx8ZaoWAarVhybbVHDVhj8yulLUL
n1UXHvmhLbqWtOsQlrOSrzdMj36cZHwRg+Ze8H0cUUSexnLsKMIVA2RkXjfM
B5lFaoZGmjvzjewhUjq57sptNPhuIt6CK/R1iV1rhGHtaI47fcUehEE9U6WL
pHa7zVqxMVbxVaPX6ktu/0ClxFqzOVtAPfWRbJQNl2plzUB4oerTZF3I6mvY
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
AtvixS7TSrPypH4Ibd7/BZ6elMkmrwAA

-->

</rfc>
