RFC 6333
RFC 6333
Durand
Request for Comments: 6333 Juniper Networks
Category: Standards Track R. Droms
ISSN: 2070-1721 Cisco
J. Woodyatt
Apple
Y. Lee
Comcast
August 2011
Abstract
This document revisits the dual-stack model and introduces the Dual-
Stack Lite technology aimed at better aligning the costs and benefits
of deploying IPv6 in service provider networks. Dual-Stack Lite
enables a broadband service provider to share IPv4 addresses among
customers by combining two well-known technologies: IP in IP (IPv4-
in-IPv6) and Network Address Translation (NAT).
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
Table of Contents
1. Introduction ....................................................3
2. Requirements Language ...........................................4
3. Terminology .....................................................4
4. Deployment Scenarios ............................................4
4.1. Access Model ...............................................4
4.2. CPE ........................................................5
4.3. Directly Connected Device ..................................6
5. B4 Element ......................................................7
5.1. Definition .................................................7
5.2. Encapsulation ..............................................7
5.3. Fragmentation and Reassembly ...............................7
5.4. AFTR Discovery .............................................7
5.5. DNS ........................................................8
5.6. Interface Initialization ...................................8
5.7. Well-Known IPv4 Address ....................................8
6. AFTR Element ....................................................9
6.1. Definition .................................................9
6.2. Encapsulation ..............................................9
6.3. Fragmentation and Reassembly ...............................9
6.4. DNS .......................................................10
6.5. Well-Known IPv4 Address ...................................10
6.6. Extended Binding Table ....................................10
7. Network Considerations .........................................10
7.1. Tunneling .................................................10
7.2. Multicast Considerations ..................................10
8. NAT Considerations .............................................11
8.1. NAT Pool ..................................................11
8.2. NAT Conformance ...........................................11
8.3. Application Level Gateways (ALGs) .........................11
8.4. Sharing Global IPv4 Addresses .............................11
8.5. Port Forwarding / Keep Alive ..............................11
9. Acknowledgements ...............................................12
10. IANA Considerations ...........................................12
11. Security Considerations .......................................12
12. References ....................................................13
12.1. Normative References .....................................13
12.2. Informative References ...................................14
Appendix A. Deployment Considerations .............................16
A.1. AFTR Service Distribution and Horizontal Scaling ...........16
A.2. Horizontal Scaling .........................................16
A.3. High Availability ..........................................16
A.4. Logging ....................................................16
Appendix B. Examples ..............................................17
B.1. Gateway-Based Architecture .................................17
B.1.1. Example Message Flow ...................................19
B.1.2. Translation Details ....................................23
B.2. Host-Based Architecture ....................................24
B.2.1. Example Message Flow ...................................27
B.2.2. Translation Details ....................................31
1. Introduction
The common thinking for more than 10 years has been that the
transition to IPv6 will be based solely on the dual-stack model and
that most things would be converted this way before we ran out of
IPv4. However, this has not happened. The IANA free pool of IPv4
addresses has now been depleted, well before sufficient IPv6
deployment had taken place. As a result, many IPv4 services have to
continue to be provided even under severely limited address space.
This document will first present some deployment scenarios and then
define the behavior of the two elements of the Dual-Stack Lite
technology: the Basic Bridging BroadBand (B4) element and the Address
Family Transition Router (AFTR) element. It will then go into
networking and NAT-ing considerations.
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
3. Terminology
This document also introduces two new terms: the DS-Lite Basic
Bridging BroadBand (B4) element and the DS-Lite Address Family
Transition Router (AFTR) element.
4. Deployment Scenarios
4.2. CPE
Note: If an IPv4 home host decides to use another IPv4 DNS server,
the DS-Lite CPE will forward those DNS requests via the B4 interface,
the same way it forwards any regular IPv4 packets. However, each DNS
request will create a binding in the AFTR. A large number of DNS
requests may have a direct impact on the AFTR’s NAT table
utilization.
A directly connected DS-Lite device SHOULD send its DNS requests over
IPv6 to the IPv6 DNS server it has been configured to use.
5. B4 Element
5.1. Definition
5.2. Encapsulation
5.5. DNS
The B4 element can pass this IPv6 address to downstream IPv6 nodes,
but not to downstream IPv4 nodes. As such, the B4 element SHOULD
implement a DNS proxy, following the recommendations of [RFC5625].
Note: A range of addresses has been reserved for this purpose. The
intent is to accommodate nodes implementing multiple B4 elements.
6. AFTR Element
6.1. Definition
6.2. Encapsulation
6.4. DNS
The AFTR SHOULD use the well-known IPv4 address 192.0.0.1 reserved by
IANA to configure the IPv4-in-IPv6 tunnel. That address can then be
used to report ICMP problems and will appear in traceroute outputs.
The NAT binding table of the AFTR element is extended to include the
source IPv6 address of the incoming packets. This IPv6 address is
used to disambiguate between the overlapping IPv4 address space of
the service provider customers.
By doing a reverse lookup in the extended IPv4 NAT binding table, the
AFTR knows how to reconstruct the IPv6 encapsulation when the packets
come back from the Internet. That way, there is no need to keep a
static configuration for each tunnel.
7. Network Considerations
7.1. Tunneling
8. NAT Considerations
The AFTR MAY be provisioned with different NAT pools. The address
ranges in the pools may be disjoint but MUST NOT be overlapped.
Operators may implement policies in the AFTR to assign clients in
different pools. For example, an AFTR can have two interfaces. Each
interface will have a disjoint pool NAT assigned to it. In another
case, a policy implemented on the AFTR may specify that one set of
B4s will use NAT pool 1 and a different set of B4s will use NAT
pool 2.
The AFTR performs NAT-44 and inherits the limitations of NAT. Some
protocols require ALGs in the NAT device to traverse through the NAT.
For example, Active FTP requires the ALG to work properly. ALGs
consume resources, and there are many different types of ALGs. The
AFTR is a shared network device that supports a large number of B4
elements. It is impossible for the AFTR to implement every current
and future ALG.
9. Acknowledgements
The authors would like to acknowledge the role of Mark Townsley for
his input on the overall architecture of this technology by pointing
this work in the direction of [SNAT]. Note that this document
results from a merging of [DURAND-DS-LITE] and [SNAT]. Also to be
acknowledged are the many discussions with a number of people
including Shin Miyakawa, Katsuyasu Toyama, Akihide Hiura, Takashi
Uematsu, Tetsutaro Hara, Yasunori Matsubayashi, and Ichiro Mizukoshi.
The authors would also like to thank David Ward, Jari Arkko, Thomas
Narten, and Geoff Huston for their constructive feedback. Special
thanks go to Dave Thaler and Dan Wing for their reviews and comments.
Security issues associated with NAT have long been documented. See
[RFC2663] and [RFC2993].
However, moving the NAT functionality from the CPE to the core of the
service provider network and sharing IPv4 addresses among customers
create additional requirements when logging data for abuse usage.
With any architecture where an IPv4 address does not uniquely
represent an end host, IPv4 addresses and timestamps are no longer
sufficient to identify a particular broadband customer. The AFTR
should have the capability to log the tunnel-id, protocol, ports/IP
addresses, and the creation time of the NAT binding to uniquely
identify the user sessions. Exact details of what is logged are
implementation specific and out of scope for this document.
The AFTR performs translation functions for interior IPv4 hosts using
RFC 1918 addresses or the IANA reserved address range (192.0.0.0/29).
In some circumstances, an ISP may provision policies in the AFTR and
instruct the AFTR to bypass translation functions based on <IPv4
Address, port number, protocol>. When the AFTR receives a packet
with matching information of the policy from the interior host, the
AFTR can simply forward the packet without translation. The
addresses, ports, and protocol information must be provisioned on the
AFTR before receiving the packet. The provisioning mechanism is out
of scope for this specification.
12. References
[DURAND-DS-LITE]
Durand, A., "Dual-stack lite broadband deployments post
IPv4 exhaustion", Work in Progress, July 2008.
[PCP-BASE] Wing, D., Ed., Cheshire, S., Boucadair, M., Penno, R.,
and P. Selkirk, "Port Control Protocol (PCP)", Work
in Progress, July 2011.
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements",
RFC 4033, March 2005.
[RFC5382] Guha, S., Ed., Biswas, K., Ford, B., Sivakumar, S., and
P. Srisuresh, "NAT Behavioral Requirements for TCP",
BCP 142, RFC 5382, October 2008.
[RFC5508] Srisuresh, P., Ford, B., Sivakumar, S., and S. Guha, "NAT
Behavioral Requirements for ICMP", BCP 148, RFC 5508,
April 2009.
[RFC5571] Storer, B., Pignataro, C., Ed., Dos Santos, M., Stevant,
B., Ed., Toutain, L., and J. Tremblay, "Softwire Hub and
Spoke Deployment Framework with Layer Two Tunneling
Protocol Version 2 (L2TPv2)", RFC 5571, June 2009.
[RFC6269] Ford, M., Boucadair, M., Durand, A., Levis, P., and P.
Roberts, "Issues with IP Address Sharing", RFC 6269,
June 2011.
One of the key benefits of the Dual-Stack Lite technology lies in the
fact that it is a tunnel-based solution. As such, tunnel endpoints
can be anywhere in the service provider network.
A.4. Logging
Appendix B. Examples
When the device accesses IPv6 service, it will send the IPv6 datagram
to the CPE natively. The CPE will route the traffic upstream to the
IPv6 default gateway.
When the device accesses IPv4 service, it will source the IPv4
datagram with the [RFC1918] address and send the IPv4 datagram to the
CPE. The CPE will encapsulate the IPv4 datagram inside the IPv4-in-
IPv6 softwire tunnel and forward the IPv6 datagram to the AFTR. This
is in contrast to what the CPE normally does today, which is to NAT
the [RFC1918] address to the public IPv4 address and route the
datagram upstream. When the AFTR receives the IPv6 datagram, it will
decapsulate the IPv6 header and perform an IPv4-to-IPv4 NAT on the
source address.
+-----------+
| Host |
+-----+-----+
|10.0.0.1
|
|
|10.0.0.2
+---------|---------+
| | |
| Home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
|||2001:db8:0:1::1
|||
|||<-IPv4-in-IPv6 softwire
|||
-------|||-------
/ ||| \
| ISP core network |
\ ||| /
-------|||-------
|||
|||2001:db8:0:2::1
+--------|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
|192.0.2.1
|
--------|--------
/ | \
| Internet |
\ | /
--------|--------
|
|198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Notes:
+-----------+
| Host |
+-----+-----+
| |10.0.0.1
IPv4 datagram 1 | |
| |
v |10.0.0.2
+---------|---------+
| | |
| home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
| |||2001:db8:0:1::1
IPv6 datagram 2| |||
| |||<-IPv4-in-IPv6 softwire
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
| |192.0.2.1
IPv4 datagram 3 | |
| |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
v |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
+-----------------+--------------+-----------------+
| Datagram | Header field | Contents |
+-----------------+--------------+-----------------+
| IPv4 datagram 1 | IPv4 Dst | 198.51.100.1 |
| | IPv4 Src | 10.0.0.1 |
| | TCP Dst | 80 |
| | TCP Src | 10000 |
| --------------- | ------------ | ------------- |
| IPv6 datagram 2 | IPv6 Dst | 2001:db8:0:2::1 |
| | IPv6 Src | 2001:db8:0:1::1 |
| | IPv4 Dst | 198.51.100.1 |
| | IPv4 Src | 10.0.0.1 |
| | TCP Dst | 80 |
| | TCP Src | 10000 |
| --------------- | ------------ | ------------- |
| IPv4 datagram 3 | IPv4 Dst | 198.51.100.1 |
| | IPv4 Src | 192.0.2.1 |
| | TCP Dst | 80 |
| | TCP Src | 5000 |
+-----------------+--------------+-----------------+
Figure 3 shows an inbound message received at the AFTR. When the NAT
function in the AFTR receives datagram 1, it looks up the IP/TCP DST
information in its translation table. In the example in Figure 3,
the NAT changes the TCP DST port to 10000, sets the IP DST address to
10.0.0.1, and forwards the datagram to the softwire. The B4 in the
home router decapsulates the IPv4 datagram from the inbound softwire
datagram and forwards it to the host.
+-----------+
| Host |
+-----+-----+
^ |10.0.0.1
IPv4 datagram 3 | |
| |
| |10.0.0.2
+---------|---------+
| +-+-+ |
| home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
^ |||2001:db8:0:1::1
IPv6 datagram 2 | |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
^ |192.0.2.1
IPv4 datagram 1 | |
| |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
| |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
+-----------------+--------------+-----------------+
| Datagram | Header field | Contents |
+-----------------+--------------+-----------------+
| IPv4 datagram 1 | IPv4 Dst | 192.0.2.1 |
| | IPv4 Src | 198.51.100.1 |
| | TCP Dst | 5000 |
| | TCP Src | 80 |
| --------------- | ------------ | ------------- |
| IPv6 datagram 2 | IPv6 Dst | 2001:db8:0:1::1 |
| | IPv6 Src | 2001:db8:0:2::1 |
| | IPv4 Dst | 10.0.0.1 |
| | IPv4 Src | 198.51.100.1 |
| | TCP Dst | 10000 |
| | TCP Src | 80 |
| --------------- | ------------ | ------------- |
| IPv4 datagram 3 | IPv4 Dst | 10.0.0.1 |
| | IPv4 Src | 198.51.100.1 |
| | TCP Dst | 10000 |
| | TCP Src | 80 |
+-----------------+--------------+-----------------+
The AFTR has a NAT that translates between softwire/port pairs and
IPv4-address/port pairs. The same translation is applied to IPv4
datagrams received on the device’s external interface and from the
softwire endpoint in the device.
+------------------------------------+--------------------+
| Softwire-Id/IPv4/Prot/Port | IPv4/Prot/Port |
+------------------------------------+--------------------+
| 2001:db8:0:1::1/10.0.0.1/TCP/10000 | 192.0.2.1/TCP/5000 |
+------------------------------------+--------------------+
When the device accesses IPv6 service, the device will send the IPv6
datagram natively to the default gateway.
When the device accesses IPv4 service, it will source the IPv4
datagram with the well-known non-routable IPv4 address. Then, the
host device will encapsulate the IPv4 datagram inside the IPv4-in-
IPv6 softwire tunnel and send the IPv6 datagram to the AFTR. When
the AFTR receives the IPv6 datagram, it will decapsulate the IPv6
header and perform IPv4-to-IPv4 NAT on the source address.
+-------------------+
| |
| Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
|||2001:db8:0:1::1
|||
|||<-IPv4-in-IPv6 softwire
|||
-------|||-------
/ ||| \
| ISP core network |
\ ||| /
-------|||-------
|||
|||2001:db8:0:2::1
+--------|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
|192.0.2.1
|
--------|--------
/ | \
| Internet |
\ | /
--------|--------
|
|198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
+-------------------+
| |
|Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
| |||2001:db8:0:1::1
IPv6 datagram 1| |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
| |192.0.2.1
IPv4 datagram 2 | |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
v |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
+-----------------+--------------+-----------------+
| Datagram | Header field | Contents |
+-----------------+--------------+-----------------+
| IPv6 datagram 1 | IPv6 Dst | 2001:db8:0:2::1 |
| | IPv6 Src | 2001:db8:0:1::1 |
| | IPv4 Dst | 198.51.100.1 |
| | IPv4 Src | 192.0.0.2 |
| | TCP Dst | 80 |
| | TCP Src | 10000 |
| --------------- | ------------ | ------------- |
| IPv4 datagram 2 | IPv4 Dst | 198.51.100.1 |
| | IPv4 Src | 192.0.2.1 |
| | TCP Dst | 80 |
| | TCP Src | 5000 |
+-----------------+--------------+-----------------+
Figure 6 shows an inbound message received at the AFTR. When the NAT
function in the AFTR receives datagram 1, it looks up the IP/TCP DST
in its translation table. In the example in Figure 6, the NAT
translates the TCP DST port to 10000, sets the IP DST address to
192.0.0.2, and forwards the datagram to the softwire. The B4 inside
the host decapsulates the IPv4 datagram from the inbound softwire
datagram, and forwards it to the host’s application layer.
+-------------------+
| |
|Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
^ |||2001:db8:0:1::1
IPv6 datagram 2 | |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| AFTR |
| | ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
^ |192.0.2.1
IPv4 datagram 1 | |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
| |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
+-----------------+--------------+-----------------+
| Datagram | Header field | Contents |
+-----------------+--------------+-----------------+
| IPv4 datagram 1 | IPv4 Dst | 192.0.2.1 |
| | IPv4 Src | 198.51.100.1 |
| | TCP Dst | 5000 |
| | TCP Src | 80 |
| --------------- | ------------ | ------------- |
| IPv6 datagram 2 | IPv6 Dst | 2001:db8:0:1::1 |
| | IPv6 Src | 2001:db8:0:2::1 |
| | IPv4 Dst | 192.0.0.2 |
| | IPv4 Src | 198.51.100.1 |
| | TCP Dst | 10000 |
| | TCP Src | 80 |
+-----------------+--------------+-----------------+
The AFTR translation steps are the same as in Appendix B.1.2. One
difference is that all the host-based B4s will use the same well-
known IPv4 address 192.0.0.2. To uniquely identify the host-based
B4, the AFTR will use the host-based B4’s IPv6 address, which is
unique for the host.
+-------------------------------------+--------------------+
| Softwire-Id/IPv4/Prot/Port | IPv4/Prot/Port |
+-------------------------------------+--------------------+
| 2001:db8:0:1::1/192.0.0.2/TCP/10000 | 192.0.2.1/TCP/5000 |
+-------------------------------------+--------------------+
Authors’ Addresses
Alain Durand
Juniper Networks
1194 North Mathilda Avenue
Sunnyvale, CA 94089-1206
USA
EMail: [email protected]
Ralph Droms
Cisco
1414 Massachusetts Avenue
Boxborough, MA 01714
USA
EMail: [email protected]
James Woodyatt
Apple
1 Infinite Loop
Cupertino, CA 95014
USA
EMail: [email protected]
Yiu L. Lee
Comcast
One Comcast Center
Philadelphia, PA 19103
USA
EMail: [email protected]