RFC 5569

IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)

๐Ÿ“… published January 2010, from ietf

okay bestie, RFC 5569 is HERE and it's giving main character energy ๐Ÿ’–๐ŸŽ€

RFC 5569: IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) โœจ

Independent Submission, Request for Comments: 5569. Written by R. Despres from RD-IPtech. Category: Informational. Dated January 2010. ISSN: 2070-1721. The header doesn't list any obsoletes or updates, so nothing is replaced or changed by this one ๐ŸŒธ

Abstract

6rd (IPv6 rapid deployment on IPv4 infrastructures) is built on top of 6to4 ๐Ÿงš It lets a service provider quickly roll out IPv6 unicast service to IPv4 sites that it supplies with customer premise equipment. Like 6to4, it uses stateless IPv6-in-IPv4 encapsulation so it can get through IPv4-only network infrastructure. The big difference is that a 6rd provider uses an IPv6 prefix of its very own instead of the fixed 6to4 prefix. One provider actually did this for its own "rapid deployment" and went from first learning about 6rd principles to more than 1,500,000 residential sites getting native IPv6 in just five weeks ๐Ÿ˜ญ The only catch was that people had to activate it ๐Ÿ’…

Status of This Memo

Okay so this doc is not an Internet Standards Track spec. It's published just for information, not as a must-follow thing ๐Ÿ“

It's a contribution to the RFC Series, separate from any other RFC stream. The RFC Editor picked to publish it at their discretion and makes no claim about whether it's valuable for implementation or deployment. Docs the RFC Editor approves for publication aren't candidates for any level of Internet Standard. See Section 2 of RFC 5741 for the details โœจ

For info on this doc's current status, any errata, and how to give feedback, check http://www.rfc-editor.org/info/rfc5569 ๐Ÿ”ฅ

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

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http:trustee.ietf.org/license-info) as they stand on the date this doc was published. Please read these carefully, bestie, because they spell out your rights and restrictions for this doc ๐Ÿซถ

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 ๐Ÿฆ‹

Okay so after getting 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 became able to use IPv6 if they wanted to, with all the look and feel of native IPv6 addresses routed in IPv6 โœจ The only condition was turning on IPv6 in their Freeboxes, and of course in their IPv6-capable hosts ๐Ÿ’–

This story is here to show that ISPs which provide customer premise equipment (CPE) with routing capability, and which have so far put off IPv6 deployment, can decide to wait no longer. The dramatically reduced investment and operational costs that 6rd makes possible are the reason ๐Ÿงš

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 ๐Ÿ’…

Okay, the real problem is that ISPs need to bring IPv6 to customers' sites quickly, in addition to IPv4 and without extra charge. That would help break an 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 aren't willing to add IPv6 to their current offer at no charge unless the investment and operational costs are extremely limited. ISPs that provide router CPEs to their customers are in the best spot for this ๐Ÿ‘‘ 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 already exist on these IPv4 infrastructures ๐Ÿซถ

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

There is one limitation of 6to4, though, that stops ISPs from using it to offer full IPv6 unicast connectivity to their customers ๐Ÿ™ˆ An ISP that deploys 6to4 can guarantee that IPv6 packets leaving its customer sites will reach the IPv6 Internet. It can also guarantee that packets from other 6to4 sites will reach its customer sites. What it can't guarantee is that packets from native IPv6 sites will reach them. The problem is that a packet coming from a native IPv6 address needs to pass, somewhere on its way, through a 6to4 relay router to do the required IPv6/IPv4 encapsulation. There's no guarantee that routes toward such a relay exist from everywhere, and no guarantee that all such relays 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 packets at these relays that are destined to an unknown number of other 6to4 ISPs. If it doesn't forward these packets, it creates a black hole where packets may be systematically lost, breaking some of the IPv6 connectivity ๐Ÿ’€ If it does forward them, it can no longer size 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.

and that's the setup! the rest of this RFC is coming up ๐ŸŒˆโœจ

3. Specification โœจ

okay so the big idea of 6rd is that, to build on 6to4 and squash its limitation, you only need three things ๐Ÿ’–

  1. 6to4 gets modified so it stops using the standard 6to4 prefix 2002::/16 and uses an IPv6 prefix from the ISP-assigned address space instead. The 6to4 anycast address gets swapped for a different anycast address that the ISP picks ๐ŸŽ€
  2. The ISP runs one or several 6rd gateways (upgraded 6to4 routers) at its border, sitting between its IPv4 infrastructure and the IPv6 Internet ๐ŸŒธ
  3. CPEs do IPv6 on the customer-site side and 6rd (the upgraded 6to4 function) on the provider side ๐Ÿ’…

Figure 1 shows how a customer site's IPv6 prefix gets built 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 compatibility with the existing 6to4 code. Limiting Free's customer sites to one IPv6 subnet per site at the start was not a big deal. It came from Free's initial prefix being a /32, and since Free's customers are basically residential, most of them couldn't have used several subnets anyway. As soon as Free got a prefix shorter than /32, that restriction would be relaxed. If it had been important to use fewer than 32 bits of IPv4 addresses in IPv6 prefixes right away, that would have been possible. Free, like many ISPs, had several RIR-allocated IPv4 prefixes (6 of them, with lengths from /10 to /16 in this particular case), so 6rd gateways and 6rd CPEs could have implemented a variable-length mapping table for this. But then some of the IPv4 addressing entropy would have spilled over to 6rd gateways and CPEs. Complexity would have gone way up, and that would have defeated the goal of extreme simplicity for fast, real deployment ๐Ÿ™ˆ

IPv6 communication between customer sites of the same ISP goes directly 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 and uses them as the IPv4 destination of the encapsulating packet. (The sending and decapsulation rules of 6to4, adapted to the 6rd prefix instead 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 get advertised must not include this address. For example, Free took the address 192.88.99.201. It's routed with the same /24 prefix as 6to4, but with 201 instead of 1, so it doesn't clash with 192.88.99.1, the 6to4 anycast address from [RFC3068]. Another option, which wasn't picked, would have been to use the 6to4 anycast address and add a test on the IPv6 prefix of the ISP-side address in the relays. 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 gives each subscriber a global IPv4 address, which makes sure that all the IPv4-derived prefixes using 6rd are unique ๐Ÿ” Service providers might not have this luxury for much longer, since available global IPv4 addresses are getting scarcer and scarcer. This section describes how 6rd could be used by a service provider that can't give every subscriber a global IPv4 address ๐ŸŒˆ

If an ISP has assigned customer sites addresses from the IPv4 private space of [RFC1918], typically 10.x.x.x addresses, it can still use 6rd to offer IPv6 to those sites ๐Ÿงš

IPv4 packets that carry IPv6 packets don't go to the NATs that this ISP needs to run in its infrastructure. They go straight to the 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 where 6rd is used. Knowing that, gateways and CPEs could avoid putting this constant IPv4 prefix into IPv6 prefixes, which would reduce the number of IPv4 address bits included in IPv6 prefixes to 24. (That wasn't applicable to Free, though ๐Ÿ™ƒ)

It can also be noted that if an ISP is big enough to serve more IPv4 endpoints than will fit inside a single 10.0.0.0/8 addressing domain, it can configure several such domains, each with its own 6rd-relay IPv6 prefix. 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 6rd puts in place, that relays of an ISP only deal with traffic belonging to that ISP, the checks that need doing become these:

  • CPE PACKETS TOWARD THE INTERNET: The IPv6 source must be, and the IPv6 destination must not be, a 6rd address of the site.
  • 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.
  • 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 (that is, the IPv6 prefix of the ISP's 6rd relays followed by the IPv4 address).
  • 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 it 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, regardless of the precautions above. Be careful out there, bestie ๐Ÿ˜ญ

6. IANA Considerations ๐Ÿ“‹

ISPs that provide CPEs to all their customers need no new number assignment from IANA. Being allocated an IPv6 prefix by their RIR, /32 or shorter, is enough ๐Ÿ’…

For 6rd to also be used in the future by ISPs that let customers have their own CPEs, there would need to be a way to communicate 6rd parameters to those CPEs. If the IETF specifies such a way, some number assignment by IANA is likely to be requested, in a registry that would be defined then ๐Ÿ”ฎ

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 implement it right away for a very rapid deployment on Free's operational network ๐Ÿ‘‘

Mark Townsley, Brian Carpenter and Patrick Grossetete have to be thanked for their encouragement, and for their suggestions on how to get 6rd known in the IETF ๐ŸŒŸ

Shout-out also to some IPv6 old timers, in particular Laurent Toutain, Francis Dupont, and Alain Durand, who taught the author a few subtleties of the subject when he came in as a late novice on IPv6. 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
๐Ÿ“ฆ where this page comes from