<?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-01" 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-01"/>
    <author fullname="Ondřej Caletka">
      <organization>RIPE NCC</organization>
      <address>
        <email>ondrej@caletka.cz</email>
      </address>
    </author>
    <date year="2025" month="July" day="06"/>
    <area>OPS</area>
    <workgroup>IPv6 operations</workgroup>
    <keyword>IPv6</keyword>
    <keyword>DNS</keyword>
    <keyword>Address records</keyword>
    <abstract>
      <?line 62?>

<t>Since IPv4 and IPv6 addresses are represented by different resource records in
the Domain Name System, operating systems capable of running both IPv4 and IPv6 need to execute
two queries when resolving a host name. This document discusses the conditions under
which a 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>
        Discussion of this document takes place on the
        v6ops Working Group mailing list (<eref target="mailto:v6ops@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/v6ops/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/v6ops/"/>.
      </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 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Most operating systems support both the IPv6 and the 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 an IPv4 address, and one for a AAAA record representing an 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
needs to be performed: there is no reason for querying for a AAAA record if the
host has no IPv6 connectivity, the same way there is no reason to look for an A
record if the host has no IPv4 connectivity. Such an optimization however has to
consider any possible means of obtaining connectivity for a particular address
family, including but not limited to IPv6 Transition Mechanisms or VPNs.</t>
      <t>Please note that Multicast DNS <xref target="RFC6762"/> or similar link-local name resolution
protocols are not considered in scope of this document.</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-algorithms">
      <name>Connectivity detection algorithms</name>
      <t>Whenever an application asks the stub resolver to resolve a domain name without
specifying the address family, the stub resolver follows one of the algorithms
specified below:</t>
      <section anchor="routing-table-based-algorithm">
        <name>Routing table based algorithm</name>
        <t>This algorithm assumes that the host has connectivity of particular address
family if there is at least one route to a destination that is not in Link-Local
address space. If there are only routes for destinations in the Link-Local
address space, the host is not able to send any packets towards any destination
address that could be possibly obtained from the DNS. Therefore, sending an
address query for that particular address family is unnecessary.</t>
        <t>For each address family supported by the operating system:</t>
        <ol spacing="normal" type="1"><li>
            <t>Read the routing table of the address family;</t>
          </li>
          <li>
            <t>Remove all the routes towards Link-Local destinations from the routing table, ie.:
            </t>
            <ul spacing="normal">
              <li>
                <t>remove routes towards addresses from Section 2.5.6 of <xref target="RFC4291"/> from the IPv6 routing table</t>
              </li>
              <li>
                <t>remove routes towards addresses from <xref target="RFC3927"/> from the IPv4 routing table</t>
              </li>
            </ul>
          </li>
          <li>
            <t>If the routing table is not empty, send the corresponding name query to the DNS:
            </t>
            <ul spacing="normal">
              <li>
                <t>AAAA query for IPv6</t>
              </li>
              <li>
                <t>A query for IPv4</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
      <section anchor="ip-address-based-algorithm">
        <name>IP address based algorithm</name>
        <t>As an alternative to analyzing the routing tables, the stub resolver might
choose to determine the connectivity by looking at the addresses configured on
all network interfaces. This is similar to an application using the flag
<tt>AI_ADDRCONFIG</tt> when interacting with the stub resolver using <tt>getaddrinfo()</tt>
function <xref target="GAI"/>.</t>
        <t>For each address family supported by the operating system:</t>
        <ol spacing="normal" type="1"><li>
            <t>Collect all addresses configured on all interfaces</t>
          </li>
          <li>
            <t>Remove all Link-Local addresses from the list, ie.:
            </t>
            <ul spacing="normal">
              <li>
                <t>remove addresses from Section 2.5.6 of <xref target="RFC4291"/> from the list of IPv6 addresses</t>
              </li>
              <li>
                <t>remove addresses from <xref target="RFC3927"/> from the list of IPv4 addresses</t>
              </li>
            </ul>
          </li>
          <li>
            <t>If the list of addresses is not empty, send the corresponding name query to the DNS:
            </t>
            <ul spacing="normal">
              <li>
                <t>AAAA query for IPv6</t>
              </li>
              <li>
                <t>A query for IPv4</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="connectivity-detection-considerations">
      <name>Connectivity detection considerations</name>
      <t>When detecting the connectivity presence, it is necessary to consider ANY routes
towards non Link-Local address space and/or IP addresses on ALL interfaces and
not just the default route and/or just the default network interface. The
implementations <bcp14>SHOULD NOT</bcp14> try to determine connectivity by hardcoding a
particular publicly reachable IP address <xref target="CHROME"/>.</t>
      <t>Improper detection can cause issues for:</t>
      <ul spacing="normal">
        <li>
          <t>private networks without reachability to the Internet</t>
        </li>
        <li>
          <t>VPN tunnels using different address family than the native address
family of the host, providing possibly only a limited subset of routes
(split-mode VPN)</t>
        </li>
      </ul>
    </section>
    <section anchor="filtering-dns-results">
      <name>Filtering DNS results</name>
      <t>If the host does not have 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 application, since
<xref target="RFC6724"/> requires applications to try connecting to all addresses received from
the stub resolver.</t>
      <t>However, in order to minimize the 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
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 iterate through the list of addresses and finally
select 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 network, this might overload parts of the DNS
infrastructure, since the number of queries will double.</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>Suddendly disabling 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="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="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="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>
        <reference anchor="GAI" target="https://pubs.opengroup.org/onlinepubs/9799919799/functions/freeaddrinfo.html">
          <front>
            <title>freeaddrinfo, getaddrinfo - The Open Group Base Specifications Issue 8, IEEE Std 1003.1-2024</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CHROME" target="https://chromium.googlesource.com/chromium/src/+/0de3ceea881115dd18e79e1d9ea4e090c655996b/net/dns/README.md#IPv6-and-connectivity">
          <front>
            <title>Chrome Host Resolution - IPv6 and connectivity</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 224?>

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

-->

</rfc>
