One document matched: draft-durand-ngtrans-nat64-nat46-00.txt
Internet Engineering Task Force Alain Durand
INTERNET-DRAFT SUN Microsystems,inc.
June, 3, 2002
Expires December, 4, 2002
NAT64 - NAT46
<draft-durand-ngtrans-nat64-nat46-00.txt>
Status of this memo
This memo provides information to the Internet community. It does not
specify an Internet standard of any kind. This memo is in full
conformance with all provisions of Section 10 of RFC2026
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Abstract
This document defines two scalable NAT mechanisms, NAT64 to enable
IPv6-only devices to initiate communications with unmodified IPv4
only devices and NAT46 to enable IPv4-only devices to initiate
communications with IPv6-only devices.
0. Terminology
In this document, an IPv6-only node refers to a node that implement
IPv6 and is configured with an IPv6 address. It may or may not
implement IPv4 in the kernel, but if it does, the IPv4 stack is
unconfigured.
Similarly, an IPv4-only node may or may not implement IPv6, and if it
does, its IPv6 stack is unconfigured.
1. Balkanization of the Internet.
Very early in the design of IPv6, it was decided that there would be
no D-day in the transition from IPv4 to IPv6. Such an approach had
been experimented in the transition from NCP to TCP when the size of
the Internet was only a few hundred hosts and it turned out to be
rather chaotic. Even without a D-day, there will be a time where
IPv6-only devices will appear in significant number. It is highly
probable that, when this will happen, there would still be a very
large population of unmodified IPv4-only devices in the Internet, so
the question of how much communication is needed in between those two
kind of devices is essential to understand when designing transition
tools and scenarios. At one end of the spectrum, some say that the
value of the Internet is that any device can talk to any other
device, thus communication between IPv6-only nodes and IPv4-only
nodes should be as seamless as possible. On the other end of the
spectrum, some say that new IPv6-only devices will only need services
from IPv6 nodes and will not talk to IPv4 nodes, thus the need for
communication is minimal and can be handled by application proxies
when and if needed. The issue with this later approach is that, even
if the final communication is taking place between two IPv6 nodes, it
may be the case that the communication set-up process will require
third parties, like DNS resolution, LDAP queries, mail MX relay
discovery,... and some of the steps in this resolution processes may
include sending packet to an infrastructure service only available
via IPv4. If IPv6 nodes cannot seamlessly uses those services from
IPv4 land, communications between two IPv6-only nodes may or may not
be possible. This could lead to the balkanization of the Internet
where things may work in some places, but not in others, and
troubleshooting will be difficult.
2. Problem statement.
As the number of services that an IPv6 only node may require from the
IPv4 Internet is potentially large, it will make sense to try to find
a solution at the IP layer that will work for all services.
This memo is proposing a scalable layer 3 solution to enable
communication initiated by any IPv6-only node to any unmodified
IPv4-only node or the other way round with minimum configuration in
the network and very minimum configuration (zero if possible) on the
end nodes and without introducing any new security problems.
3. NAT-PT
Issues regarding NAT-PT have been described in [NAT-PTissues].
4. NAT64
This section describe an address translation mechanism to enable an
IPv6-only node to initiate a connection to an unmodified IPv4 node.
4.1 Background: IPv4 connections from a dual-stack node
On a dual stack node, when an IPv6 application wants to send a packet
to an IPv4 address x.y.z.t, it can encode it in a IPv4-mapped address
format ::FFFF:x.y.z.t and let the kernel choose the IPv4 stack. In
some sense, this is a form of address translation done within the
node.
::FFFF:x.y.z.t
------------|----
|IPv6 Applica|tion|
|------------|----|
| IPv6 | IP|v4 |
------------|----
| |
| \----------------->
======================================> LAN
NAT64 proposes to extend this mechanism to IPv6-only nodes.
4.2 Mapping IPv4 address to IPv4-mapped addresses
On IPv6 only nodes implementing [RFC2553], the resolver library may
add special code to the getnameinfo() routine to automatically map
IPv4 addresses obtained via A record to IPv4-mapped addresses. This
way, IPv6 applications using getnameinfo() will always be returned
IPv6 addresses.
Application performing direct DNS query for A records should perform
this mapping themselves.
4.3 Sending an IPv4-mapped packet
When an IPv6-only node wants to communicate with an IPv4 node, it can
send packets to the corresponding IPv4-mapped address on a link using
an IPv6 address of the same scope as source address. The IPv6 node
should consult its routing table to find out the correct outgoing
interface.
::FFFF:x.y.z.t
---|-------------
|IPv|6 Application|
|---|-------------|
| IP|v6 | |
---|-------------
| |
\----|--------------------->
======================================> LAN
4.4 Intercepting the IPv4-mapped packets
A NAT64 box can simply inject the ::FFFF:0/96 route in the routing
domain where it is willing to perform IPv6 to IPv4 address
translation.
::FFFF:x.y.z.t
---|-------------
|IPv|6 Application|
|---|-------------|
| IP|v6 | | NAT64
---|------------- <----advertising
| | ::FFFF:0/96
\----|-----> -------------- ---------
===================|default router|===========|IPv6|IPv4|=======>
-------------- ---------
4.5 Address translation
IPv6 to IPv4 address translation is then performed in a similar way
as described in NAT [RFC3022] and NAT-PT [RFC2766].
4.6 Scalability
NAT64 can be made to scale almost infinitely by adding NAT64 boxes.
Each NAT64 will advertise a slightly longer prefix than ::FFFF:0/96.
In the example bellow, four NAT64 advertise each 1/4 of the IPv4
address space.
NAT64-0
::FFFF:x.y.z.t ::FFFF:0000/98
---|------------- ---------
|IPv|6 Application| ====|IPv6|IPv4|=======>
|---|-------------| | ---------
| IP|v6 | | |
----------------- | NAT64-1
| | | ::FFFF:4000/98
\----|-----> -------------- | ---------
===================|default router|===========|IPv6|IPv4|=======>
-------------- | ---------
|
| NAT64-2
| ::FFFF:8000/98
| ---------
|====|IPv6|IPv4|=======>
| ---------
|
| NAT64-3
| ::FFFF:C000/98
| ---------
====|IPv6|IPv4|=======>
---------
Prefixes advertised by the NAT64 do not have to be all of the same
length. For instance, if the network administrator knows there is a
lot of traffic for a particular IPv4 prefix, he may want to dedicate
a NAT64 for it and let the rest of the traffic go to the main NAT64
box. In the example bellow, the NAT64-0 box is dedicated to translate
the traffic for 11.14.14.15
NAT64-0
::FFFF:x.y.z.t ::FFFF:BEEF/128
---|------------- ---------
|IPv|6 Application| ====|IPv6|IPv4|=======>
|---|-------------| | ---------
| IP|v6 | | |
----------------- | NAT64-1
| | | ::FFFF:0000/96
\----|-----> -------------- | ---------
===================|default router|===========|IPv6|IPv4|=======>
-------------- ---------
4.7 Limits of the model
The underlying assumption of this model is that the routes to the
NAT64 boxes are stable for the duration of the communication to be
translated.
All the traditional limitation of NAT [RFC2993] in IPv4 space also
applies here.
5. NAT46
This section describe an address translation mechanism to enable an
unmodified IPv4-only node to initiate a connection to an IPv6-only
node.
5.1 Background
NAT46 is designed to work for unmodified IPv4-only node, so doing
address mapping in the resolver library is out of scope. Some form
of ALG has to take place elsewhere in the DNS. The main issue of
NAT-PT in this mode of operation is that the DNS ALG is very
sensitive to denial of service attacks, as the pool of IPv4 addresses
could very easily be exhausted by external attackers. The idea here
is to perform the mappings "close" to the originating IPv4 nodes
(i.e. in the DNS resolver) instead of "close" to the destination IPv6
node (i.e. in the DNS server), leaving it to the local IPv4 network
administrators to offer the service to "bridge" toward the global
IPv6 Internet.
5.2 Address mapping
The first thing an unmodified IPv4-only node needs in order to
establish a connection to an IPv6-only node is a DNS 'A' record that
contains a mapping to the destination IPv6 address. As the
underlying assumption is that the IPv4 node cannot be modified, this
mapping can only be done by a DNS resolver. So the first step of
this process if for the unmodified IPv4-only node to send a A query
for a FQDN to a local DNS resolver.
-----------------------------------
| |
| |
| ---- --------
| |IPv4| 'A' query | DNS |
| |node|----------------------->|resolver|
| ---- --------
| |
| IPv4 network |
-----------------------------------
Receiving the A query, the local DNS resolver tries to resolve it.
If it succeeds, then the FQDN has one or more IPv4 address already
assigned to it and there is no need for translation, the resolver
just passes the A records back to the IPv4-only node.
-----------------------------------
| |
| |
| ---- -------- 'A' query
| |IPv4| 'A' replies | DNS |--------->
| |node|<-----------------------|resolver|<--------
| ---- -------- 'A' replies
| |
| IPv4 network |
-----------------------------------
If the A resolution fails, the resolver tries a AAAA query for the
same FQDN. If that query fails, there is no IPv6 address assigned
to that name, and the resolver returns a failure notification to
the IPv4-only node.
-----------------------------------
| |
| |
| ---- -------- 'AAAA' query fails
| |IPv4| error notification | DNS |--------->
| |node|<-----------------------|resolver|
| ---- --------
| |
| IPv4 network |
-----------------------------------
If the AAAA query succeeds, the resolver creates mappings between
the returned IPv6 address and the same number of IPv4 addresses
taken out of a reserved prefix P. IANA considerations for this
prefix are covered in Section 7. The resolver then creates A
records for those IPv4 addresses, using the TTL includes in the
AAAA answers, and return those A records back to the IPv4-only
node. The mappings should be expired before the associated TTL.
-----------------------------------
| |
| |
| ---- -------- 'AAAA' query
| |IPv4| 'A' replies | DNS |--------->
| |node|<-----------------------|resolver|<--------
| ---- |mapping | 'AAAA' replies
| --------
| |
| IPv4 network |
-----------------------------------
5.3 Address translation
The proposition here is to collocate the local DNS resolver with a
NAT46 box that will advertise the prefix P to the local network
and intercept packets which destination addresses are included in
P.
The NAT46 is connected to the IPv6 Internet and is allocated a
prefix Q/64 taken out of the IPv6 address block that has been
allocated to the network. The NAT46 advertise the prefix Q/64 in
the local IPv6 routing domain. Address mapping is then performed:
- IPv4 src x.y.z.t is translated to IPv6 src Q::x.y.z.t
- IPv4 dst m.n.o.p (from prefix P) is translated to the IPv6
addresses that was mapped by the DNS resolver.
The rest of the translation is performed as described in NAT
[RFC3022] and NAT-PT [RFC2766].
-----------------------------------
| |
| route for P --------
| ---- <---------| NAT46 |
| |IPv4| | DNS |================>
| |node|----------------------->|resolver| IPv6 network
| ---- IPv4 packet sent --------
| to the 'mapped' |
| address m.n.o.p |
| |
| IPv4 network |
-----------------------------------
When the packet returns from the IPv6 network, as the NAT46 box
advertise the prefix Q/64, it can intercept it again and perform the
opposite translation.
-----------------------------------
| | route for Q/64
| -------- -------->
| ---- | NAT46 |
| |IPv4| | DNS |<================
| |node|<-----------------------|resolver| IPv6 network
| ---- --------
| |
| IPv4 network |
-----------------------------------
5.4 Mapping duration
As said in 5.2, mapping should not last more than the TTL
associated with the AAAA records. However, after a period of
inactivity, the NAT46 box may decide to flush this mapping.
5.5 Scalability
Scalability can be achieved in a similar way as in NAT64 by adding
several NAT46 boxes and having each of them advertise a sub-prefix
of P. It is possible to partition the IPv4 clients to use
different DNS resolver and thus maintain the collocation of DNS
resolver and NAT46. Another alternative could be to design a
signaling protocol between the DNS resolver and the NAT46 boxes to
trigger mapping on/mapping off information. Such a protocol is
clearly beyond the scope of this document and is let for future
studies.
5.6 Limits of the model
The underlying assumption of this model is that the routes to the
NAT46 boxes are stable for the duration of the communication to be
translated.
All the traditional limitation of NAT [RFC2993] in IPv4 space also
applies here.
Although NAT46 can be used in conjunction with [RFC1918] private
address space, it will works for communication started from IPv4
private addresses to global IPv6 addresses. Neither NAT64 nor
NAT46 enable an IPv6 node to initiate communications with an IPv4
node that is behind a NAT box and is using [RFC1918] IPv4 private
addresses.
6. Security considerations
NAT64 and NAT46 share the same security considerations as IPv4 NAT
as they operate the same way. The security consideration raised
in [NAT-PTissues] do not apply to NAT64. If such an attack is
launched against NAT46, the effect will be limited to the IPv4
site covered by NAT46 and will not prevent communication from
other nodes in the IPv4-only Internet to initiate communication
with IPv6 only nodes.
7. IANA Considerations
As NAT46 can be used in conjunction of [RFC1918] addresses, the
prefixes 10/8, 172.16/12 and 192.168/16 cannot be use for address
mapping.
Allocating a /8 prefix would enable 2^24 (about 16 millions)
contexts. Allocating a /16 prefix would enable 2^16 (about 65
thousands) contexts. Allocating a /24 prefix would enable 2^8
(256) contexts. Decision on the prefix length to allocate will be
done in the NGtrans mailing list.
8. Author addresses
Alain Durand
SUN Microsystems, Inc
901 San Antonio Road MPK17-202
Palo Alto, CA 94303-4900
USA
Mail: Alain.Durand@sun.com
9. References
[RFC1918] Address Allocation for Private Internets. Y. Rekhter, B.
Moskowitz, D. Karrenberg, G. J. de Groot, E. Lear. February 1996.
[RFC2553] Basic Socket Interface Extensions for IPv6. R. Gilligan,
S. Thomson, J. Bound, W. Stevens. March 1999.
[RFC2766] Network Address Translation - Protocol Translation (NAT-
PT). G. Tsirtsis, P. Srisuresh. February 2000.
[RFC2993] Architectural Implications of NAT. T. Hain. November
2000.
[RFC3022] Traditional IP Network Address Translator (Traditional
NAT). P. Srisuresh, K. Egevang. January 2001.
[NAT-PTissues] Issues with NAT-PT DNS ALG in RFC2766, A. Durand,
draft-durand-natpt-dns-alg-issues-00.txt, work in progress.
10. Full Copyright Statement
"Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished
to others, and derivative works that comment on or otherwise
explain it or assist in its implementation may be prepared,
copied, published and distributed, in whole or in part, without
restriction of any kind, provided that the above copyright notice
and this paragraph are included on all such copies and derivative
works. However, this document itself may not be modified in any
way, such as by removing the copyright notice or references to the
Internet Society or other Internet organizations, except as needed
for the purpose of developing Internet standards in which case the
procedures for copyrights defined in the Internet Standards
process must be followed, or as required to translate it into
languages other than English.
The limited permissions granted above are perpetual and will not
be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
| PAFTECH AB 2003-2026 | 2026-04-24 01:47:56 |