rfc8683xml2.original.xml | rfc8683.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<?rfc toc="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc compact="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" | |||
<?rfc tocdepth="6"?> | docName="draft-ietf-v6ops-nat64-deployment-08" submissionType="IETF" consen | |||
<?rfc symrefs="yes"?> | sus="true" number="8683" ipr="trust200902" obsoletes="" updates="" xml:lang="en" | |||
<?rfc sortrefs="yes"?> | tocInclude="true" tocDepth="6" symRefs="true" sortRefs="true" version="3"> | |||
<?rfc autobreaks="no"?> | <!-- xml2rfc v2v3 conversion 2.35.0 --> | |||
<?rfc subcompact="no"?> | ||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<rfc category="info" submissionType="IETF" consensus="yes" | ||||
docName="draft-ietf-v6ops-nat64-deployment-08"> | ||||
<front> | <front> | |||
<title abbrev="NAT64/464XLAT Deployment"> | <title abbrev="NAT64/464XLAT Deployment"> | |||
Additional NAT64/464XLAT Deployment Guidelines in Operator and Enterprise Netw | Additional Deployment Guidelines for NAT64/464XLAT in Operator and Enterprise | |||
orks</title> | Networks</title> | |||
<seriesInfo name="RFC" value="8683"/> | ||||
<author fullname="Jordi Palet Martinez" initials="J" surname="Palet Martinez "> | <author fullname="Jordi Palet Martinez" initials="J" surname="Palet Martinez "> | |||
<organization>The IPv6 Company</organization> | <organization>The IPv6 Company</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Molino de la Navata, 75</street> | <street>Molino de la Navata, 75</street> | |||
<city>La Navata - Galapagar</city> | <city>La Navata - Galapagar</city> | |||
<region>Madrid</region> | <region>Madrid</region> | |||
<code>28420</code> | <code>28420</code> | |||
<country>Spain</country> | <country>Spain</country> | |||
</postal> | </postal> | |||
<email>jordi.palet@theipv6company.com</email> | <email>jordi.palet@theipv6company.com</email> | |||
<uri>http://www.theipv6company.com/</uri> | <uri>http://www.theipv6company.com/</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2019" month="November"/> | ||||
<date year="2019"/> | <workgroup>v6ops</workgroup> | |||
<workgroup>v6ops</workgroup> | ||||
<keyword> | <keyword> | |||
IPv6, DNSSEC, NAT64, DNS64, 464XLAT, CLAT, NAT46, PLAT | IPv6, DNSSEC, NAT64, DNS64, 464XLAT, CLAT, NAT46, PLAT | |||
</keyword> | </keyword> | |||
<abstract> | ||||
<abstract> | <t>This document describes how Network Address and Protocol | |||
<t>This document describes how NAT64 (including 464XLAT) | Translation from IPv6 Clients to IPv4 Servers (NAT64) (including 464XLAT) can | |||
can be deployed | be deployed | |||
in an IPv6 network, whether cellular ISP, broadband ISP, | in an IPv6 network -- whether it's cellular ISP, broadban | |||
or enterprise, and possible optimizations. | d ISP, | |||
The document also discusses issues to be considered when | or enterprise -- and the possible | |||
having | optimizations. | |||
IPv6-only connectivity, regarding: | This document also discusses issues to be considered when | |||
having | ||||
IPv6-only connectivity, such as: | ||||
a) DNS64, | a) DNS64, | |||
b) applications or devices that use literal IPv4 addresse s or | b) applications or devices that use literal IPv4 addresse s or | |||
non-IPv6 compliant APIs, | non-IPv6-compliant APIs, | |||
and c) IPv4-only hosts or applications.</t> | and c) IPv4-only hosts or applications.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | ||||
<middle> | <section numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<section title="Introduction"> | <t>Stateful NAT64 <xref target="RFC6146" format="default"/> describes a st | |||
<t>Stateful NAT64 (<xref target="RFC6146"/>) describes a stateful | ateful IPv6-to-IPv4 | |||
IPv6 to IPv4 | translation mechanism that allows IPv6-only hosts to communicate | |||
translation mechanism, which allows IPv6-only hosts to communicat | with | |||
e with | IPv4-only servers using unicast UDP, TCP, or ICMP by means of IPv | |||
IPv4-only servers using unicast UDP, TCP, or ICMP, by means of IP | 4 public | |||
v4 public | address sharing among multiple IPv6-only | |||
addresses sharing, among multiple IPv6-only | hosts. Unless otherwise stated, references | |||
hosts. Unless otherwise stated, references in the rest of this do | to NAT64 (function) in this document should be interpreted as Sta | |||
cument | teful NAT64.</t> | |||
to NAT64 (function) should be interpreted as to Stateful NAT64.</ | <t>The translation of the packet headers is done using the IP/ICMP | |||
t> | translation algorithm defined in <xref target="RFC7915" format="d | |||
efault"/>; | ||||
<t>The translation of the packet headers is done using the IP/ICM | algorithmically translating the IPv4 addresses to IPv6 addresses, | |||
P | and vice versa, is done following <xref target="RFC6052" format=" | |||
translation algorithm defined in <xref target="RFC7915"/> and | default"/>.</t> | |||
algorithmically translating the IPv4 addresses to IPv6 addresses | <t>DNS64 <xref target="RFC6147" format="default"/> is in charge of the syn | |||
and vice versa, following <xref target="RFC6052"/>.</t> | thesis | |||
of AAAA records from the A records, so it only works for applicat | ||||
<t>DNS64 (<xref target="RFC6147"/>) is in charge of the synthesis | ions | |||
of AAAA records from the A records, so only works for application | making use of DNS. It was designed to avoid changes in both | |||
s | ||||
making use of DNS. It was designed to avoid changes in both, | ||||
the IPv6-only hosts and the IPv4-only server, so they can use | the IPv6-only hosts and the IPv4-only server, so they can use | |||
a NAT64 function. As discussed in Section 5.5 of <xref target="RF | a NAT64 function. As discussed in <xref | |||
C6147"/>, | target="RFC6147" sectionFormat="of" section="5.5"/>, | |||
a security-aware and validating host has to perform the | a security-aware and validating host has to perform the | |||
DNS64 function locally.</t> | DNS64 function locally.</t> | |||
<t>However, the use of NAT64 and/or DNS64 presents three drawbacks:</t> | ||||
<ol spacing="normal" type="1"> | ||||
<t>However, the use of NAT64 and/or DNS64 present three drawbacks | <li>Because DNS64 <xref target="RFC6147" format="default"/> modifies DNS | |||
:</t> | answers, | |||
<t><list style="letters"> | ||||
<t>Because DNS64 (<xref target="RFC6147"/>) modifies DNS | ||||
answers, | ||||
and DNSSEC is designed to detect such modifications, DNS6 4 | and DNSSEC is designed to detect such modifications, DNS6 4 | |||
(<xref target="RFC6147"/>) may potentially break DNSSEC, | <xref target="RFC6147" format="default"/> may potentially | |||
depending on | break DNSSEC, depending on | |||
a number of factors, such as the location of the DNS64 | a number of factors such as the location of the DNS64 | |||
function (at a DNS server or validator, at the end host, ...), how it | function (at a DNS server or validator, at the end host, ...), how it | |||
has been configured, if the end-hosts is validating, etc. | has been configured, if the end hosts are validating, etc | |||
</t> | .</li> | |||
<li>Because of the need to use DNS64 <xref target="RFC6147" format="defa | ||||
<t>Because the need of using DNS64 (<xref target="RFC6147 | ult"/> or | |||
"/>) or | ||||
an alternative "host/application built-in" mechanism for address synthesis, | an alternative "host/application built-in" mechanism for address synthesis, | |||
there may be an issue for NAT64 (<xref target="RFC6146"/> | there may be an issue for NAT64 <xref target="RFC6146" fo | |||
), | rmat="default"/> | |||
as it doesn't work when IPv4 literal addresses or non-IPv | because it doesn't work when IPv4 literal addresses or no | |||
6 compliant | n-IPv6-compliant | |||
APIs are being used.</t> | APIs are being used.</li> | |||
<t>NAT64 alone, was not designed to provide a solution fo | ||||
r | ||||
IPv4-only hosts or applications located within a network | ||||
which are connected to a service provider IPv6-only acces | ||||
s, | ||||
as it was designed for a very specific scenario (<xref ta | ||||
rget="RFC6144"/>, Section 2.1).</t> | ||||
</list></t> | ||||
<t>Above drawbacks may be true if part of, an enterprise network, | <li>NAT64 alone was not designed to provide a solution for | |||
is connected to other parts of the same network or third-party ne | IPv4-only hosts or applications that are located within a | |||
tworks | network | |||
by means of IPv6-only connectivity. This is just an example which | and connected to a service provider IPv6-only access link | |||
may | , | |||
apply to many other similar cases. All them are deployment specif | as it was designed for a very specific | |||
ic.</t> | scenario (see <xref target="RFC6144" sectionFormat="of" section="2.1"/>). | |||
</li> | ||||
</ol> | ||||
<t>The drawbacks discussed above may come into play if part of an enterpri | ||||
se network | ||||
is connected to other parts of the same network or to third-party | ||||
networks | ||||
by means of IPv6-only connectivity. This is just an example that | ||||
may | ||||
apply to many other similar cases. All of them are deployment spe | ||||
cific.</t> | ||||
<t>According to that, across this document, the use of "operator" | <t>Accordingly, the use of "operator", | |||
, | "operator network", "service provider", and similar terms in this | |||
"operator network", "service provider", and similar ones, | document | |||
are interchangeable with equivalent cases of enterprise networks | are interchangeable with equivalent cases of enterprise networks; | |||
(and similar ones). This may be also the case for "managed end-us | other cases may be similar as well. This may be also the case for "managed end- | |||
er | user | |||
networks".</t> | networks".</t> | |||
<t>Note that if all the hosts in a network were performing address synthes | ||||
<t>Note that if all the hosts in a network were performing the ad | is, | |||
dress synthesis, | as described in <xref target="RFC6147" | |||
as described in Section 7.2 of <xref target="RFC6147"/>, some of | sectionFormat="of" section="7.2"/>, some of the drawbacks | |||
the drawbacks | may not apply. However, it is unrealistic to expect | |||
may vanish. However, it is unrealistic today to expect that, cons | that in today's world, considering | |||
idering | the high number of devices and applications that aren't yet IPv6 | |||
the high number of devices and applications that aren't yet IPv6- | enabled. | |||
enabled. | In this document, the case in which all hosts provide synthesis w | |||
So, in this document, this will be considered only for specific s | ill be considered only for specific scenarios | |||
cenarios | ||||
that can guarantee it.</t> | that can guarantee it.</t> | |||
<t>An analysis of stateful IPv4/IPv6 mechanisms is provided in | ||||
<t>An analysis of stateful IPv4/IPv6 mechanisms is provided in | <xref target="RFC6889" format="default"/>.</t> | |||
<xref target="RFC6889"/>.</t> | <t>This document looks into different possible NAT64 <xref target="RFC6146 | |||
" format="default"/> | ||||
<t>This document looks into different possible NAT64 (<xref targe | deployment scenarios, including IPv4-IPv6-IPv4 (464 for short) an | |||
t="RFC6146"/>) | d similar ones | |||
deployment scenarios, including IPv4-IPv6-IPv4 (464 for short) an | that were not documented in <xref target="RFC6144" format="defaul | |||
d similar ones, | t"/>, such as 464XLAT | |||
which were not documented in <xref target="RFC6144"/>, such as 46 | <xref target="RFC6877" format="default"/> in operator (broadband | |||
4XLAT | and cellular) and | |||
(<xref target="RFC6877"/>), in operator (broadband and cellular) | enterprise networks; it provides guidelines to avoid operational | |||
and | issues.</t> | |||
enterprise networks, and provides guidelines to avoid operational | <t>This document also explores the possible NAT64 deployment | |||
issues.</t> | ||||
<t>Towards that, this document first looks into the possible NAT6 | ||||
4 deployment | ||||
scenarios (split in "known to work" and "known to work under spec ial conditions"), | scenarios (split in "known to work" and "known to work under spec ial conditions"), | |||
providing a quick and generic comparison table among them. | providing a quick and generic comparison table among them. | |||
Then the document describes the issues that an operator need to u | Then, the document describes the issues that an operator needs to | |||
nderstand | understand, which | |||
on different matters that will allow to define what is the best | will allow the best | |||
approach/scenario for each specific network case. A summary provi | approach/scenario to be defined for each specific network case. A | |||
des some | summary provides some | |||
recommendations and decision points. A section with clarification | recommendations and decision points. | |||
s | ||||
on the usage of this document for enterprise networks, is also pr | ||||
ovided. | ||||
Finally, an annex provides an example of a broadband deployment u | ||||
sing 464XLAT | ||||
and another annex provides hints for a CLAT implementation.</t> | ||||
<t><xref target="RFC7269"/> already provides information about | ||||
NAT64 deployment options and experiences. Both, this document and | ||||
<xref target="RFC7269"/> are complementary; they are looking into | ||||
different deployment considerations and furthermore, this documen | ||||
t is | ||||
considering the updated deployment experience and newer standards | ||||
.</t> | ||||
<t>The target deployment scenarios in this document may be covere | A section with clarifications | |||
d as well | on the usage of this document for enterprise networks is also pro | |||
by other IPv4-as-a-Service (IPv4aaS) transition mechanisms. Note | vided. | |||
that this is | Finally, <xref target="AppendixA"/> provides an example of a broa | |||
true only for the case of broadband networks, as in the case of c | dband deployment using 464XLAT | |||
ellular | and hints for a customer-side translator (CLAT) implementation.</ | |||
networks the only supported solution is the use of NAT64/464XLAT. | t> | |||
<t><xref target="RFC7269" format="default"/> already provides information | ||||
about | ||||
NAT64 deployment options and experiences. This document and | ||||
<xref target="RFC7269" format="default"/> are complementary; they | ||||
both look into | ||||
different deployment considerations. Furthermore, this document c | ||||
onsiders the updated deployment experience and newer standards.</t> | ||||
<t>The target deployment scenarios in this document | ||||
may also be covered by other IPv4-as-a-Service (IPv4aaS) transiti | ||||
on mechanisms. Note that this is | ||||
true only for broadband networks; in the case of cellular | ||||
networks, the only supported solution is the use of NAT64/464XLAT | ||||
. | ||||
So, it is out of scope of this document to provide a comparison a mong the | So, it is out of scope of this document to provide a comparison a mong the | |||
different IPv4aaS transition mechanisms, which is being analyzed | different IPv4aaS transition mechanisms, which are analyzed | |||
already | in <xref target="I-D.lmhp-v6ops-transition-comparison" format="de | |||
in <xref target="I-D.lmhp-v6ops-transition-comparison"/>.</t> | fault"/>.</t> | |||
<t>Consequently, this document should not be used as a guide for | ||||
<t>Consequently, this document should not be understood as a guid | ||||
e for | ||||
an operator or enterprise to decide which IPv4aaS is the best one for | an operator or enterprise to decide which IPv4aaS is the best one for | |||
its own network. Instead it should be used as a tool for understa nding | its own network. Instead, it should be used as a tool for underst anding | |||
all the implications, including relevant documents (or even speci fic | all the implications, including relevant documents (or even speci fic | |||
parts of them), for the deployment of NAT64/464XLAT and facilitat e | parts of them) for the deployment of NAT64/464XLAT and for facili tating | |||
the decision process regarding specific deployment details.</t> | the decision process regarding specific deployment details.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Requirements Language"> | <name>Requirements Language</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", | <t> The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<b | |||
"SHALL NOT", | cp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
"MAY", and | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"OPTIONAL" in this document are to be interpreted as desc | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
ribed in | be interpreted as | |||
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | described in BCP 14 <xref target="RFC2119" format="default"/> <xref tar | |||
when, and only when, they appear in all capitals, as show | get="RFC8174" format="default"/> | |||
n here.</t> | when, and only when, they appear in all capitals, as shown here.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="NAT64 Deployment Scenarios"> | <name>NAT64 Deployment Scenarios</name> | |||
<t>Section 7 of DNS64 (<xref target="RFC6147"/>), provides three | <t>DNS64 (see <xref target="RFC6147" | |||
scenarios, | sectionFormat="of" section="7"/>) provides three deployment scenarios, | |||
depending on the location of the DNS64 function. However, since t he publication | depending on the location of the DNS64 function. However, since t he publication | |||
of that document, other deployment scenarios and NAT64 use cases need to | of that document, other deployment scenarios and NAT64 use cases need to | |||
be considered in actual networks, despite some of them were speci fically | be considered in actual networks, despite the fact that some of t hem were specifically | |||
ruled out by the original NAT64/DNS64 work.</t> | ruled out by the original NAT64/DNS64 work.</t> | |||
<t>Consequently, the perspective in this document is | ||||
<t>Consequently, the perspective in this document is to broaden t | to broaden those scenarios and | |||
hose scenarios, | include a few new ones. However, in order to reduce the number | |||
including a few new ones. However, in order to be able to reduce | of possible cases, we work under the assumption that the service | |||
the number | ||||
of possible cases, we work under the assumption that typically, t | ||||
he service | ||||
provider wants to make sure that all the customers have a service | provider wants to make sure that all the customers have a service | |||
without failures. This means considering the following assumption s | without failures. This means considering the following assumption s | |||
for the worst possible case:</t> | for the worst possible case:</t> | |||
<ol spacing="normal" type="a"> | ||||
<t><list style="letters"> | <li>There are hosts that will be validating DNSSEC.</li> | |||
<t>There are hosts that will be validating DNSSEC | <li>IPv4 literal addresses and non-IPv6-compliant APIs are being used.</ | |||
.</t> | li> | |||
<t>IPv4 literal addresses and non-IPv6 compliant | <li>There are IPv4-only hosts or applications beyond the | |||
APIs are being used.</t> | IPv6-only link (e.g., tethering in cellular netwo | |||
<t>There are IPv4-only hosts or applications beyo | rks).</li> | |||
nd the | </ol> | |||
IPv6-only link (e.g., tethering in cellular netwo | <t>This document uses a common set of possible "participant entities":</t> | |||
rks).</t> | <ol spacing="normal" type="1"> | |||
</list></t> | <li>An IPv6-only access network (IPv6).</li> | |||
<li>An IPv4-only remote network/server/service (IPv4).</li> | ||||
<t>The document uses a common set of possible "participant entiti | <li>A NAT64 function (NAT64) in the service provider.</li> | |||
es":</t> | <li>A DNS64 function (DNS64) in the service provider.</li> | |||
<li>An external service provider offering the NAT64 function and/or the | ||||
<t><list style="numbers"> | DNS64 function (extNAT64/extDNS64).</li> | |||
<t>An IPv6-only access network (IPv6).</t> | <li>A 464XLAT customer-side translator (CLAT).</li> | |||
<t>An IPv4-only remote network/server/service (IP | </ol> | |||
v4).</t> | <t>Note that the nomenclature used in parentheses is the one that, for sho | |||
<t>A NAT64 function (NAT64) in the service provid | rt, | |||
er.</t> | will be used in the figures. Note: for simplicity, the boxes in | |||
<t>A DNS64 function (DNS64) in the service provid | the figures don't mean they are actually a single device; they re | |||
er.</t> | present | |||
<t>An external service provider offering the NAT6 | one or more functions as located in that part of the network (i.e | |||
4 function and/or the | ., a single box | |||
DNS64 function (extNAT64/extDNS64).</t> | ||||
<t>464XLAT customer side translator (CLAT).</t> | ||||
</list></t> | ||||
<t>Note that the nomenclature used in parenthesis is the one that | ||||
, for short, | ||||
will be used in the figures. Note also that for simplicity, the b | ||||
oxes in | ||||
the figures don't mean they are actually a single device; they ju | ||||
st represent | ||||
one or more functions as located in that part of the network (i.e | ||||
. a single box | ||||
with NAT64 and DNS64 functions can actually be several devices, n ot just one).</t> | with NAT64 and DNS64 functions can actually be several devices, n ot just one).</t> | |||
<t>The possible scenarios are split in two general categories:</t> | ||||
<t>The possible scenarios are split in two general categories:<li | <ol spacing="normal" type="1"> | |||
st style="numbers"> | <li>Known to work.</li> | |||
<t>Known to work.</t> | <li>Known to work under special conditions.</li> | |||
<t>Known to work under special conditions.</t> | </ol> | |||
</list></t> | <section numbered="true" toc="default"> | |||
<name>Known to Work</name> | ||||
<section title="Known to Work"> | <t>The scenarios in this category are known to work, as there are well-k | |||
<t>The scenarios in this category are known to work, as t | nown | |||
here are well-known | ||||
existing deployments from different operators using them. Each one may have | existing deployments from different operators using them. Each one may have | |||
different pros and cons, and in some cases the trade-offs | different pros and cons, and in some cases, the trade-off | |||
, | s | |||
maybe acceptable for some operators.</t> | may be acceptable for some operators.</t> | |||
<section anchor="spnatdns64" numbered="true" toc="default"> | ||||
<section title="Service Provider NAT64 with DNS64" anchor | <name>Service Provider NAT64 with DNS64</name> | |||
="spnatdns64"> | <t>In this scenario (<xref target="sp-nat64-dns64" format="default"/>) | |||
<t>In this scenario (<xref target="sp-nat64-dns64 | , the service | |||
"/>), the service | provider offers both the NAT64 and DNS64 function | |||
provider offers both, the NAT64 and the DNS64 fun | s.</t> | |||
ctions.</t> | <t>This is the most common scenario as originally considered by | |||
the designers of NAT64 <xref target="RFC6146" for | ||||
<t>This is the most common scenario as originally | mat="default"/> and | |||
considered by | DNS64 <xref target="RFC6147" format="default"/>; | |||
the designers of NAT64 (<xref target="RFC6146"/>) | however, | |||
and | it may also have the implications related to the | |||
DNS64 (<xref target="RFC6147"/>), however | DNSSEC.</t> | |||
also may have the implications related the DNSSEC | ||||
.</t> | ||||
<t>This scenario also may fail to solve the issue | <t>This scenario may also fail to solve the issues of | |||
of | IPv4 literal addresses, non-IPv6-compliant APIs, | |||
IPv4 literal addresses or non-IPv6 compliant APIs | or | |||
, as well as | IPv4-only hosts or applications behind the | |||
the issue of IPv4-only hosts or applications behi | ||||
nd the | ||||
IPv6-only access network.</t> | IPv6-only access network.</t> | |||
<figure anchor="sp-nat64-dns64"> | ||||
<figure align="center" anchor="sp-nat64-dns64" | <name>NAT64 with DNS64</name> | |||
title="NAT64 with DNS64"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| | | NAT64 | | | | | | | NAT64 | | | | |||
| IPv6 +--------+ + +--------+ IPv4 | | | IPv6 +--------+ + +--------+ IPv4 | | |||
| | | DNS64 | | | | | | | DNS64 | | | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>A similar scenario (<xref target="sp-dns64-e-n | ----------+ +----------+ <span class="insert">+----------+]]>&l | |||
at64"/>) will be if | t;/artwork></span> | |||
the service provider offers only the DNS64 functi | </figure> | |||
on, and the NAT64 | <t>A similar scenario (<xref target="sp-dns64-e-nat64" | |||
format="default"/>) exists if | ||||
the service provider offers only the | ||||
DNS64 function; the NAT64 | ||||
function is provided by an outsourcing agreement with | function is provided by an outsourcing agreement with | |||
an external provider. | an external provider. | |||
All the considerations in the previous paragraphs of this | All the considerations in the previous paragraphs of this | |||
section, are the same for this sub-case.</t> | section are the same for this sub-case.</t> | |||
<figure anchor="sp-dns64-e-nat64"> | ||||
<figure align="center" anchor="sp-dns64-e-nat64" | <name>NAT64 in an External Service Provider</name> | |||
title="NAT64 in external service provider"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ | +----------+ +----------+ | |||
| | | | | | | | | | |||
| extNAT64 +--------+ IPv4 | | | extNAT64 +--------+ IPv4 | | |||
| | | | | | | | | | |||
+----+-----+ +----------+ | +----+-----+ +----------+ | |||
| | | | |||
| | | | |||
+----------+ +----+-----+ | +----------+ +----+-----+ | |||
| | | | | | | | | | |||
| IPv6 +--------+ DNS64 + | | IPv6 +--------+ DNS64 + | |||
| | | | | | | | | | |||
+----------+ +----------+ | +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>This is equivalent to the scenario (<xref targ | ----------+ <span class="insert">+----------+]]></artwork></span | |||
et="e-nat64-dns64"/>) | > | |||
</figure> | ||||
<t>This is equivalent to the scenario (<xref target="e-nat64-dns64" fo | ||||
rmat="default"/>) | ||||
where the outsourcing | where the outsourcing | |||
agreement with the external provider is to provid e both the | agreement with the external provider is to provid e both the | |||
NAT64 and DNS64 functions. Once more, all the con siderations | NAT64 and DNS64 functions. Once more, all the con siderations | |||
in the previous paragraphs of this section are th e same | in the previous paragraphs of this section are th e same | |||
for this sub-case.</t> | for this sub-case.</t> | |||
<figure anchor="e-nat64-dns64"> | ||||
<figure align="center" anchor="e-nat64-dns64" | <name>NAT64 and DNS64 in an External Provider</name> | |||
title="NAT64 and DNS64 in external provider"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ | +----------+ +----------+ | |||
| extNAT64 | | | | | extNAT64 | | | | |||
| + +-------+ IPv4 | | | + +-------+ IPv4 | | |||
| extDNS64 | | | | | extDNS64 | | | | |||
+----+-----+ +----------+ | +----+-----+ +----------+ | |||
| | | | |||
+----------+ | | +----------+ | | |||
| | | | | | | | |||
| IPv6 +-------------+ | | IPv6 +-------------+ | |||
| | | | | | |||
+----------+ | +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>One additional equivalent scenario (<xref targ | </figure> | |||
et="sp-nat64-e-dns64"/>) | <t>One additional equivalent scenario (<xref target="sp-nat64-e-dns64" | |||
will be if the service provider | format="default"/>) | |||
offers the NAT64 function only, and the DNS64 fun | exists if the service provider | |||
ction is from an | only offers the NAT64 function; the DNS64 functio | |||
n is from an | ||||
external provider with or without a specific agre ement among them. | external provider with or without a specific agre ement among them. | |||
This is a scenario already common today, as | This is a common scenario today, as | |||
several "global" service providers provide free D NS/DNS64 | several "global" service providers provide free D NS/DNS64 | |||
services and users often configure manually their | services, and users often configure their DNS man | |||
DNS. This | ually. This | |||
will only work if both the NAT64 and the DNS64 fu | will only work if both the NAT64 and DNS64 functi | |||
nctions are using the | ons are using the | |||
WKP (Well-Known Prefix) or the same NSP (Network- | Well-Known Prefix (WKP) or the same Network-Speci | |||
Specific Prefix). | fic Prefix (NSP). | |||
All the considerations in the previous paragraphs | All the considerations in the previous paragraphs | |||
of this section, are the same for this sub-case.< /t> | of this section are the same for this sub-case.</ t> | |||
<t>Of course, if the external DNS64 function is a | <t>Of course, if the external DNS64 function is agreed with the | |||
greed with the | service provider, then this case is similar to th | |||
service provider, then we are in the same case as | e | |||
in the previous | ||||
ones already depicted in this scenario.</t> | ones already depicted in this scenario.</t> | |||
<figure anchor="sp-nat64-e-dns64"> | ||||
<figure align="center" anchor="sp-nat64-e-dns64" | <name>NAT64; DNS64 by an External Provider</name> | |||
title="NAT64; DNS64 by external provider"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ | +----------+ | |||
| | | | | | |||
| extDNS64 | | | extDNS64 | | |||
| | | | | | |||
+----+-----+ | +----+-----+ | |||
| | | | |||
| | | | |||
+----------+ +----+-----+ +----------+ | +----------+ +----+-----+ +----------+ | |||
| | | | | | | | | | | | | | |||
| IPv6 +--------+ NAT64 +--------+ IPv4 | | | IPv6 +--------+ NAT64 +--------+ IPv4 | | |||
| | | | | | | | | | | | | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
<section title="Service Provider Offering 464XLAT, with DNS64"> | ----------+ +----------+ <span class="insert">+----------+]]>&l | |||
<t>464XLAT (<xref target="RFC6877"/>) describes an archit | t;/artwork></span> | |||
ecture that | </figure> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Service Provider Offering 464XLAT Using DNS64</name> | ||||
<t>464XLAT <xref target="RFC6877" format="default"/> describes an arch | ||||
itecture that | ||||
provides IPv4 connectivity across a network, or part of i t, | provides IPv4 connectivity across a network, or part of i t, | |||
when it is only natively transporting IPv6. <xref target= | when it is only natively transporting IPv6. | |||
"RFC7849"/> | The need to support the CLAT function in order to | |||
already suggest the need to support the CLAT function in | ensure the IPv4 service continuity in IPv6-only cellular | |||
order to | deployments has been suggested in <xref target="RFC7849" format="default"/>.</t> | |||
ensure the IPv4 service continuity in IPv6-only cellular | <t>In order to do that, 464XLAT <xref target="RFC6877" format="default | |||
deployments.</t> | "/> relies on the | |||
<t>In order to do that, 464XLAT (<xref target="RFC6877"/> | ||||
) relies on the | ||||
combination of existing protocols:</t> | combination of existing protocols:</t> | |||
<t><list style="numbers"> | <ol spacing="normal" type="1"> | |||
<t>The customer-side translator (CLAT) is a state | <li>The CLAT is a stateless IPv4-to-IPv6 | |||
less IPv4 to IPv6 | translator (NAT46) <xref target="RFC7915" format= | |||
translator (NAT46) (<xref target="RFC7915"/>) imp | "default"/> implemented in the | |||
lemented in the | end-user device or Customer Edge Router (CE), loc | |||
end-user device or CE (Customer Edge Router), loc | ated at the | |||
ated at the | "customer edge" of the network.</li> | |||
"customer edge" of the network.</t> | <li>The provider-side translator (PLAT) is a stateful NAT64 | |||
<t>The provider-side translator (PLAT) is a state | <xref target="RFC6146" format="default"/>, implem | |||
ful NAT64 | ented typically in | |||
(<xref target="RFC6146"/>), implemented typically | the operator network.</li> | |||
at in | <li>Optionally, DNS64 <xref target="RFC6147" format="default"/> may | |||
the operator network.</t> | allow | |||
<t>Optionally, DNS64 (<xref target="RFC6147"/>), | ||||
may allow | ||||
an optimization: a single translation at the NAT6 4, instead | an optimization: a single translation at the NAT6 4, instead | |||
of two translations (NAT46+NAT64), when the appli cation at | of two translations (NAT46+NAT64), when the appli cation at | |||
the end-user device supports IPv6 DNS (uses AAAA | the end-user device supports IPv6 DNS (uses AAAA | |||
Resource Records).</t> | Resource Records).</li> | |||
</list></t> | </ol> | |||
<t>Note that even if the provider-side translator is referred to as PL | ||||
<t>Note that even if in the 464XLAT (<xref target="RFC687 | AT in the | |||
7"/>) terminology, | 464XLAT terminology <xref target="RFC6877" format="defau | |||
the provider-side translator is referred as PLAT, for sim | lt"/>, for simplicity and | |||
plicity and | uniformity across this document, it is always referred to | |||
uniformity, across this document is always referred as NA | as NAT64 (function).</t> | |||
T64 (function).</t> | <t>In this scenario (<xref target="sp-464xlat-dns64" format="default"/ | |||
>), the service provider | ||||
<t>In this scenario (<xref target="sp-464xlat-dns64"/>) t | ||||
he service provider | ||||
deploys 464XLAT with a DNS64 function.</t> | deploys 464XLAT with a DNS64 function.</t> | |||
<t>As a consequence, the DNSSEC issues remain, unless the host | ||||
<t>As a consequence, the DNSSEC issues remain, unless the | ||||
host | ||||
is doing the address synthesis.</t> | is doing the address synthesis.</t> | |||
<t>464XLAT <xref target="RFC6877" format="default"/> is a very simple | ||||
<t>464XLAT (<xref target="RFC6877"/>) is a very simple ap | approach to cope | |||
proach to cope | with the major NAT64+DNS64 drawback: not working with app | |||
with the major NAT64+DNS64 drawback: Not working with app | lications or | |||
lications or | devices that use literal IPv4 addresses or non-IPv6-compl | |||
devices that use literal IPv4 addresses or non-IPv6 compl | iant APIs.</t> | |||
iant APIs.</t> | <t>464XLAT <xref target="RFC6877" format="default"/> has been used mai | |||
nly in | ||||
<t>464XLAT (<xref target="RFC6877"/>) has been used initi | IPv6-only cellular networks. By supporting a CLAT functio | |||
ally mainly in | n, end-user | |||
IPv6-only cellular networks. By supporting a CLAT functio | device applications can access IPv4-only end networks / a | |||
n, the end-user | pplications, | |||
device applications can access IPv4-only end-networks/app | despite the fact that those applications or devices use l | |||
lications, | iteral IPv4 addresses | |||
despite those applications or devices use literal IPv4 ad | or non-IPv6-compliant APIs.</t> | |||
dresses | <t>In addition, in the cellular network example above, | |||
or non-IPv6 compliant APIs.</t> | ||||
<t>In addition to that, in the same example of the cellul | ||||
ar network above, | ||||
if the User Equipment (UE) provides tethering, other devi ces behind it | if the User Equipment (UE) provides tethering, other devi ces behind it | |||
will be presented with a traditional NAT44, in addition t o the native | will be presented with a traditional Network Address Tran slation from IPv4 to IPv4 (NAT44), in addition to the native | |||
IPv6 support, so clearly it allows IPv4-only hosts behind the IPv6-only | IPv6 support, so clearly it allows IPv4-only hosts behind the IPv6-only | |||
access network.</t> | access network.</t> | |||
<t>Furthermore, as discussed in <xref target="RFC6877" format="default | ||||
<t>Furthermore, as discussed in <xref target="RFC6877"/>, | "/>, 464XLAT | |||
464XLAT | ||||
can be used in broadband IPv6 network architectures, | can be used in broadband IPv6 network architectures, | |||
by implementing the CLAT function at the CE.</t> | by implementing the CLAT function at the CE.</t> | |||
<t>The support of this scenario in a network offers two additional adv | ||||
<t>The support of this scenario in a network, offers two | antages:</t> | |||
additional advantages:</t> | <ul spacing="normal"> | |||
<t><list style="symbols"> | <li>DNS load optimization: A CLAT should implement a DNS proxy | |||
<t>DNS load optimization: A CLAT should implement | (per <xref target="RFC5625" format="default"/>) s | |||
a DNS proxy | o that only IPv6-native queries | |||
(as per <xref target="RFC5625"/>), so that only I | and AAAA records are sent to the DNS64 server. Ot | |||
Pv6 native queries | herwise, | |||
and only for AAAA records are sent to the DNS64 s | doubling the number of queries may impact the DNS | |||
erver. Otherwise | infrastructure.</li> | |||
doubling the number of queries may impact the DNS | <li>Connection establishment delay optimization: If the UE/CE | |||
infrastructure.</t> | ||||
<t>Connection establishment delay optimization: I | ||||
f the UE/CE | ||||
implementation is detecting the presence of a DNS 64 function, | implementation is detecting the presence of a DNS 64 function, | |||
it may issue only the AAAA query, instead of both the AAAA | it may issue only the AAAA query, instead of both the AAAA | |||
and A queries.</t> | and A queries.</li> | |||
</list></t> | </ul> | |||
<t>In order to understand all the communication possibilities, let's | ||||
<t>In order to understand all the communication possibili | assume the following representation of two | |||
ties, let's | dual-stack (DS) peers:</t> | |||
assume the following representation of two dual-stack pee | ||||
rs:</t> | ||||
<figure align="center" suppress-title="true" | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
title="Figure A: Representation of 464XLAT among two peers with | ||||
DNS64"> | ||||
<artwork align="center"><![CDATA[ | ||||
+-------+ .-----. .-----. | +-------+ .-----. .-----. | |||
| | / \ / \ | | | / \ / \ | |||
.-----. | Res./ | / IPv6- \ .-----. / IPv4- \ | .-----. | Res./ | / IPv6- \ .-----. / IPv4- \ | |||
/ Local \ | SOHO +--( only )---( NAT64 )---( only ) | / Local \ | SOHO +--( only )---( NAT64 )---( only ) | |||
/ \ | | \ flow /\ `-----´ \ flow / | / \ | | \ flow /\ `-----' \ flow / | |||
( Dual- )--+ IPv6 | \ / \ / \ / | ( Dual- )--+ IPv6 | \ / \ / \ / | |||
\ Stack / | CE | `--+--´ \ .-----. / `--+--´ | \ Stack / | CE | `--+--' \ .-----. / `--+--' | |||
\ Peer / | with | | \ / Remote\/ | | \ Peer / | with | | \ / Remote\/ | | |||
`-----´ | CLAT | +---+----+ / \ +---+----+ | `-----' | CLAT | +---+----+ / \ +---+----+ | |||
| | |DNS/IPv6| ( Dual- ) |DNS/IPv4| | | | |DNS/IPv6| ( Dual- ) |DNS/IPv4| | |||
+-------+ | with | \ Stack / +--------+ | +-------+ | with | \ Stack / +--------+ | |||
| DNS64 | \ Peer / | | DNS64 | \ Peer / | |||
+--------+ `-----´ | +--------+ `-----' | |||
]]></artwork> | ||||
</figure> | ||||
<t>The possible communication paths, among the IPv4/IPv6 | Figure A: Representation of 464XLAT among Two Peers with DNS64 | |||
stacks of | ||||
both peers, in this case, are:</t> | ||||
<t><list style="letters"> | ||||
<t>Local-IPv6 to Remote-IPv6: Regular DNS and nat | ||||
ive IPv6 among peers.</t> | ||||
<t>Local-IPv6 to Remote-IPv4: DNS64 and NAT64 tra | ||||
nslation.</t> | ||||
<t>Local-IPv4 to Remote-IPv6: Not possible unless | ||||
the CLAT | ||||
implements EAM (Explicit Address Mappings) as ind | ||||
icated by | ||||
<xref target="EAM"/>. In principle, | ||||
it is not expected that services are deployed in | ||||
Internet using | ||||
IPv6-only, unless there is certainty that peers w | ||||
ill also be | ||||
IPv6-capable.</t> | ||||
<t>Local-IPv4 to Remote-IPv4: DNS64, CLAT and NAT | ||||
64 translations.</t> | ||||
<t>Local-IPv4 to Remote-dual-stack using EAM opti | ||||
mization: If the CLAT | ||||
implements EAM as indicated by <xref target="EAM" | ||||
/>, instead of | ||||
using the path d. above, NAT64 translation is avo | ||||
ided and the | ||||
flow will use IPv6 from the CLAT to the destinati | ||||
on.</t> | ||||
</list></t> | ||||
<t>The rest of the figures in this section show different | ]]></artwork> | |||
choices for placing | ||||
the different elements.</t> | ||||
<figure align="center" anchor="sp-464xlat-dns64" | <t>In this case, the possible communication paths, among the IPv4/IPv6 | |||
title="464XLAT with DNS64"> | stacks of | |||
<artwork align="center"><![CDATA[ | both peers, are as follows:</t> | |||
<ol spacing="normal" type="a"> | ||||
<li>Local-IPv6 to Remote-IPv6: Regular DNS and native IPv6 among pee | ||||
rs.</li> | ||||
<li>Local-IPv6 to Remote-IPv4: DNS64 and NAT64 translation.</li> | ||||
<li>Local-IPv4 to Remote-IPv6: Not possible unless the CLAT | ||||
implements Explicit Address Mappings (EAMs) as in | ||||
dicated by | ||||
<xref target="EAM" format="default"/>. In princip | ||||
le, | ||||
it is not expected that services are deployed in | ||||
the Internet when using | ||||
IPv6 only, unless there is certainty that peers w | ||||
ill also be | ||||
IPv6 capable.</li> | ||||
<li>Local-IPv4 to Remote-IPv4: DNS64, CLAT, and NAT64 translations.< | ||||
/li> | ||||
<li>Local-IPv4 to Remote-dual-stack using EAM optimization: If the C | ||||
LAT | ||||
implements EAM as indicated by <xref target="EAM" | ||||
format="default"/>, instead of | ||||
using the path d. above, NAT64 translation is avo | ||||
ided, and the | ||||
flow will use IPv6 from the CLAT to the destinati | ||||
on.</li> | ||||
</ol> | ||||
<t>The rest of the figures in this section show different choices for | ||||
placing | ||||
the different elements.</t> | ||||
<figure anchor="sp-464xlat-dns64"> | ||||
<name>464XLAT with DNS64</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| IPv6 | | NAT64 | | | | | IPv6 | | NAT64 | | | | |||
| + +--------+ + +--------+ IPv4 | | | + +--------+ + +--------+ IPv4 | | |||
| CLAT | | DNS64 | | | | | CLAT | | DNS64 | | | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ ]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>A similar scenario (<xref target="ext-nat64-46 | ----------+ +----------+ +----------+ ]]></artwork> | |||
4xlatdns64"/>) will be | </figure> | |||
if the service provider | <t>A similar scenario (<xref target="ext-nat64-464xlatdns64" format="d | |||
offers only the DNS64 function, and the NAT64 fun | efault"/>) exists | |||
ction is provided by | if the service provider only | |||
offers the DNS64 function; the NAT64 function is | ||||
provided by | ||||
an outsourcing agreement with an external provide r. | an outsourcing agreement with an external provide r. | |||
All the considerations in the previous paragraphs of this | All the considerations in the previous paragraphs of this | |||
section are the same for this sub-case.</t> | section are the same for this sub-case.</t> | |||
<figure anchor="ext-nat64-464xlatdns64"> | ||||
<figure align="center" anchor="ext-nat64-464xlatdns64" | <name>464XLAT with DNS64; NAT64 in an External Provider</name> | |||
title="464XLAT with DNS64; NAT64 in external provider"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ | +----------+ +----------+ | |||
| | | | | | | | | | |||
| extNAT64 +--------+ IPv4 | | | extNAT64 +--------+ IPv4 | | |||
| | | | | | | | | | |||
+----+-----+ +----------+ | +----+-----+ +----------+ | |||
| | | | |||
| | | | |||
+----------+ +----+-----+ | +----------+ +----+-----+ | |||
| IPv6 | | | | | IPv6 | | | | |||
| + +--------+ DNS64 + | | + +--------+ DNS64 + | |||
| CLAT | | | | | CLAT | | | | |||
+----------+ +----------+ | +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>As well, is equivalent to the scenario (<xref | ----------+ <span class="insert">+----------+]]></artwork></span | |||
target="ext-nat64-dns64-464xlatdns64"/>) | > | |||
</figure> | ||||
<t>In addition, it is equivalent to the scenario (<xref target="ext-na | ||||
t64-dns64-464xlatdns64" format="default"/>) | ||||
where the outsourcing | where the outsourcing | |||
agreement with the external provider is to provid e both the | agreement with the external provider is to provid e both the | |||
NAT64 and DNS64 functions. Once more, all the con siderations | NAT64 and DNS64 functions. Once more, all the con siderations | |||
in the previous paragraphs of this section are th e same | in the previous paragraphs of this section are th e same | |||
for this sub-case.</t> | for this sub-case.</t> | |||
<figure anchor="ext-nat64-dns64-464xlatdns64"> | ||||
<figure align="center" anchor="ext-nat64-dns64-464xlatdns64" | <name>464XLAT with DNS64; NAT64 and DNS64 in an External Provider</n | |||
title="464XLAT with DNS64; NAT64 and DNS64 in external provider" | ame> | |||
> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ | +----------+ +----------+ | |||
| extNAT64 | | | | | extNAT64 | | | | |||
| + +--------+ IPv4 | | | + +--------+ IPv4 | | |||
| extDNS64 | | | | | extDNS64 | | | | |||
+----+-----+ +----------+ | +----+-----+ +----------+ | |||
| | | | |||
+----------+ | | +----------+ | | |||
| IPv6 | | | | IPv6 | | | |||
| + +-------------+ | | + +-------------+ | |||
| CLAT | | | CLAT | | |||
+----------+ | +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
<section title="Service Provider Offering 464XLAT, without DNS64" | </figure> | |||
anchor="xlat-dns64"> | </section> | |||
<t>The major advantage of this scenario (<xref target="sp | <section anchor="xlat-dns64" numbered="true" toc="default"> | |||
-464xlat"/>), | <name>Service Provider Offering 464XLAT, without Using DNS64</name | |||
> | ||||
<t>The major advantage of this scenario (<xref target="sp-464xlat" for | ||||
mat="default"/>), | ||||
using 464XLAT without DNS64, | using 464XLAT without DNS64, | |||
is that the service provider ensures that DNSSEC is never broken, even | is that the service provider ensures that DNSSEC is never broken, even | |||
in case the user modifies the DNS configuration. Neverthe less, some | if the user modifies the DNS configuration. Nevertheless, some | |||
CLAT implementations or applications may impose an extra delay, which | CLAT implementations or applications may impose an extra delay, which | |||
is induced by the dual A/AAAA queries (and wait for both | is induced by the dual A/AAAA queries (and the wait for b | |||
responses), | oth responses), | |||
unless Happy Eyeballs v2 (<xref target="RFC8305"/>) is al | unless Happy Eyeballs v2 <xref target="RFC8305" format="d | |||
so present.</t> | efault"/> is also present.</t> | |||
<t>A possible variation of this scenario is when DNS64 is | ||||
<t>A possible variation of this scenario is the case when | used only for the discovery of the NAT64 prefix. In the r | |||
DNS64 is | est of the document, | |||
used only for the discovery of the NAT64 prefix. The rest | it is not considered a different scenario because once th | |||
of the document | e prefix | |||
is not considering it as a different scenario, because on | ||||
ce the prefix | ||||
has been discovered, the DNS64 function is not used, so i t behaves as if | has been discovered, the DNS64 function is not used, so i t behaves as if | |||
the DNS64 synthesis function is not present.</t> | the DNS64 synthesis function is not present.</t> | |||
<t>In this scenario, as in the previous one, there are no | ||||
<t>In this scenario, as in the previous one, there are no | ||||
issues related to IPv4-only hosts (or IPv4-only applicati ons) | issues related to IPv4-only hosts (or IPv4-only applicati ons) | |||
behind the IPv6-only access network, neither related to t | behind the IPv6-only access network, as neither are relat | |||
he | ed to the | |||
usage of IPv4 literals or non-IPv6 compliant APIs.</t> | usage of IPv4 literals or non-IPv6-compliant APIs.</t> | |||
<t>The support of this scenario in a network offers one advantage:</t> | ||||
<t>The support of this scenario in a network, offers one | <ul spacing="normal"> | |||
advantage:</t> | <li>DNS load optimization: A CLAT should implement a DNS proxy | |||
<t><list style="symbols"> | (per <xref target="RFC5625" format="default"/>) s | |||
<t>DNS load optimization: A CLAT should implement | o that only IPv6 native queries | |||
a DNS proxy | are sent to the DNS64 server. Otherwise, doubling | |||
(as per <xref target="RFC5625"/>), so that only I | the number of | |||
Pv6 native queries | queries may impact the DNS infrastructure.</li> | |||
are sent to the DNS64 server. Otherwise doubling | </ul> | |||
the number of | <t>As indicated earlier, the connection establishment delay optimizati | |||
queries may impact the DNS infrastructure.</t> | on | |||
</list></t> | ||||
<t>As indicated earlier, the connection establishment del | ||||
ay optimization | ||||
is achieved only in the case of devices, Operating System s, or applications | is achieved only in the case of devices, Operating System s, or applications | |||
that use Happy Eyeballs v2 (<xref target="RFC8305"/>), wh | that use Happy Eyeballs v2 <xref target="RFC8305" format= | |||
ich is very common.</t> | "default"/>, which is very common.</t> | |||
<t>As in the previous case, let's assume the representation of two dua | ||||
<t>Let's assume the representation of two dual-stack peer | l-stack peers:</t> | |||
s as in the | ||||
previous case:</t> | ||||
<figure align="center" suppress-title="true" | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
title="Figure B: Representation of 464XLAT among two peers witho | ||||
ut DNS64"> | ||||
<artwork align="center"><![CDATA[ | ||||
+-------+ .-----. .-----. | +-------+ .-----. .-----. | |||
| | / \ / \ | | | / \ / \ | |||
.-----. | Res./ | / IPv6- \ .-----. / IPv4- \ | .-----. | Res./ | / IPv6- \ .-----. / IPv4- \ | |||
/ Local \ | SOHO +--( only )---( NAT64 )---( only ) | / Local \ | SOHO +--( only )---( NAT64 )---( only ) | |||
/ \ | | \ flow /\ `-----´ \ flow / | / \ | | \ flow /\ `-----' \ flow / | |||
( Dual- )--+ IPv6 | \ / \ / \ / | ( Dual- )--+ IPv6 | \ / \ / \ / | |||
\ Stack / | CE | `--+--´ \ .-----. / `--+--´ | \ Stack / | CE | `--+--' \ .-----. / `--+--' | |||
\ Peer / | with | | \ / Remote\/ | | \ Peer / | with | | \ / Remote\/ | | |||
`-----´ | CLAT | +---+----+ / \ +---+----+ | `-----' | CLAT | +---+----+ / \ +---+----+ | |||
| | |DNS/IPv6| ( Dual- ) |DNS/IPv4| | | | |DNS/IPv6| ( Dual- ) |DNS/IPv4| | |||
+-------+ +--------+ \ Stack / +--------+ | +-------+ +--------+ \ Stack / +--------+ | |||
\ Peer / | \ Peer / | |||
`-----´ | `-----' | |||
]]></artwork> | ||||
</figure> | ||||
<t>The possible communication paths, among the IPv4/IPv6 | Figure B: Representation of 464XLAT among Two Peers without DNS64 | |||
stacks of | ||||
both peers, in this case, are:</t> | ||||
<t><list style="letters"> | ||||
<t>Local-IPv6 to Remote-IPv6: Regular DNS and nat | ||||
ive IPv6 among peers.</t> | ||||
<t>Local-IPv6 to Remote-IPv4: Regular DNS, CLAT a | ||||
nd NAT64 translations.</t> | ||||
<t>Local-IPv4 to Remote-IPv6: Not possible unless | ||||
the CLAT | ||||
implements EAM as indicated by <xref target="EAM" | ||||
/>. In principle, | ||||
it is not expected that services are deployed in | ||||
Internet using | ||||
IPv6-only, unless there is certainty that peers w | ||||
ill also be | ||||
IPv6-capable.</t> | ||||
<t>Local-IPv4 to Remote-IPv4: Regular DNS, CLAT a | ||||
nd NAT64 translations.</t> | ||||
<t>Local-IPv4 to Remote-dual-stack using EAM opti | ||||
mization: If the CLAT | ||||
implements EAM as indicated by <xref target="EAM" | ||||
/>, instead of | ||||
using the path d. above, NAT64 translation is avo | ||||
ided and the flow | ||||
will use IPv6 from the CLAT to the destination.</ | ||||
t> | ||||
</list></t> | ||||
<t>It needs to be noticed that this scenario works while | ]]></artwork> | |||
the local | ||||
hosts/applications are dual-stack (which is the current s | ||||
ituation), | ||||
because the connectivity from a local-IPv6 to a remote-IP | ||||
v4 is not possible | ||||
without an AAAA synthesis. This aspect is important only | ||||
when in the | ||||
LANs behind the CLAT there are IPv6-only hosts and they n | ||||
eed to | ||||
communicate with remote IPv4-only hosts. However, it does | ||||
n't look a | ||||
sensible approach from an Operating System or application | ||||
vendor | ||||
perspective, to provide IPv6-only support unless, | ||||
similarly to case c above, there is certainty of peers su | ||||
pporting | ||||
IPv6 as well. A solution approach to this is also present | ||||
ed | ||||
in <xref target="I-D.palet-v6ops-464xlat-opt-cdn-caches"/ | ||||
>.</t> | ||||
<t>The following figures show different choices for placi | <t>In this case, the possible communication paths, among the IPv4/IPv6 | |||
ng | stacks of | |||
both peers, are as follows:</t> | ||||
<ol spacing="normal" type="a"> | ||||
<li>Local-IPv6 to Remote-IPv6: Regular DNS and native IPv6 among pee | ||||
rs.</li> | ||||
<li>Local-IPv6 to Remote-IPv4: Regular DNS, CLAT, and NAT64 translat | ||||
ions.</li> | ||||
<li>Local-IPv4 to Remote-IPv6: Not possible unless the CLAT | ||||
implements EAM as indicated by <xref target="EAM" | ||||
format="default"/>. In principle, | ||||
it is not expected that services are deployed in | ||||
the Internet using | ||||
IPv6 only, unless there is certainty that peers w | ||||
ill also be | ||||
IPv6-capable.</li> | ||||
<li>Local-IPv4 to Remote-IPv4: Regular DNS, CLAT, and NAT64 translat | ||||
ions.</li> | ||||
<li>Local-IPv4 to Remote-dual-stack using EAM optimization: If the C | ||||
LAT | ||||
implements EAM as indicated by <xref target="EAM" | ||||
format="default"/>, instead of | ||||
using the path d. above, NAT64 translation is avo | ||||
ided, and the flow | ||||
will use IPv6 from the CLAT to the destination.</ | ||||
li> | ||||
</ol> | ||||
<t>Notice that this scenario works while the local | ||||
hosts/applications are dual stack (which is the current s | ||||
ituation) | ||||
because the connectivity from a local IPv6 to a remote IP | ||||
v4 is not possible | ||||
without a AAAA synthesis. This aspect is important only w | ||||
hen there are IPv6-only hosts in the LANs behind the CLAT and they need to | ||||
communicate with remote IPv4-only hosts. However, it is n | ||||
ot a sensible | ||||
approach from an Operating System or application vendor | ||||
perspective to provide IPv6-only support unless, | ||||
similar to case c above, there is certainty of peers supp | ||||
orting | ||||
IPv6 as well. An approach to a solution for this is also | ||||
presented | ||||
in <xref target="I-D.palet-v6ops-464xlat-opt-cdn-caches" | ||||
format="default"/>.</t> | ||||
<t>The following figures show different choices for placing | ||||
the different elements.</t> | the different elements.</t> | |||
<figure anchor="sp-464xlat"> | ||||
<figure align="center" anchor="sp-464xlat" | <name>464XLAT without DNS64</name> | |||
title="464XLAT without DNS64"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| IPv6 | | | | | | | IPv6 | | | | | | |||
| + +--------+ NAT64 +--------+ IPv4 | | | + +--------+ NAT64 +--------+ IPv4 | | |||
| CLAT | | | | | | | CLAT | | | | | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>This is equivalent to the scenario (<xref targ | ----------+ +----------+ <span class="insert">+----------+]]>&l | |||
et="ext-nat64-464xlat"/>) | t;/artwork></span> | |||
</figure> | ||||
<t>This is equivalent to the scenario (<xref target="ext-nat64-464xlat | ||||
" format="default"/>) | ||||
where there is an | where there is an | |||
outsourcing agreement with an external provider f or the | outsourcing agreement with an external provider f or the | |||
NAT64 function. All the considerations in the pre vious | NAT64 function. All the considerations in the pre vious | |||
paragraphs of this section are the same for this sub-case.</t> | paragraphs of this section are the same for this sub-case.</t> | |||
<figure anchor="ext-nat64-464xlat"> | ||||
<figure align="center" anchor="ext-nat64-464xlat" | <name>464XLAT without DNS64; NAT64 in an External Provider</name> | |||
title="464XLAT without DNS64; NAT64 in external provider"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ | +----------+ +----------+ | |||
| | | | | | | | | | |||
| extNAT64 +--------+ IPv4 | | | extNAT64 +--------+ IPv4 | | |||
| | | | | | | | | | |||
+----+-----+ +----------+ | +----+-----+ +----------+ | |||
| | | | |||
+----------+ | | +----------+ | | |||
| IPv6 | | | | IPv6 | | | |||
| + +-------------+ | | + +-------------+ | |||
| CLAT | | | CLAT | | |||
+----------+ | +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
</section> | ||||
<section title="Known to Work Under Special Conditions"> | ||||
<t>The scenarios in this category are known to not work u | ||||
nless significant | ||||
effort is devoted to solve the issues, or are intended to | ||||
solve problems | ||||
across "closed" networks, instead of as a general Interne | ||||
t access usage. | ||||
In addition to the different pros, cons and trade-offs, | ||||
which may be acceptable for some operators, they have imp | ||||
lementation | ||||
difficulties, as they are beyond the original expectation | ||||
s of the | ||||
NAT64/DNS64 original intent.</t> | ||||
<section title="Service Provider NAT64 without DNS64" anc | </figure> | |||
hor="onlynat64"> | </section> | |||
<t>In this scenario (<xref target="only-nat64"/>) | </section> | |||
, | <section numbered="true" toc="default"> | |||
the service provider offers a NAT64 function, | <name>Known to Work under Special Conditions</name> | |||
however there is no DNS64 function support at all | <t>The scenarios in this category are known | |||
.</t> | not to work unless significant | |||
effort is devoted to solving the issues or they are inten | ||||
ded to solve problems | ||||
across "closed" networks instead of as a general Internet | ||||
access usage. | ||||
<t>As a consequence, an IPv6 host in the IPv6-onl | Even though some of the different pros, cons, and trade-o | |||
y | ffs | |||
access network, will not be able to detect the pr | may be acceptable, operators have implementation | |||
esence | difficulties, as their expectations of | |||
of DNS64 by means of <xref target="RFC7050"/>, ne | NAT64/DNS64 are beyond the original intent.</t> | |||
ither to learn the | <section anchor="onlynat64" numbered="true" toc="default"> | |||
<name>Service Provider NAT64 without DNS64</name> | ||||
<t>In this scenario (<xref target="only-nat64" format="default"/>), | ||||
the service provider offers a NAT64 function; | ||||
however, there is no DNS64 function support at al | ||||
l.</t> | ||||
<t>As a consequence, an IPv6 host in the IPv6-only | ||||
access network will not be able to detect the pre | ||||
sence | ||||
of DNS64 by means of <xref target="RFC7050" forma | ||||
t="default"/> or learn the | ||||
IPv6 prefix to be used for the NAT64 function.</t > | IPv6 prefix to be used for the NAT64 function.</t > | |||
<t>This can be sorted out as indicated in <xref target="nodns64" forma | ||||
<t>This can be sorted out as indicated in <xref t | t="default"/>.</t> | |||
arget="nodns64"/>.</t> | <t>Regardless, because of the lack of the DNS64 | |||
<t>However, despite that, because the lack of the | ||||
DNS64 | ||||
function, the IPv6 host will not be able to obtai n | function, the IPv6 host will not be able to obtai n | |||
AAAA synthesized records, so the NAT64 function b ecomes useless.</t> | AAAA synthesized records, so the NAT64 function b ecomes useless.</t> | |||
<t>An exception to this "useless" scenario is to | ||||
<t>An exception to this "useless" scenario will b | ||||
e | ||||
manually configure mappings between the A records of each | manually configure mappings between the A records of each | |||
of the IPv4-only remote hosts and the correspondi | of the IPv4-only remote hosts and the correspondi | |||
ng AAAA records, | ng AAAA records | |||
with the WKP (Well-Known Prefix) or NSP (Network- | with the WKP or NSP | |||
Specific Prefix) | used by the service-provider NAT64 function, | |||
used by the service provider NAT64 function, | ||||
as if they were synthesized by a DNS64 function.< /t> | as if they were synthesized by a DNS64 function.< /t> | |||
<t>This mapping could be done by several means, typically | ||||
<t>This mapping could be done by several means, t | at the authoritative DNS server or at the service | |||
ypically | -provider | |||
at the authoritative DNS server, or at the servic | resolvers by means of DNS Response Policy Zones ( | |||
e provider | RPZs) | |||
resolvers by means of DNS RPZ (Response Policy Zo | <xref target="I-D.vixie-dnsop-dns-rpz" format="de | |||
nes, | fault"/> or equivalent functionality. | |||
<xref target="I-D.vixie-dns-rpz"/>) or equivalent | DNS RPZ may have implications in DNSSEC if the zo | |||
functionality. | ne is signed. | |||
DNS RPZ, may have implications in DNSSEC, if the | ||||
zone is signed. | ||||
Also, if the service provider is using an NSP, ha ving the mapping | Also, if the service provider is using an NSP, ha ving the mapping | |||
at the authoritative server, may create troubles | at the authoritative server may create troubles f | |||
to other parties | or other parties | |||
trying to use different NSP or the WKP, unless mu | trying to use a different NSP or WKP, unless mult | |||
ltiple DNS "views" | iple DNS "views" | |||
(split-DNS) is also being used at the authoritati | (split-DNS) are also being used at the authoritat | |||
ve servers.</t> | ive servers.</t> | |||
<t>Generally, the mappings alternative will only | ||||
<t>Generally, the mappings alternative, will only | make sense | |||
make sense | if a few sets of IPv4-only remote hosts need to b | |||
if a few set of IPv4-only remote hosts need to be | e accessed | |||
accessed | by a single network (or a small number of them), | |||
by a single network (or a small number of them), | which supports | |||
which support | IPv6 only in the access. | |||
IPv6-only in the access. This will require some k | This will require some kind of mutual | |||
ind of mutual | agreement for using this procedure; this should n | |||
agreement for using this procedure, so it doesn't | ot be a problem because it won't interfere with Internet use (which is a "closed | |||
care if they | service").</t> | |||
become a trouble for other parties across Interne | <t>In any case, this scenario doesn't solve the issue of | |||
t | IPv4 literal addresses, non-IPv6-compliant APIs, | |||
("closed services").</t> | or IPv4-only | |||
hosts within that IPv6-only access network.</t> | ||||
<t>In any case, this scenario doesn't solve the i | <figure anchor="only-nat64"> | |||
ssue of | <name>NAT64 without DNS64</name> | |||
IPv4 literal addresses or non-IPv6 compliant APIs | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
, neither it | ||||
solves the problem of IPv4-only hosts within that | ||||
IPv6-only | ||||
access network.</t> | ||||
<figure align="center" anchor="only-nat64" | ||||
title="NAT64 without DNS64"> | ||||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| | | | | | | | | | | | | | |||
| IPv6 +--------+ NAT64 +--------+ IPv4 | | | IPv6 +--------+ NAT64 +--------+ IPv4 | | |||
| | | | | | | | | | | | | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
</section> | </section> | |||
<section title="Service Provider NAT64; DNS64 in the IPv6 | <section numbered="true" toc="default"> | |||
hosts"> | <name>Service-Provider NAT64; DNS64 in IPv6 Hosts</name> | |||
<t>In this scenario (<xref target="sp-nat64-h-dns | <t>In this scenario (<xref target="sp-nat64-h-dns64" format="default"/ | |||
64"/>), | >), | |||
the service provider offers the | the service provider offers the | |||
NAT64 function, but not the DNS64 function. Howev er, the IPv6 hosts | NAT64 function but not the DNS64 function. Howeve r, the IPv6 hosts | |||
have a built-in DNS64 function.</t> | have a built-in DNS64 function.</t> | |||
<t>This may become common if the DNS64 function is | ||||
<t>This may become common if the DNS64 function i | ||||
s | ||||
implemented in all the IPv6 hosts/stacks. | implemented in all the IPv6 hosts/stacks. | |||
However, commonly this is not the actual | This is not common at the | |||
situation, even if it may happen in the medium-te | time of writing but may become more | |||
rm. | common in the near future. | |||
At this way, the DNSSEC validation is performed o | This way, the DNSSEC validation is performed on t | |||
n the A record, | he A record, | |||
and then the host can use the DNS64 function so t | and then the host can use the DNS64 function in o | |||
o be able | rder to | |||
to use the NAT64 function, without any DNSSEC iss | use the NAT64 function without any DNSSEC issues. | |||
ues.</t> | </t> | |||
<t>This scenario fails to solve the issue of | ||||
<t>This scenario fails to solve the issue of | IPv4 literal addresses or non-IPv6-compliant APIs | |||
IPv4 literal addresses or non-IPv6 compliant APIs | , unless | |||
, unless | the IPv6 hosts also support Happy Eyeballs v2 | |||
the IPv6 hosts also supports Happy Eyeballs v2 | (<xref target="RFC8305" | |||
(<xref target="RFC8305"/>, Section 7.1), which ma | sectionFormat="of" section="7.1"/>).</t> | |||
y solve that issue.</t> | <t>Moreover, this scenario also fails to solve the problem | |||
<t>However, this scenario still fails to solve th | ||||
e problem | ||||
of IPv4-only hosts or applications behind the IPv 6-only | of IPv4-only hosts or applications behind the IPv 6-only | |||
access network.</t> | access network.</t> | |||
<figure anchor="sp-nat64-h-dns64"> | ||||
<figure align="center" anchor="sp-nat64-h-dns64" | <name>NAT64; DNS64 in IPv6 Hosts</name> | |||
title="NAT64; DNS64 in IPv6 hosts"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| IPv6 | | | | | | | IPv6 | | | | | | |||
| + +--------+ NAT64 +--------+ IPv4 | | | + +--------+ NAT64 +--------+ IPv4 | | |||
| DNS64 | | | | | | | DNS64 | | | | | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
<section title="Service Provider NAT64; DNS64 in the IPv4 | ----------+ +----------+ <span class="insert">+----------+]]>&l | |||
-only | t;/artwork></span> | |||
remote network" anchor="sprdns64"> | </figure> | |||
<t>In this scenario (<xref target="sp-nat64-r-dns | </section> | |||
64"/>), the service provider offers the | <section anchor="sprdns64" numbered="true" toc="default"> | |||
NAT64 function only. The remote IPv4-only network | <name>Service-Provider NAT64; DNS64 in the IPv4-Only Remote Networ | |||
offers the | k</name> | |||
<t>In this scenario (<xref target="sp-nat64-r-dns64" format="default"/ | ||||
>), the service provider offers the | ||||
NAT64 function only. The IPv4-only remote network | ||||
offers the | ||||
DNS64 function.</t> | DNS64 function.</t> | |||
<t>This is not common, and it doesn't make sense | ||||
<t>This is not common, and looks like doesn't mak | ||||
e too much sense | ||||
that a remote network, not deploying IPv6, is pro viding a DNS64 | that a remote network, not deploying IPv6, is pro viding a DNS64 | |||
function. As in the case of the scenario depicted | function. Like the scenario depicted in | |||
in | <xref target="onlynat64" format="default"/>, it w | |||
<xref target="onlynat64"/>, it will only work if | ill only work if both sides are | |||
both sides are | ||||
using the WKP or the same NSP, so the same consid erations apply. | using the WKP or the same NSP, so the same consid erations apply. | |||
It can be also tuned to behave as in <xref target | It can also be tuned to behave as in <xref target | |||
="spnatdns64"/></t> | ="spnatdns64" format="default"/>.</t> | |||
<t>This scenario fails to solve the issue of | ||||
<t>This scenario still fails to solve the issue o | IPv4 literal addresses or non-IPv6-compliant APIs | |||
f | .</t> | |||
IPv4 literal addresses or non-IPv6 compliant APIs | <t>Moreover, this scenario also fails to solve the problem | |||
.</t> | ||||
<t>This scenario also fails to solve the problem | ||||
of IPv4-only hosts or applications behind the IPv 6-only | of IPv4-only hosts or applications behind the IPv 6-only | |||
access network.</t> | access network.</t> | |||
<figure align="center" anchor="sp-nat64-r-dns64" | <figure anchor="sp-nat64-r-dns64"> | |||
title="NAT64; DNS64 in the IPv4-only"> | <name>NAT64; DNS64 in IPv4-Only Hosts</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| | | | | IPv4 | | | | | | | IPv4 | | |||
| IPv6 +--------+ NAT64 +--------+ + | | | IPv6 +--------+ NAT64 +--------+ + | | |||
| | | | | DNS64 | | | | | | | DNS64 | | |||
+----------+ +----------+ +----------+ | +----------+ +----------+ +----------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
</section> | ||||
<section title="Comparing the Scenarios"> | ||||
<t>This section compares the different scenarios, includi | ||||
ng the | ||||
possible variations (each one represented in the preceden | ||||
t sections | ||||
by a different figure), looking at the following criteria | ||||
:</t> | ||||
<t><list style="letters"> | ||||
<t>DNSSEC: Are there hosts validating DNSSEC?</t> | ||||
<t>Literal/APIs: Are there applications using IPv | ||||
4 literals or non-IPv6 | ||||
compliant APIs?</t> | ||||
<t>IPv4-only: Are there hosts or applications usi | ||||
ng IPv4-only?</t> | ||||
<t>Foreign DNS: Is the scenario surviving if the | ||||
user, Operating System, | ||||
applications or devices change the DNS?</t> | ||||
<t>DNS load opt. (DNS load optimization): Are the | ||||
re extra queries that | ||||
may impact DNS infrastructure?</t> | ||||
<t>Connect. opt. (Connection establishment delay | ||||
optimization): | ||||
Is the UE/CE issuing only the AAAA query or also | ||||
an A query and | ||||
waiting for both responses?</t> | ||||
</list></t> | ||||
<t>In the next table, the columns represent each of the s | ----------+ +----------+ <span class="insert">+----------+]]>&l | |||
cenarios from the | t;/artwork></span> | |||
previous sections, by the figure number. The possible val | </figure> | |||
ues are:</t> | </section> | |||
<t><list style="symbols"> | </section> | |||
<t>"-" Scenario "bad" for that criteria.</t> | <section numbered="true" toc="default"> | |||
<t>"+" Scenario "good" for that criteria.</t> | <name>Comparing the Scenarios</name> | |||
<t>"*" Scenario "bad" for that criteria, however | <t>This section compares the different scenarios, including | |||
it is typically | possible variations (each one represented in the previous | |||
resolved, with the support of Happy Eyeballs v2 ( | sections | |||
<xref target="RFC8305"/>).</t> | by a different figure), while considering the following c | |||
</list></t> | riteria:</t> | |||
<t>In some cases, "countermeasures", alternative or | <ol spacing="normal" type="a"> | |||
special configurations, may be available for the criteria | <li>DNSSEC: Are there hosts validating DNSSEC?</li> | |||
designated | <li>Literal/APIs: Are there applications using IPv4 literals or | |||
non-IPv6-compliant APIs?</li> | ||||
<li>IPv4 only: Are there hosts or applications using IPv4 only?</li> | ||||
<li>Foreign DNS: Does the scenario survive if the user, Operating Syst | ||||
em, | ||||
applications, or devices change the DNS?</li> | ||||
<li>DNS load opt. (DNS load optimization): Are there extra querie | ||||
s that | ||||
may impact the DNS infrastructure?</li> | ||||
<li>Connect. opt. (connection establishment delay optimization): | ||||
Is the UE/CE only issuing the AAAA query or also the A query and | ||||
waiting for both responses?</li> | ||||
</ol> | ||||
<t>In the table below, the columns represent each of the scenarios from | ||||
the | ||||
previous sections by the figure number. The | ||||
possible values are as follows:</t> | ||||
<ul empty="true"><li> | ||||
<dl spacing="normal" indent="6"> | ||||
<dt>"-"</dt><dd>means the scenario is "bad" for that criterion.</dd> | ||||
<dt>"+"</dt><dd>means the scenario is "good" for that criterion.</dd> | ||||
<dt>"*"</dt><dd>means the scenario is "bad" for that criterion; howeve | ||||
r, it is typically | ||||
resolved with the support of Happy Eyeballs v2 <x | ||||
ref target="RFC8305" format="default"/>.</dd> | ||||
</dl></li></ul> | ||||
<t>In some cases, "countermeasures", alternative or | ||||
special configurations, may be available for the criterio | ||||
n designated | ||||
as "bad". So, this comparison is considering a generic | as "bad". So, this comparison is considering a generic | |||
case, as a quick comparison guide. In some cases, a "bad" | case as a quick comparison guide. In some cases, a "bad" | |||
criterion is | criterion is | |||
not necessarily a negative aspect, all it depends on the | not necessarily a negative aspect; it all depends on the | |||
specific | specific | |||
needs/characteristics of the network where the deployment will | needs/characteristics of the network where the deployment will | |||
take place. For instance, in a network which has only IPv | take place. | |||
6-only hosts and | ||||
apps using only DNS and IPv6-compliant APIs, there is no | ||||
impact using | ||||
only NAT64 and DNS64, but if the hosts may validate DNSSE | ||||
C, | ||||
that item is still relevant.</t> | ||||
<figure align="center" anchor="comparing" | For instance, in a network that only has IPv6-only hosts | |||
title="Scenario Comparison"> | and | |||
<artwork align="center"><![CDATA[ | apps using DNS and IPv6-compliant APIs, there is no impac | |||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | t using | |||
| Item / Figure | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | | only NAT64 and DNS64, but if the hosts validate DNSSEC, | |||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | that criterion is still relevant.</t> | |||
| DNSSEC | - | - | - | - | - | - | - | + | + | + | + | + | | ||||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | ||||
| Literal/APIs | - | - | - | - | + | + | + | + | + | - | - | - | | ||||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | ||||
| IPv4-only | - | - | - | - | + | + | + | + | + | - | - | - | | ||||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | ||||
| Foreign DNS | - | - | - | - | + | + | + | + | + | - | + | - | | ||||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | ||||
| DNS load opt. | + | + | + | + | + | + | + | + | + | + | + | + | | ||||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | ||||
| Connect. opt. | + | + | + | + | + | + | + | * | * | + | + | + | | ||||
+----------------+---+---+---+---+---+---+---+---+---+----+----+----+ | ||||
]]></artwork> | ||||
</figure> | ||||
<t>As a general conclusion, we should note that, if the n | <table anchor="comparing"> | |||
etwork | <name>Scenario Comparison</name> | |||
must support applications using any of the following:</t> | <thead> | |||
<t><list style="symbols"> | <tr> | |||
<t>IPv4 literals</t> | <th>Item / Figure</th> | |||
<t>non-IPv6-compliant APIs</t> | <th>1</th> | |||
<t>IPv4-only hosts or applications</t> | <th>2</th> | |||
</list></t> | <th>3</th> | |||
<th>4</th> | ||||
<th>5</th> | ||||
<th>6</th> | ||||
<th>7</th> | ||||
<th>8</th> | ||||
<th>9</th> | ||||
<th>10</th> | ||||
<th>11</th> | ||||
<th>12</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>DNSSEC</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
</tr> | ||||
<tr> | ||||
<td>Literal/APIs</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
</tr> | ||||
<tr> | ||||
<td>IPv4-only</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
</tr> | ||||
<tr> | ||||
<td>Foreign DNS</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>-</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>-</td> | ||||
<td>+</td> | ||||
<td>-</td> | ||||
</tr> | ||||
<tr> | ||||
<td>DNS load opt.</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
</tr> | ||||
<tr> | ||||
<td>Connect. opt.</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>*</td> | ||||
<td>*</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
<td>+</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Then, only the scenarios with 464XLAT, a CLAT function | <t>As a general conclusion, we should note if the network | |||
, | must support applications using any of the following:</t> | |||
or equivalent built-in local address synthesis features, | <ul spacing="normal"> | |||
will provide a valid solution. Further to that, those sce | <li>IPv4 literals</li> | |||
narios will also | <li>non-IPv6-compliant APIs</li> | |||
keep working if the DNS configuration is modified. Clearl | <li>IPv4-only hosts or applications</li> | |||
y also, | </ul> | |||
<t>Then, only the scenarios with 464XLAT, a CLAT function, | ||||
or equivalent built-in local address synthesis features | ||||
will provide a valid solution. Furthermore, those scenari | ||||
os will also | ||||
keep working if the DNS configuration is modified. Clearl | ||||
y, | ||||
depending on if DNS64 is used or not, DNSSEC may be broke n for | depending on if DNS64 is used or not, DNSSEC may be broke n for | |||
those hosts doing DNSSEC validation.</t> | those hosts doing DNSSEC validation.</t> | |||
<t>All the scenarios are good in terms of DNS load optimization, | ||||
<t>All the scenarios are good in terms of DNS load optimi | and in the case of 464XLAT, it may provide an extra degre | |||
zation, | e | |||
and in the case of 464XLAT it may provide an extra degree | of optimization. Finally, all of the scenarios are also g | |||
of optimization. Finally, all them are also good in terms | ood in terms of | |||
of | ||||
connection establishment delay optimization. | connection establishment delay optimization. | |||
However, in the case of 464XLAT without DNS64, it require | However, in the case of 464XLAT without DNS64, the | |||
s the | usage of Happy Eyeballs v2 is required. This is not an is | |||
usage of Happy Eyeballs v2. This is not an issue, as comm | sue as it is commonly available | |||
only it is available | ||||
in actual Operating Systems.</t> | in actual Operating Systems.</t> | |||
</section> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>Issues to be Considered</name> | |||
<t>This section reviews the different issues that an operator needs | ||||
<section title="Issues to be Considered"> | to consider for a NAT64/464XLAT deployment, as they may d | |||
evelop | ||||
<t>This section reviews the different issues that an oper | specific decision points about how to approach that deplo | |||
ator needs | yment.</t> | |||
to consider towards a NAT64/464XLAT deployment, as they m | <section numbered="true" toc="default"> | |||
ay bring | <name>DNSSEC Considerations and Possible Approaches</name> | |||
to specific decision points about how to approach that de | <t>As indicated in the security considerations for DNS64 (see | |||
ployment.</t> | <xref target="RFC6147" sectionFormat="of" section="8"/>) | |||
because DNS64 modifies DNS answers and DNSSEC is designe | ||||
<section title="DNSSEC Considerations and Possible Approaches"> | d | |||
<t>As indicated in Section 8 of <xref target="RFC6147"/> | ||||
(DNS64, Security | ||||
Considerations), because DNS64 modifies DNS answers and D | ||||
NSSEC is designed | ||||
to detect such modifications, DNS64 may break DNSSEC.</t> | to detect such modifications, DNS64 may break DNSSEC.</t> | |||
<t>If a device connected to an IPv6-only access network, queries | <t>When a device connected to an IPv6-only access network queries | |||
for a domain name in a signed zone, by means of a recursi ve name server | for a domain name in a signed zone, by means of a recursi ve name server | |||
that supports DNS64, and the result is a synthesized AAAA | that supports DNS64, the result may be a synthesized AAAA | |||
record, and the | record. In that case, | |||
recursive name server is configured to perform DNSSEC val | if the recursive name server is configured to perform DNS | |||
idation and has | SEC validation and has | |||
a valid chain of trust to the zone in question, it will | a valid chain of trust to the zone in question, it will | |||
cryptographically validate the negative response from the authoritative | cryptographically validate the negative response from the authoritative | |||
name server. This is the expected DNS64 behavior: The rec ursive name | name server. This is the expected DNS64 behavior: the rec ursive name | |||
server actually "lies" to the client device. However, in most of the cases, | server actually "lies" to the client device. However, in most of the cases, | |||
the client will not notice it, because generally, they do n't perform | the client will not notice it, because generally, they do n't perform | |||
validation themselves and instead, rely on the recursive | validation themselves; instead, they rely on the recursiv | |||
name servers.</t> | e name servers.</t> | |||
<t>In fact, a validating DNS64 resolver increases the confidence on | ||||
<t>A validating DNS64 resolver in fact, increase the conf | ||||
idence on | ||||
the synthetic AAAA, as it has validated that a non-synthe tic AAAA | the synthetic AAAA, as it has validated that a non-synthe tic AAAA | |||
for sure, doesn't exists. However, if the client device i | doesn't exist. However, if the client device is oblivious | |||
s NAT64-oblivious | to NAT64 | |||
(most common case) and performs DNSSEC validation on the | (the most common case) and performs DNSSEC validation on | |||
AAAA record, | the AAAA record, | |||
it will fail as it is a synthesized record.</t> | it will fail as it is a synthesized record.</t> | |||
<t>The best possible scenario from a DNSSEC point of view is when the | ||||
<t>The best possible scenario from DNSSEC point of view, | client requests that the DNS64 server perform the DNSSEC | |||
is when the | validation | |||
client requests the DNS64 server to perform the DNSSEC va | (by setting the DNSSEC OK (DO) bit to 1 and the CD bit to | |||
lidation | 0). In this case, | |||
(by setting the DO bit to 1 and the CD bit to 0). In this | the DNS64 server validates the data; thus, tampering may | |||
case, | only happen | |||
the DNS64 server validates the data, thus tampering may o | ||||
nly happen | ||||
inside the DNS64 server (which is considered as a trusted part, | inside the DNS64 server (which is considered as a trusted part, | |||
thus its likelihood is low) or between the DNS64 server a nd the | thus, its likelihood is low) or between the DNS64 server and the | |||
client. All other parts of the system (including transmis sion | client. All other parts of the system (including transmis sion | |||
and caching) are protected by DNSSEC (<xref target="Threa | and caching) are protected by DNSSEC <xref target="Threat | |||
t-DNS64"/>).</t> | -DNS64" format="default"/>.</t> | |||
<t>Similarly, if the client querying the recursive name server is anothe | ||||
<t>Similarly, if the client querying the recursive name s | r | |||
erver is another | name server configured to use it as a forwarder, and it i | |||
name server configured to use it as a forwarder, and is p | s performing DNSSEC | |||
erforming DNSSEC | ||||
validation, it will also fail on any synthesized AAAA rec ord.</t> | validation, it will also fail on any synthesized AAAA rec ord.</t> | |||
<t>All those considerations are extensively covered in | ||||
Sections | ||||
<xref target="RFC6147" sectionFormat="bare" section="3"/>, | ||||
<xref target="RFC6147" sectionFormat="bare" section="5.5"/>, | ||||
and | ||||
<xref target="RFC6147" sectionFormat="bare" section="6.2"/> of | ||||
<xref target="RFC6147"/>.</t> | ||||
<t>All those considerations are extensively covered in | <t>DNSSEC issues could be avoided if all the signed zones provide IPv6 c | |||
Sections 3, 5.5 and 6.2 of <xref target="RFC6147"/>.</t> | onnectivity together with the | |||
<t>A solution to avoid DNSSEC issues, will be that all th | ||||
e | ||||
signed zones also provide IPv6 connectivity, together wit | ||||
h the | ||||
corresponding AAAA records. However, this is out of the c ontrol | corresponding AAAA records. However, this is out of the c ontrol | |||
of the operator needing to deploy a NAT64 function. This has been | of the operator needing to deploy a NAT64 function. This has been | |||
proposed already in <xref target="I-D.bp-v6ops-ipv6-ready | proposed already in <xref target="I-D.bp-v6ops-ipv6-ready | |||
-dns-dnssec"/>.</t> | -dns-dnssec" format="default"/>.</t> | |||
<t>An alternative solution, which was considered | ||||
<t>An alternative solution, which was the one considered | while developing <xref target="RFC6147" format="default"/ | |||
while developing <xref target="RFC6147"/>, is that valida | >, is that the validators | |||
tors | will be DNS64 aware. Then, they can perform the necessar | |||
will be DNS64-aware, so could perform the necessary disco | y discovery | |||
very | and do their own synthesis. Since that was standardized s | |||
and do their own synthesis. That was done under the expec | ufficiently early in the validator deployment | |||
tation | curve, the expectation was that it would be okay to break | |||
that it was sufficiently early in the validator-deploymen | certain DNSSEC assumptions | |||
t | for networks that were stuck and really needing NAT64/DNS | |||
curve that it would be ok to break certain DNSSEC assumpt | 64.</t> | |||
ions | ||||
for networks who were really stuck in a NAT64/DNS64-needi | ||||
ng world.</t> | ||||
<t>As already indicated, the scenarios in the previous se | <t>As already indicated, the scenarios in the previous section | |||
ction, | are simplified to look at the worst possible case and for | |||
are in fact somehow simplified, looking at the worst poss | the most perfect approach. | |||
ible case. | A DNSSEC breach will not happen if the end host | |||
Saying it in a different way: "trying to look for the mos | ||||
t perfect | ||||
approach". DNSSEC breach will not happen if the end-host | ||||
is not doing validation.</t> | is not doing validation.</t> | |||
<t>The figures in previous studies indicate that DNSSEC | ||||
broken by using DNS64 makes up about 1.7% | ||||
<xref target="About-DNS64" format="default"/> of the case | ||||
s. However, we can't negate | ||||
that this may increase as DNSSEC deployment grows. | ||||
<t>Existing previous studies seems to indicate that the f | ||||
igures of DNSSEC | ||||
actually broken by using DNS64 will be around 1.7% | ||||
(<xref target="About-DNS64"/>) of the cases. However, we | ||||
can't negate | ||||
that this may increase, as DNSSEC deployment grows. | ||||
Consequently, a decision point for the operator must depe nd on | Consequently, a decision point for the operator must depe nd on | |||
"do I really care for that percentage of cases and the im | the following question: Do I really care about that perce | |||
pact in | ntage of cases and the impact on | |||
my helpdesk or can I provide alternative solutions for th | my help desk, or can I provide alternative solutions for | |||
em?". | them? | |||
Some possible solutions may be taken, as depicted in the | Some possible solutions may be exist, as depicted in the | |||
next sections.</t> | next sections.</t> | |||
<section anchor="nodns64" numbered="true" toc="default"> | ||||
<section title="Not using DNS64" anchor="nodns64"> | <name>Not Using DNS64</name> | |||
<t>A solution will be to avoid using DNS64, but as alread | <t>One solution is to avoid using DNS64, but as already | |||
y | indicated, this is not possible in all the scenarios.</t> | |||
indicated this is not possible in all the scenarios.</t> | <t>The use of DNS64 is a key component for some networks, in order | |||
<t>The use of DNS64 is a key component for some networks, | ||||
in order | ||||
to comply with traffic performance metrics, monitored by some | to comply with traffic performance metrics, monitored by some | |||
governmental bodies and other institutions (<xref target= | governmental bodies and other institutions <xref target=" | |||
"FCC"/>, <xref target="ARCEP"/>).</t> | FCC" format="default"/> <xref target="ARCEP" format="default"/>.</t> | |||
<t>One drawback of not having a DNS64 on the network side | ||||
<t>One drawback of not having a DNS64 at the network side | is that it's not possible to heuristically discover | |||
, | NAT64 <xref target="RFC7050" format="default"/>. | |||
is that is not possible to heuristically discover | Consequently, an IPv6 host behind the IPv6-only access ne | |||
the NAT64 (<xref target="RFC7050"/>). | twork will not | |||
Consequently, an IPv6 host behind the IPv6-only access ne | be able to detect the presence of the NAT64 function, nor | |||
twork, will not | learn the | |||
be able to detect the presence of the NAT64 function, nei | ||||
ther to learn the | ||||
IPv6 prefix to be used for it, unless it is configured by alternative | IPv6 prefix to be used for it, unless it is configured by alternative | |||
means.</t> | means.</t> | |||
<t>The discovery of the IPv6 prefix could be solved, | ||||
<t>The discovery of the IPv6 prefix could be solved, | as described in <xref target="RFC7050" format="default"/> | |||
as described in <xref target="RFC7050"/>, by means | , by means | |||
of adding the relevant AAAA records to the ipv4only.arpa. | of adding the relevant AAAA records to the ipv4only.arpa. | |||
zone, | zone | |||
of the service provider recursive servers, i.e., if | of the service-provider recursive servers, i.e., if | |||
using the WKP (64:ff9b::/96):</t> | using the WKP (64:ff9b::/96):</t> | |||
<figure><artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
ipv4only.arpa. SOA . . 0 0 0 0 0 | ipv4only.arpa. SOA . . 0 0 0 0 0 | |||
ipv4only.arpa. NS . | ipv4only.arpa. NS . | |||
ipv4only.arpa. AAAA 64:ff9b::192.0.0.170 | ipv4only.arpa. AAAA 64:ff9b::192.0.0.170 | |||
ipv4only.arpa. AAAA 64:ff9b::192.0.0.171 | ipv4only.arpa. AAAA 64:ff9b::192.0.0.171 | |||
ipv4only.arpa. A 192.0.0.170 | ipv4only.arpa. A 192.0.0.170 | |||
ipv4only.arpa. A 192.0.0.171 | ipv4only.arpa. A 192.0.0.171 | |||
]]></artwork></figure> | ||||
<t>An alternative option to the above, is the use of DNS | ]]></artwork> | |||
RPZ | <t>An alternative option is the use of DNS RPZ | |||
(<xref target="I-D.vixie-dns-rpz"/>) or equivalent functi | <xref target="I-D.vixie-dnsop-dns-rpz" format="default"/> | |||
onalities. Note | or equivalent functionalities. Note | |||
that this may impact DNSSEC if the zone is signed.</t> | that this may impact DNSSEC if the zone is signed.</t> | |||
<t>Another alternative, only valid in environments with support from t | ||||
he Port Control Protocol (PCP) (for | ||||
both the hosts or CEs and for the service-provider networ | ||||
k), is to follow | ||||
"Discovering NAT64 IPv6 Prefixes Using the Port Control P | ||||
rotocol (PCP)" <xref target="RFC7225" format="default"/>.</t> | ||||
<t>One more alternative, only valid in environments with | <t>Other alternatives may be available in the future. All them are | |||
PCP support (for | extensively discussed in <xref target="RFC7051" format="d | |||
both the hosts or CEs and for the service provider networ | efault"/>; | |||
k), is to follow | however, due to the deployment evolution, many considerat | |||
<xref target="RFC7225"/> (Discovering NAT64 IPv6 Prefixes | ions | |||
using PCP).</t> | from that document have changed. New options are being do | |||
cumented, such as using Router | ||||
<t>Other alternatives may be available in the future. All | Advertising <xref target="I-D.ietf-6man-ra-pref64" format | |||
them are | ="default"/> or DHCPv6 options | |||
extensively discussed in <xref target="RFC7051"/>, | <xref target="I-D.li-intarea-nat64-prefix-dhcp-option" fo | |||
however the deployment evolution has evolved many conside | rmat="default"/>.</t> | |||
rations | ||||
from that document. New options are being documented, suc | ||||
h using Router | ||||
Advertising (<xref target="I-D.ietf-6man-ra-pref64"/>) or | ||||
DHCPv6 options | ||||
(<xref target="I-D.li-intarea-nat64-prefix-dhcp-option"/> | ||||
).</t> | ||||
<t>It may be convenient the simultaneous support of sever | <t>Simultaneous support of several of the | |||
al of the | possible approaches is convenient and will ensure that cl | |||
possible approaches, in order to ensure that clients with | ients with different | |||
different | ways to configure the NAT64 prefix successfully obtain it | |||
ways to configure the NAT64 prefix, successfully obtain i | . | |||
t. | ||||
This is also convenient even if DNS64 is being used.</t> | This is also convenient even if DNS64 is being used.</t> | |||
<t>Also of special relevance to this section is <xref target="I-D.ches | ||||
<t>Of special relevance to this section is also <xref tar | hire-sudn-ipv4only-dot-arpa" format="default"/>.</t> | |||
get="I-D.cheshire-sudn-ipv4only-dot-arpa"/>.</t> | </section> | |||
</section> | <section anchor="dns64-aware" numbered="true" toc="default"> | |||
<name>DNSSEC Validator Aware of DNS64</name> | ||||
<section title="DNSSEC validator aware of DNS64" anchor="dns64-aw | <t>In general, by default, DNS servers with DNS64 function will not | |||
are"> | synthesize AAAA responses if the DO flag was set in the q | |||
<t>In general, by default, DNS servers with DNS64 functio | uery.</t> | |||
n will not | <t>In this case, since only an A record is available, if a CLAT functi | |||
synthesize AAAA responses if the DNSSEC OK (DO) flag was | on | |||
set in the query.</t> | is present, the CLAT will, | |||
as in the case of literal IPv4 addresses, keep that traff | ||||
<t>In this case, as only an A record is available, if a C | ic | |||
LAT function | flow end to end as IPv4 so DNSSEC is not broken.</t> | |||
is present, it means that the CLAT will take the responsi | <t>However, this will not work if a CLAT function is not present | |||
bility, | because the hosts will not be able to use IPv4 (which is | |||
as in the case of literal IPv4 addresses, to keep that tr | the case for all the | |||
affic | ||||
flow end-to-end as IPv4, so DNSSEC is not broken.</t> | ||||
<t>However, this will not work if a CLAT function is not | ||||
present | ||||
as the hosts will not be able to use IPv4 (which is the c | ||||
ase for all the | ||||
scenarios without 464XLAT).</t> | scenarios without 464XLAT).</t> | |||
</section> | </section> | |||
<section anchor="stub" numbered="true" toc="default"> | ||||
<section title="Stub validator" anchor="stub"> | <name>Stub Validator</name> | |||
<t>If the DO flag is set and the client device performs D | <t>If the DO flag is set and the client device performs DNSSEC validat | |||
NSSEC validation, | ion, | |||
and the Checking Disabled (CD) flag is set for a query, t he DNS64 | and the Checking Disabled (CD) flag is set for a query, t he DNS64 | |||
recursive server will not synthesize AAAA responses. In t | recursive server will not synthesize AAAA responses. | |||
his case, | In this case, | |||
the client could perform the DNSSEC validation with the A record | the client could perform the DNSSEC validation with the A record | |||
and then synthesize the AAAA (<xref target="RFC6052"/>). | and then synthesize the AAAA responses <xref target="RFC6 | |||
For that to be possible, the client must have learned bef | 052" format="default"/>. | |||
orehand | For that to be possible, the client must have learned | |||
the NAT64 prefix using any of the available methods | the NAT64 prefix beforehand using any of the available me | |||
(<xref target="RFC7050"/>, <xref target="RFC7225"/>, | thods | |||
<xref target="I-D.ietf-6man-ra-pref64"/>, <xref target="I | (see <xref target="RFC7050" format="default"/>, <xref tar | |||
-D.li-intarea-nat64-prefix-dhcp-option"/>). | get="RFC7225" format="default"/>, | |||
<xref target="I-D.ietf-6man-ra-pref64" format="default"/> | ||||
, and <xref target="I-D.li-intarea-nat64-prefix-dhcp-option" format="default"/>) | ||||
. | ||||
This allows the client device to avoid using the DNS64 fu nction and still | This allows the client device to avoid using the DNS64 fu nction and still | |||
use NAT64 even with DNSSEC.</t> | use NAT64 even with DNSSEC.</t> | |||
<t>If the end host is IPv4 only, this will not work if a CLAT function | ||||
<t>If the end-host is IPv4-only, this will not work if a | is | |||
CLAT function is | not present (which is the case for all scenarios without | |||
not present (scenarios without 464XLAT).</t> | 464XLAT).</t> | |||
<t>Instead of a CLAT, some devices or Operating Systems may implement | ||||
<t>Some devices or Operating Systems may implement, inste | an equivalent function by using Bump-in-the-Host <xref ta | |||
ad of a CLAT, | rget="RFC6535" format="default"/> | |||
an equivalent function by using Bump-in-the-Host (<xref t | as part of Happy Eyeballs v2 (see | |||
arget="RFC6535"/>), | <xref target="RFC8305" sectionFormat="of" section="7.1"/> | |||
implemented as part of Happy Eyeballs v2 (Section 7.1 of | ). | |||
<xref target="RFC8305"/>). | ||||
In this case, the considerations in the above paragraphs are | In this case, the considerations in the above paragraphs are | |||
also applicable.</t> | also applicable.</t> | |||
</section> | </section> | |||
<section anchor="dns-proxy" numbered="true" toc="default"> | ||||
<section title="CLAT with DNS proxy and validator" anchor="dns-pr | <name>CLAT with DNS Proxy and Validator</name> | |||
oxy"> | <t>If a CE includes CLAT support and also a DNS proxy, as indicated in | |||
<t>If a CE includes CLAT support and also a DNS proxy, as | <xref target="RFC6877" | |||
indicated in | sectionFormat="of" section="6.4"/>, the CE could behave a | |||
Section 6.4 of <xref target="RFC6877"/>, the CE could beh | s a stub | |||
ave as a stub | ||||
validator on behalf of the client devices. Then, followin g the same approach | validator on behalf of the client devices. Then, followin g the same approach | |||
described in the <xref target="stub"/>, the DNS proxy | described in <xref target="stub" format="default"/>, the | |||
actually will "lie" to the client devices, which in most | DNS proxy | |||
of the cases will | will actually "lie" to the client devices, which, in most | |||
not notice it, unless they perform validation by themselv | cases, will | |||
es. Again, this | not be noticed unless they perform validation by themselv | |||
allow the client devices to avoid using the DNS64 functio | es. Again, this | |||
n and still use NAT64 | allows the client devices to avoid the use of | |||
the DNS64 function but to still use NAT64 | ||||
with DNSSEC.</t> | with DNSSEC.</t> | |||
<t>Once more, this will not work without a CLAT function (which is the | ||||
<t>Once more, this will not work without a CLAT function | case for all scenarios without 464XLAT).</t> | |||
(scenarios | </section> | |||
without 464XLAT).</t> | <section anchor="acl-client" numbered="true" toc="default"> | |||
</section> | <name>ACL of Clients</name> | |||
<t>In cases of dual-stack clients, AAAA queries typically take | ||||
<section title="ACL of clients" anchor="acl-client"> | ||||
<t>In cases of dual-stack clients, the AAAA queries typic | ||||
ally take | ||||
preference over A queries. If DNS64 is enabled for those clients, | preference over A queries. If DNS64 is enabled for those clients, | |||
will never get A records, even for IPv4-only servers.</t> | it will never get A records, even for IPv4-only servers.< | |||
/t> | ||||
<t>As a consequence, in cases where there are IPv4-only s | <t>As a consequence, in cases where there are IPv4-only servers, | |||
ervers, | ||||
and those are located in the path before the NAT64 functi on, | and those are located in the path before the NAT64 functi on, | |||
the clients will not be able to reach them. If DNSSEC is being | the clients will not be able to reach them. If DNSSEC is being | |||
used for all those flows, specific addresses or prefixes can be | used for all those flows, specific addresses or prefixes can be | |||
left-out of the DNS64 synthesis by means of ACLs.</t> | left out of the DNS64 synthesis by means of Access Contro | |||
l Lists (ACLs).</t> | ||||
<t>Once more, this will not work without a CLAT function | <t>Once more, this will not work without a CLAT function (which is the | |||
(scenarios | case for all scenarios without 464XLAT).</t> | |||
without 464XLAT).</t> | </section> | |||
</section> | <section anchor="mapping-out" numbered="true" toc="default"> | |||
<name>Mapping Out IPv4 Addresses</name> | ||||
<section title="Mapping-out IPv4 addresses" anchor="mapping-out"> | <t>If there are well-known specific IPv4 addresses or prefixes | |||
<t>If there are well-known specific IPv4 addresses or pre | using DNSSEC, they can be mapped out of the DNS64 synthes | |||
fixes | is.</t> | |||
using DNSSEC, they can be mapped-out of the DNS64 synthes | <t>Even if this is not related to DNSSEC, this "mapping-out" feature | |||
is.</t> | is quite commonly used to ensure that | |||
addresses <xref target="RFC1918" format="default"/> (for | ||||
<t>Even if this is not related to DNSSEC, this "mapping-o | example, used by LAN servers) are not synthesized to | |||
ut" feature | ||||
is actually, quite commonly used to ensure that <xref tar | ||||
get="RFC1918"/> | ||||
addresses (for example used by LAN servers) are not synth | ||||
esized to | ||||
AAAA.</t> | AAAA.</t> | |||
<t>Once more, this will not work without a CLAT function (which is the | ||||
<t>Once more, this will not work without a CLAT function | case for all scenarios without 464XLAT).</t> | |||
(scenarios | </section> | |||
without 464XLAT).</t> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>DNS64 and Reverse Mapping</name> | |||
<t>When a client device using DNS64 tries to reverse-map a | ||||
</section> | ||||
<section title="DNS64 and Reverse Mapping"> | ||||
<t>When a client device, using DNS64 tries to reverse-map | ||||
a | ||||
synthesized IPv6 address, the name server responds with a CNAME record | synthesized IPv6 address, the name server responds with a CNAME record | |||
pointing the domain name used to reverse-map the | that points the domain name used to reverse-map the | |||
synthesized IPv6 address (the one under ip6.arpa), to the | synthesized IPv6 address (the one under ip6.arpa) to the | |||
domain name | domain name | |||
corresponding to the embedded IPv4 address (under in-addr .arpa).</t> | corresponding to the embedded IPv4 address (under in-addr .arpa).</t> | |||
<t>This is the expected behavior, so no issues need to be considered | ||||
<t>This is the expected behavior, so no issues need to be | ||||
considered | ||||
regarding DNS reverse mapping.</t> | regarding DNS reverse mapping.</t> | |||
</section> | ||||
</section> | <section anchor="xlatwwdns64" numbered="true" toc="default"> | |||
<name>Using 464XLAT with/without DNS64</name> | ||||
<section title="Using 464XLAT with/without DNS64" anchor="xlatwwd | <t>In case the client device is IPv6 only (either because the stack or | |||
ns64"> | application is IPv6 only or because it is connected via a | |||
<t>In the case the client device is IPv6-only (either bec | n IPv6-only LAN) | |||
ause the stack or | and the remote server is IPv4 only (either because the st | |||
application is IPv6-only, or because it is connected via | ack is IPv4 only | |||
an IPv6-only LAN) | ||||
and the remote server is IPv4-only (either because the st | ||||
ack is IPv4-only, | ||||
or because it is connected via an IPv4-only LAN), only NA T64 combined | or because it is connected via an IPv4-only LAN), only NA T64 combined | |||
with DNS64 will be able to provide access among both. Bec | with DNS64 will be able to provide access between both. B | |||
ause DNS64 is | ecause DNS64 is | |||
then required, DNSSEC validation will be only possible if | then required, DNSSEC validation will only be possible if | |||
the recursive | the recursive | |||
name server is validating the negative response from the authoritative | name server is validating the negative response from the authoritative | |||
name server and the client is not performing validation.< | name server, and the client is not performing validation. | |||
/t> | </t> | |||
<t>Note that at this stage of the transition, it is not expected | ||||
<t>Note that is not expected at this stage of the transit | that applications, devices, or Operating Systems are IPv6 | |||
ion, | only. It will | |||
that applications, devices or Operating Systems are IPv6- | ||||
only. It will | ||||
not be a sensible decision for a developer to work on tha t direction, | not be a sensible decision for a developer to work on tha t direction, | |||
unless it is clear that the deployment scenario fully sup ports it.</t> | unless it is clear that the deployment scenario fully sup ports it.</t> | |||
<t>On the other hand, an end user or enterprise network may decide to | ||||
<t>On the other hand, an end-user or enterprise network m | run IPv6 only in the LANs. In case there is any chance fo | |||
ay decide to | r | |||
run IPv6-only in the LANs. In case there is any chance fo | applications to be IPv6 only, the Operating System may be | |||
r | responsible for either doing a local address synthesis or | |||
applications to be IPv6-only, the Operating System may be | setting up some kind of on-demand VPN (IPv4-in-IPv6), | |||
responsible either for doing a local address synthesis, o | which needs to be supported by that network. This may bec | |||
r | ome | |||
alternatively, setting up some kind of on-demand VPN (IPv | ||||
4-in-IPv6), | ||||
which need to be supported by that network. This may beco | ||||
me | ||||
very common in enterprise networks, where "Unique IPv6 Pr efix | very common in enterprise networks, where "Unique IPv6 Pr efix | |||
per Host" <xref target="RFC8273"/> is supported.</t> | per Host" <xref target="RFC8273" format="default"/> is su | |||
pported.</t> | ||||
<t>However, when the client device is dual-stack and/or c | <t>However, when the client device is dual stack and/or connected in a | |||
onnected in a | ||||
dual-stack LAN by means of a CLAT function (or has a buil t-in | dual-stack LAN by means of a CLAT function (or has a buil t-in | |||
CLAT function), DNS64 is an option.</t> | CLAT function), DNS64 is an option.</t> | |||
<ol spacing="normal" type="1"> | ||||
<t><list style="numbers"> | <li>With DNS64: If DNS64 is used, most of the IPv4 traffic | |||
(except if using literal IPv4 addresses or non-IP | ||||
<t>With DNS64: If DNS64 is used, most of the IPv4 | v6-compliant APIs) | |||
traffic | will not use the CLAT and will instead use the IP | |||
(except if using literal IPv4 addresses or non-IP | v6 path, so only one | |||
v6 compliant APIs) | ||||
will not use the CLAT, so will use the IPv6 path | ||||
and only one | ||||
translation will be done at the NAT64. This may b reak DNSSEC, | translation will be done at the NAT64. This may b reak DNSSEC, | |||
unless measures as described in the precedent sec | unless measures as described in the previous sect | |||
tions are taken.</t> | ions are taken.</li> | |||
<li>Without DNS64: If DNS64 is not used, all the IPv4 traffic | ||||
<t>Without DNS64: If DNS64 is not used, all the I | ||||
Pv4 traffic | ||||
will make use of the CLAT, so two translations ar e required (NAT46 | will make use of the CLAT, so two translations ar e required (NAT46 | |||
at the CLAT and NAT64 at the PLAT), which adds so me overhead in | at the CLAT and NAT64 at the PLAT), which adds so me overhead in | |||
terms of the extra NAT46 translation. However, th is avoids the AAAA | terms of the extra NAT46 translation. However, th is avoids the AAAA | |||
synthesis and consequently will never break DNSSE | synthesis and consequently will never break DNSSE | |||
C.</t> | C.</li> | |||
</ol> | ||||
</list></t> | <t>Note that the extra translation, when DNS64 is not used, takes place | |||
<t>Note that the extra translation, when DNS64 is not use | ||||
d, takes place | ||||
at the CLAT, which means no extra overhead for the operat or. | at the CLAT, which means no extra overhead for the operat or. | |||
It however adds potential extra delays to establish the c | However, it adds potential extra delays to establish the | |||
onnections, and no | connections and has no | |||
perceptible impact for a CE in a broadband network, while | perceptible impact for a CE in a broadband network, but i | |||
it may have | t may have | |||
some impact in a battery powered device. This cost for a | some impact on a battery-powered device. The cost for a b | |||
battery powered | attery-powered | |||
device, is possibly comparable to the cost when the devic | device is possibly comparable to the cost when the device | |||
e is doing a | is doing a | |||
local address synthesis (see Section 7.1 of <xref target= | local address synthesis (see | |||
"RFC8305"/>).</t> | <xref target="RFC8305" sectionFormat="of" section="7.1"/>).</t> | |||
</section> | ||||
</section> | <section anchor="foreignDNS" numbered="true" toc="default"> | |||
<name>Foreign DNS</name> | ||||
<section title="Foreign DNS" anchor="foreignDNS"> | <t>Clients, devices, or applications in a service-provider network | |||
may use DNS servers from other networks. This may be the | ||||
<t>Clients, devices or applications in a service provider | case | |||
network, | ||||
may use DNS servers from other networks. This may be the | ||||
case either | ||||
if individual applications use their own DNS server, the | if individual applications use their own DNS server, the | |||
Operating System itself or even the CE, or combinations o f the above.</t> | Operating System itself or even the CE, or combinations o f the above.</t> | |||
<t>Those "foreign" DNS servers may not support DNS64; as a consequence, | ||||
<t>Those "foreign" DNS servers may not support DNS64, whi | those scenarios that require a DNS64 may not work. | |||
ch as a consequence, | ||||
will mean that those scenarios that require a DNS64 may n | ||||
ot work. | ||||
However, if a CLAT function is available, the considerati ons in | However, if a CLAT function is available, the considerati ons in | |||
<xref target="xlatwwdns64"/> will apply.</t> | <xref target="xlatwwdns64" format="default"/> will apply. | |||
</t> | ||||
<t>In the case that the foreign DNS supports the DNS64 fu | ||||
nction, | ||||
we may be in the situation of providing incorrect configu | ||||
rations parameters, | ||||
for example, un-matching WKP or NSP, or a case such the o | ||||
ne described in | ||||
<xref target="sprdns64"/>.</t> | ||||
<t>Having a CLAT function, even if using foreign DNS | <t>If the foreign DNS supports the DNS64 function, incorrect configurat | |||
ion parameters may be provided that, | ||||
for example, cause WKP or NSP to become unmatched or | ||||
result in a case such as the one described in <xref target="sprdns64" format="de | ||||
fault"/>.</t> | ||||
<t>Having a CLAT function, even if using foreign DNS | ||||
without a DNS64 function, ensures that everything will wo rk, | without a DNS64 function, ensures that everything will wo rk, | |||
so the CLAT must be considered as an advantage even again | so the CLAT must be considered to be an advantage despite | |||
st | user configuration errors. | |||
user configuration errors. The cost of this, is that all | As a result, all the | |||
the | ||||
traffic will use a double translation (NAT46 at the CLAT | traffic will use a double translation (NAT46 at the CLAT | |||
and NAT64 at the operator network), unless there is | and NAT64 at the operator network), unless there is | |||
support for EAM (<xref target="EAM"/>).</t> | support for EAM (<xref target="EAM" format="default"/>).< | |||
/t> | ||||
<t>An exception to that is the case when there is a CLAT | <t>An exception is the case where there is a CLAT function | |||
function | at the CE that is not able to obtain the correct configur | |||
at the CE, which is not able to obtain the correct config | ation | |||
uration | parameters (again, causing WKP or NSP to become unmatched | |||
parameters (again, un-matching WKP or NSP).</t> | ).</t> | |||
<t>However, it needs to be emphasized that if there is no CLAT function | ||||
<t>However, it needs to be emphasized, that if there is n | (which is the case for all scenarios without 464XLAT), an | |||
ot a CLAT function | external DNS without DNS64 support | |||
(scenarios without 464XLAT), an external DNS without DNS6 | will disallow any access to IPv4-only destination network | |||
4 support, | s and will | |||
will disallow any access to IPv4-only destination network | ||||
s, and will | ||||
not guarantee the correct DNSSEC validation, | not guarantee the correct DNSSEC validation, | |||
so will behave as in the <xref target="onlynat64"/>.</t> | so it will behave as in <xref target="onlynat64" format=" | |||
default"/>.</t> | ||||
<t>In summary, it can be said, that the consequences of t | <t>In summary, the consequences of using | |||
he use of | foreign DNS depends on each specific case. However, in ge | |||
foreign DNS depend very much in each specific case. Howev | neral, | |||
er, in general, | if a CLAT function is present, most of the time there wil | |||
if a CLAT function is present, most of the time, there wi | l not be any issues. | |||
ll not be any. | In the other cases, the access to IPv6-enabled services | |||
In the other cases, generally, the access to IPv6-enabled | is still guaranteed for IPv6-enabled hosts, but it is not | |||
services | guaranteed for IPv4-only hosts | |||
is still guaranteed for IPv6-enabled hosts, but not for I | nor is the access to IPv4-only services for any hosts in | |||
Pv4-only hosts, | the network.</t> | |||
neither the access to IPv4-only services for any hosts in | <t>The causes of "foreign DNS" could be classified in three main categor | |||
the network.</t> | ies, | |||
as depicted in the following subsections.</t> | ||||
<t>The causes of "foreign DNS" could be classified in thr | <section numbered="true" toc="default"> | |||
ee main categories, | <name>Manual Configuration of DNS</name> | |||
as depicted in the following sub-sections.</t> | <t>It is becoming increasingly common that end users, or even devices | |||
or applications, configure alternative DNS in their Opera | ||||
<section title="Manual Configuration of DNS"> | ting Systems | |||
<t>It is becoming increasingly common that end-users or e | ||||
ven devices | ||||
or applications configure alternative DNS in their Operat | ||||
ing Systems, | ||||
and sometimes in CEs.</t> | and sometimes in CEs.</t> | |||
</section> | ||||
<section anchor="dnspriv" numbered="true" toc="default"> | ||||
<name>DNS Privacy/Encryption Mechanisms</name> | ||||
</section> | <t>Clients or applications may use mechanisms for | |||
DNS privacy/encryption, such as DNS over TLS (DoT) | ||||
<section title="DNS Privacy/Encryption Mechanisms" anchor="dnspri | <xref target="RFC7858" format="default"/>, DNS over DTLS | |||
v"> | <xref target="RFC8094" format="default"/>, | |||
<t>Clients or applications may use mechanisms for | DNS queries over HTTPS (DoH) <xref target="RFC8484" forma | |||
DNS privacy/encryption, such as DNS over TLS | t="default"/>, or | |||
(<xref target="RFC7858"/>), DNS over DTLS (<xref target=" | DNS over QUIC (DoQ) <xref target="I-D.huitema-quic-dnsoqu | |||
RFC8094"/>), | ic" format="default"/>. | |||
DNS queries over HTTPS (<xref target="RFC8484"/>) or | </t> | |||
DNS over QUIC (<xref target="I-D.huitema-quic-dnsoquic"/> | <t>Currently, those DNS privacy/encryption options are typically | |||
). | ||||
Those are commonly cited as DoT, DoH and DoQ.</t> | ||||
<t>Those DNS privacy/encryption options, currently are ty | ||||
pically | ||||
provided by the applications, not the Operating System ve ndors. | provided by the applications, not the Operating System ve ndors. | |||
At the time of writing this document, at least DoT and Do H standards | At the time this document was written, the DoT and DoH st andards | |||
have declared DNS64 (and consequently NAT64) out of their scope, so | have declared DNS64 (and consequently NAT64) out of their scope, so | |||
an application using them may break NAT64, unless a corre ctly configured | an application using them may break NAT64, unless a corre ctly configured | |||
CLAT function is used.</t> | CLAT function is used.</t> | |||
</section> | ||||
</section> | <section anchor="SplitDNS" numbered="true" toc="default"> | |||
<name>Split DNS and VPNs</name> | ||||
<section title="Split DNS and VPNs" anchor="SplitDNS"> | <t>When networks or hosts use "split-DNS" (also called Split Horizon, | |||
<t>When networks or hosts use "split-DNS" (also called Sp | DNS views, or private DNS), the successful use of DNS64 i | |||
lit Horizon, | s not guaranteed. | |||
DNS views or private DNS), the successful use of the DNS6 | This case is analyzed in <xref | |||
4 is not guaranteed. | target="RFC6950" sectionFormat="of" section="4"/>.</t> | |||
Section 4 of <xref target="RFC6950"/>, analyses this case | <t>A similar situation may happen with VPNs that force all | |||
.</t> | the DNS queries through the VPN and ignore the operator D | |||
NS64 function.</t> | ||||
<t>A similar situation may happen in case of VPNs that fo | </section> | |||
rce all | </section> | |||
the DNS queries through the VPN, ignoring the operator DN | <section anchor="WKP-NSP" numbered="true" toc="default"> | |||
S64 function.</t> | <name>Well-Known Prefix (WKP) vs. Network-Specific Prefix (NSP)</name> | |||
<t>Section 3 of "IPv6 Addressing of IPv4/IPv6 Translator" <xref target=" | ||||
</section> | RFC6052" format="default"/> | |||
discusses some considerations that are useful to an opera | ||||
</section> | tor when deciding if | |||
a WKP or an NSP should be used.</t> | ||||
<section title="Well-Known Prefix (WKP) vs Network-Specific Prefi | <t>Considering that discussion and other issues, we can | |||
x (NSP)" anchor="WKP-NSP"> | summarize the possible decision points to as follows:</t> | |||
<t>Section 3 of <xref target="RFC6052"/> (IPv6 Addressing | <ol spacing="normal" type="a"> | |||
of IPv4/IPv6 Translators), | <li>The WKP <bcp14>MUST NOT</bcp14> be used to represent non-global IP | |||
discusses some considerations which are useful to decide | v4 addresses. | |||
if | If this is required because the network to be translated | |||
an operator should use the WKP or an NSP.</t> | uses | |||
non-global addresses, then an NSP is required.</li> | ||||
<t>Taking in consideration that discussion and other issu | <li>The WKP <bcp14>MAY</bcp14> appear in interdomain routing tables, i | |||
es, we can | f the operator | |||
summarize the possible decision points as:</t> | ||||
<t><list style="letters"> | ||||
<t>The WKP MUST NOT be used to represent non-global IPv4 | ||||
addresses. | ||||
If this is required because the network to be translated | ||||
use | ||||
non-global addresses, then an NSP is required.</t> | ||||
<t>The WKP MAY appear in inter-domain routing tables, if | ||||
the operator | ||||
provides a NAT64 function to peers. However, in this case , special | provides a NAT64 function to peers. However, in this case , special | |||
considerations related to BGP filtering are required and | considerations related to BGP filtering are required, and | |||
IPv4-embedded | IPv4-embedded | |||
IPv6 prefixes longer than the WKP MUST NOT be advertised | IPv6 prefixes longer than the WKP <bcp14>MUST NOT</bcp14> | |||
(or accepted) | be advertised (or accepted) | |||
in BGP. An NSP may be a more appropriate option in those | in BGP. An NSP may be a more appropriate option in those | |||
cases.</t> | cases.</li> | |||
<li>If several NAT64s use the same prefix, packets from the same | ||||
<t>If several NAT64 use the same prefix, packets from the | flow may be routed to a different NAT64 in case of routin | |||
same | g changes. | |||
flow may be routed to different NAT64 in case of routing | This can be avoided by either using different prefixes fo | |||
changes. | r each NAT64 | |||
This can be avoided either by using different prefixes fo | function or ensuring that all the NAT64s coordinate their | |||
r each NAT64 | state. | |||
function, or by ensuring that all the NAT64 coordinate th | Using an NSP could simplify that.</li> | |||
eir state. | <li>If DNS64 is required and users, devices, Operating Systems, or | |||
Using an NSP could simplify that.</t> | applications may change their DNS configuration and delib | |||
erately | ||||
<t>If DNS64 is required and users, devices, Operating Sys | choose an alternative DNS64 function, the alternative | |||
tems or | DNS64 will most likely use the WKP by default. In that ca | |||
applications may change their DNS configuration, and deli | se, if an NSP is used by | |||
berately | ||||
choose an alternative DNS64 function, most probably alter | ||||
native | ||||
DNS64 will use by default the WKP. In that case, if an NS | ||||
P is used by | ||||
the NAT64 function, clients will not be able to use the o perator | the NAT64 function, clients will not be able to use the o perator | |||
NAT64 function, which will break connectivity to | NAT64 function, which will break connectivity to | |||
IPv4-only destinations.</t> | IPv4-only destinations.</li> | |||
</ol> | ||||
</list></t> | </section> | |||
<section anchor="literals" numbered="true" toc="default"> | ||||
</section> | <name>IPv4 Literals and Non-IPv6-Compliant APIs</name> | |||
<t>A host or application using literal IPv4 addresses or older APIs, | ||||
<section title="IPv4 literals and non-IPv6 Compliant APIs" anchor | which aren't IPv6 compliant, behind a network with IPv6-o | |||
="literals"> | nly access | |||
<t>A host or application using literal IPv4 addresses or | will not work unless any of the following alternatives ar | |||
older APIs, | e provided:</t> | |||
which aren't IPv6 compliant, behind a network with IPv6-o | <ul spacing="normal"> | |||
nly access, | <li>CLAT (or an equivalent function).</li> | |||
will not work unless any of the following alternatives is | <li>Happy Eyeballs v2 (Section 7.1 of <xref target="RFC8305" format="d | |||
provided:</t> | efault"/>).</li> | |||
<li>Bump-in-the-Host <xref target="RFC6535" format="default"/> with a | ||||
<t><list style="symbols"> | DNS64 function.</li> | |||
<t>CLAT (or equivalent function).</t> | </ul> | |||
<t>Happy Eyeballs v2 (Section 7.1, <xref target=" | <t>Those alternatives will solve the problem for an end host. | |||
RFC8305"/>).</t> | However, if the end host is providing "tethering" or an e | |||
<t>Bump-in-the-Host (<xref target="RFC6535"/>) wi | quivalent | |||
th a DNS64 function.</t> | service to other hosts, that needs to be considered as we | |||
</list></t> | ll. | |||
In other | ||||
<t>Those alternatives will solve the problem for an end-h | words, in a cellular network, these alternatives resolve | |||
ost. | the issue for | |||
However, if that end-hosts is providing "tethering" or an | the UE itself, but this may not be the case for hosts con | |||
equivalent | nected via the tethering.</t> | |||
service to other hosts, that needs to be considered as we | <t>Otherwise, the support of 464XLAT is the only valid and complete | |||
ll. In other | ||||
words, in a case of a cellular network, it resolves the i | ||||
ssue for | ||||
the UE itself, but may be not the case for hosts behind i | ||||
t.</t> | ||||
<t>Otherwise, the support of 464XLAT is the only valid an | ||||
d complete | ||||
approach to resolve this issue.</t> | approach to resolve this issue.</t> | |||
</section> | </section> | |||
<section anchor="ipv4-only" numbered="true" toc="default"> | ||||
<section title="IPv4-only Hosts or Applications" anchor="ipv4-onl | <name>IPv4-Only Hosts or Applications</name> | |||
y"> | <t>IPv4-only hosts or an application behind a network with IPv6-only acc | |||
<t>An IPv4-only hosts or application behind a network wit | ess | |||
h IPv6-only access, | ||||
will not work unless a CLAT function is present.</t> | will not work unless a CLAT function is present.</t> | |||
<t>464XLAT is the only valid approach to resolve this issue.</t> | ||||
<t>464XLAT is the only valid approach to resolve this iss | </section> | |||
ue.</t> | <section anchor="CLAT" numbered="true" toc="default"> | |||
</section> | <name>CLAT Translation Considerations</name> | |||
<t>As described in "IPv6 Prefix | ||||
<section title="CLAT Translation Considerations" anchor="CLAT"> | Handling" (see <xref | |||
<t>As described in Section 6.3 of <xref target="RFC6877"/ | target="RFC6877" sectionFormat="of" section="6.3"/>), if | |||
> (IPv6 Prefix | the CLAT function | |||
Handling), if the CLAT function can be configured with a | can be configured with a dedicated /64 prefix | |||
dedicated /64 prefix | ||||
for the NAT46 translation, then it will be possible to do a more | for the NAT46 translation, then it will be possible to do a more | |||
efficient stateless translation.</t> | efficient stateless translation.</t> | |||
<t>Otherwise, if this dedicated prefix is not available, | <t>Otherwise, if this dedicated prefix is not available, the CLAT functi | |||
the CLAT function will | on will | |||
need to do a stateful translation, for example performing | need to do a stateful translation, for example, perform s | |||
stateful NAT44 | tateful NAT44 | |||
for all the IPv4 LAN packets, so they appear as coming fr | for all the IPv4 LAN packets so they appear as coming fro | |||
om a single | m a single | |||
IPv4 address, and then in turn, stateless translated to a | IPv4 address; in turn, the CLAT function will perform a s | |||
single IPv6 | tateless translation to a single IPv6 | |||
address.</t> | address.</t> | |||
<t>A possible setup, in order to maximize the CLAT | ||||
<t>A possible setup, in order to maximize the CLAT | ||||
performance, is to configure the dedicated translation pr efix. This | performance, is to configure the dedicated translation pr efix. This | |||
can be easily achieved automatically, if the broadband CE or | can be easily achieved automatically, if the broadband CE or | |||
end-user device is able to obtain a shorter prefix by mea ns | end-user device is able to obtain a shorter prefix by mea ns | |||
of DHCPv6-PD (<xref target="RFC8415"/>), or other alterna tives. | of DHCPv6-PD <xref target="RFC8415" format="default"/> or other alternatives. | |||
The CE can then use a specific /64 for the translation. T his is also | The CE can then use a specific /64 for the translation. T his is also | |||
possible when broadband is provided by a cellular access. </t> | possible when broadband is provided by a cellular access. </t> | |||
<t>The above recommendation is often not possible for cellular networks, | ||||
<t>The above recommendation is often not possible for cel | when connecting smartphones (as UEs): generally they don' | |||
lular networks, | t use DHCPv6-PD | |||
when connecting smartphones (as UEs), as generally they d | <xref target="RFC8415" format="default"/>. Instead, a sin | |||
on't use DHCPv6-PD | gle /64 is provided for | |||
(<xref target="RFC8415"/>). Instead, a single /64 is prov | each Packet Data Protocol (PDP) context, and prefix shari | |||
ided for | ng <xref target="RFC6877" format="default"/> is used. | |||
each PDP context and prefix sharing (<xref target="RFC687 | In this case, the UEs typically have a build-in CLAT func | |||
7"/>) is used. | tion that | |||
So, in this case, the UEs typically have a build-in CLAT | is performing a stateful NAT44 translation before the sta | |||
function | teless NAT46.</t> | |||
which is performing a stateful NAT44 translation | </section> | |||
before the stateless NAT46.</t> | <section anchor="EAM" numbered="true" toc="default"> | |||
<name>EAM Considerations</name> | ||||
</section> | <t>"Explicit Address Mappings for Stateless IP/ICMP Translation" | |||
<xref target="RFC7757" format="default"/> provides a way | ||||
<section title="EAM Considerations" anchor="EAM"> | to configure explicit | |||
<t>Explicit Address Mappings for Stateless IP/ICMP Transl | ||||
ation | ||||
(<xref target="RFC7757"/>) provide a way to configure exp | ||||
licit | ||||
mappings between IPv4 and IPv6 prefixes of any length. | mappings between IPv4 and IPv6 prefixes of any length. | |||
When this is used, for example in a CLAT function, it may provide a | When this is used, for example, in a CLAT function, it ma y provide a | |||
simple mechanism in order to avoid traffic flows between | simple mechanism in order to avoid traffic flows between | |||
IPv4-only nodes or applications and dual-stack destinatio ns | IPv4-only nodes or applications and dual-stack destinatio ns | |||
to be translated twice (NAT46 and NAT64), by creating map ping | to be translated twice (NAT46 and NAT64), by creating map ping | |||
entries with the GUA of the IPv6-reachable destination. | entries with the Global Unicast Address (GUA) of the IPv6 | |||
This optimization of the NAT64 usage is very useful in | -reachable destination. | |||
many scenarios, including CDNs and caches, as described i | This optimization of NAT64 usage is very useful in | |||
n | many scenarios, including Content Delivery Networks (CDNs | |||
<xref target="I-D.palet-v6ops-464xlat-opt-cdn-caches"/>.< | ) and caches, as described in | |||
/t> | <xref target="I-D.palet-v6ops-464xlat-opt-cdn-caches" for | |||
mat="default"/>.</t> | ||||
<t>In addition to that, it may provide as well a way for | <t>In addition, it may also provide a way for IPv4-only | |||
IPv4-only | ||||
nodes or applications to communicate with IPv6-only desti nations.</t> | nodes or applications to communicate with IPv6-only desti nations.</t> | |||
</section> | ||||
</section> | <section anchor="incoming" numbered="true" toc="default"> | |||
<name>Incoming Connections</name> | ||||
<section title="Incoming Connections" anchor="incoming"> | <t>The use of NAT64, in principle, disallows IPv4 incoming connections, | |||
<t>The use of NAT64, in principle, disallows IPv4 incomin | which may still be needed for IPv4-only peer-to-peer appl | |||
g connections, | ications. | |||
which may be still needed for IPv4-only peer-to-peer appl | ||||
ications. | ||||
However, there are several alternatives that resolve this issue:</t> | However, there are several alternatives that resolve this issue:</t> | |||
<ol spacing="normal" type="a"> | ||||
<t><list style="letters"> | <li>Session Traversal Utilities for NAT (STUN) <xref target="RFC5389" | |||
format="default"/>, Traversal Using Relays around NAT (TURN) <xref target="RFC57 | ||||
<t>STUN (<xref target="RFC5389"/>), TURN (<xref target="R | 66" format="default"/>, and | |||
FC5766"/>) and | Interactive Connectivity Establishment (ICE) <xref target | |||
ICE (<xref target="RFC8445"/>) are commonly used by peer- | ="RFC8445" format="default"/> are commonly used by peer-to-peer | |||
to-peer | applications in order to allow incoming connections with | |||
applications in order to allow incoming connections with | IPv4 NAT. In the case of NAT64, they | |||
IPv4 NAT. | work as well. | |||
In the case of NAT64, they work as well. RFC editor note: | ||||
If in time, | ||||
replace STUN and TURN with <xref target="I-D.ietf-tram-st | ||||
unbis"/> / | ||||
<xref target="I-D.ietf-tram-turnbis"/>.</t> | ||||
<t>PCP (<xref target="RFC6887"/>) allows a host to contro | </li> | |||
l how incoming | <li>The Port Control Protocol (PCP) <xref target="RFC6887" format="def | |||
ault"/> allows a host to control how incoming | ||||
IPv4 and IPv6 packets are translated and forwarded. A NAT 64 may implement | IPv4 and IPv6 packets are translated and forwarded. A NAT 64 may implement | |||
PCP to allow this service.</t> | PCP to allow this service.</li> | |||
<li>EAM <xref target="RFC7757" format="default"/> may also be used in | ||||
<t>EAM (<xref target="RFC7757"/>) may also be used in ord | order to configure | |||
er to configure | explicit mappings for customers that require them. This i | |||
explicit mappings for customers that require them. This i | s used, for example, | |||
s used for example | by Stateless IP/ICMP Translation for IPv6 Data Center Env | |||
by SIIT-DC (<xref target="RFC7755"/>) and SIIT-DC-DTM (<x | ironments (SIIT-DC) <xref target="RFC7755" format="default"/> and SIIT-DC Dual T | |||
ref target="RFC7756"/>).</t> | ranslation Mode (SIIT-DC-DTM) <xref target="RFC7756" format="default"/>.</li> | |||
</ol> | ||||
</list></t> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>Summary of Deployment Recommendations for NAT64/464XLAT</name> | |||
<t>It has been demonstrated that NAT64/464XLAT is a valid choice in severa | ||||
<section title="Summary of Deployment Recommendations for NAT64/4 | l | |||
64XLAT"> | ||||
<t>NAT64/464XLAT has demonstrated to be a valid choice in | ||||
several | ||||
scenarios (IPv6-IPv4 and IPv4-IPv6-IPv4), being the predo minant mechanism | scenarios (IPv6-IPv4 and IPv4-IPv6-IPv4), being the predo minant mechanism | |||
in the majority of the cellular networks, which account f or hundreds | in the majority of the cellular networks, which account f or hundreds | |||
of millions of users (<xref target="ISOC"/>). | of millions of users <xref target="ISOC" format="default" />. | |||
NAT64/464XLAT offer different choices of deployment, | NAT64/464XLAT offer different choices of deployment, | |||
depending on each network case, needs and requirements. D espite that, | depending on each network case, needs, and requirements. Despite that, | |||
this document is not an explicit recommendation for using this choice | this document is not an explicit recommendation for using this choice | |||
versus other IPv4aaS transition mechanisms. Instead, this document | versus other IPv4aaS transition mechanisms. Instead, this document | |||
is a guide that facilitates evaluating a possible impleme ntation | is a guide that facilitates evaluating a possible impleme ntation | |||
of NAT64/464XLAT and key decision points about specific d esign | of NAT64/464XLAT and key decision points about specific d esign | |||
considerations for its deployment.</t> | considerations for its deployment.</t> | |||
<t>Depending on the specific requirements of each deployment case, | ||||
<t>Depending on the specific requirements of each deploym | DNS64 may be a required function, while in other cases, t | |||
ent case, | he | |||
DNS64 may be a required function, while in other cases th | ||||
e | ||||
adverse effects may be counterproductive. | adverse effects may be counterproductive. | |||
Similarly, in some cases a NAT64 function, together with | Similarly, in some cases, a NAT64 function, together with | |||
a DNS64 function, | a DNS64 function, | |||
may be a valid solution, when there is a certainty that I | may be a valid solution when there is a certainty that IP | |||
Pv4-only hosts | v4-only hosts | |||
or applications do not need to be supported (<xref target | or applications do not need to be supported | |||
="literals"/> and | (see Sections <xref target="literals" | |||
<xref target="ipv4-only"/>). However, in other cases (i.e | format="counter"/> and | |||
. IPv4-only devices | <xref target="ipv4-only" format="counter"/>). However, in other cases (i | |||
or applications need to be supported), the limitations of | .e., IPv4-only devices | |||
NAT64/DNS64, | or applications that need to be supported), the limitatio | |||
may suggest the operator to look into 464XLAT as a more c | ns of NAT64/DNS64 | |||
omplete solution.</t> | may indicate that the operator needs to look into 464XLAT | |||
as a more complete solution.</t> | ||||
<t>In the case of broadband managed networks (where the C | <t>For broadband-managed networks (where the CE is provided or | |||
E is provided or | ||||
suggested/supported by the operator), in order to fully s upport | suggested/supported by the operator), in order to fully s upport | |||
the actual user needs (IPv4-only devices and applications | the actual user's needs (i.e., IPv4-only devices and appl | |||
, | ications and the | |||
usage of IPv4 literals and non-IPv6 compliant APIs), the | usage of IPv4 literals and non-IPv6-compliant APIs), the | |||
464XLAT scenario | 464XLAT scenario | |||
should be considered. In that case, it must support a CLA T function.</t> | should be considered. In that case, it must support a CLA T function.</t> | |||
<t>If the operator provides DNS services, in order to inc | <t>If the operator provides DNS services, they may support a DNS64 functio | |||
rease performance | n to avoid, as much as possible, breaking DNSSEC. This will also increase perfo | |||
by reducing the double translation for all the IPv4 traff | rmance, | |||
ic, | by reducing the double translation for all the IPv4 traff | |||
they may support a DNS64 function and avoid, as much as p | ic. In this case, if the DNS service | |||
ossible, | is offering DNSSEC validation, then it must be in such a | |||
breaking DNSSEC. In this case, if the DNS service | way that it is | |||
is offering DNSSEC validation, then it must be in such wa | ||||
y that it is | ||||
aware of the DNS64. This is considered the simpler and sa fer approach, | aware of the DNS64. This is considered the simpler and sa fer approach, | |||
and may be combined as well with other recommendations de scribed | and it may be combined with other recommendations describ ed | |||
in this document:</t> | in this document:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>DNS infrastructure <bcp14>MUST</bcp14> be aware of DNS64 (<xref targ | |||
<t>DNS infrastructure MUST be aware of DNS64 (<xref targe | et="dns64-aware" format="default"/>).</li> | |||
t="dns64-aware"/>).</t> | <li>Devices running CLAT <bcp14>SHOULD</bcp14> follow the indications in | |||
<t>Devices running CLAT SHOULD follow the indications in | "Stub Validator" | |||
<xref target="stub"/> (Stub Validator). However, this may | (see <xref target="stub" format="default"/>). However, th | |||
be out of the | is may be out of the | |||
control of the operator.</t> | control of the operator.</li> | |||
<t>CEs SHOULD include a DNS proxy and validator (<xref ta | <li>CEs <bcp14>SHOULD</bcp14> include a DNS proxy and validator (<xref t | |||
rget="dns-proxy"/>).</t> | arget="dns-proxy" format="default"/>).</li> | |||
<t><xref target="acl-client"/> (ACL of clients) and | <li>"ACL of Clients" (see <xref target="acl-client" format="default"/>) | |||
<xref target="mapping-out"/> (Mapping-out IPv4 addresses) | and "Mapping Out IPv4 Addresses" | |||
MAY be considered by | (see <xref target="mapping-out" format="default"/>) <bcp1 | |||
operators, depending on their own infrastructure.</t> | 4>MAY</bcp14> be considered by | |||
</list></t> | operators, depending on their own infrastructure.</li> | |||
</ul> | ||||
<t>This "increased performance" approach has the disadvan | <t>This "increased performance" approach has the disadvantage of | |||
tage of | ||||
potentially breaking DNSSEC for a small percentage of val idating | potentially breaking DNSSEC for a small percentage of val idating | |||
end-hosts versus the small impact of a double translation taking place | end hosts versus the small impact of a double translation taking place | |||
in the CE. If CE performance is not an issue, which is th e most frequent | in the CE. If CE performance is not an issue, which is th e most frequent | |||
case, then a much safer approach is to not use DNS64 at a ll, | case, then a much safer approach is to not use DNS64 at a ll, | |||
and consequently, ensure that all the IPv4 traffic | and consequently, ensure that all the IPv4 traffic | |||
is translated at the CLAT (<xref target="xlatwwdns64"/>). | is translated at the CLAT (<xref target="xlatwwdns64" for | |||
</t> | mat="default"/>).</t> | |||
<t>If DNS64 is not used, at least one of the alternatives | ||||
<t>If DNS64 is not used, at least one of the alternatives | described in <xref target="nodns64" format="default"/> mu | |||
described in <xref target="nodns64"/>, must be followed i | st be followed in order | |||
n order | ||||
to learn the NAT64 prefix.</t> | to learn the NAT64 prefix.</t> | |||
<t>The operator needs to consider that if the DNS configu | <t>The operator needs to consider that if the DNS configuration is | |||
ration can | modified (see Sections <xref target="foreignDNS" format=" | |||
be modified (<xref target="foreignDNS"/>, <xref target="d | counter"/>, <xref target="dnspriv" format="counter"/>, and | |||
nspriv"/>, | <xref target="SplitDNS" format="counter"/>), which most l | |||
<xref target="SplitDNS"/>), which most probably | ikely | |||
is impossible to avoid, there are chances that instead of | cannot be avoided, a foreign non-DNS64 could be used inst | |||
configuring | ead of configuring a DNS64. In a scenario with only a | |||
a DNS64 a foreign non-DNS64 is used. In a scenario with o | NAT64 function, an IPv4-only remote host will no longer b | |||
nly a | e accessible. | |||
NAT64 function IPv4-only remote host will no longer be ac | ||||
cessible. | ||||
Instead, it will continue to work in the case of 464XLAT. </t> | Instead, it will continue to work in the case of 464XLAT. </t> | |||
<t>Similar considerations need to be made regarding the usage of | ||||
<t>Similar considerations need to be taken regarding the | a NAT64 WKP vs. NSP (<xref target="WKP-NSP" format="default"/>), as they | |||
usage of | must match | |||
a NAT64 WKP vs NSP (<xref target="WKP-NSP"/>), as they mu | the configuration of DNS64. When using foreign DNS, | |||
st match | ||||
with the configuration of the DNS64. In case of using for | ||||
eign DNS, | ||||
they may not match. | they may not match. | |||
If there is a CLAT and the configured foreign DNS is not a DNS64, the | If there is a CLAT and the configured foreign DNS is not a DNS64, the | |||
network will keep working only if other means of learning the NAT64 | network will keep working only if other means of learning the NAT64 | |||
prefix are available.</t> | prefix are available.</t> | |||
<t>For broadband networks, as described in <xref target="CLAT" format="def | ||||
<t>As described in <xref target="CLAT"/>, for broadband n | ault"/>, | |||
etworks, | the CEs supporting a CLAT function <bcp14>SHOULD</bcp14> | |||
the CEs supporting a CLAT function, SHOULD | support DHCPv6-PD <xref target="RFC8415" format="default" | |||
support DHCPv6-PD (<xref target="RFC8415"/>), or alternat | /> or alternative means for | |||
ive means for | configuring a shorter prefix. The CE <bcp14>SHOULD</bcp14 | |||
configuring a shorter prefix. The CE SHOULD internally re | > internally reserve | |||
serve | ||||
one /64 for the stateless NAT46 translation. The operator must ensure | one /64 for the stateless NAT46 translation. The operator must ensure | |||
that the customers get allocated prefixes shorter than /6 | that the customers are allocated prefixes shorter than /6 | |||
4 in order | 4 in order | |||
to support this optimization. One way or the other, this | to support this optimization. One way or another, this is | |||
is not | not | |||
impacting the performance of the operator network.</t> | impacting the performance of the operator network.</t> | |||
<t>Operators may follow "Deployment Considerations" (Section 7 of <xref ta | ||||
<t>Operators may follow Section 7 of <xref target="RFC687 | rget="RFC6877" format="default"/>) for suggestions on how to | |||
7"/> (Deployment | take advantage of traffic-engineering requirements.</t> | |||
Considerations), for suggestions in order to | <t>For cellular networks, the considerations regarding DNSSEC | |||
take advantage of traffic engineering requirements.</t> | may appear to be out of scope because UEs' Operating Syst | |||
ems | ||||
<t>In the case of cellular networks, the considerations r | ||||
egarding DNSSEC | ||||
may appear as out-of-scope, because UEs Operating Systems | ||||
, | ||||
commonly don't support DNSSEC. However, applications runn ing on them | commonly don't support DNSSEC. However, applications runn ing on them | |||
may do, or it may be an Operating System "built-in" suppo rt in the | may, or it may be an Operating System "built-in" support in the | |||
future. Moreover, if those devices offer tethering, | future. Moreover, if those devices offer tethering, | |||
other client devices behind the UE, may be doing the vali | other client devices behind the UE may be doing the valid | |||
dation, | ation; | |||
hence the relevance of a proper DNSSEC support by the ope | hence, proper DNSSEC support by the operator network is r | |||
rator network.</t> | elevant.</t> | |||
<t>Furthermore, cellular networks supporting 464XLAT | ||||
<t>Furthermore, cellular networks supporting 464XLAT | <xref target="RFC6877" format="default"/> and "Discovery | |||
(<xref target="RFC6877"/>) and "Discovery of the IPv6 Pre | of the IPv6 Prefix Used for | |||
fix Used for | IPv6 Address Synthesis" <xref target="RFC7050" format="de | |||
IPv6 Address Synthesis" (<xref target="RFC7050"/>), allow | fault"/> allow a progressive | |||
a progressive | IPv6 deployment, with a single Access Point Name (APN) su | |||
IPv6 deployment, with a single APN supporting all types o | pporting all types of PDP context | |||
f PDP context | (IPv4, IPv6, and IPv4v6). This approach allows the networ | |||
(IPv4, IPv6, IPv4v6). This approach allows the network to | k to | |||
automatically serve every possible combinations of UEs.</ | automatically serve every possible combination of UEs.</t | |||
t> | > | |||
<t>If the operator chooses to provide validation for the DNS64 | ||||
<t>If the operator chooses to provide validation for the | prefix discovery, it must follow the advice from "Validat | |||
DNS64 | ion of Discovered Pref64::/n" (see | |||
prefix discovery, it must follow the advice from Section | <xref target="RFC7050" sectionFormat="of" section="3.1"/> | |||
3.1. of | ).</t> | |||
<xref target="RFC7050"/> (Validation of Discovered Pref64 | <t>One last consideration is that many networks may have a mix of differen | |||
::/n).</t> | t | |||
complex scenarios at the same time; for example, customer | ||||
<t>One last consideration, is that many networks may have | s that require 464XLAT | |||
a mix of different | and those that don't, | |||
complex scenarios at the same time, for example, customer | customers that require DNS64 and those that don't, etc. I | |||
s requiring 464XLAT, | n | |||
others not requiring it, customers requiring DNS64, other | ||||
s not, etc. In | ||||
general, the different issues and the approaches describe d in this document | general, the different issues and the approaches describe d in this document | |||
can be implemented at the same time for different custome rs or parts of | can be implemented at the same time for different custome rs or parts of | |||
the network. That mix of approaches don't present any pro | the network. That mix of approaches doesn't present any p | |||
blem or | roblem or | |||
incompatibility, as they work well together, being just a | incompatibility; they work well together as a matter of | |||
matter of | ||||
appropriate and differentiated provisioning. In fact, the NAT64/464XLAT | appropriate and differentiated provisioning. In fact, the NAT64/464XLAT | |||
approach facilitates an operator offering both cellular a nd broadband | approach facilitates an operator offering both cellular a nd broadband | |||
services, to have a single IPv4aaS for both networks whil | services to have a single IPv4aaS for both networks while | |||
e differentiating | differentiating | |||
the deployment key decisions to optimize each case. It ev | the deployment key decisions to optimize each case. It's | |||
en makes possible | even possible to | |||
using hybrid CEs that have a main broadband access link a | use hybrid CEs that have a main broadband access link and | |||
nd a backup via | a backup via | |||
the cellular network.</t> | the cellular network.</t> | |||
<t>In an ideal world, we could safely use DNS64 if the approach | ||||
<t>In an ideal world we could safely use DNS64, if the ap | proposed in <xref target="I-D.bp-v6ops-ipv6-ready-dns-dns | |||
proach | sec" format="default"/> | |||
proposed in <xref target="I-D.bp-v6ops-ipv6-ready-dns-dns | were followed, avoiding the cases where DNSSEC may be bro | |||
sec"/> | ken. | |||
is followed, avoiding the cases where DNSSEC may be broke | However, this will not solve the issues related to DNS pr | |||
n. | ivacy | |||
However, this will not solve the issues related to DNS Pr | and split DNS.</t> | |||
ivacy | <t>The only 100% safe solution that also resolves all the issues | |||
and Split DNS.</t> | is, in addition to having a CLAT function, not using a DN | |||
S64 but | ||||
<t>The only 100% safe solution, which also resolves all t | ||||
he issues, | ||||
will be, in addition to having a CLAT function, not using | ||||
a DNS64 but | ||||
instead making sure that the hosts have a built-in addres s | instead making sure that the hosts have a built-in addres s | |||
synthesis feature. Operators could manage to provide CEs with | synthesis feature. Operators could manage to provide CEs with | |||
the CLAT function, however the built-in address | the CLAT function; however, the built-in address | |||
synthesis feature is out of their control. If the synthes is is | synthesis feature is out of their control. If the synthes is is | |||
provided either by the Operating System (via its DNS reso | provided by either the Operating System (via its DNS reso | |||
lver API) | lver API) | |||
or by the application (via its own DNS resolver), in such | or the application (via its own DNS resolver) in such way | |||
way that | that | |||
the prefix used for the NAT64 function is reachable for t he host, | the prefix used for the NAT64 function is reachable for t he host, | |||
the problem goes away.</t> | the problem goes away.</t> | |||
<t>Whenever feasible, using EAM <xref target="RFC7757" format="default"/> | ||||
<t>Whenever feasible, using EAM (<xref target="RFC7757"/> | as indicated in <xref target="EAM" format="default"/> pro | |||
) | vides a very relevant | |||
as indicated in <xref target="EAM"/>, provides a very rel | optimization, avoiding double translations.</t> | |||
evant | <t>Applications that require incoming connections typically | |||
optimization, avoiding double-translations.</t> | provide a means for that already. However, PCP and EAM, a | |||
s indicated in | ||||
<t>Applications that require incoming connections, typica | <xref target="incoming" format="default"/>, are valid alt | |||
lly already | ernatives, even for | |||
provide means for that. However, PCP and EAM, as indicate | ||||
d in | ||||
<xref target="incoming"/>, are valid alternatives, even f | ||||
or | ||||
creating explicit mappings for customers that require the m.</t> | creating explicit mappings for customers that require the m.</t> | |||
</section> | ||||
</section> | <section numbered="true" toc="default"> | |||
<name>Deployment of 464XLAT/NAT64 in Enterprise Networks</name> | ||||
<section title="Deployment of 464XLAT/NAT64 in Enterprise Network | <t>The recommendations in this document can also be used in | |||
s"> | enterprise networks, campuses, and other similar scenario | |||
<t>The recommendations of this document can be used as we | s (including | |||
ll in | ||||
enterprise networks, campus and other similar scenarios ( | ||||
including | ||||
managed end-user networks).</t> | managed end-user networks).</t> | |||
<t>This include scenarios where the NAT64 function | <t>This includes scenarios where the NAT64 function | |||
(and DNS64 function, if available) are under | (and DNS64 function, if available) are under | |||
the control of that network (or can be configured manuall y according | the control of that network (or can be configured manuall y according | |||
to that network specific requirements), and for whatever | to that network's specific requirements), and there is a | |||
reasons, | need | |||
there is a need to provide "IPv6-only access" to any part | to provide IPv6-only access to any part of that | |||
of that | network, or it is IPv6 only connected to third-party netw | |||
network or it is IPv6-only connected to third party-netwo | orks.</t> | |||
rks.</t> | <t>An example is the IETF meeting network itself, | |||
<t>An example of that is the IETF meetings network itself | ||||
, | ||||
where both NAT64 and DNS64 functions are provided, presen ting in this case | where both NAT64 and DNS64 functions are provided, presen ting in this case | |||
the same issues as per <xref target="spnatdns64"/>. If th ere | the same issues as per <xref target="spnatdns64" format=" default"/>. If there | |||
is a CLAT function in the IETF network, then there is no | is a CLAT function in the IETF network, then there is no | |||
need to use DNS64 and it falls under the considerations o | need to use DNS64, and it falls under the considerations | |||
f | of | |||
<xref target="xlat-dns64"/>. Both scenarios have been tes | <xref target="xlat-dns64" format="default"/>. Both scenar | |||
ted and | ios have been tested and | |||
verified already in the IETF network itself.</t> | verified already in the IETF network.</t> | |||
<t>Next figures are only meant to represent a few of the | ||||
possible | ||||
scenarios, not pretending to be the only feasible ones.</ | ||||
t> | ||||
<t><xref target="enterprise-nat64-dns64"/> provides an ex | ||||
ample of an | ||||
IPv6-only enterprise network connected with dual-stack to | ||||
Internet and using local NAT64 and DNS64 functions.</t> | ||||
<figure align="center" anchor="enterprise-nat64-dns64" | <t>The following figures represent a few of the possible | |||
title="IPv6-only enterprise with NAT64 and DNS64"> | scenarios.</t> | |||
<artwork align="center"><![CDATA[ | <t><xref target="enterprise-nat64-dns64" format="default"/> provides an ex | |||
ample of an | ||||
IPv6-only enterprise network connected with a dual stack | ||||
to | ||||
the Internet using local NAT64 and DNS64 functions.</t> | ||||
<figure anchor="enterprise-nat64-dns64"> | ||||
<name>IPv6-Only Enterprise with NAT64 and DNS64</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
+----------------------------------+ | +----------------------------------+ | |||
| Enterprise Network | | | Enterprise Network | | |||
| +----------+ +----------+ | +----------+ | | +----------+ +----------+ | +----------+ | |||
| | IPv6 | | NAT64 | | | IPv4 | | | | IPv6- | | NAT64 | | | IPv4 | | |||
| | only +--------+ + | +-------+ + | | | | only +--------+ + | +-------+ + | | |||
| | LANs | | DNS64 | | | IPv6 | | | | LANs | | DNS64 | | | IPv6 | | |||
| +----------+ +----------+ | +----------+ | | +----------+ +----------+ | +----------+ | |||
+----------------------------------+ | +----------------------------------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t><xref target="enterprise-464xlat"/> provides an exampl | </figure> | |||
e of a | <t><xref target="enterprise-464xlat" format="default"/> provides an exampl | |||
dual-stack (DS) enterprise network connected with dual-st | e of a | |||
ack (DS) | DS enterprise network connected with DS | |||
to Internet and using a CLAT function, without a DNS64 fu | to the Internet using a CLAT function, without a DNS64 fu | |||
nction.</t> | nction.</t> | |||
<figure align="center" anchor="enterprise-464xlat" | <figure anchor="enterprise-464xlat"> | |||
title="DS enterprise with CLAT, DS Internet, without DNS64"> | <name>DS Enterprise with CLAT, DS Internet, without DNS64</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
+----------------------------------+ | +----------------------------------+ | |||
| Enterprise Network | | | Enterprise Network | | |||
| +----------+ +----------+ | +----------+ | | +----------+ +----------+ | +----------+ | |||
| | IPv6 | | | | | IPv4 | | | | IPv6 | | | | | IPv4 | | |||
| | + +--------+ NAT64 | +-------+ + | | | | + +--------+ NAT64 | +-------+ + | | |||
| | CLAT | | | | | IPv6 | | | | CLAT | | | | | IPv6 | | |||
| +----------+ +----------+ | +----------+ | | +----------+ +----------+ | +----------+ | |||
+----------------------------------+ | +----------------------------------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>Finally, <xref target="enterprise-own-clat"/> provides | </figure> | |||
an example of an | <t>Finally, <xref target="enterprise-own-clat" format="default"/> provides | |||
IPv6-only provider with a NAT64 function, and a dual-stac | an example of an | |||
k (DS) enterprise | IPv6-only provider with a NAT64 function, and a DS enterp | |||
rise | ||||
network by means of their own CLAT function, without a DN S64 function.</t> | network by means of their own CLAT function, without a DN S64 function.</t> | |||
<figure anchor="enterprise-own-clat"> | ||||
<figure align="center" anchor="enterprise-own-clat" | <name>DS Enterprise with CLAT and IPv6-Only Access, without DNS64</name> | |||
title="DS enterprise with CLAT, IPv6-only Access, without DNS64" | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
> | ||||
<artwork align="center"><![CDATA[ | ||||
+----------------------------------+ | +----------------------------------+ | |||
| Enterprise Network | | | Enterprise Network | | |||
| +----------+ +----------+ | +----------+ | | +----------+ +----------+ | +----------+ | |||
| | IPv6 | | | | IPv6 | | | | | IPv6 | | | | IPv6 | | | |||
| | + +--------+ CLAT | +--------+ NAT64 | | | | + +--------+ CLAT | +--------+ NAT64 | | |||
| | IPv4 | | | | only | | | | | IPv4 | | | | only | | | |||
| +----------+ +----------+ | +----------+ | | +----------+ +----------+ | +----------+ | |||
+----------------------------------+ | +----------------------------------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
<section title="Security Considerations"> | </figure> | |||
<t>This document does not have new specific security cons | </section> | |||
iderations beyond | <section numbered="true" toc="default"> | |||
<name>Security Considerations</name> | ||||
<t>This document does not have new specific security considerations beyond | ||||
those already reported by each of the documents cited. Fo r example, DNS64 | those already reported by each of the documents cited. Fo r example, DNS64 | |||
(<xref target="RFC6147"/>) already describes the DNSSEC i | <xref target="RFC6147" format="default"/> already describ | |||
ssues.</t> | es the DNSSEC issues.</t> | |||
<t>As already described in <xref target="foreignDNS" format="default"/>, n | ||||
ote that there | ||||
may be undesirable interactions, especially if using VPNs | ||||
or DNS privacy, | ||||
which may impact the correct performance of DNS64/NAT64.< | ||||
/t> | ||||
<t>Note that, as already described in <xref target="forei | <t>Note that the use of a DNS64 function has | |||
gnDNS"/>, there | privacy considerations that are equivalent to regular DNS | |||
may be undesirable interactions, specially if using VPNs | , and they are located | |||
or DNS privacy, | in either the service provider or an external service pro | |||
which may impact in the correct performance of DNS64/NAT6 | vider.</t> | |||
4.</t> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t> This document has no IANA actions.</t> | ||||
<t>It should be remarked that the use of a DNS64 function | </section> | |||
has equivalent | </middle> | |||
privacy considerations as in the case of a regular DNS, e | <back> | |||
ither located | <displayreference target="I-D.ietf-6man-ra-pref64" to="PREF64"/> | |||
in the service provider or an external one.</t> | <displayreference target="I-D.huitema-quic-dnsoquic" to="QUIC-CONNECTIONS"/> | |||
</section> | <displayreference target="I-D.lmhp-v6ops-transition-comparison" | |||
to="IPv6-TRANSITION"/> | ||||
<displayreference target="I-D.bp-v6ops-ipv6-ready-dns-dnssec" | ||||
to="DNS-DNSSEC"/> | ||||
<section title="IANA Considerations"> | <displayreference target="I-D.palet-v6ops-464xlat-opt-cdn-caches" to="OPT-4 | |||
<t>This document does not have any new specific IANA cons | 64XLAT"/> | |||
iderations.</t> | <displayreference target="I-D.vixie-dnsop-dns-rpz" to="DNS-RPZ"/> | |||
<displayreference | ||||
target="I-D.li-intarea-nat64-prefix-dhcp-option" to="DHCPv6-OPTIONS"/> | ||||
<displayreference target="I-D.cheshire-sudn-ipv4only-dot-arpa" to="IPV4ONLY | ||||
-ARPA"/> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.1918.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5389.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5625.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5766.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6052.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6535.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7915.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6144.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6146.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6147.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6877.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6887.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7050.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7225.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7757.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8273.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8305.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8375.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8415.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8445.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8484.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6889.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6950.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7051.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7269.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7755.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7756.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7849.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7858.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8094.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8219.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8585.xml"/> | ||||
<!--draft-ietf-6man-ra-pref64-07; I-D Exists --> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf | ||||
-6man-ra-pref64.xml"/> | ||||
<t>Note: This section is assuming that https://www.rfc-ed | <!--draft-huitema-quic-dnsoquic-07; in last call --> | |||
itor.org/errata/eid5152 | <xi:include | |||
is resolved, otherwise, this section may include the requ | href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.huitema-quic | |||
ired text | -dnsoquic.xml"/> | |||
to resolve the issue.</t> | ||||
<t>Alternatively, this could be fixed also by <xref targe | <!--draft-lmhp-v6ops-transition-comparison-03; I-D Exists --> | |||
t="I-D.cheshire-sudn-ipv4only-dot-arpa"/>.</t> | <xi:include | |||
</section> | href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.lmhp-v6ops-t | |||
ransition-comparison.xml"/> | ||||
<section title="Acknowledgements"> | <!--draft-bp-v6ops-ipv6-ready-dns-dnssec-00; Expired --> | |||
<t>The author would like to acknowledge the inputs of Gab | <xi:include | |||
or Lencse, | href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.bp-v6ops- | |||
Andrew Sullivan, Lee Howard, Barbara Stark, Fred Baker, | ipv6-ready-dns-dnssec.xml"/> | |||
Mohamed Boucadair, Alejandro D'Egidio, Dan Wing, Mikael A | ||||
brahamsson | ||||
and Eric Vyncke.</t> | ||||
<t>Conversations with Marcelo Bagnulo, one of the co-auth | <!--draft-palet-v6ops-464xlat-opt-cdn-caches-04; I-D Exists--> | |||
ors of NAT64 and | <xi:include | |||
DNS64, as well as several emails in mailing lists from Ma | href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.palet | |||
rk Andrews, | -v6ops-464xlat-opt-cdn-caches.xml"/> | |||
have been very useful for this work.</t> | ||||
<t>Christian Huitema inspired working in this document by | <!--draft-li-intarea-nat64-prefix-dhcp-option-02; I-D Exists | |||
suggesting | --> | |||
that DNS64 should never be used, during a discussion rega | <xi:include | |||
rding the | href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.li-in | |||
deployment of CLAT in the IETF network.</t> | tarea-nat64-prefix-dhcp-option.xml"/> | |||
</section> | <!--draft-vixie-dnsop-dns-rpz-00; Replaced by draft-ietf-dnsop-dns-rpz, | |||
which is replaced by draft-vixie-dnsop-dns-rpz | ||||
(which is expired; ISE review (history last modified 8/2018) --> | ||||
<xi:include | ||||
href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.vixie | ||||
-dnsop-dns-rpz.xml"/> | ||||
<section title="ANNEX A: Example of Broadband Deployment with 464XLAT"> | <!-- draft.cheshire-sudn-ipv4only-dot-arpa-15; I-D Exists--> | |||
<xi:include | ||||
href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.chesh | ||||
ire-sudn-ipv4only-dot-arpa.xml"/> | ||||
<reference anchor="Threat-DNS64" target="https://www.sciencedirect.com/s | ||||
cience/article/pii/S0167404818303663?via%3Dihub"> | ||||
<front> | ||||
<title>Methodology for the identification of potential security issu | ||||
es of different IPv6 transition technologies: Threat analysis of DNS64 and state | ||||
ful NAT64</title> | ||||
<seriesInfo name="DOI" value="10.1016/j.cose.2018.04.012"/> | ||||
<seriesInfo name="pp." value="397-411"/> | ||||
<seriesInfo name="no." value="1"/> | ||||
<seriesInfo name="vol." value="77"/> | ||||
<seriesInfo name="Computers & Security" value=""/> | ||||
<author initials="G" surname="Lencse"/> | ||||
<author initials="Y" surname="Kadobayashi"/> | ||||
<date month="August" year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DNS64-Benchm" target="https://www.sciencedirect.com/s | ||||
cience/article/pii/S0140366418302184?via%3Dihub"> | ||||
<front> | ||||
<title>Benchmarking DNS64 Implementations: Theory and Practice</titl | ||||
e> | ||||
<seriesInfo name="DOI" value="10.1016/j.comcom.2018.05.005"/> | ||||
<seriesInfo name="pp." value="61-74"/> | ||||
<seriesInfo name="no." value="1"/> | ||||
<seriesInfo name="vol." value="127"/> | ||||
<seriesInfo name="Computer Communications" value=""/> | ||||
<author initials="G" surname="Lencse"/> | ||||
<author initials="Y" surname="Kadobayashi"/> | ||||
<date month="September" year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DNS64-BM-Meth" target="https://www.sciencedirect.com/ | ||||
science/article/pii/S0140366416305904?via%3Dihub"> | ||||
<front> | ||||
<title>Benchmarking Methodology for DNS64 Servers</title> | ||||
<seriesInfo name="DOI" value="10.1016/j.comcom.2017.06.004"/> | ||||
<seriesInfo name="pp." value="162-175"/> | ||||
<seriesInfo name="no." value="1"/> | ||||
<seriesInfo name="vol." value="109"/> | ||||
<seriesInfo name="Computer Communications" value=""/> | ||||
<author initials="G" surname="Lencse"/> | ||||
<author initials="M" surname="Georgescu"/> | ||||
<author initials="Y" surname="Kadobayashi"/> | ||||
<date month="September" year="2017"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="About-DNS64" target="https://blog.apnic.net/2016/06/0 | ||||
9/lets-talk-ipv6-dns64-dnssec/"> | ||||
<front> | ||||
<title>Let's talk about IPv6 DNS64 & DNSSEC</title> | ||||
<author initials="J" surname="Linkova"> | ||||
<organization>APNIC Blog</organization> | ||||
</author> | ||||
<date month="June" year="2016"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="FCC" target="https://www.fcc.gov/reports-research/rep | ||||
orts/measuring-broadband-america/measuring-broadband-america-mobile-2013-2018"> | ||||
<front> | ||||
<title>Measuring Broadband America Mobile 2013-2018 Coarsened Data</ | ||||
title> | ||||
<author> | ||||
<organization>FCC</organization> | ||||
</author> | ||||
<date month="December" year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ARCEP" target="https://www.arcep.fr/cartes-et-donnees | ||||
/nos-publications-chiffrees/service-client-des-operateurs-mesures-de-la-qualite- | ||||
de-service/service-client-des-operateurs-les-mesures-de-qualite-de-service.html" | ||||
> | ||||
<front> | ||||
<title>Service client des operateurs : les mesures de qualite de ser | ||||
vice</title> | ||||
<author> | ||||
<organization>ARCEP</organization> | ||||
</author> | ||||
<date month="April" year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ISOC" target="https://www.internetsociety.org/resourc | ||||
es/2018/state-of-ipv6-deployment-2018/"> | ||||
<front> | ||||
<title>State of IPv6 Deployment 2018</title> | ||||
<author> | ||||
<organization>ISOC</organization> | ||||
</author> | ||||
<date month="June" year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="RIPE-690" target="https://www.ripe.net/publications/d | ||||
ocs/ripe-690"> | ||||
<front> | ||||
<title>Best Current Operational Practice for Operators: IPv6 prefix | ||||
assignment for end-users - persistent vs non-persistent, and what size to choose | ||||
</title> | ||||
<author surname="RIPE"> | ||||
<organization> RIPE</organization> | ||||
</author> | ||||
<date month="October" year="2017"/> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section numbered="true" toc="default" anchor="AppendixA"> | ||||
<name>Example of Broadband Deployment with 464XLAT</name> | ||||
<t>This section summarizes how an operator may deploy an IPv6-only | <t>This section summarizes how an operator may deploy an IPv6-only | |||
network for residential/SOHO customers, supporting IPv6 inbound | network for residential/SOHO customers, supporting IPv6 inbound | |||
connections, and IPv4-as-a-Service (IPv4aaS) by using 464XLAT.</t> | connections, and IPv4-as-a-Service (IPv4aaS) by using 464XLAT.</t> | |||
<t>Note that an equivalent setup could also be provided for enterprise | <t>Note that an equivalent setup could also be provided for enterprise | |||
customers. In case they need to support IPv4 inbound connections, several | customers. If they need to support IPv4 inbound connections, several | |||
mechanisms, depending on specific customer needs, allow that, for instance | mechanisms, depending on specific customer needs, allow it; see | |||
<xref target="RFC7757"/>.</t> | <xref target="RFC7757" format="default"/>.</t> | |||
<t>Conceptually, most of the operator network could be IPv6 only | ||||
<t>Conceptually, most part of the operator network could be IPv6-only | (represented in the next figures as "IPv6-only flow"), or even if | |||
(represented in the next pictures as "IPv6-only flow"), or even if | part of the network is actually dual stack, only IPv6 access | |||
this part of the network is actually dual-stack, only IPv6-access | is available for some customers (i.e., residential customers). | |||
is available for some customers (i.e. residential customers). | ||||
This part of the network connects the IPv6-only subscribers | This part of the network connects the IPv6-only subscribers | |||
(by means of IPv6-only access links), to the IPv6 upstream providers, | (by means of IPv6-only access links) to the IPv6 upstream providers | |||
as well as to the IPv4-Internet by means of the NAT64 (PLAT | and to the IPv4-Internet by means of NAT64 (PLAT | |||
in the 464XLAT terminology).</t> | in the 464XLAT terminology).</t> | |||
<t>The traffic flow from and back to the CE to services available in the | ||||
<t>The traffic flow from and back to the CE to services available in th | IPv6 Internet (or even dual-stack remote services, when IPv6 is being u | |||
e | sed) | |||
IPv6 Internet (or even dual-stack remote services, when IPv6 is being u | ||||
sed), | ||||
is purely native IPv6 traffic, so there are no special considerations a bout it.</t> | is purely native IPv6 traffic, so there are no special considerations a bout it.</t> | |||
<t>Looking at the picture from the DNS perspective, there are remote | <t>From the DNS perspective, there are remote | |||
networks with are IPv4-only, and typically will have only IPv4 DNS | networks with IPv4 only that will typically have only IPv4 DNS | |||
(DNS/IPv4), or at least will be seen as that from the CE perspective. | (DNS/IPv4) or will at least be seen as IPv4 DNS from the CE perspective | |||
At the operator side, the DNS, as seen from the CE, is | . | |||
only IPv6 (DNS/IPv6) and has also a DNS64 function. </t> | On the operator side, the DNS, as seen from the CE, is | |||
only IPv6 (DNS/IPv6), and it also has a DNS64 function. </t> | ||||
<t>In the customer LANs side, there is actually one network, which of c | <t>On the customer LANs side, there is actually one network, which of cour | |||
ourse | se | |||
could be split in different segments. The most common setup will be | could be split into different segments. The most common setup will be | |||
those segments being dual-stack, using global IPv6 addresses and <xref | dual-stack segments, using global IPv6 addresses and <xref target="RFC1 | |||
target="RFC1918"/> | 918" format="default"/> | |||
for IPv4, as usual in any regular residential/SOHO IPv4 network. | for IPv4, in any regular residential / Small Office, Home Office (SOHO) | |||
In the figure, it is represented as tree segments, just to show that th | IPv4 network. | |||
e | In the figure below, it is represented as tree segments to show that th | |||
three possible setups are valid (IPv6-only, IPv4-only and dual-stack).< | e | |||
/t> | three possible setups are valid (IPv6 only, IPv4 only, and dual stack). | |||
</t> | ||||
<figure align="center" anchor="clat-CE-DNS64" | <figure anchor="clat-CE-DNS64"> | |||
title="CE setup with built-in CLAT with DNS64"> | <name>CE Setup with Built-In CLAT, with DNS64</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
.-----. +-------+ .-----. .-----. | .-----. +-------+ .-----. .-----. | |||
/ IPv6- \ | | / \ / \ | / IPv6- \ | | / \ / \ | |||
( only )--+ Res./ | / IPv6- \ .-----. / IPv4- \ | ( only )--+ Res./ | / IPv6- \ .-----. / IPv4- \ | |||
\ LANs / | SOHO +--( only )--( NAT64 )--( only ) | \ LANs / | SOHO +--( only )--( NAT64 )--( only ) | |||
`-----´ | | \ flow / `-----´ \ flow / | `-----' | | \ flow / `-----' \ flow / | |||
.-----. | IPv6 | \ / \ / | .-----. | IPv6 | \ / \ / | |||
/ IPv4- \ | CE | `--+--´ `--+--´ | / IPv4- \ | CE | `--+--' `--+--' | |||
( only )--+ with | | | | ( only )--+ with | | | | |||
\ LANs / | CLAT | +---+----+ +---+----+ | \ LANs / | CLAT | +---+----+ +---+----+ | |||
`-----´ | | |DNS/IPv6| |DNS/IPv4| | `-----' | | |DNS/IPv6| |DNS/IPv4| | |||
.-----. +---+---+ | with | +--------+ | .-----. +---+---+ | with | +--------+ | |||
/ Dual- \ | | DNS64 | | / Dual- \ | | DNS64 | | |||
( Stack )------| +--------+ | ( Stack )------| +--------+ | |||
\ LANs / | \ LANs / | |||
`-----´ | `-----' ]]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>In addition to the regular CE setup, which will be typically | </figure> | |||
<t>In addition to the regular CE setup, which typically will be | ||||
access-technology dependent, the steps for the CLAT function | access-technology dependent, the steps for the CLAT function | |||
configuration can be summarized as:</t> | configuration can be summarized as follows:</t> | |||
<t><list style="numbers"> | <ol spacing="normal" type="1"> | |||
<t>Discovery of the PLAT (NAT64) prefix: It may b | <li>Discovery of the PLAT (NAT64) prefix: It may be done | |||
e done | using <xref target="RFC7050" format="default"/>, | |||
using <xref target="RFC7050"/>, or in those netwo | <xref target="RFC7225" format="default"/> in those networks where PCP | |||
rks where PCP | is supported, or other | |||
is supported, by means of <xref target="RFC7225"/ | ||||
>, or other | ||||
alternatives that may be available in the future, such as Router | alternatives that may be available in the future, such as Router | |||
Advertising (<xref target="I-D.ietf-6man-ra-pref6 | Advertising <xref target="I-D.ietf-6man-ra-pref64 | |||
4"/>) or | " format="default"/> or | |||
DHCPv6 options (<xref target="I-D.li-intarea-nat6 | DHCPv6 options <xref target="I-D.li-intarea-nat64 | |||
4-prefix-dhcp-option"/>).</t> | -prefix-dhcp-option" format="default"/>.</li> | |||
<li>If the CLAT function allows stateless NAT46 translation, a /64 from | ||||
<t>If the CLAT function allows stateless NAT46 tr | ||||
anslation, a /64 from | ||||
the pool typically provided to the CE by means of DHCPv6-PD | the pool typically provided to the CE by means of DHCPv6-PD | |||
<xref target="RFC8415"/>, need to be set aside fo r that translation. | <xref target="RFC8415" format="default"/> needs t o be set aside for that translation. | |||
Otherwise, the CLAT is forced to perform an inter mediate stateful | Otherwise, the CLAT is forced to perform an inter mediate stateful | |||
NAT44 before the a stateless NAT46, as described | NAT44 before the stateless NAT46, as described in | |||
in <xref target="CLAT"/>.</t> | <xref target="CLAT" format="default"/>.</li> | |||
</list></t> | </ol> | |||
<t>A more detailed configuration approach is described in | ||||
<t>A more detailed configuration approach is described in | <xref target="RFC8585" format="default"/>.</t> | |||
<xref target="RFC8585"/>.</t> | <t>The operator network needs to ensure that the correct responses are pro | |||
vided | ||||
<t>The operator network needs to ensure that the correct responses are | ||||
provided | ||||
for the discovery of the PLAT prefix. It is highly recommended | for the discovery of the PLAT prefix. It is highly recommended | |||
to follow <xref target="RIPE-690"/>, in order to ensure that multiple / 64s | that <xref target="RIPE-690" format="default"/> be followed in order to ensure that multiple /64s | |||
are available, including the one needed for the NAT46 stateless transla tion.</t> | are available, including the one needed for the NAT46 stateless transla tion.</t> | |||
<t>The operator needs to understand other issues, as described throughout | ||||
<t>The operator needs to understand other issues, described across this | this document, | |||
document, | in order to make relevant decisions. For example, if several NAT64 func | |||
in order to take the relevant decisions. For example, if several NAT64 | tions | |||
functions | are needed in the context of scalability / high availability, an NSP sh | |||
are needed in the context of scalability/high-availability, an NSP shou | ould be | |||
ld be | considered (see <xref target="WKP-NSP" format="default"/>).</t> | |||
considered (<xref target="WKP-NSP"/>).</t> | <t>More complex scenarios are possible, for example, if a network offers | |||
<t>More complex scenarios are possible, for example, if a network offer | ||||
s | ||||
multiple NAT64 prefixes, destination-based NAT64 prefixes, etc.</t> | multiple NAT64 prefixes, destination-based NAT64 prefixes, etc.</t> | |||
<t>If the operator decides not to provide a DNS64 function, then this | ||||
<t>If the operator decides not to provide a DNS64 function, then this | setup will be the same as the following figure. This will also be | |||
setup turns into the one in the following Figure. This will be also | the setup that will be seen from the perspective | |||
the setup that "will be seen" from the perspective | ||||
of the CE, if a foreign DNS is used and consequently is | of the CE, if a foreign DNS is used and consequently is | |||
not the operator-provided DNS64 function.</t> | not the operator-provided DNS64 function.</t> | |||
<figure anchor="clat-CE"> | ||||
<figure align="center" anchor="clat-CE" | <name>CE Setup with Built-In CLAT, without DNS64</name> | |||
title="CE setup with built-in CLAT without DNS64"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
.-----. +-------+ .-----. .-----. | .-----. +-------+ .-----. .-----. | |||
/ IPv6- \ | | / \ / \ | / IPv6- \ | | / \ / \ | |||
( only )--+ Res./ | / IPv6- \ .-----. / IPv4- \ | ( only )--+ Res./ | / IPv6- \ .-----. / IPv4- \ | |||
\ LANs / | SOHO +--( only )--( NAT64 )--( only ) | \ LANs / | SOHO +--( only )--( NAT64 )--( only ) | |||
`-----´ | | \ flow / `-----´ \ flow / | `-----' | | \ flow / `-----' \ flow / | |||
.-----. | IPv6 | \ / \ / | .-----. | IPv6 | \ / \ / | |||
/ IPv4- \ | CE | `--+--´ `--+--´ | / IPv4- \ | CE | `--+--' `--+--' | |||
( only )--+ with | | | | ( only )--+ with | | | | |||
\ LANs / | CLAT | +---+----+ +---+----+ | \ LANs / | CLAT | +---+----+ +---+----+ | |||
`-----´ | | |DNS/IPv6| |DNS/IPv4| | `-----' | | |DNS/IPv6| |DNS/IPv4| | |||
.-----. +---+---+ +--------+ +--------+ | .-----. +---+---+ +--------+ +--------+ | |||
/ Dual- \ | | / Dual- \ | | |||
( Stack )------| | ( Stack )------| | |||
\ LANs / | \ LANs / | |||
`-----´ | `-----']]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>In this case, the discovery of the PLAT prefix needs to be arranged | </figure> | |||
as | <t>In this case, the discovery of the PLAT prefix needs to be arranged as | |||
indicated in <xref target="nodns64"/>.</t> | indicated in <xref target="nodns64" format="default"/>.</t> | |||
<t>In addition, if the CE doesn't have a built-in CLAT function, the custo | ||||
mer can | ||||
choose to set up the IPv6 operator-managed CE in bridge mode (and optio | ||||
nally | ||||
use an external router). Or, for example, if there is an access techno | ||||
logy | ||||
that requires some kind of media converter (Optical Network Termination | ||||
(ONT) for | ||||
fiber to the home (FTTH), Cable Modem | ||||
for Data-Over-Cable Service Interface Specification (DOCSIS), etc.), th | ||||
e complete | ||||
setup will look like <xref target="clat-bridge" format="default"/>. | ||||
<t>In this case, the CE doesn't have a built-in CLAT function, or the c | ||||
ustomer can | ||||
choose to setup the IPv6 operator-managed CE in bridge mode (and option | ||||
ally | ||||
use an external router), or for example, there is an access technology | ||||
that requires some kind of media converter (ONT for FTTH, Cable-Modem | ||||
for DOCSIS, etc.), the complete setup will look as in <xref target="cla | ||||
t-bridge"/>. | ||||
Obviously, there will be some intermediate configuration steps for the | Obviously, there will be some intermediate configuration steps for the | |||
bridge, depending on the specific access technology/protocols, which | bridge, depending on the specific access technology/protocols, which | |||
should not modify the steps already described in the previous cases | should not modify the steps already described in the previous cases | |||
for the CLAT function configuration.</t> | for the CLAT function configuration.</t> | |||
<figure anchor="clat-bridge"> | ||||
<figure align="center" anchor="clat-bridge" | <name>CE Setup with Bridged CLAT, without DNS64</name> | |||
title="CE setup with bridged CLAT without DNS64"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+-------+ .-----. .-----. | +-------+ .-----. .-----. | |||
| | / \ / \ | | | / \ / \ | |||
| Res./ | / IPv6- \ .-----. / IPv4- \ | | Res./ | / IPv6- \ .-----. / IPv4- \ | |||
| SOHO +--( only )--( NAT64 )--( only ) | | SOHO +--( only )--( NAT64 )--( only ) | |||
| | \ flow / `-----´ \ flow / | | | \ flow / `-----' \ flow / | |||
| IPv6 | \ / \ / | | IPv6 | \ / \ / | |||
| CE | `--+--´ `--+--´ | | CE | `--+--' `--+--' | |||
| Bridge| | | | | Bridge| | | | |||
| | +---+----+ +---+----+ | | | +---+----+ +---+----+ | |||
| | |DNS/IPv6| |DNS/IPv4| | | | |DNS/IPv6| |DNS/IPv4| | |||
+---+---+ +--------+ +--------+ | +---+---+ +--------+ +--------+ | |||
| | | | |||
.-----. +---+---+ | .-----. +---+---+ | |||
/ IPv6- \ | | | / IPv6- \ | | | |||
( only )--+ IPv6 | | ( only )--+ IPv6 | | |||
\ LANs / | Router| | \ LANs / | Router| | |||
`-----´ | | | `-----' | | | |||
.-----. | with | | .-----. | with | | |||
/ IPv4- \ | CLAT | | / IPv4- \ | CLAT | | |||
( only )--+ | | ( only )--+ | | |||
\ LANs / | | | \ LANs / | | | |||
`-----´ | | | `-----' | | | |||
.-----. +---+---+ | .-----. +---+---+ | |||
/ Dual- \ | | / Dual- \ | | |||
( Stack )------| | ( Stack )------| | |||
\ LANs / | \ LANs / | |||
`-----´ | `-----']]></artwork> | |||
]]></artwork> | ||||
</figure> | ||||
<t>It should be avoided that several routers (i.e., the operator | ||||
provided CE | ||||
and a downstream user provided router) enable simultaneously rou | ||||
ting and/or | ||||
CLAT, in order to avoid multiple NAT44 and NAT46 levels, as well | ||||
as | ||||
ensuring the correct operation of multiple IPv6 subnets. In thos | ||||
e cases, | ||||
it is suggested the use of HNCP (<xref target="RFC8375"/>).</t> | ||||
<t>Note that the procedure described here for the CE setup, can b | ||||
e simplified | ||||
if the CE follows <xref target="RFC8585"/>.</t> | ||||
</section> | ||||
<section title="ANNEX B: CLAT Implementation"> | ||||
<t>In addition to the regular set of features for a CE, a CLAT CE | ||||
implementation requires support of:</t> | ||||
<t><list style="symbols"> | ||||
<t><xref target="RFC7915"/> for the NAT46 functio | ||||
n.</t> | ||||
<t><xref target="RFC7050"/> for the PLAT prefix d | ||||
iscovery.</t> | ||||
<t><xref target="RFC7225"/> for the PLAT prefix d | ||||
iscovery if PCP is supported.</t> | ||||
<t><xref target="I-D.ietf-6man-ra-pref64"/> for t | ||||
he PLAT prefix | ||||
discovery by means of Router Advertising.</t> | ||||
<t><xref target="I-D.li-intarea-nat64-prefix-dhcp | ||||
-option"/> for the PLAT prefix | ||||
discovery by means of DHCP.</t> | ||||
<t>If stateless NAT46 is supported, a mechanism t | ||||
o ensure that | ||||
multiple /64 are available, such as DHCPv6-PD <xr | ||||
ef target="RFC8415"/>.</t> | ||||
</list></t> | ||||
<t>There are several OpenSource implementations of CLAT, such as: | ||||
</t> | ||||
<t><list style="symbols"> | ||||
<t>Android: https://github.com/ddrown/android_ext | ||||
ernal_android-clat.</t> | ||||
<t>Jool: https://www.jool.mx.</t> | ||||
<t>Linux: https://github.com/toreanderson/clatd.< | ||||
/t> | ||||
<t>OpenWRT: https://github.com/openwrt-routing/pa | ||||
ckages/blob/master/nat46/files/464xlat.sh.</t> | ||||
<t>VPP: https://git.fd.io/vpp/tree/src/plugins/na | ||||
t.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="ANNEX C: Benchmarking"> | ||||
<t><xref target="RFC8219"/> has defined a benchmarking methodolog | ||||
y for IPv6 | ||||
transition technologies. NAT64 and 464XLAT are addressed among th | ||||
e single and | ||||
double translation technologies, respectively. DNS64 is addressed | ||||
in | ||||
Section 9, and the methodology is more elaborated in <xref target | ||||
="DNS64-BM-Meth"/>.</t> | ||||
<t>Several documents provide references to benchmarking results, | </figure> | |||
for example | ||||
in the case of DNS64, <xref target="DNS64-Benchm"/>.</t> | ||||
</section> | ||||
<section title="ANNEX D: Changes from -00 to -01/-02"> | <t>Several routers (i.e., the operator-provided | |||
<t>Section to be removed after WGLC. | CE and the downstream user-provided router) that enable | |||
Significant updates are:<list style="numbers"> | simultaneous routing and/or CLAT should be avoided to ensure th | |||
<t>Text changes across all the document.</t> | at multiple NAT44 | |||
</list></t> | and NAT46 levels are not used and that the operation of | |||
multiple IPv6 subnets is correct. In those cases, | ||||
the use of the Home Networking Control Protocol (HNCP) <xref tar | ||||
get="RFC8375" format="default"/> is suggested.</t> | ||||
<t>Note that the procedure described here for the CE setup can be simplifi | ||||
ed | ||||
if the CE follows <xref target="RFC8585" format="default"/>.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>CLAT Implementation</name> | ||||
<t>In addition to the regular set of features for a CE, a CLAT CE | ||||
implementation requires support for:</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<xref target="RFC7915" format="default"/> for the NAT46 function.</li> | ||||
<li> | ||||
<xref target="RFC7050" format="default"/> for the PLAT prefix discover | ||||
y.</li> | ||||
<li> | ||||
<xref target="RFC7225" format="default"/> for the PLAT prefix discover | ||||
y if PCP is supported.</li> | ||||
<li> | ||||
<xref target="I-D.ietf-6man-ra-pref64" format="default"/> for the PLAT | ||||
prefix | ||||
discovery by means of Router Advertising.</li> | ||||
<li> | ||||
<xref target="I-D.li-intarea-nat64-prefix-dhcp-option" format="default | ||||
"/> for the PLAT prefix | ||||
discovery by means of DHCP.</li> | ||||
<section title="ANNEX E: Changes from -02 to -03"> | <li>If stateless NAT46 is supported, a mechanism to ensure that | |||
<t>Section to be removed after WGLC. | multiple /64 are available, such as DHCPv6-PD <xr | |||
Significant updates are:<list style="numbers"> | ef target="RFC8415"/>, must be used.</li> | |||
<t>Added references to new cited documents.</t> | </ul> | |||
<t>Reference to RFC8273 and on-demand IPv4-in-IPv6 VPN for IPv6-only LANs | <t>There are several Open Source implementations of CLAT, such as:</t> | |||
w/o DNS64.</t> | <ul spacing="normal"> | |||
<t>Overall review and editorial changes.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="ANNEX F: Changes from -03 to -04"> | <li>Android: <eref target="https://github.com/ddrown/android_external_an | |||
<t>Section to be removed after WGLC. | droid-clat"/></li> | |||
Significant updates are:<list style="numbers"> | <li>Jool: <eref target="https://www.jool.mx"/></li> | |||
<t>Added text related to EAM considerations.</t> | <li>Linux: <eref target="https://github.com/toreanderson/clatd"/></li> | |||
</list></t> | ||||
</section> | ||||
<section title="ANNEX G: Changes from -04 to -05"> | <li>OpenWRT: <eref target="https://git.openwrt.org/?p=openwrt%2Fopenwrt.git& | |||
<t>Section to be removed after WGLC. | a=search&h=refs%2Ftags%2Fv19.07.0-rc1&st=commit&s=464xlat"/></li> | |||
Significant updates are:<list style="numbers"> | <li>VPP: <eref target="https://git.fd.io/vpp/tree/src/plugins/nat"/></li | |||
<t>Added cross references to EAM section.</t> | > | |||
<t>Reworded "foreing DNS section".</t> | </ul> | |||
<t>Overall editorial review of text, pictures and nits correction.</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="ANNEX H: Changes from -05 to -06"> | <name>Benchmarking</name> | |||
<t>Section to be removed after WGLC. | <t>A benchmarking methodology for IPv6 | |||
Significant updates are:<list style="numbers"> | transition technologies has been defined in <xref target="RFC8219 | |||
<t>Corrected EAMT to EAM.</t> | " format="default"/>. NAT64 and 464XLAT are addressed | |||
<t>Typos and nits.</t> | among the single- and | |||
<t>New considerations regarding incoming connections.</t> | double-translation technologies, respectively. DNS64 is addressed | |||
</list></t> | in | |||
Section <xref target="RFC8219" sectionFormat="bare" | ||||
section="9"/>, and the methodology is elaborated in | ||||
<xref target="DNS64-BM-Meth" format="default"/> of that document.</t> | ||||
<t>Several documents provide references to benchmarking results, for examp | ||||
le, | ||||
for DNS64 <xref target="DNS64-Benchm" format="default"/>.</t> | ||||
</section> | </section> | |||
<section numbered="false" toc="default"> | ||||
<section title="ANNEX H: Changes from -06 to -07"> | <name>Acknowledgements</name> | |||
<t>Section to be removed after WGLC. | <t>The author would like to acknowledge the inputs of Gabor Lencse, | |||
Significant updates are:<list style="numbers"> | Andrew Sullivan, Lee Howard, Barbara Stark, Fred Baker, | |||
<t>Inputs/clarifications from IESG review.</t> | Mohamed Boucadair, Alejandro D'Egidio, Dan Wing, Mikael A | |||
</list></t> | brahamsson, | |||
and Eric Vyncke.</t> | ||||
<t>Conversations with Marcelo Bagnulo, one of the coauthors of NAT64 and | ||||
DNS64, and email correspondence via the IETF mailing list | ||||
s with Mark Andrews | ||||
have been very useful for this work.</t> | ||||
<t>Work on this document was inspired by Christian Huitema, who suggested | ||||
that DNS64 should never be used when deploying CLAT | ||||
in the IETF network.</t> | ||||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<?rfc include="reference.RFC.1918" ?> | ||||
<?rfc include="reference.RFC.2119" ?> | ||||
<?rfc include="reference.RFC.5389" ?> | ||||
<?rfc include="reference.RFC.5625" ?> | ||||
<?rfc include="reference.RFC.5766" ?> | ||||
<?rfc include="reference.RFC.6052" ?> | ||||
<?rfc include="reference.RFC.6535" ?> | ||||
<?rfc include="reference.RFC.7915" ?> | ||||
<?rfc include="reference.RFC.6144" ?> | ||||
<?rfc include="reference.RFC.6146" ?> | ||||
<?rfc include="reference.RFC.6147" ?> | ||||
<?rfc include="reference.RFC.6877" ?> | ||||
<?rfc include="reference.RFC.6887" ?> | ||||
<?rfc include="reference.RFC.7050" ?> | ||||
<?rfc include="reference.RFC.7225" ?> | ||||
<?rfc include="reference.RFC.7757" ?> | ||||
<?rfc include="reference.RFC.8174" ?> | ||||
<?rfc include="reference.RFC.8273" ?> | ||||
<?rfc include="reference.RFC.8305" ?> | ||||
<?rfc include="reference.RFC.8375" ?> | ||||
<?rfc include="reference.RFC.8415" ?> | ||||
<?rfc include="reference.RFC.8445" ?> | ||||
<?rfc include="reference.RFC.8484" ?> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include="reference.RFC.6889" ?> | ||||
<?rfc include="reference.RFC.6950" ?> | ||||
<?rfc include="reference.RFC.7051" ?> | ||||
<?rfc include="reference.RFC.7269" ?> | ||||
<?rfc include="reference.RFC.7755" ?> | ||||
<?rfc include="reference.RFC.7756" ?> | ||||
<?rfc include="reference.RFC.7849" ?> | ||||
<?rfc include="reference.RFC.7858" ?> | ||||
<?rfc include="reference.RFC.8094" ?> | ||||
<?rfc include="reference.RFC.8219" ?> | ||||
<?rfc include="reference.RFC.8585" ?> | ||||
<?rfc include="reference.I-D.ietf-6man-ra-pref64.xml" ?> | ||||
<?rfc include="reference.I-D.huitema-quic-dnsoquic.xml" ?> | ||||
<?rfc include="reference.I-D.lmhp-v6ops-transition-comparison.xml" ?> | ||||
<?rfc include="reference.I-D.bp-v6ops-ipv6-ready-dns-dnssec.xml" ?> | ||||
<?rfc include="reference.I-D.palet-v6ops-464xlat-opt-cdn-caches.xml" ?> | ||||
<?rfc include="reference.I-D.li-intarea-nat64-prefix-dhcp-option.xml" ?> | ||||
<?rfc include="reference.I-D.vixie-dns-rpz.xml" ?> | ||||
<?rfc include="reference.I-D.cheshire-sudn-ipv4only-dot-arpa.xml" ?> | ||||
<?rfc include="reference.I-D.ietf-tram-turnbis.xml" ?> | ||||
<?rfc include="reference.I-D.ietf-tram-stunbis.xml" ?> | ||||
<reference anchor="Threat-DNS64"> | ||||
<front> | ||||
<title>Methodology for the identification of potential security issues | ||||
of different IPv6 transition technologies: Threat analysis of DNS64 and statefu | ||||
l NAT64</title> | ||||
<author initials="G" surname="Lencse"> | ||||
</author> | ||||
<author initials="Y" surname="Kadobayashi"> | ||||
</author> | ||||
<date month="August" year="2018" /> | ||||
</front> | ||||
<seriesInfo name="Computers & Security" value=""/> | ||||
<seriesInfo name="vol." value="77"/> | ||||
<seriesInfo name="no." value="1"/> | ||||
<seriesInfo name="pp." value="397-411"/> | ||||
<seriesInfo name="DOI" value="10.1016/j.cose.2018.04.012"/> | ||||
</reference> | ||||
<reference anchor="DNS64-Benchm"> | ||||
<front> | ||||
<title>Benchmarking DNS64 Implementations: Theory and Practice</title> | ||||
<author initials="G" surname="Lencse"> | ||||
</author> | ||||
<author initials="Y" surname="Kadobayashi"> | ||||
</author> | ||||
<date month="September" year="2018" /> | ||||
</front> | ||||
<seriesInfo name="Computer Communications" value=""/> | ||||
<seriesInfo name="vol." value="127"/> | ||||
<seriesInfo name="no." value="1"/> | ||||
<seriesInfo name="pp." value="61-74"/> | ||||
<seriesInfo name="DOI" value="10.1016/j.comcom.2018.05.005"/> | ||||
</reference> | ||||
<reference anchor="DNS64-BM-Meth"> | ||||
<front> | ||||
<title>Benchmarking Methodology for DNS64 Servers</title> | ||||
<author initials="G" surname="Lencse"> | ||||
</author> | ||||
<author initials="M" surname="Georgescu"> | ||||
</author> | ||||
<author initials="Y" surname="Kadobayashi"> | ||||
</author> | ||||
<date month="September" year="2017" /> | ||||
</front> | ||||
<seriesInfo name="Computer Communications" value=""/> | ||||
<seriesInfo name="vol." value="109"/> | ||||
<seriesInfo name="no." value="1"/> | ||||
<seriesInfo name="pp." value="162-175"/> | ||||
<seriesInfo name="DOI" value="10.1016/j.comcom.2017.06.004"/> | ||||
</reference> | ||||
<reference anchor="About-DNS64" target="https://blog.apnic.net/2016/06/09/ | ||||
lets-talk-ipv6-dns64-dnssec/"> | ||||
<front> | ||||
<title>Let’s talk about IPv6 DNS64 & DNSSEC</title> | ||||
<author initials="J" surname="Linkova"> | ||||
<organization>APNIC Blog</organization> | ||||
</author> | ||||
<date year="2016" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="FCC" target="https://www.fcc.gov/reports-research/repor | ||||
ts/measuring-broadband-america/measuring-broadband-america-mobile-2013-2018"> | ||||
<front> | ||||
<title>Measuring Broadband America Mobile 2013-2018 Coarsened Data</ti | ||||
tle> | ||||
<author> | ||||
<organization>FCC</organization> | ||||
</author> | ||||
<date year="2018" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ARCEP" target="https://www.arcep.fr/cartes-et-donnees/n | ||||
os-publications-chiffrees/service-client-des-operateurs-mesures-de-la-qualite-de | ||||
-service/service-client-des-operateurs-les-mesures-de-qualite-de-service.html"> | ||||
<front> | ||||
<title>Service client des opérateurs : les mesures de qualité de ser | ||||
vice</title> | ||||
<author> | ||||
<organization>ARCEP</organization> | ||||
</author> | ||||
<date year="2018" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ISOC" target="https://www.internetsociety.org/resources | ||||
/2018/state-of-ipv6-deployment-2018/"> | ||||
<front> | ||||
<title>State of IPv6 Deployment 2018</title> | ||||
<author> | ||||
<organization>ISOC</organization> | ||||
</author> | ||||
<date year="2018" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="RIPE-690" target="https://www.ripe.net/publications/do | ||||
cs/ripe-690"> | ||||
<front> | ||||
<title>Best Current Operational Practice for Operators: I | ||||
Pv6 prefix assignment for end-users - persistent vs non-persistent, and what siz | ||||
e to choose</title> | ||||
<author surname="RIPE"> | ||||
<organization> RIPE</organization> | ||||
</author> | ||||
<date month="October" year="2017" /> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 280 change blocks. | ||||
2184 lines changed or deleted | 1949 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |