<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<!-- Check output with <http://tools.ietf.org/tools/idnits/> -->

<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.35) -->

<!-- give errors regarding ID-nits and DTD validation -->
<?rfc strict="yes" ?>

<!-- control the table of contents (ToC) -->
<!-- generate a ToC -->
<?rfc toc="no"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<?rfc tocdepth="1"?>

<!-- control references -->
<!-- use anchors instead of numbers for refs, i.e, [RFC2119] instead of [1] -->
<?rfc symrefs="yes"?>
<!-- sort the reference entries alphabetically -->
<?rfc sortrefs="no" ?>

<!-- control vertical white space
     (using these PIs as follows is recommended by the RFC Editor) -->
<!-- do not start each main section on a new page -->
<?rfc compact="yes" ?>
<!-- keep one blank line between list items -->
<?rfc subcompact="no" ?>

<!-- encourage use of "xml2rfc" tool -->
<?rfc rfcprocack="yes" ?>
<!-- end of list of popular I-D processing instructions -->

<rfc category="std" docName="draft-cheshire-sudn-ipv4only-dot-arpa-07" ipr="trust200902" updates="7050">
  <front>
    <title abbrev="Special Name ipv4only.arpa">Special Use Domain Name 'ipv4only.arpa'</title>

    <author initials='S.' surname='Cheshire' fullname='Stuart Cheshire'>
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>1 Infinite Loop</street>
          <city>Cupertino</city>
          <region>California</region>
          <code>95014</code>
          <country>USA</country>
        </postal>
        <phone>+1 408 974 3207</phone>
        <email>cheshire@apple.com</email>
      </address>
    </author>

    <author initials='D.' surname='Schinazi' fullname='David Schinazi'>
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>1 Infinite Loop</street>
          <city>Cupertino</city>
          <region>California</region>
          <code>95014</code>
          <country>USA</country>
        </postal>
        <phone>+1 669 227 9921</phone>
        <email>dschinazi@apple.com</email>
      </address>
    </author>

    <date day='22' month='May' year='2017'/>

    <abstract>
      <t>The specification for how a client discovers its network's NAT64
      prefix [RFC7050] defines the special name 'ipv4only.arpa' for this purpose,
      but declares it to be a non-special name in
      that specification's Domain Name Reservation Considerations section.</t>

      <t>Consequently, despite the well articulated special purpose of the name,
      (at the time of writing) 'ipv4only.arpa' still does not appear as one of the names with special
      properties recorded in the Special-Use Domain Names registry.</t>

      <t>This document formally declares the actual
      special properties of the name, and adds similar declarations
      for the corresponding reverse mapping names.</t>
    </abstract>
  </front>

  <middle>
    <?rfc needLines="10" ?>
    <section title="Introduction">
      <t>The specification for
      <xref target="RFC7050">how a client discovers its network's NAT64 prefix</xref>
      defines the special name 'ipv4only.arpa' for this purpose,
      but declares it to be a non-special name in
      that specification's Domain Name Reservation Considerations section.</t>

      <t>Consequently, despite the well articulated special purpose of the name,
      (at the time of writing) 'ipv4only.arpa' still does not appear as one of the names with special
      properties recorded in the <xref target="SUDN">Special-Use Domain Names registry</xref>.</t>

      <t>This document formally declares the actual
      special properties of the name. This document also adds similar declarations
      for the corresponding reverse mapping names.</t>
    <?rfc needLines="24" ?>
    </section>

    <section title="Specialness of 'ipv4only.arpa'">
      <t>The hostname 'ipv4only.arpa' is peculiar in that it was never intended
      to be treated like a normal hostname.</t>

      <t>A typical client never looks up the IPv4 address records for 'ipv4only.arpa',
      because it is already known, <xref target="RFC7050">by specification</xref>,
      to have exactly two IPv4 address records, 192.0.0.170 and 192.0.0.171.
      No client ever has to look the name in order to learn those two addresses.</t>

      <t>In contrast, clients often look up the IPv6 AAAA address records for
      'ipv4only.arpa', which is contrary to general DNS expectations, given
      that it is already known, <xref target="RFC7050">by specification</xref>,
      that no such IPv6 AAAA address records exist. And yet, clients expect to
      receive, and do in fact receive, positive answers for these IPv6 AAAA
      address records that are known to not exist.</t>

      <?rfc needLines="3" ?>
      <t>This is clearly not a typical DNS name. In normal operation, clients never query for
      the two records that do in fact exist; instead they query for records that
      are known to not exist, and then get positive answers to those abnormal queries.
      Clients are using DNS to perform queries for this name, but they are certainly not
      using DNS to learn legitimate answers from the name's legitimate authoritative server.
      Instead, these clients have, in effect, co-opted the DNS protocol as
      an impromptu client-to-middlebox communication protocol, to communicate with the
      NAT64/DNS64 <xref target="RFC6146"/><xref target="RFC6147"/> gateway,
      if present, and request that it disclose the prefix it is using for IPv6 address synthesis.</t>

      <t>It is this use of specially-crafted DNS queries as an impromptu
      client-to-middlebox communication protocol that makes the name 'ipv4only.arpa'
      most definitely a special name, and one that should
      be listed in IANA's registry along with
      <xref target="SUDN">other DNS names that have special uses</xref>.</t>
    <?rfc needLines="14" ?>
    </section>

    <section title="Consequences of 'ipv4only.arpa' previously being declared unspecial">
      <t>As a result of <xref target="RFC7050">the original specification</xref>
      not formally declaring 'ipv4only.arpa' to have special properties,
      there was no mandate for any DNS software to treat this name
      specially. Consequently, queries for this name had to be handled normally,
      resulting in unnecessary queries to the authoritative 'arpa' name servers.</t>

      <t>Having millions of devices around the world issue these queries generated
      pointless additional load on the authoritative 'arpa' name servers, which was completely
      unnecessary when the name 'ipv4only.arpa' is defined, by Internet Standard,
      to have exactly two IPv4 address records, 192.0.0.170 and 192.0.0.171,
      and no other records of any type.</t>

      <t>Also, at times, for reasons that are as yet
      unclear, the authoritative 'arpa' name servers have been observed to be slow or unresponsive.
      The failures of these 'ipv4only.arpa' queries result in unnecessary failures
      of software that depends on them for <xref target="RFC6147">DNS64</xref> address synthesis.</t>

      <t>Even when the authoritative 'arpa' name servers are operating correctly,
      having to perform an unnecessary query to obtain an answer that is already
      known in advance can add precious milliseconds of delay for no reason.</t>

      <t>A more serious problem occurs when a device is configured to use a recursive/caching DNS
      server other than the one it learned from the network. Typically a device joining a NAT64
      network will learn the recursive/caching DNS server recommended for that network either
      via <xref target="RFC6106">IPv6 Router Advertisement Options for DNS Configuration</xref>
      or via <xref target="RFC3646">DNS Configuration options for DHCPv6</xref>.
      On a NAT64 network it is essential that the client use the recursive/caching
      DNS64 server recommended for that network, since only that DNS64 server can
      be relied upon to know the appropriate prefix(es) to use for synthesizing IPv6
      addresses that will be acceptable to the NAT64 server.</t>

      <t>However, it is not uncommon for users to manually override their default
      DNS configuration because they wish to use some other public recursive
      resolver on the Internet, perhaps because they perceive their preferred
      recursive resolver to be faster, more reliable, or more trustworthy.</t>

      <t>Another common scenario is the use of corporate VPN client software, which overrides the
      default configuration to divert DNS requests to the company's own private internal
      recursive resolver, because the local network's recursive resolver will typically
      be unable to provide answers for the company's private internal host names.
      Similarly, the company's private internal recursive resolver may not be able
      to synthesize IPv6 addresses correctly for use with the local network's NAT64 server,
      because it is unlikely to be aware of the NAT64 prefix in use on the local network.
      It is clear that a single recursive resolver cannot meet both needs.
      The local network's recursive resolver cannot give answers for some
      company's private internal host names, and some company's private internal
      recursive resolver cannot give correctly synthesized IPv6 addresses
      suitable for the local network's NAT64 gateway.</t>

      <t>The conflict here arises because DNS is being used for two unrelated purposes.
      The first purpose is retrieving data from a (nominally) global database --
      generally retrieving the IP address(es) associated with a hostname.
      The second purpose is using the DNS protocol as a middlebox communication
      protocol, to interrogate the local network infrastructure to discover
      the IPv6 prefix(es) in use by the local NAT64 gateway for address synthesis.</t>

      <t>(Possibly this problem could be solved if we could force all
      NAT64 gateways to use the same Well-Known Prefix for IPv6 address
      synthesis <xref target="RFC6052"/>, but that would alleviate the need for
      'ipv4only.arpa' altogether.)</t>

      <t>This document leverages this operational experience to update the
      <xref target="RFC6761">Domain Name Reservation Considerations section</xref>
      of <xref target="RFC7050">the earlier specification</xref>
      with one that
      accurately lists the actual special properties of the name 'ipv4only.arpa' so that
      software can legitimately make appropriate performance and reliability optimizations.</t>
    <?rfc needLines="19" ?>
    </section>

    <section title="Security Considerations">
      <t>Hard-coding the known answers for 'ipv4only.arpa' queries in
      recursive/caching DNS servers reduces the risk of malicious devices
      intercepting those queries and returning incorrect answers, particularly in the
      case of recursive/caching DNS servers that do not perform DNSSEC validation.</t>

      <t>One of the known concerns with <xref target="RFC6147">DNS64</xref> is that
      it interferes with DNSSEC. DNSSEC may cryptographically assert that a name
      has no IPv6 AAAA records, while at the same time DNS64 address synthesis
      is contradicting this and claiming that IPv6 AAAA records do exist.</t>

      <t>Section 3 of the <xref target="RFC6147">DNS64 specification</xref>
      discusses this:
<figure><artwork>
   ... DNS64 receives a query with the DO bit set and
   the CD bit set. In this case, the DNS64 is supposed
   to pass on all the data it gets to the query initiator.
   This case will not work with DNS64, unless the
   validating resolver is prepared to do DNS64 itself.</artwork></figure></t>

      <t>The <xref target="RFC7050">NAT64 Prefix Discovery specification</xref>
      provides the mechanism for the query initiator to learn the NAT64 prefix
      so that it can do its own validation and DNS64 synthesis as described above.
      With this mechanism the client can
      (i) interrogate the local NAT64/DNS64 gateway with an 'ipv4only.arpa'
      query to learn the IPv6 address synthesis prefix,
      (ii) query for the (signed) IPv4 address records itself, and then
      (iii) perform its own IPv6 address synthesis locally,
      combining the IPv6 address synthesis prefix learned from the local NAT64/DNS64 gateway
      with the secure DNSSEC-signed data learned from the global Domain Name System.</t>

      <t>It is conceivable that over time, if DNSSEC is successful, the
      majority of clients could move to this validate-and-synthesize-locally
      model, which reduces the DNS64 machinery to the vestigial role of
      simply responding to the 'ipv4only.arpa' query to report the local
      IPv6 address synthesis prefix. In no case does the client care what
      answer(s) the authoritative 'arpa' name servers might give for that query.
      The 'ipv4only.arpa' query is being used purely as a local
      client-to-middlebox communication message.</t>

      <t>This approach is even more attractive if it does not create
      an additional dependency on the authoritative 'arpa' name
      servers to answer a query that is unnecessary
      because the NAT64/DNS64 gateway already knows the answer
      before it even issues the query. Avoiding this unnecessary
      query improves performance and reliability for the client,
      and reduces unnecessary load for the authoritative 'arpa' name servers.</t>
    </section>

    <section title="IANA Considerations">
      <t>[Once published, this should say]</t>

      <?rfc subcompact="yes" ?>
      <t>IANA has recorded the following names in the<vspace />
      <xref target="SUDN">Special-Use Domain Names registry</xref>:
        <list style='empty'>
          <t>ipv4only.arpa.</t>
          <t>170.0.0.192.in&nbhy;addr.arpa.</t>
          <t>171.0.0.192.in&nbhy;addr.arpa.</t>
        </list>
      </t>

      <t>IANA has recorded the following IPv4 addresses in the<vspace />
      <xref target="SUv4">IPv4 Special-Purpose Address Registry</xref>:
        <list style='empty'>
          <t>192.0.0.170</t>
          <t>192.0.0.171</t>
        </list>
      </t>
      <?rfc subcompact="no" ?>
    </section>

    <section title="Domain Name Reservation Considerations">

      <section anchor="terminology" title="Conventions and Terminology Used in this Section">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL"
        in this section are to be interpreted as described in
        <xref target="RFC2119">"Key words for use in RFCs to Indicate Requirement Levels"</xref>.</t>
      </section>

      <section title="ipv4only.arpa">
        <t>The name 'ipv4only.arpa' is defined, by Internet Standard, to have
        two IPv4 address records with rdata 192.0.0.170 and 192.0.0.171.</t>

        <t>When queried via a <xref target="RFC6147">DNS64</xref> recursive/caching server, the name
        'ipv4only.arpa' is also defined to have IPv6 AAAA records,
        with rdata synthesized from a combination of the NAT64 IPv6 prefix(es),
        and the IPv4 addresses 192.0.0.170 and 192.0.0.171.
        This can return more than one pair of IPv6 addresses
        if there are multiple NAT64 prefixes.</t>

        <t>The name 'ipv4only.arpa' has no other DNS records of any type.<vspace />
        There are no subdomains of ipv4only.arpa. All names falling below
        'ipv4only.arpa' are defined to be nonexistent (NXDOMAIN).</t>

    <?rfc needLines="10" ?>
        <t>The name 'ipv4only.arpa' is special to<vspace />
        (a) client software wishing to perform DNS64 address synthesis,<vspace />
        (b) APIs responsible for retrieving the correct information, and<vspace />
        (c) the DNS64 recursive/caching server responding to such requests.<vspace />
        These three considerations are listed in items 2, 3 and 4 below:

          <list style="numbers">
            <t>Normal users should never have reason to encounter the 'ipv4only.arpa' domain name.
            If they do, they should expect queries for 'ipv4only.arpa' to result in
            <xref target="RFC7050">the answers required by the specification</xref>.
            Normal users have no need to know that 'ipv4only.arpa' is special.</t>

            <t>Application software may explicitly use the name 'ipv4only.arpa' for NAT64/DNS64
            address synthesis, and expect to get
            <xref target="RFC7050">the answers required by the specification</xref>.
            If application software encounters the name 'ipv4only.arpa' in the normal
            course of handling user input, the application software should resolve
            that name as usual and need not treat it in any special way.</t>

            <t>Name resolution APIs and libraries MUST recognize
            'ipv4only.arpa' as special and MUST give it special treatment.
            Regardless of any manual client DNS configuration, DNS overrides
            configured by VPN client software, or any other mechanisms that influence
            the choice of the client's recursive/caching DNS server address(es)
            (including client devices that run their own local recursive resolver and use
            the loopback address as their configured recursive/caching DNS server address)
            all queries for 'ipv4only.arpa' and any subdomains of that name
            MUST be sent to the recursive/caching DNS server learned from the network
            via <xref target="RFC6106">IPv6 Router Advertisement Options for DNS Configuration</xref>
            or via <xref target="RFC3646">DNS Configuration options for DHCPv6</xref>.
            Because DNS queries for 'ipv4only.arpa' are actually a special middlebox
            communication protocol, it is essential that they go to the middlebox
            in question, and failure to honor this requirement would cause failure of
            the <xref target="RFC7050">NAT64 Prefix Discovery mechanism</xref>.</t>

<?rfc needLines="5" ?>
            <t>For the purposes of this section, recursive/caching DNS servers fall into two categories.
            The first category is the traditional recursive/caching DNS servers that are in widespread use today.
            The second category is DNS64 servers, whose purpose is to synthesize IPv6 address records.
            <vspace blankLines="1" />
            Traditional recursive/caching DNS servers SHOULD NOT recognize 'ipv4only.arpa'
            as special or give that name, or subdomains of that name, any special treatment.
            The rationale for this is that a traditional recursive/caching DNS server,
            such as built in to a home gateway, may itself be downstream of a DNS64 server.
            Passing though the 'ipv4only.arpa' queries to the upstream DNS64 server will allow
            the correct NAT64 prefix to be discovered.
            <vspace blankLines="1" />
            All DNS64 servers MUST recognize 'ipv4only.arpa'
            as special and MUST NOT attempt to look up NS records for it, or otherwise
            query authoritative DNS servers in an attempt to resolve this name.
            Instead, DNS64 servers MUST act as authoritative for this domain
            and generate immediate responses for all such queries.
            <vspace blankLines="1" />
            DNS64 servers MUST generate
            the 192.0.0.170 and 192.0.0.171 responses for IPv4 address queries (DNS qtype "A"),
            the appropriate synthesized IPv6 address record responses for IPv6 address queries (DNS qtype "AAAA"),
            and a negative ("no&nbsp;error&nbsp;no&nbsp;answer") response for all other query types.
            <vspace blankLines="1" />
            For all subdomains of 'ipv4only.arpa', DNS64 servers MUST generate immediate NXDOMAIN responses.
            All names falling below 'ipv4only.arpa' are defined to be nonexistent.
            <vspace blankLines="1" />
            An example configuration for BIND 9 showing how to achieve the desired result
            is given in <xref target="app-a" format="none">Appendix A</xref>.</t>

            <t>Traditional authoritative DNS server software need not recognize
            'ipv4only.arpa' as special or handle it in any special way.<vspace />
            Recursive/caching DNS servers SHOULD routinely act as
            authoritative for this name and return the results described
            above. Only the administrators of the 'arpa' namespace need to
            explicitly configure their actual authoritative name servers to be
            authoritative for this name
            and to generate the appropriate answers; all other authoritative
            name servers will not be configured to know anything about this name
            and will reject queries for it, as they would reject queries for any
            other name about which they have no information.</t>

            <t>Generally speaking, operators of authoritative DNS servers need
            not know anything about the name 'ipv4only.arpa', just as they do not need
            to know anything about any other names they are not responsible for.
            Operators of authoritative DNS servers who are configuring their name servers
            to be authoritative for this name MUST understand that 'ipv4only.arpa' is
            a special name, with records rigidly specified by Internet Standard
            (generally this applies only to the administrators of the 'arpa' namespace).</t>

            <t>DNS Registries/Registrars need not know anything about the
            name 'ipv4only.arpa', just as they do not need to know
            anything about any other name they are not responsible for.
            Only the administrators of the 'arpa' namespace need to be aware
            of this name's purpose and how it should be configured.</t>
          </list>
        </t>
      </section>

<?rfc needLines="12" ?>
      <section title="170.0.0.192.in&nbhy;addr.arpa and 171.0.0.192.in&nbhy;addr.arpa">
        <t>Since the IPv4 addresses 192.0.0.170 and 192.0.0.171 are defined
        to be special, and are listed in the
        <xref target="SUv4">IPv4 Special-Purpose Address Registry</xref>,
        the corresponding reverse mapping names in the in&nbhy;addr.arpa domain
        are similarly special.</t>

        <t>The name '170.0.0.192.in&nbhy;addr.arpa' is defined, by Internet Standard,
        to have only a single DNS record, type PTR, with rdata 'ipv4only.arpa'.</t>

        <t>The name '171.0.0.192.in&nbhy;addr.arpa' is defined, by Internet Standard,
        to have only a single DNS record, type PTR, with rdata 'ipv4only.arpa'.</t>

        <t>There are no subdomains of '170.0.0.192.in&nbhy;addr.arpa' or '171.0.0.192.in&nbhy;addr.arpa'.
        All names falling below these names are defined to be nonexistent (NXDOMAIN).</t>

        <t>Practically speaking these two names are rarely used, but to the extent that
        they may be, they are special only to recursive/caching DNS servers as
        described in item 4 below:

          <list style="numbers">
            <t>Normal users should never have reason to encounter these two reverse mapping names.
            However, if they do, queries for these reverse mapping names should
            return the expected answer 'ipv4only.arpa'.
            Normal users have no need to know that these reverse mapping names are special.</t>

            <t>Application software SHOULD NOT recognize these two reverse mapping
            names as special, and SHOULD NOT treat them differently.<vspace />
            For example, if the user were to issue the Unix command "host&nbsp;192.0.0.170"
            then the "host" command should issue the query as usual and display the
            result that is returned.</t>

            <t>Name resolution APIs and libraries SHOULD recognize these two reverse
            mapping names as special and generate the required responses locally.
            For the names '170.0.0.192.in&nbhy;addr.arpa' and '171.0.0.192.in&nbhy;addr.arpa'
            PTR queries yield the result 'ipv4only.arpa';
            all other query types yield a negative ("no&nbsp;error&nbsp;no&nbsp;answer") response.
            For all subdomains of these two reverse mapping domains, all queries yield an NXDOMAIN response.
            All names falling below these two reverse mapping domains are defined to be nonexistent.
            <vspace blankLines="1" />
            This local self-contained generation of these responses is to avoid
            placing unnecessary load on the authoritative 'in&nbhy;addr.arpa' name servers.</t>

<?rfc needLines="12" ?>
            <t>Recursive/caching DNS servers SHOULD NOT recognize these two reverse mapping
            names as special and SHOULD NOT, by default, give them any special treatment.</t>

            <t>Traditional authoritative DNS server software need not
            recognize these two reverse mapping names as special or
            handle them in any special way.<vspace />
            As a practical matter, only the administrators of the '192.in&nbhy;addr.arpa' namespace
            will configure their name servers to be authoritative for these names
            and to generate the appropriate answers; all other authoritative
            name servers will not be configured to know anything about these names
            and will reject queries for them as they would reject queries for any
            other name about which they have no information.</t>

            <t>Generally speaking, operators of authoritative DNS servers need
            not know anything about these two reverse mapping names, just as they do not need
            to know anything about any other names they are not responsible for.
            Operators of authoritative DNS servers who are configuring their name servers
            to be authoritative for this name MUST understand that these two reverse
            mapping names are special, with answers specified by Internet Standard
            (generally this applies only to the administrators of the '192.in&nbhy;addr.arpa' namespace).</t>

            <t>DNS Registries/Registrars need not know anything about
            these two reverse mapping names, just as they do not need to know
            anything about any other name they are not responsible for.
            Only the administrators of the '192.in&nbhy;addr.arpa' namespace need
            to be aware of the purpose of these two names.</t>
          </list>
        </t>

<?rfc needLines="20" ?>
        <section title="ip6.arpa Reverse Mapping PTR Records">
          <t>For all IPv6 addresses synthesized by a DNS64 recursive resolver,
          the DNS64 recursive resolver server is responsible for
          synthesizing the appropriate 'ip6.arpa' reverse mapping PTR records too,
          if it chooses to provide reverse mapping PTR records.
          The same applies to the synthesized IPv6 addresses corresponding
          to the IPv4 addresses 192.0.0.170 and 192.0.0.171.</t>

          <t>Generally a DNS64 recursive/caching server synthesizes
          appropriate 'ip6.arpa' reverse mapping PTR records by extracting
          the embedded IPv4 address from the encoded IPv6 address,
          performing a reverse mapping PTR query for that IPv4 address,
          and then synthesizing a corresponding 'ip6.arpa' reverse mapping
          PTR record containing the same rdata.</t>

          <t>In the case of synthesized IPv6 addresses corresponding
          to the IPv4 addresses 192.0.0.170 and 192.0.0.171,
          the DNS64 recursive/caching server does not issue reverse mapping queries
          for those IPv4 addresses, but instead, according to rule 3 above,
          immediately returns the answer 'ipv4only.arpa'.</t>

          <t>In the case of a client that uses the 'ipv4only.arpa' query to discover the
          IPv6 prefixes in use by the local NAT64 gateway, and then proceeds to perform
          its own address synthesis locally (which has benefits such as allowing DNSSEC validation),
          that client MUST also synthesize 'ip6.arpa' reverse mapping PTR
          records for those discovered prefix(es), according to the rules above:
          When a client's name resolution APIs and libraries receive a request
          to look up an 'ip6.arpa' reverse mapping PTR record for an address that
          falls within one of the discovered NAT64 address synthesis prefixes,
          the software extracts the embedded IPv4 address and then,
          for IPv4 addresses 192.0.0.170 and 192.0.0.171, returns the fixed answer 'ipv4only.arpa',
          and for all other IPv4 addresses performs a reverse mapping PTR query for
          the IPv4 address, and then synthesizes a corresponding 'ip6.arpa'
          reverse mapping PTR record containing the same rdata.</t>

        </section>
      </section>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Thanks to Jouni Korhonen, Teemu Savolainen, and Dan Wing, for devising
      the <xref target="RFC7050">NAT64 Prefix Discovery mechanism</xref>,
      and for their feedback on this document.

      Thanks to Geoff Huston for his feedback on the draft,
      and to Erik Kline for pointing out that the in&nbhy;addr.arpa names are special too.

      Thanks particularly to Lorenzo Colitti for an especially spirited hallway discussion at
      IETF 96 in Berlin, which lead directly to significant improvements in how this
      document presents the issues.</t>
    </section>

  </middle>

  <back>
    <?rfc needLines="38" ?>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119" ?>
      <?rfc include="reference.RFC.3646" ?>
      <?rfc include="reference.RFC.6052" ?>
      <?rfc include="reference.RFC.6106" ?>
      <?rfc include="reference.RFC.6146" ?>
      <?rfc include="reference.RFC.6147" ?>
      <?rfc include="reference.RFC.6761" ?>
      <?rfc include="reference.RFC.7050" ?>
    </references>

    <references title="Informative References">

      <reference anchor="SUDN"
      target="https://www.iana.org/assignments/special-use-domain-names/">
        <front>
          <title>Special-Use Domain Names Registry</title>
          <author/>
          <date/>
        </front>
      </reference>

      <reference anchor="SUv4"
      target="https://www.iana.org/assignments/iana-ipv4-special-registry/">
        <front>
          <title>IANA IPv4 Special-Purpose Address Registry</title>
          <author/>
          <date/>
        </front>
      </reference>

    </references>

<?rfc needLines="40" ?>
    <section anchor="app-a" title="Example BIND 9 Configuration">
      <t>A BIND 9 recursive/caching DNS server can be configured to
      act as authoritative for the necessary DNS64 names as described below.</t>

      <t><vspace blankLines="2" />
      In /etc/named.conf the following line is added:
      <figure><artwork>
 zone "ipv4only.arpa"            { type master; file "ipv4only"; };</artwork></figure></t>

      <t><vspace blankLines="2" />
      The file /var/named/ipv4only is created with the following content:
      <figure><artwork>
 $TTL 86400               ; Default TTL 24 hours
 @ IN SOA nameserver.example. admin.nameserver.example. (
          2016052400      ; Serial
          7200            ; Refresh ( 7200 = 2 hours)
          3600            ; Retry   ( 3600 = 1 hour)
          15724800        ; Expire  (15724800 = 6 months)
          60              ; Minimum
          )
 @ IN NS  nameserver.example.

 @ IN A     192.0.0.170
 @ IN A     192.0.0.171
 @ IN AAAA  64:ff9b::192.0.0.170 ; If not using NAT64 Well-Known Prefix
 @ IN AAAA  64:ff9b::192.0.0.171 ; Place actual prefix here</artwork></figure></t>

    </section>

  </back>
</rfc>
