<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-tjw-dnsop-3901bis-01" submissionType="IETF" category="bcp" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" obsoletes="3901" indexInclude="true" consensus="true">

<front>
<title abbrev="3901bis">DNS IPv6 Transport Operational Guidelines</title><seriesInfo value="draft-tjw-dnsop-3901bis-01" stream="IETF" status="bcp" name="Internet-Draft"></seriesInfo>
<author initials="T." surname="Wicinski. (ed)" fullname="Tim Wicinski"><organization></organization><address><postal><street></street>
<city>Elkins</city>
<code>26241</code>
<country>USA</country>
<region>WV</region>
</postal><email>tjw.ietf@gmail.com</email>
</address></author><date/>
<area>Ops</area>
<workgroup>DNSOP</workgroup>

<abstract>
<t>This memo provides guidelines and Best Current Practice for operating
DNS in a world where queries and responses are carried in a mixed
environment of IPv4 and IPv6 networks.</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>The Internet is well on its way to a mixture of IPv4 and IPv6 networks.
The concern is that a resolver using only a particular
version of IP and querying information about another node using the
same version of IP can not do it because somewhere in the chain of
servers accessed during the resolution process, one or more of them
will only be accessible with the other version of IP.</t>
</section>

<section anchor="terminology"><name>Terminology</name>
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;,
&quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref>
when, and only when, they appear in all capitals, as shown here.
DNS terminology is as described in <xref target="RFC8499"></xref>.</t>
<t>The phrase &quot;IPv4 name server&quot; indicates a name server available over
IPv4 transport.  It does not imply anything about what DNS
<xref target="RFC1034"></xref> <xref target="RFC1035"></xref> data
is served.  Likewise, &quot;IPv6 name server&quot;
<xref target="RFC3596"></xref> indicates a name
server available over IPv6 transport.  The phrase &quot;dual-stack name
server&quot; indicates a name server that is configured to run
both IPv4 and IPv6.</t>
</section>

<section anchor="name-space-fragmentation-following-the-referral-chain"><name>Name Space Fragmentation: following the referral chain</name>
<t>A resolver that tries to look up a name starts out at the root, and
follows referrals until it is referred to a name server that is
authoritative for the name.  If somewhere down the chain of referrals
it is referred to a name server that is only accessible over a
transport which the resolver cannot use, the resolver is unable to
finish the task.</t>
<t>With all DNS data only available over IPv4 transport everything is
simple.  IPv4 resolvers can use the intended mechanism of following
referrals from the root and down while IPv6 resolvers have to work
through a &quot;translator&quot;, i.e., they have to use a recursive name
server on a so-called &quot;dual stack&quot; host as a &quot;forwarder&quot; since they
cannot access the DNS data directly.</t>
<t>With all DNS data only available over IPv6 transport everything would
be equally simple, with the exception of IPv4 recursive name servers
having to switch to a forwarding configuration.</t>
<t>The transition from IPv4 only to a mixture
of IPv4 and IPv6, with three categories of DNS data depending on
whether the information is available only over IPv4 transport, only
over IPv6 or both.</t>
<t>Having DNS data available on both transports is the optimal situation.</t>
</section>

<section anchor="policy-based-avoidance-of-name-space-fragmentation"><name>Policy Based Avoidance of Name Space Fragmentation</name>
<t>Today there are only a small number of DNS zones
that are available over IPv6-only.</t>
<t>The recommended approach to maintain name space continuity is to use
administrative policies, as described in the next section.</t>
</section>

<section anchor="common-causes-of-name-resolution-failure-in-ipv6"><name>Common Causes of Name Resolution Failure in IPv6</name>
<t>Successful name resolution under IPv6 demands careful attention to certain
configuration prerequisites. Configuration mistakes can be summarised to the following.</t>

<ul>
<li><t>Parent zone not IPv6-resolvable: For a zone to be resolvable via IPv6, the parent zones up to the root zone must be IPv6-resolvable. Any non-IPv6-resolvable zone breaks the delegation chain for all its children.</t>
</li>
<li><t>No AAAA records for NS names: If none of the NS records for a zone in their parent zone have associated AAAA records, resolution via IPv6 is not possible.</t>
</li>
<li><t>Missing GLUE: If the name from an NS record for a zone is in-bailiwick, i.e., the name is within the zone or below, a parent zone must contain an IPv6 GLUE record, i.e., a parent must serve the corresponding AAAA record(s) as ADDITIONAL data when returning the NS record in the ANSWER section.</t>
</li>
<li><t>No AAAA record for in-bailiwick NS: If an NS record of a zone points to a name that is in-bailiwick but the name lacks AAAA record(s) in its zone, IPv6-only resolution will fail even if the parent provides GLUE, when the recursive server validates the delegation path. One such example is Unbound with the setting harden-glue: yes–the default.</t>
</li>
<li><t>Zone of out-of-bailiwick NS not resolving: If an NS record of a zone is out-of-bailiwick, the corresponding zone must be IPv6-resolvable as well. It is insufficient if the name pointed to by the NS record has an associated AAAA record.</t>
</li>
</ul>
<t>Recognizing and addressing these configuration requirements is fundamental
to the seamless operation of DNS in an environment that blends IPv4 and IPv6.
[<eref target="https://link.springer.com/chapter/10.1007/978-3-031-28486-1_22">https://link.springer.com/chapter/10.1007/978-3-031-28486-1_22</eref>]</t>
</section>

<section anchor="dns-ipv6-transport-recommended-guidelines"><name>DNS IPv6 Transport recommended Guidelines</name>
<t>In order to preserve name space continuity, the following
administrative policies are recommended:</t>

<ul>
<li><t>every recursive name server SHOULD support the local network
configuration.  If the local network supports both IPv4 and IPv5,
the resolver SHOULD be dual stack.</t>
</li>
<li><t>If the service is offering IPv4 as a Service (IPv4aaS), the recursive
name server SHOULD accept IPv6, and support dual stack recursive
methods.</t>
</li>
<li><t>every authorative DNS zone SHOULD be dual stack IPv4/IPv6.</t>
</li>
</ul>
<t>A DNS zone can be served by at least one IPv4-reachable
authoritative name server.</t>
<t>This rules out DNS zones served only by IPv6-only authoritative
 name servers.</t>
<t>Note: zone validation processes SHOULD ensure that there is at least
one IPv4 address record available for the name servers of any child
delegations within the zone.</t>
</section>

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

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

</middle>

<back>
<references><name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3596.xml"/>
</references>
<references><name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml"/>
</references>

<section anchor="acknowledgements" numbered="false"><name>Acknowledgements</name>
<t>Mark Andrews. No, really.</t>
</section>

</back>

</rfc>
