RFC 5569 INFORMATIONAL IPV6 · DEPLOYMENT

IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)

How ISPs rapidly deploy IPv6 over existing IPv4 networks to customers

On rfc-editor.org ↗
PUBLISHED
January 2010
AUTHORS
R. Despres
STREAM
INDEPENDENT
ENCAPSULATION METHOD
Stateless IPv6-in-IPv4
ISP PREFIX TYPICAL LENGTH
/32 or shorter (e.g., /26)
IPV4 ADDRESS BITS ENCODED
32 (complete address)
REAL-WORLD DEPLOYMENT TIME
5 weeks (1.5 million sites)
REQUIRED RELAY GATEWAYS
One or more at ISP boundary
DOI
10.17487/RFC5569
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Independent Submission                                        R. Despres
Request for Comments: 5569                                     RD-IPtech
Category: Informational                                     January 2010
ISSN: 2070-1721


          IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)

Abstract

   IPv6 rapid deployment on IPv4 infrastructures (6rd) builds upon
   mechanisms of 6to4 to enable a service provider to rapidly deploy
   IPv6 unicast service to IPv4 sites to which it provides customer
   premise equipment.  Like 6to4, it utilizes stateless IPv6 in IPv4
   encapsulation in order to transit IPv4-only network infrastructure.
   Unlike 6to4, a 6rd service provider uses an IPv6 prefix of its own in
   place of the fixed 6to4 prefix.  A service provider has used this
   mechanism for its own IPv6 "rapid deployment": five weeks from first
   exposure to 6rd principles to more than 1,500,000 residential sites
   being provided native IPv6, under the only condition that they
   activate it.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This is a contribution to the RFC Series, independently of any
   other RFC stream.  The RFC Editor has chosen to publish this
   document at its discretion and makes no statement about its value
   for implementation or deployment.  Documents approved for
   publication by the RFC Editor are not a candidate for any level of
   Internet Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any
   errata, and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc5569.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as
   the document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http:trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.

Table of Contents

   1. Introduction ....................................................2
   2. Problem Statement and Purpose of 6rd ............................3
   3. Specification ...................................................4
   4. Applicability to ISPs That Assign Private IPv4 Addresses ........7
   5. Security Considerations .........................................8
   6. IANA Considerations .............................................8
   7. Acknowledgements ................................................9
   8. References ......................................................9
      8.1. Normative References .......................................9
      8.2. Informative References .....................................9

1.  Introduction

   After having had a succinct presentation of the 6rd idea, a major
   French Internet service provider (ISP), Free of the Iliad group
   (hereafter Free), did all of the following in an impressively short
   delay of only five weeks (November 7th to December 11th 2007):

   1.  obtained from its regional Internet Registry (RIR) an IPv6
       prefix, the length of which was that allocated without a
       justification and a delay to examine it, namely /32;

   2.  added 6rd support to the software of its Freebox home-gateway
       (upgrading for this an available 6to4 code);

   3.  provisioned PC-compatible platform with a 6to4 gateway software;

   4.  modified it to support 6rd;

   5.  tested IPv6 operation with several operating systems and
       applications;

   6.  finished operational deployment, by means of new version of the
       downloadable software of their Freeboxes;

   7.  announced IPv6 Internet connectivity, at no extra charge, for all
       its customers wishing to activate it.

   More than 1,500,000 residential customers thus became able to use
   IPv6 if they wished, with all the look and feel of native IPv6
   addresses routed in IPv6.  The only condition was an activation of
   IPv6 in their Freeboxes, and of course in their IPv6-capable hosts.

   This story is reported to illustrate that ISPs that provide customer
   premise equipment (CPE) to their clients, with included routing
   capability, and that have so far postponed IPv6 deployment can, with
   the dramatically reduced investment and operational costs that 6rd
   make possible, decide to wait no longer.

   To complete the story, Free announced, on March 6th 2008, that
   provided two of its customer sites had IPv6 activated, its Telesites
   application (Web sites published on TV) could now be used remotely
   between them.

   While IPv6 availability was limited in December 2007 to only one IPv6
   link per customer site (with /64 site-prefix assignments).  A few
   months later, after Free had detailed its achievement and plans to
   its RIR, and then obtained from it a /26 prefix, up to 16 IPv6 links
   per customer became possible (with /60 site-prefix assignments).

   Readers are supposed to be familiar with 6to4 [RFC3056].

2.  Problem Statement and Purpose of 6rd

   Having ISPs to rapidly bring IPv6 to customers' sites, in addition to
   IPv4 and without extra charge, is a way to break the existing vicious
   circle that has delayed IPv6 deployment: ISPs wait for customer
   demand before deploying IPv6; customers don't demand IPv6 as long as
   application vendors announce that their products work on existing
   infrastructures (that are IPv4 with NATs); application vendors focus
   their investments on NAT traversal compatibility as long as ISPs
   don't deploy IPv6.

   But most ISPs are not willing to add IPv6 to their current offer at
   no charge unless incurred investment and operational costs are
   extremely limited.  For this, ISPs that provide router CPEs to their
   customers have the most favorable conditions: they can upgrade their
   router CPEs and can operate gateways between their IPv4
   infrastructures and the global IPv6 Internet to support IPv6
   encapsulation in IPv4.  They then need no more routing plans than
   those that exist on these IPv4 infrastructures.

   Encapsulation a la 6to4, as specified in [RFC3056], is very close to
   being sufficient for this: it is simple; it is supported on many
   platforms including PC-compatible appliances; open-source portable
   code is available; its stateless nature ensures good scalability.

   There is however a limitation of 6to4 that prevents ISPs from using
   it to offer full IPv6 unicast connectivity to their customers.  While
   an ISP that deploys 6to4 can guarantee that IPv6 packets outgoing
   from its customer sites will reach the IPv6 Internet, and also
   guarantee that packets coming from other 6to4 sites will reach its
   customer sites, it cannot guarantee that packets from native IPv6
   sites will reach them.  The problem is that a packet coming from a
   native IPv6 address needs to traverse, somewhere on its way, a 6to4
   relay router to do the required IPv6/IPv4 encapsulation.  There is no
   guarantee that routes toward such a relay exist from everywhere, nor
   is there a guarantee that all such relays do forward packets toward
   the complete IPv4 Internet.

   Also, if an ISP operates one or several 6to4 relay routers and opens
   IPv6 routes toward them in the IPv6 Internet, for the 6to4 prefix
   2002::/16, it may receive in these relays packets destined to an
   unknown number of other 6to4 ISPs.  If it doesn't forward these
   packets, it creates a black hole in which packets may be
   systematically lost, breaking some of the IPv6 connectivity.  If it
   does forward them, it can no longer dimension its 6to4 relay routers
   in proportion to the traffic of its own customers.  Quality of
   service, at least for customers of other 6to4 ISPs, will then hardly
   be guaranteed.

   The purpose of 6rd is to slightly modify 6to4 so that:

   1.  Packets that, coming from the global Internet, enter 6rd gateways
       of an ISP are only packets destined to customer sites of this
       ISP.

   2.  All IPv6 packets destined to 6rd customer sites of an ISP, and
       coming from anywhere else on the IPv6 Internet, traverse a 6rd
       gateway of this ISP.

3.  Specification

   The principle of 6rd is that, to build on 6to4 and suppress its
   limitation, it is sufficient that:

   1.  6to4 functions are modified to replace the standard 6to4 prefix
       2002::/16 by an IPv6 prefix that belongs to the ISP-assigned
       address space, and to replace the 6to4 anycast address by another
       anycast address chosen by the ISP.

   2.  The ISP operates one or several 6rd gateways (upgraded 6to4
       routers) at its border between its IPv4 infrastructure and the
       IPv6 Internet.

   3.  CPEs support IPv6 on their customer-site side and support 6rd
       (upgraded 6to4 function) on their provider side.

   Figure 1 shows how the IPv6 prefix of a customer site is derived from
   its IPv4 address.

              +---------------//-------.------------------------------+
              | 6rd-relays IPv6 prefix |         IPv4 address         |
              |        of the ISP      |     of the customer site     |
              +---------------//-------'------------------------------+
              <-- less or equal to 32 -><------------ 32 ------------->
              <-- less or equal to  64 ------------------------------->

    Figure 1: Format of the IPv6 Prefix Assigned to a 6rd Customer Site

   Figure 2 shows which nodes have to be upgraded from 6to4 to 6rd, and
   which addresses or prefixes have to be routed to them.

          IPv4 AND IPv6 customer site
          |
          |   6rd CPEs                         6rd relays
          | (modified 6to4)                  (modified 6to4)
          |     |                                   |
          |     |    __________________________     |
          |     |   |                          |    |
          |     |   | ISP IPV4 INFRASTRUCTURE  |    V    GLOBAL
          V     V   |                          |   ___    IPV6
              ___   |                          |  |   | INTERNET
          |  |   |  |        .-----------------|--|   |---
          |--|   |--|-.     /                  |  |___|
          |  |___|  |  \   /                   |
                    |   \ /      IPv4          |      IPv6 Prefix
                    |    O  anycast address => |  <= of 6rd relays
          |   ___   |   / \  of 6rd relays     |      of the ISP
          |  |   |  |  /   \                   |   ___
          |--|   |--|-'     \                  |  |   |
          |  |___|  |        '-----------------|--|   |---
          |         |                          |  |___|
                    |      IPv4 addresses      |
                    | <= of customer sites     |
                    |__________________________|

            Figure 2: ISP Architecture to Deploy IPv6 with 6rd

   NOTE: The chosen address format uses 32 bits of IPv4 addresses in
   IPv6 addresses for reasons of simplicity and of compatibility with
   the existing 6to4 code.  Limiting initially Free's customer sites to
   one IPv6 subnet per site, a consequence of Free's initial prefix
   being a /32, was not a significant restriction: since Free's
   customers are essentially residential, most of them would have been
   unable to use several subnets anyway, and as soon as Free would get a
   prefix shorter than /32, this restriction would be relaxed.  If it
   had been important to immediately use less than 32 bits of IPv4
   addresses in IPv6 prefixes, this would have been possible.  Since
   Free, like many ISPs, had several RIR-allocated IPv4 prefixes (6 of
   them, having lengths from /10 to /16 in the particular case), 6rd
   gateways and 6rd CPEs could for this have implemented variable-length
   mapping table.  But some of the IPv4 addressing entropy would thus
   have been extended to 6rd gateways and CPEs.  Complexity being then
   significantly higher, this would have defeated the objective of
   extreme simplicity to favor actual and rapid deployment.

   IPv6 communication between customer sites of a same ISP is direct
   across the ISP IPv4 infrastructure: when a CPE sees that the IPv6
   destination address of an outgoing packet starts with its own 6rd
   relay ISPv6 prefix, it takes the 32 bits that follow this prefix as
   IPv4 destination of the encapsulating packet.  (Sending and
   decapsulation rules of 6to4, duly adapted to the 6rd prefix in place
   of the 6to4 prefix, apply as described in Section 5.3 of [RFC3056].)

   The IPv4 anycast address of 6rd relays may be chosen independently by
   each ISP.  The only constraint is that routes toward the ISP that are
   advertised must not include this address.  For example, Free took a
   192.88.99.201 address, routed with the same /24 prefix as 6to4 but
   with 201 instead of 1 to avoid confusion with 192.88.99.1, the 6to4
   anycast address of [RFC3068].  Another possibility, not retained,
   would have been to use the anycast address of 6to4 and to add, in
   relays, a test on the IPv6 prefix of the ISP-side address.  If it
   starts with 2002::/16, the packet is 6to4, not 6rd.

4.  Applicability to ISPs That Assign Private IPv4 Addresses

                     ______________________________
                   |                              |
                   | 10.x.x.x/8 private addresses |
                   |  <==                         |
             <-----|         IPv4 anycast address |----->
                   |            of 6rd relays     |
          6rd-CPEs |                      ==>     |  6rd-relays
                   |                              |
             <-----|          0.0.0.0/0           |----->
                   |              :               |
                   |______________V_______________|
                                __|__
          ISP-supported NAT(s) |     |
                               |_____|
                                  |
                                  V
                       IPv4 public addresses

              Figure 3: 6rd Applicability to ISPs That Assign
                          IPv4 Private Addresses

   Free currently offers a global IPv4 address to each of its
   subscribers, which ensures that all IPv4-derived prefixes using 6rd
   are unique.  Service providers may no longer have this luxury as
   available global IPv4 addresses become more and more scarce.  This
   section describes how 6rd could be used by a service provider who
   cannot provide global IPv4 addresses to each subscriber.

   If an ISP has assigned to customer sites addresses of an IPv4 private
   space of [RFC1918], typically 10.x.x.x addresses, it can also use 6rd
   to offer IPv6 to these sites.

   IPv4 packets that contain IPv6 packets don't go to NATs that this ISP
   needs to operate in its infrastructure: they go directly to 6rd
   relays because their destination is the 6rd relay anycast address.

   It can be noted that in this case, the 10.0.0.0/8 prefix is common to
   all IPv4 addresses of the addressing domain in which 6rd is used.
   Knowing it, gateways and CPEs could avoid including this constant
   IPv4 prefix in IPv6 prefixes, and thus reduce to 24 the number of
   bits of IPv4 addresses that are included in IPv6 prefixes (but this
   was not applicable to Free).

   It can also be noted that, if an ISP is large enough to provide
   service to more IPv4 endpoints than will fit inside a single
   10.0.0.0/8 addressing domain, it can configure several such domains,
   with 6rd-relay IPv6 prefixes specific of each one.  Each of these
   prefixes is then the RIR-allocated ISP prefix followed by a domain
   identifier chosen by the ISP.

5.  Security Considerations

   Security considerations for 6to4 are documented in [RFC3964].  With
   the restriction imposed by 6rd that relays of an ISP deal only with
   traffic that belongs to that ISP, checks that have to be done become
   the following:

   o  CPE PACKETS TOWARD THE INTERNET: The IPv6 source must be, and the
      IPv6 destination must not be, a 6rd address of the site.

   o  RELAY PACKETS TOWARD THE INTERNET: The IPv6 source must be a 6rd
      address that matches the IPv4 source.  The IPv6 destination must
      not start with the ISP 6rd prefix.

   o  CPE PACKETS FROM THE INTERNET: If the IPv4 source is the 6rd-
      relay's anycast address of the local ISP, the IPv6 source must not
      be a 6rd address of this ISP.  Otherwise, the IPv6 source must be
      the 6rd address that matches the IPv4 source (is the IPv6 prefix
      of 6rd relays of the ISP followed by the IPv4 address).

   o  RELAY PACKETS FROM THE INTERNET: The IPv6 source must not be a 6rd
      address of the ISP.  The IPv4 destination must not be multicast,
      i.e., must not start with 224/3.  The fact that the IPv6
      destination starts with the IPv6 prefix of the ISP 6rd relays is
      ensured by the routing configuration, but may be double-checked.

   It remains that where IPv4 address spoofing is possible (IPv4 sites
   placing unauthorized source addresses in some packets they send),
   IPv6 address spoofing is also possible, independently of the above
   precautions.

6.  IANA Considerations

   ISPs that provide CPEs to all their customers need no new number
   assignment by IANA.  Their being allocated an IPv6 prefix by their
   RIR, /32 or shorter, is sufficient.

   For 6rd to be also used in the future by ISPs that let customers have
   their own CPEs, means to communicate 6rd parameters to these CPEs
   would be needed.  If the IETF specifies such means for this, some
   number assignment by IANA is likely to be solicited, in a registry to
   be then defined.

7.  Acknowledgements

   The author warmly acknowledges the major contribution of Rani Assaf
   to 6rd's proven credibility.  He readily appreciated 6rd's potential,
   and made the daring decision to immediately implement it for a very
   rapid deployment on Free's operational network.

   Mark Townsley, Brian Carpenter and Patrick Grossetete have to be
   thanked for their encouragements, and for their suggestions on how to
   proceed for 6rd to be known in the IETF.

   Acknowledgments are also due to some IPv6 old timers, in particular
   Laurent Toutain, Francis Dupont, and Alain Durand, who, when the
   author came as a late novice on IPV6, taught him a few subtleties of
   the subject.  Without them, designing 6rd would probably not have
   been possible.

8.  References

8.1.  Normative References

   [RFC3056]  Carpenter, B. and K. Moore, "Connection of IPv6 Domains
              via IPv4 Clouds", RFC 3056, February 2001.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, February 2006.

8.2.  Informative References

   [RFC1918]  Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and
              E. Lear, "Address Allocation for Private Internets",
              BCP 5, RFC 1918, February 1996.

   [RFC3068]  Huitema, C., "An Anycast Prefix for 6to4 Relay Routers",
              RFC 3068, June 2001.

   [RFC3964]  Savola, P. and C. Patel, "Security Considerations for
              6to4", RFC 3964, December 2004.

Author's Address

   Remi Despres
   RD-IPtech
   3 rue du President Wilson
   Levallois,
   France

   Phone: +33 6 72 74 94 88
   EMail: remi.despres@free.fr

AI ELI5

On this page
PROBLEMISPs have existing IPv4 infrastructure reaching customers but want to offer IPv6 without major investment, yet standard 6to4 does not provide reliable full IPv6 connectivity.
MECHANISM6rd modifies 6to4 by replacing the standard 6to4 prefix with the ISP's own IPv6 prefix and operating gateways at the ISP boundary to ensure all traffic destined for the ISP's 6rd customers traverses the ISP's relays.
REAL-WORLD SUCCESSISPs can rapidly deploy native-looking IPv6 to customers using stateless encapsulation over existing IPv4 infrastructure, with a real-world example of over 1.5 million sites deployed in five weeks.

§1The Problem and the Solution

IPv4 addresses are becoming scarce, and upgrading to IPv6 requires investment. However, many Internet Service Providers already have equipment at customer sites (Customer Premise Equipment, or CPE) with routing capability, and they have IPv6 address space allocated by their regional registry. The challenge is deploying IPv6 rapidly without requiring major changes to the existing IPv4 infrastructure or imposing costs on customers.

The RFC demonstrates a real-world solution: a major French ISP deployed 6rd in just five weeks and enabled IPv6 for more than 1.5 million residential customers. The approach builds on the existing 6to4 mechanism but modifies it so that the ISP uses its own IPv6 prefix instead of the standard 6to4 prefix, and operates relay gateways at its boundary with the IPv6 Internet to ensure reliable connectivity.

An ISP can upgrade all its customers to the new address system in weeks without expensive hardware changes, just by tweaking an existing technique and running gateway machines at the edge of its network.

§2How 6rd Works

6rd extends 6to4 by using the ISP's own IPv6 prefix instead of the standard 2002::/16 prefix. Each customer's IPv6 address is constructed by concatenating the ISP's IPv6 prefix with the customer's IPv4 address: the first part of the IPv6 address comes from the ISP's allocation (typically a /32 or shorter), and the remaining bits come from the customer's public IPv4 address. This creates a one-to-one mapping between IPv4 and IPv6 addresses without requiring a database lookup.

The ISP operates 6rd relay gateways at its border with the IPv6 Internet. These gateways receive IPv6 packets destined to the ISP's customers and encapsulate them in IPv4 packets directed to the appropriate customer IPv4 address. Customer CPEs perform the inverse: they recognize outgoing IPv6 traffic destined for other 6rd customers and encapsulate it, sending it to a relay gateway's IPv4 anycast address chosen by the ISP. This stateless, rule-based approach requires no per-customer state in the gateways.

The customer's new address is built from the ISP's address prefix plus the customer's old IPv4 number. Gateways at the ISP edge wrap and unwrap packets so they travel through the old network.

IPv6 prefix format in 6rd: ISP prefix plus customer IPv4 address
6rd IPv6 Address Format
FieldNameSizeValueDescription
ISP-PREFIXISP IPv6 Prefix4 bytesISP's allocated prefix (e.g., a /32), less or equal to 32 bits.
IPV4-ADDRCustomer IPv4 Address4 bytesComplete 32-bit IPv4 address of the customer site.

§3Addressing and Traffic Handling

Because the IPv6 prefix encodes the customer's IPv4 address, IPv6 communication between two customers of the same ISP is direct across the ISP's IPv4 infrastructure: each customer's CPE recognizes that the destination IPv6 address starts with its ISP's 6rd prefix, extracts the IPv4 destination from the encoded IPv6 address, and sends the encapsulated packet directly to that address. No relay is needed for intra-ISP traffic.

Traffic from the global IPv6 Internet destined for 6rd customers is guaranteed to enter the ISP's relay gateways because the ISP advertises routes for its 6rd prefix in the IPv6 Internet. The ISP's relays will only receive packets destined for their own customers, not for other ISPs' 6rd customers. This avoids the fundamental limitation of 6to4, where relays cannot guarantee they will reach the complete IPv4 Internet and may become overloaded with traffic from other 6to4 ISPs.

Customers can talk to each other directly over the old network by encoding each other's address. Messages from outside go through the ISP's gateways so the ISP can manage them properly.

§4Deployment and Variants

The RFC describes 6rd deployment in two scenarios. In the standard case, each customer receives a public IPv4 address, so the customer's IPv6 prefix is globally unique. Alternatively, if an ISP cannot provide global IPv4 addresses and instead uses private addresses (such as 10.x.x.x), the ISP can still use 6rd by operating NATs at the boundary and using the private address in the IPv6 prefix. In that case, the ISP may need to operate multiple 6rd domains if the number of customers exceeds what can fit in a single private address space.

The RFC notes that limiting the customer's IPv6 prefix to 32 bits of IPv4 address encoding initially restricted customers to one IPv6 subnet per site. However, once the ISP obtained a shorter prefix from the registry (moving from /32 to /26 in the real-world example), more subnets became possible simply by using different bits of the IPv6 prefix for different customer sites, without requiring changes to the gateways or CPEs.

The approach works with private addresses too, and if an ISP grows and gets a bigger address block from the registry, customers automatically get more IPv6 subnets without any reconfiguration.

6rd in the network stack: stateless IPv6-in-IPv4 encapsulation
  1. IPv6 ApplicationPrograms using IPv6 without knowing about 6rd
  2. IPv6 (6rd prefix)Uses ISP prefix and encodes customer IPv4 address
  3. IPv6-in-IPv4 EncapsulationWraps IPv6 packets in IPv4 for transit
  4. IPv4 InfrastructureExisting ISP network that carries encapsulated traffic

§5Security Considerations and Spoofing

The RFC requires security checks at both CPEs and relay gateways. CPEs must validate that outgoing traffic has an IPv6 source address that is a valid 6rd address for the customer's site, and incoming traffic has an IPv6 source that matches the IPv4 source (derived from the IPv6 encoding). Relays must verify that incoming IPv6 traffic destined for the ISP's 6rd addresses comes from a valid IPv6 source outside the ISP's 6rd prefix, and that the destination is not a multicast address.

Despite these checks, if IPv4 address spoofing is possible in the underlying network, IPv6 address spoofing in 6rd is also possible because the IPv6 address is derived from the IPv4 address. The RFC notes that this is no worse than the underlying IPv4 security assumptions, and that network-level protections against IPv4 spoofing (such as ingress filtering) provide corresponding protection for 6rd.

Gateways check that addresses match what they should be, but they depend on the underlying IPv4 network not allowing people to lie about where they are sending from.

§6References