RFC 4241

A Model of IPv6/IPv4 Dual Stack Internet Access Service

๐Ÿ“… published December 2005, from ietf

A Model of IPv6/IPv4 Dual Stack Internet Access Service โœจ

okay bestie, this one is RFC 4241 ๐ŸŽ€ It's from the Network Working Group and was written by Y. Shirasaki, S. Miyakawa, and T. Yamasaki (all NTT Communications) plus A. Takenouchi (NTT). It's marked Category: Informational and dated December 2005. The title block doesn't list anything it obsoletes or updates, so it's just a chill info doc, not a standard ๐Ÿ’…


Status of This Memo ๐Ÿ“œ

this doc is here to give info to the Internet community. it doesn't specify an Internet standard of any kind ๐Ÿซถ and you're free to pass it around, because distribution is unlimited ๐Ÿฆ‹

Copyright (C) The Internet Society (2005).

IESG Note ๐Ÿ”ฅ

this RFC isn't a candidate for any level of Internet Standard, so no pressure ๐Ÿ™ˆ The IETF doesn't vouch for how fit it is for any purpose, and publishing it wasn't based on IETF review, except for checking for conflicts with IETF work. The RFC Editor picked to publish it at their own discretion. See RFC 3932 for more information.

Abstract ๐ŸŒธ

this memo is a digest of the user network interface spec for NTT Communications' dual stack ADSL access service, which gives home users IPv6/IPv4 dual stack service. To make setup easier for users, the service has a mechanism that configures IPv6-specific parameters automatically. The memo focuses on two basic parameters: the prefix assigned to the user, and the addresses of IPv6 DNS servers. It also describes a way to deliver these parameters to Customer Premises Equipment (CPE) automatically โœจ


1. Introduction ๐Ÿงš

okay so this is the same digest as the abstract, just the longer version ๐Ÿ’… The service gives IPv6/IPv4 dual stack access to home users, and it configures IPv6-specific parameters on its own so users don't have to. It's mainly about two parameters: the prefix given to the user, and the addresses of the IPv6 DNS servers. It also explains how to hand those over to CPE automatically.

This memo covers two topics. First, an architecture for IPv6/IPv4 dual stack access service. Second, an automatic configuration function for IPv6-specific parameters ๐ŸŽ€

The architecture is mainly for a leased-line ADSL service aimed at home users. It assumes there's a Point-to-Point Protocol (PPP) logical link between the CPE and the Provider Edge (PE) equipment. To keep access-line details out of the picture, this architecture only specifies PPP and the layers above it ๐Ÿฆ‹ To satisfy [RFC3177], the prefix length delegated to the CPE is /48, but /64 is also a possible option.

In this architecture, the dual stack service works like this:

  • IPv6 and IPv4 connectivity are both provided over a single PPP logical link.
  • IPv6 connectivity is independent of IPv4 connectivity. IPV6CP and IPCP work independently over a single PPP logical link.

Figure 1 shows the service architecture at a glance ๐Ÿ‘€ NTT Communications has been running a commercial service based on this architecture since Summer 2002 ๐ŸŒˆ

          |                                             _____________
   [HOST]-+ +-----------+               +----------+   /             \
          | | Customer  |   ADSL line   | Provider |  | ISP core and  |
          +-+ Premises  +---------------+   Edge   |--| The internet  |
          | | Equipment | to subscriber +-----+----+   \_____________/
   [HOST]-+ +-----------+                     |         |   |
          |                             +-----+------+  | +-+----------+
                                        | AAA server |  | | DNS server |
                                        +------------+  | +------------+
                                                      +-+--------------+
                                                      | NTP server etc.|
    Figure 1: Dual Stack Access Service Architecture  +----------------+

the automatic configuration function is all about making user setup easier ๐Ÿซถ Normally, users would have to configure at least two IPv6-specific parameters by hand: the prefix(es) assigned to them [RFC3769], and the IPv6 DNS server addresses. The function has two sub-functions:

  • Delegation of the prefix(es) to be used in the user site.
  • Notification of IPv6 DNS server addresses and/or other server addresses.

Section 2 of this memo goes into the user/network interface details, and Section 3 walks through an example connection sequence ๐Ÿ’–


2. User/Network Interface ๐ŸŽ€

this section gets into the details of the user/network interface spec. Only PPP over Ethernet (PPPoE) and the layers above it are covered. Ethernet and the lower layers are out of scope, and so is IPv4-related parameter configuration ๐Ÿ™ˆ

2.1. Below the IP Layer ๐Ÿฆ‹

the service uses a PPP connection and Challenge Handshake Authentication Protocol (CHAP) authentication to identify each CPE. The CPE and PE handle both the PPP Internet Protocol Control Protocol (IPCP) [RFC1332] and the Internet Protocol V6 Control Protocol (IPV6CP) [RFC2472] identically and at the same time over a single PPP connection. This means that either the CPE or the PE can open or close any Network Control Protocol (NCP) session at any time, with no side-effects for the other one โœจ users can pick from three services: IPv4 only, IPv6 only, or IPv4/IPv6 dual stack. A CPE connected to an ADSL line finds a PE using the PPPoE mechanism [RFC2516] ๐Ÿงš

Note that, because the CPE and PE can only negotiate their interface identifiers with IPV6CP, they can only use link-local-scope addresses until the prefix delegation mechanism below has run ๐ŸŒธ

2.2. IP Layer ๐Ÿ’…

after IPV6CP negotiation, the CPE starts a prefix delegation request. The PE picks a global-scope prefix for the CPE, using information from an Authentication, Authorization, and Accounting (AAA) server or from local prefix pools, and then delegates that prefix to the CPE ๐Ÿ‘‘ Once the prefix is delegated, it gets subnetted and assigned to the CPE's local interfaces. The CPE then begins sending router advertisements for the prefixes on each link. Eventually, hosts can get global-scope prefixes through conventional IPv6 stateless [RFC2462] or stateful auto-configuration mechanisms ([RFC3315], etc.), and start talking to each other using global-scope addresses ๐Ÿฆ‹

2.3. Prefix Delegation ๐ŸŽ€

the PE delegates prefixes to the CPE using Dynamic Host Configuration Protocol for IPv6 (DHCPv6) [RFC3315] with the prefix delegation options [RFC3633]. Here's the sequence, bestie:

  • The CPE requests prefix(es) from a PE by sending a DHCPv6 Solicit message. That message has a link-local source address negotiated by IPV6CP (mentioned in the previous section) and includes an IA_PD option.
  • Either an AAA server provides prefix(es) to the PE, or the PE picks prefix(es) from its local pool. Then the PE returns an Advertise message that contains an IA_PD option and IA_PD Prefix options. The prefix-length in the IA_PD Prefix option is 48.

IA_PD option and IA_PD Prefix options for the chosen prefix(es) back to the PE.

  • The PE confirms the prefix(es) in the Request message with a Reply message.

If IPV6CP gets terminated or restarted for any reason, the CPE must initiate a Rebind/Reply message exchange as described in [RFC3633] ๐Ÿ™ˆ

2.4. Address Assignment ๐ŸŒˆ

the CPE assigns global-scope /64 prefixes, subnetted from the delegated prefix, to its downstream interfaces. When the delegated prefix has an infinite lifetime, the preferred and valid lifetimes of the assigned /64 prefixes should be the default values in [RFC2461] โญ

because the CPE's upstream interface already has a link-local address assigned, global-scope address assignment for that interface is optional ๐Ÿซถ

2.5. Routing ๐Ÿงš

the CPE and PE use static routing between them, so no routing protocol traffic is necessary ๐Ÿ’–

after the prefix delegation exchange, the CPE automatically sets its PPPoE logical interface, or the link-local address of the PE, as its IPv6 default gateway โœจ

when the CPE receives packets destined for addresses in the delegated /48 prefix, the CPE must not forward those packets to a PE. And if the original packet is destined for an unassigned prefix inside the delegated prefix, the CPE should return an ICMPv6 Destination Unreachable message to the source address, or silently discard the packet. (For example, the CPE should install a reject route or null interface as next hop for the delegated prefix.) ๐Ÿ”ฅ

2.6. Obtaining Addresses of DNS Servers ๐Ÿ“

the service provides IPv6 recursive DNS servers at the ISP site. The PE tells the CPE the global unicast addresses of these servers using the Domain Name Server option described in [RFC3646], inside Advertise/Reply messages during the prefix delegation message exchange ๐Ÿ‘‘

Devices on the user network can learn a recursive DNS server address using the mechanism described in [RFC3736] ๐Ÿฆ‹

The CPE may act as a local DNS proxy server and include its own address in the DNS server address list. This is easy to implement, because it's analogous to an IPv4 SOHO router (192.168.0.1 is a DNS proxy server and a default router in most sites) ๐Ÿ’…

2.7. Miscellaneous Information ๐ŸŒธ

the PE may also notify other IPv6-enabled server addresses, if they're available, such as Network Time Protocol servers [RFC4075] and SIP servers [RFC3319]. It does this in an Advertise/Reply message during the prefix delegation message exchange ๐Ÿงš

2.8. Connectivity Monitoring ๐Ÿ’€

ICMPv6 Echo Request packets get sent to the user network for connectivity monitoring in the service. The CPE must return a single IPv6 Echo Reply packet when it receives an ICMPv6 Echo Request packet. The health-check packets are addressed to a subnet-router anycast address for the delegated prefix ๐ŸŽ€

the old APNIC IPv6 address assignment policy document required that APNIC could ping the subnet anycast address to check address usage ๐Ÿ‘€

to make this work, for example, once the prefix 2001:db8:ffff::/48 is delegated, the CPE must reply to the ICMPv6 Echo Request destined for 2001:db8:ffff:: any time IPV6CP and DHCPv6-PD are up for the upstream direction. Some implementations couldn't reply when 2001:db8:ffff::/64 was assigned to a downstream physical interface and that interface was down, so such an implementation should assign 2001:db8:ffff::/64 to the loopback interface (which is always up), and 2001:db8:ffff:1::/64, 2001:db8:ffff:2::/64, etc., to the physical interfaces ๐ŸŒˆ

3. An Example of Connection Sequence โœจ

okay so this section is basically a picture-perfect walkthrough of the whole link-up dance, from the moment PPPoE starts to the moment you can actually talk on IPv6 and IPv4. ๐ŸŽ€ the diagram is giving everything, so here it is:

         CPE                      PE
          |                       |
          |----------PADI-------->| \
          |<---------PADO---------|  | PPPoE
          |----------PADR-------->|  | Discovery Stage
          |<---------PADS---------| /
          |                       |
          |---Configure-Request-->| \
          |<--Configure-Request---|  | PPP Link Establishment Phase
          |<----Configure-Ack-----|  | (LCP)
          |-----Configure-Ack---->| /
          |                       |
          |<------Challenge-------| \
          |-------Response------->|  | PPP Authentication Phase (CHAP)
          |<-------Success--------| /
          |                       |
          |---Configure-Request-->| \
          |<--Configure-Request---|  |
          |<----Configure-Nak-----|  | PPP Network Layer Protocol Phase
          |<----Configure-Ack-----|  | (IPCP)
          |---Configure-Request-->|  |
          |<----Configure-Ack-----| /
          |                       |
          |---Configure-Request-->| \
          |<--Configure-Request---|  | PPP Network Layer Protocol Phase
          |<----Configure-Ack-----|  | (IPV6CP)
          |-----Configure-Ack---->| /
          |                       |
          |--------Solicit------->| \
          |<------Advertise-------|  | DHCPv6
          |--------Request------->|  |
          |<--------Reply---------| /
          |                       |

                 Figure 2: Example of Connection Sequence

so Figure 2 is a normal link-up sequence, starting at PPPoE and ending once IPv6 and IPv4 are both talking. ๐Ÿ’– IPv4 gets going once IPCP negotiation is done. IPv6 gets link-local scope addresses after IPV6CP negotiation, which is the first little IPv6 win. โœจ Global-scope IPv6 addresses only show up after prefix delegation plus the usual IPv6 address configuration mechanism. And the tea is that IPCP is totally independent of IPV6CP and prefix delegation, so they don't need each other to work. ๐Ÿฆ‹

4. Security Considerations ๐Ÿ’…

ngl this part is where the trust talk happens. ๐Ÿซถ In this architecture, the PE and CPE trust the point-to-point link between them. They trust that there is no man-in-the-middle, and they trust PPPoE authentication too. ๐Ÿ” Because of all that trust, DHCP authentication is not considered necessary, so it is not used.

the service hands out an always-on global-scope prefix to users, and every device on the user network gets global-scope addresses. ๐Ÿ˜ญ Without any packet filters, devices might be reachable from outside the user network in that case. So the CPE and each device involved in the service should have functionality to protect against unauthorized accesses, such as a stateful inspection packet filter. ๐Ÿ›ก๏ธ The relationship between the CPE and devices on the user network, for this problem, should be considered in the future. ๐Ÿ”ฎ

5. Acknowledgements ๐Ÿซถ

big thank-yous to Tatsuya Sato, Hideki Mouri, Koichiro Fujimoto, Hiroki Ishibashi, Ralph Droms, Ole Troan, Pekka Savola, and the IPv6-ops-IAJapan members for the input and review. ๐ŸŒธ๐Ÿ’œ

6. References ๐Ÿ“š

6.1. Normative References

  • [RFC3177] IAB and IESG, "IAB/IESG Recommendations on IPv6 Address Allocations to Sites", RFC 3177, September 2001.
  • [RFC1332] McGregor, G., "The PPP Internet Protocol Control Protocol (IPCP)", RFC 1332, May 1992.
  • [RFC2472] Haskin, D. and E. Allen, "IP Version 6 over PPP", RFC 2472, December 1998.
  • [RFC2516] Mamakos, L., Lidl, K., Evarts, J., Carrel, D., Simone, D., and R. Wheeler, "A Method for Transmitting PPP Over Ethernet (PPPoE)", RFC 2516, February 1999.
  • [RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC 2462, December 1998.
  • [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003.
  • [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6", RFC 3633, December 2003. RFC 3633, December 2003.
  • [RFC2461] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)", RFC 2461, December 1998.
  • [RFC3646] Droms, R., "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, December 2003.
  • [RFC3736] Droms, R., "Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6", RFC 3736, April 2004.
  • [RFC4075] Kalusivalingam, V., "Simple Network Time Protocol (SNTP) Configuration Option for DHCPv6", RFC 4075, May 2005.
  • [RFC3319] Schulzrinne, H. and B. Volz, "Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers", RFC 3319, July 2003.

6.2. Informative References

  • [RFC3769] Miyakawa, S. and R. Droms, "Requirements for IPv6 Prefix Delegation", RFC 3769, June 2004.

Authors' Addresses ๐ŸŽ€

Yasuhiro Shirasaki
NTT Communications Corporation
Tokyo Opera City Tower 21F
3-20-2 Nishi-Shinjuku, Shinjuku-ku
Tokyo 163-1421, Japan

EMail: yasuhiro@nttv6.jp


Shin Miyakawa, Ph. D
NTT Communications Corporation
Tokyo Opera City Tower 21F
3-20-2 Nishi-Shinjuku, Shinjuku-ku
Tokyo 163-1421, Japan

EMail: miyakawa@nttv6.jp


Toshiyuki Yamasaki
NTT Communications Corporation
1-1-6 Uchisaiwaicho, Chiyoda-ku
Tokyo 100-8019, Japan

EMail: t.yamasaki@ntt.com


Ayako Takenouchi
NTT Cyber Solutions Laboratories, NTT Corporation
3-9-11 Midori-Cho, Musashino-Shi
Tokyo 180-8585, Japan

EMail: takenouchi.ayako@lab.ntt.co.jp

Copyright (C) The Internet Society (2005). ๐ŸŒˆ

this document is subject to the rights, licenses and restrictions in BCP 78 and at www.rfc-editor.org/copyright.html. Except as set forth there, the authors keep all their rights. โœจ

the document and the information in it are provided on an "AS IS" basis. The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all disclaim every warranty, express or implied. That includes, but isn't limited to, any warranty that using the information won't infringe any rights, and any implied warranties of merchantability or fitness for a particular purpose. ๐Ÿ™ˆ

Intellectual Property ๐ŸŒˆ

the IETF takes no position on whether any Intellectual Property Rights or other rights claimed to cover the technology in this document are valid or in scope, or on whether any license under those rights might be available. It also doesn't claim to have independently looked for any such rights. You can find the procedures for rights in RFC documents in BCP 78 and BCP 79. ๐Ÿ“œ

copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the results of an attempt to get a general license or permission for implementers or users to use these proprietary rights can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr. ๐Ÿ”—

the IETF invites any interested party to point out any copyrights, patents, patent applications, or other proprietary rights that may cover technology required to implement this standard. Send that information to the IETF at ietf-ipr@ietf.org. ๐Ÿ’Œ

Acknowledgement ๐ŸŒธ

Funding for the RFC Editor function is currently provided by the Internet Society. ๐Ÿ™Œ

๐Ÿ“ฆ where this page comes from