<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-caletka-aaaa-filtering-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="AAAA filtering considerations">A recommendation for filtering address records in stub resolvers</title>
    <seriesInfo name="Internet-Draft" value="draft-caletka-aaaa-filtering-00"/>
    <author fullname="Ondřej Caletka">
      <organization>RIPE NCC</organization>
      <address>
        <email>ondrej@caletka.cz</email>
      </address>
    </author>
    <date year="2025" month="June" day="24"/>
    <area>OPS</area>
    <workgroup>IPv6 operations</workgroup>
    <keyword>IPv6</keyword>
    <keyword>DNS</keyword>
    <keyword>Address records</keyword>
    <abstract>
      <?line 55?>

<t>Since IPv4 and IPv6 addresses are represented by different resource records in
the DNS, operating systems capable of running both IPv4 and IPv6 need to make
two queries when resolving a host name. This document discusses conditions, under
which the stub resolver can optimize the process by not sending one of the
queries if the host is connected to a single-stack network.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://oskar456.github.io/ietf-aaaa-filtering/draft-caletka-aaaa-filtering.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-caletka-aaaa-filtering/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/oskar456/ietf-aaaa-filtering"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Most operating systems support both IPv6 and IPv4 networking stack. When such a
host is connected to a dual-stack network, whenever a process requests
resolution of a DNS name, two DNS queries need to be issued - one for an A
record representing IPv4 address, one for a AAAA record representing IPv6
address. The results of such queries are then merged and ordered based on
<xref target="RFC6724"/> or used as input for the Happy Eyeballs algorithm <xref target="RFC8305"/>.</t>
      <t>When such a host is connected to a single-stack network, only one DNS query need
to be sent: there is no point of sending out AAAA record query if the host has
no IPv6 connectivity or sending out A query if the host has no IPv4
connectivity. Such an optimization however has to consider any possible mean of
obtaining connectivity for particular address family: including but not limited
to IPv6 Transition Mechanisms or VPNs.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="connectivity-detection-algorithm">
      <name>Connectivity detection algorithm</name>
      <t>Whenever an application asks the stub resolver to resolve a domain name without
specifying address family, stub resolver follows this algorithm for each address
family supported by the operating system:</t>
      <ol spacing="normal" type="1"><li>
          <t>Read routing table of the address family.</t>
        </li>
        <li>
          <t>Remove all routes towards Link-Local destinations from the routing table, ie. remove addresses from Section 2.5.6 of <xref target="RFC4291"/> for IPv6 routing table and remove addresses from <xref target="RFC3927"/> for IPv4 routing table.</t>
        </li>
        <li>
          <t>If the routing table is not empty, send the corresponding name query to the DNS:
AAAA query for IPv6, A query for IPv4.</t>
        </li>
      </ol>
      <t>It is necessary to consider ANY route towards non Link-Local address space and
not just default route and/or default network interface. Such a detection would
cause issues with Split-mode VPNs providing only particular routes for the
resources reachable via VPN.</t>
    </section>
    <section anchor="filtering-dns-results">
      <name>Filtering DNS results</name>
      <t>If the host does not have a full connectivity for both address families (there
are no default gateways for both IPv4 and IPv6), it is possible that the IP(v6)
address obtained from the DNS falls into the address space not covered by a
route. This should not be problem for a properly written applications, since
<xref target="RFC6724"/> requires applications to try connecting to all addresses received from
the stub resolver.</t>
      <t>However, in order to minimize impact on poorly designed applications, the stub
resolver <bcp14>MAY</bcp14> remove addresses not covered by an entry in the routing table from
the list of DNS query results sent to the application.</t>
      <section anchor="filtering-ipv4-mapped-addresses">
        <name>Filtering IPv4-mapped addresses</name>
        <t>As an extension to the filtering of DNS results, the stub resolver <bcp14>MAY</bcp14> also
remove IPv4-mapped IPv6 addresses (Section 2.5.5.2 of <xref target="RFC4291"/>) from the list of DNS
query results sent to the application.</t>
        <t>IPv4-mapped IPv6 addresses are not valid destination addresses <xref target="IANA"/>,
therefore they should never appear in AAAA records. Sending IPv4-mapped IPv6
address to the application might cause address family confusion for applications
using IPv4 compatibility of IPv6 sockets <xref target="RFC3493"/>.</t>
      </section>
    </section>
    <section anchor="effects-of-not-doing-address-record-filtering">
      <name>Effects of not doing address record filtering</name>
      <t>The optimization described above is <bcp14>OPTIONAL</bcp14>. A stub resolver of a dual-stack
capable host can always issue both A and AAAA queries to the DNS, merge and
order the results and send them to the application even if it has only a
single-stack connectivity. Sending packets to a destination not covered by an
entry in the routing table will be immediately refused, so a properly written
application will quickly fall through the list of addresses to the one using the
same address family as the connectivity of the host.</t>
      <t>However, it should be noted that such behavior increases load on the DNS system.
If such an optimization is removed (for instance by a software update) on a
large single-stack networks, this might overload parts of the DNS
infrastructure, since the number of queries doubles.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Reducing the number of queries allows an attacker observing the DNS traffic to
figure out which address families the host uses.</t>
      <t>Sudden disabling of the optimization can overload parts of the DNS
infrastructure due to doubling the number of queries.</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="RFC3493">
          <front>
            <title>Basic Socket Interface Extensions for IPv6</title>
            <author fullname="R. Gilligan" initials="R." surname="Gilligan"/>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="J. Bound" initials="J." surname="Bound"/>
            <author fullname="J. McCann" initials="J." surname="McCann"/>
            <author fullname="W. Stevens" initials="W." surname="Stevens"/>
            <date month="February" year="2003"/>
            <abstract>
              <t>The de facto standard Application Program Interface (API) for TCP/IP applications is the "sockets" interface. Although this API was developed for Unix in the early 1980s it has also been implemented on a wide variety of non-Unix systems. TCP/IP applications written using the sockets API have in the past enjoyed a high degree of portability and we would like the same portability with IPv6 applications. But changes are required to the sockets API to support IPv6 and this memo describes these changes. These include a new socket address structure to carry IPv6 addresses, new address conversion functions, and some new socket options. These extensions are designed to provide access to the basic IPv6 features required by TCP and UDP applications, including multicasting, while introducing a minimum of change into the system and providing complete compatibility for existing IPv4 applications. Additional extensions for advanced IPv6 features (raw sockets and access to the IPv6 extension headers) are defined in another document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3493"/>
          <seriesInfo name="DOI" value="10.17487/RFC3493"/>
        </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="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="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>
        <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="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">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5684">
          <front>
            <title>Unintended Consequences of NAT Deployments with Overlapping Address Space</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="B. Ford" initials="B." surname="Ford"/>
            <date month="February" year="2010"/>
            <abstract>
              <t>This document identifies two deployment scenarios that have arisen from the unconventional network topologies formed using Network Address Translator (NAT) devices. First, the simplicity of administering networks through the combination of NAT and DHCP has increasingly lead to the deployment of multi-level inter-connected private networks involving overlapping private IP address spaces. Second, the proliferation of private networks in enterprises, hotels and conferences, and the wide-spread use of Virtual Private Networks (VPNs) to access an enterprise intranet from remote locations has increasingly lead to overlapping private IP address space between remote and corporate networks. This document does not dismiss these unconventional scenarios as invalid, but recognizes them as real and offers recommendations to help ensure these deployments can function without a meltdown. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5684"/>
          <seriesInfo name="DOI" value="10.17487/RFC5684"/>
        </reference>
        <reference anchor="IANA" target="https://www.iana.org/assignments/iana-ipv6-special-registry">
          <front>
            <title>IANA IPv6 Special-Purpose Address Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 173?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
