<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-fobser-resinfo-dns64-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Resinfo DNS64">DNS Resolver Information Key for DNS64</title>

    <author initials="F." surname="Obser" fullname="Florian Obser">
      <organization>OpenBSD</organization>
      <address>
        <email>florian+ietf@narrans.de</email>
      </address>
    </author>

    <date year="2024" month="October" day="21"/>

    
    
    

    <abstract>


<?line 37?>
<t>This document specifies a DNS Resolver Information Key/Value pair to
inform DNS clients of the presence of DNS64.</t>



    </abstract>



  </front>

  <middle>


<?line 41?>

<section anchor="introduction"><name>Introduction</name>

<t>DNS64 <xref target="RFC6147"/> performed by a DNS resolver together with NAT64
   <xref target="RFC6146"/> allows an IPv6-only client to initiate communications
   by name to an IPv4-only server. To achieve this, the DNS resolver
   synthesizes AAAA records from A records. However, this breaks
   DNSSEC <xref target="RFC4033"/> <xref target="RFC4034"/> <xref target="RFC4035"/> validation for DNS
   clients of the resolver if they perform their own
   validation. <xref target="RFC6147"/> Section 3 discusses this in detail. In
   general, a validating DNS client has to be aware that a resolver is
   performing DNS64.</t>

<t><xref target="RFC9606"/> specifies a DNS resource record (RR) type RESINFO to
   allow resolvers to publish information about their capabilities
   and policies. This can be used to inform DNS clients that DNS64 is
   performed by the DNS resolver.</t>

<section anchor="requirements-notation"><name>Requirements Notation</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
   and "OPTIONAL" in this document are to be interpreted as described
   in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear
   in all capitals, as shown here.</t>

</section>
</section>
<section anchor="relation-to-rfc-7050"><name>Relation to RFC 7050</name>

<t><xref target="RFC7050"/> describes a heuristic to learn the IPv6 prefix used by a
   NAT64 gateway. Nodes can use this information to perform local
   address synthesis, for example using 464XLAT <xref target="RFC6877"/>.</t>

<t>This has security implications, making <xref target="RFC7050"/> difficult to
   deploy. A modern mechanism, like PREF64 <xref target="RFC8781"/> is easier to
   deploy, leading to a desire to deprecate <xref target="RFC7050"/> entirely.</t>

<t>A validating DNS client on the other hand still needs to know about
   the presence of DNS64 on the DNS resolver it uses, as noted in the
   introduction. Using the <xref target="RFC9606"/> RESINFO mechanism and not using
   the learned information for address synthesis avoids the security
   problems of <xref target="RFC7050"/>.</t>

</section>
<section anchor="dns64-resolver-information-keyvalue"><name>dns64 Resolver Information Key/Value</name>

<dl>
  <dt>dns64:</dt>
  <dd>
    <t>The presence of this key indicates that the DNS resolver performs
address synthesis.
</t>

    <t>Note that, per the rules for the keys defined in Section 6.4 of
<xref target="RFC6763"/>, if there is no '=' in a key, then it is a boolean
attribute, simply identified as being present, with no value.</t>

    <t>The DNS resolver MAY return an IPv6 prefix or a comma separated
list of prefixes to indicate not just that DNS64 is being
performed but also to let the client know which prefix or
prefixes are in use. The prefixes MUST be represented using the
canonical representation format of <xref target="RFC5952"/>.</t>
  </dd>
</dl>

<section anchor="examples"><name>Examples</name>

<t>DNS64 address synthesis is performed by the DNS resolver. No
   information about the used prefix is given.</t>

<figure><artwork><![CDATA[
resolver.example.net. 7200 IN RESINFO dns64
]]></artwork></figure>

<t>DNS64 address synthesis is performed. The <xref target="RFC6052"/> Well-Known
   Prefix 64:ff9b::/96 is used.</t>

<figure><artwork><![CDATA[
resolver.example.net. 7200 IN RESINFO dns64=64:ff9b::/96
]]></artwork></figure>

<t>DNS64 address synthesis is performed. The <xref target="RFC6052"/> Well-Known
   Prefix 64:ff9b::/96 and the Network-Specific Prefix
   2001:db8:64::/56 are used.</t>

<figure><artwork><![CDATA[
resolver.example.net. 7200 IN RESINFO
  dns64=64:ff9b::/96,2001:db8:64::/56
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The security considerations of <xref target="RFC9606"/> apply.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>The IANA is requested to add the key "dns64", with the description
   of "The presence of the key indicates that DNS64 address synthesis
   is performed", and a reference to this document.</t>

<texttable>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>dns64</c>
      <c>The presence of the key indicates that DNS64 address synthesis is performed.</c>
      <c>RFC EDITOR: THIS DOCUMENT</c>
</texttable>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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="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="RFC6763">
  <front>
    <title>DNS-Based Service Discovery</title>
    <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
    <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
    <date month="February" year="2013"/>
    <abstract>
      <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6763"/>
  <seriesInfo name="DOI" value="10.17487/RFC6763"/>
</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>

<reference anchor="RFC9606">
  <front>
    <title>DNS Resolver Information</title>
    <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
    <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
    <date month="June" year="2024"/>
    <abstract>
      <t>This document specifies a method for DNS resolvers to publish information about themselves. DNS clients can use the resolver information to identify the capabilities of DNS resolvers. How DNS clients use such information is beyond the scope of this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9606"/>
  <seriesInfo name="DOI" value="10.17487/RFC9606"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC4033">
  <front>
    <title>DNS Security Introduction and Requirements</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4033"/>
  <seriesInfo name="DOI" value="10.17487/RFC4033"/>
</reference>

<reference anchor="RFC4034">
  <front>
    <title>Resource Records for the DNS Security Extensions</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
      <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4034"/>
  <seriesInfo name="DOI" value="10.17487/RFC4034"/>
</reference>

<reference anchor="RFC4035">
  <front>
    <title>Protocol Modifications for the DNS Security Extensions</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
      <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4035"/>
  <seriesInfo name="DOI" value="10.17487/RFC4035"/>
</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="RFC6146">
  <front>
    <title>Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers</title>
    <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
    <author fullname="P. Matthews" initials="P." surname="Matthews"/>
    <author fullname="I. van Beijnum" initials="I." surname="van Beijnum"/>
    <date month="April" year="2011"/>
  </front>
  <seriesInfo name="RFC" value="6146"/>
  <seriesInfo name="DOI" value="10.17487/RFC6146"/>
</reference>

<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="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="RFC7050">
  <front>
    <title>Discovery of the IPv6 Prefix Used for IPv6 Address Synthesis</title>
    <author fullname="T. Savolainen" initials="T." surname="Savolainen"/>
    <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
    <author fullname="D. Wing" initials="D." surname="Wing"/>
    <date month="November" year="2013"/>
    <abstract>
      <t>This document describes a method for detecting the presence of DNS64 and for learning the IPv6 prefix used for protocol translation on an access network. The method depends on the existence of a well-known IPv4-only fully qualified domain name "ipv4only.arpa.". The information learned enables nodes to perform local IPv6 address synthesis and to potentially avoid NAT64 on dual-stack and multi-interface deployments.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7050"/>
  <seriesInfo name="DOI" value="10.17487/RFC7050"/>
</reference>

<reference anchor="RFC8781">
  <front>
    <title>Discovering PREF64 in Router Advertisements</title>
    <author fullname="L. Colitti" initials="L." surname="Colitti"/>
    <author fullname="J. Linkova" initials="J." surname="Linkova"/>
    <date month="April" year="2020"/>
    <abstract>
      <t>This document specifies a Neighbor Discovery option to be used in Router Advertisements (RAs) to communicate prefixes of Network Address and Protocol Translation from IPv6 clients to IPv4 servers (NAT64) to hosts.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8781"/>
  <seriesInfo name="DOI" value="10.17487/RFC8781"/>
</reference>




    </references>

</references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

