The IPv6 Over PPPoE Model
There are two distinct phases required to establish a successful IPv6 connection over a PPPoE tunnel. The first phase involves establishment of the point-to-point link. The second phase deals with IPv6 addressing. In the IPv4 world, IP addresses are typically negotiated between the client and server using various IP Control Protocol (IPCP) options. IPCP is a PPP Network Control Protocol (NCP) formally defined in RFC 1332.
The IPCP equivalent in the IPv6 world is known as the IPv6 Control Protocol (IPv6CP) which is defined in RFC 5072. Unlike IPCP, IPv6CP does not contain options for directly negotiating addresses or prefixes. Rather, this is left to other protocols, such as DHCPv6, which must be run by the client after the initial PPP link is established. Note that IPv6CP includes an Interface-Identifier option which can be used to negotiate a unique interface ID and ultimately an address via stateless address autoconfiguration, if supported.
CDRouter supports PPPoE as a WAN mode for both IPv4 and IPv6. The selection of PPPoE for the IPv6 WAN mode is independent of the IPv4 WAN mode that is chosen. It is therefore possible to run IPv6 over PPPoE in combination with any of the Ethernet-based IPv4 WAN modes supported by CDRouter. However, if PPPoE is configured as the WAN mode for both IPv4 and IPv6, IPCP and IPv6CP must occur within the same PPPoE session. CDRouter does not support configurations where IPCP and IPv6CP are performed in separate sessions. This stipulation is consistent with the model described in Section 1 of RFC 4241:
In this architecture, IPv6/IPv4 dual stack service is specified as follows.
- IPv6 and IPv4 connectivities are 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.
An example PPP session where both IPCP and IPv6CP occur can be found here.
Since CDRouter requires that IPCP and IPv6CP occur within the same PPPoE session, the DUT's PPPoE client on the WAN must be configured to use the same credentials for both IPv4 (if applicable) and IPv6 (if applicable). CDRouter's PPPoE server on the WAN has a number of configuration options that are applicable only to IPv4. The only options that apply to IPv6 connections are the PPPoE username, password, and authentication type, which can be PAP, CHAP, MSCHAP, MSCHAPv2, and None. The testvars pppoeUser, pppoePassword, and pppAuthType, can be used to configure these options, respectively:
testvar pppoeUser qacafe
testvar pppoePassword qacafe123
testvar pppAuthType PAP
As stated above, CDRouter's PPPoE server is configured with a single set of credentials since both IPCP and IPv6CP are required to occur within a single PPPoE session. As a result, the PPPoE username, password, and authentication type will be the same for both IPv4 and IPv6.
In addition to PPP link establishment, IPv6 addresses must also be configured on the DUT. Section 1 of RFC 4241 advocates the use of DHCPv6 prefix delegation for propagating address and DNS information to the DUT:
The automatic configuration function aims at simplification of user setup. Usually, users have to configure at least two IPv6-specific parameters: prefix(es) assigned to them [RFC3769] and IPv6 DNS servers' addresses. The function is composed of two sub-functions:
- Delegation of prefix(es) to be used in the user site.
- Notification of IPv6 DNS server addresses and/or other server addresses.
Configuration Scenarios
Consistent with RFC 4241, CDRouter employs DHCPv6 prefix delegation as the primary means for configuring IPv6 addresses on the DUT when PPPoE is chosen as the IPv6 WAN connection mode. In addition to providing a prefix only, CDRouter also optionally allows the DUT to obtain an IP address via DHCPv6. If the DUT does not support DHCPv6 over PPPoE for IPv6 address and/or prefix assignment, CDRouter also supports configurations in which the DUT's LAN IPv6 address is manually configured.
CDRouter thus supports three different configuration scenarios for IPv6 over PPPoE, all of which are independent of the IPv4 WAN mode that is chosen:
- PPPoE plus DHCPv6 for prefix delegation
- PPPoE plus DHCPv6 for prefix delegation and address assignment
- PPPoE with a static IPv6 configuration on DUT's LAN
If DHCPv6 is used for prefix delegation, CDRouter will enable a DHCPv6 server on the WAN and respond to IA_PD requests from the DUT once the PPPoE session is established and IPv6CP has successfully completed. If DHCPv6 is also used for address assignment, CDRouter's DHCPv6 server will respond to both IA_NA and IA_PD requests from the DUT. CDRouter's DHCPv6 server will also automatically provide DNS information to the DUT using DHCPv6 Option 23 (Recursive Name Server) in all DHCPv6 message exchanges with the DUT.
Examples
The three IPv6 over PPPoE scenarios described above are summarized in the following table. CDRouter configuration examples for each scenario are provided below. The examples provided here focus on configuration of the link between CDRouter's WAN test interface and the DUT's WAN interface. For completeness, all three examples utilize the same basic LAN configuration. The DUT is assumed to be running autoconf on the LAN with a router advertisement interval of 300 seconds and a prefix length of 64 bits. These configurations also assume that the DUT supports the router advertisement RDNSS option for distributing DNS information to clients on the LAN, and that the DUT will provide the real DNS servers learned on the WAN to clients on the LAN (it is not acting as a proxy). See the CDRouter IPv6 User's Guide for information on the LAN testvars used in these examples and for information on configuring DHCPv6 as opposed to autoconf on the LAN.
| Config Scenario |
IPv4 WAN Mode |
IPv6 WAN Mode |
DUT WAN IPv6 Address |
DUT LAN IPv6 Address |
| 1 |
Any* |
PPPoE |
None |
DHCPv6 PD |
| 2 |
Any* |
PPPoE |
DHCPv6 NA |
DHCPv6 PD |
| 3 |
Any* |
PPPoE |
None |
static IPv6 |
*The physical layer must be Ethernet. IPv4 WAN modes of PPPoA and PPP/T1 are not supported for PPPoE IPv6 connections.
Configuration Example 1
# -- Enable IPv6 within CDRouter
testvar supportsIpv6 yes
# -- Set the IPv6 WAN mode to PPPoE
testvar ipv6WanMode PPPoE
# -- Enable DHCPv6 for prefix delegation
testvar dhcpv6WanEnablePD yes
testvar dhcpv6WanAssignPrefix 3001:dddd::
testvar dhcpv6WanAssignNextPrefix 3001:ddde::
testvar dhcpv6WanAssignPrefixLen 48
testvar dhcpv6PDLatency 30
# -- Disable DHCPv6 for address assignment
testvar dhcpv6WanEnableNA no
# -- Configure DNS servers that will be provided via DHCPv6 Option 23
testvar ipv6WanDnsServer 3001:51a:cafe::2
testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
# -- LAN configuration
testvar ipv6LanMode autoconf
testvar ipv6LanIp ::%eui64%
testvar ipv6LanSubnetId 1111
testvar ipv6LanPrefixLen 64
testvar ipv6SupportsRdnss yes
testvar ipv6DNStoLAN yes
testvar ipv6RAInterval 300
There are a number of advanced options available that can be used to modify the behavior of CDRouter's WAN DHCPv6 server. Please see the CDRouter IPv6 User's Guide for more information.
Configuration Example 2
# -- Enable IPv6 within CDRouter
testvar supportsIpv6 yes
# -- Set the IPv6 WAN mode to PPPoE
testvar ipv6WanMode PPPoE
# -- Enable DHCPv6 for prefix delegation
testvar dhcpv6WanEnablePD yes
testvar dhcpv6WanAssignPrefix 3001:dddd::
testvar dhcpv6WanAssignNextPrefix 3001:ddde::
testvar dhcpv6WanAssignPrefixLen 48
testvar dhcpv6PDLatency 30
# -- Enable DHCPv6 for address assignment
testvar dhcpv6WanEnableNA yes
testvar ipv6WanIspIp 3001::1
testvar ipv6WanIspAssignIp 3001::2
testvar ipv6WanIspNextIp 3001::3
testvar ipv6WanIspPrefixLen 64
# -- Configure DNS servers that will be provided via DHCPv6 Option 23
testvar ipv6WanDnsServer 3001:51a:cafe::2
testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
# -- LAN configuration
testvar ipv6LanMode autoconf
testvar ipv6LanIp ::%eui64%
testvar ipv6LanSubnetId 1111
testvar ipv6LanPrefixLen 64
testvar ipv6SupportsRdnss yes
testvar ipv6DNStoLAN yes
testvar ipv6RAInterval 300
Configuration Example 3
# -- Enable IPv6 within CDRouter
testvar supportsIpv6 yes
# -- Set the IPv6 WAN mode to PPPoE
testvar ipv6WanMode PPPoE
# -- Disable DHCPv6 for prefix delegation
testvar dhcpv6WanEnablePD no
# -- Disable DHCPv6 for address assignment
testvar dhcpv6WanEnableNA no
# -- Configure DNS servers that will be provided via DHCPv6 Option 23
testvar ipv6WanDnsServer 3001:51a:cafe::2
testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
# -- LAN configuration
testvar ipv6LanMode autoconf
testvar ipv6LanIp 2004::1
testvar ipv6LanPrefixLen 64
testvar ipv6SupportsRdnss yes
testvar ipv6DNStoLAN yes
testvar ipv6RAInterval 300
Testing Exercises
CDRouter 6.3 includes a dedicated test module, pppoev6-c, for verifying basic protocol functionality of PPPoE based IPv6 connections on the WAN. This module is very similar to the existing IPv4 PPPoE test module pppoe-c. In addition, a number of CDRouter's IPv6 test modules can also be run against the DUT when PPPoE is used on the WAN for IPv6. The following table indicates which of CDRouter's IPv6 test modules are applicable for each of the configuration examples discussed above.
An interesting testing exercise related to PPPoE for IPv6 is to run the same PPPoE IPv6 configuration on top of all of the different IPv4 WAN modes supported by the DUT. This will ensure that the DUT's IPv6 PPPoE behavior is consistent regardless of the IPv4 WAN mode chosen. Extending this exercise further, the IPv4 PPPoE renumbering tests could be run with PPPoE enabled for IPv6 to ensure that IPv4 related change do not impact IPv6 connectivity.
| Test Module |
Config Example 1? |
Config Example 2? |
Config Example 3? |
| basic-v6 |
 |
 |
 |
| frag-v6 |
 |
 |
 |
| ndp |
 |
 |
 |
| ndp-wan |
|
|
|
| dhcpv6-c |
|
 |
|
| dhcpv6-pd |
 |
 |
|
| dhcpv6-s |
Based on LAN mode |
Based on LAN mode |
Based on LAN mode |
| pppoev6-c |
 |
 |
 |
| 6to4 |
|
|
|
| 6rd |
|
|
|
| icmp-v6 |
 |
 |
 |
| firewall-v6 |
 |
 |
 |
| apps-v6 |
 |
 |
 |
| forward-v6 |
 |
 |
 |
| scaling-v6 |
 |
 |
 |
Questions or comments about this article?
Please contact QA Cafe Support: support@qacafe.com
www.qacafe.com
© 2010 QA Cafe