IPv6 WAN Modes and Transition Technologies
The CDRouter IPv6 expansion lets you test CPE devices in a variety of network topologies, including:
- Dual-stack: native IPv4 and IPv6
- IPv6-only: native IPv6 with no IPv4 service
- IPv4 over IPv6: IPv4 service carried over a native IPv6 WAN
- IPv6 over IPv4: IPv6 service carried over an IPv4-only WAN
CDRouter IPv6 also supports DHCPv6 prefix delegation, which provides the CPE with an IPv6 prefix to use on its LAN.
Each of these topologies is configured using the WAN modes described below.
DHCPv6 Mode
In this mode, CDRouter expects the DUT to issue a DHCP Solicit on the WAN interface.
To enable DHCPv6 on the WAN, set the testvar ipv6WanMode
to DHCP:
testvar ipv6WanMode DHCP
The DUT’s IPv6 address is configured using the testvar ipv6WanIspAssignIp,
whereas the ISP’s WAN address is configured
using the ipv6WanIspIp testvar. The value of these
testvars must match the configuration of the DUT.
testvar ipv6WanIspAssignIp 3001::2
testvar ipv6WanIspIp 3001::1
CDRouter also supports prefix delegation for this WAN mode. Please see this Knowledge Base article for information on configuring prefix delegation.
Autoconf Mode
In this mode, CDRouter expects the DUT to listen for a Router Advertisement on the WAN interface and to self-assign an IPv6 address using a prefix learned during this process. This is known as Stateless Address Autoconfiguration (SLAAC), and is defined in IETF RFC 4862.
To enable autoconf on the WAN, set the testvar ipv6WanMode
to autoconf:
testvar ipv6WanMode autoconf
Only two testvars must be configured for autoconf on the WAN. CDRouter will determine the correct prefix to advertise based on these testvar values:
testvar ipv6WanIspIp 3001::1
testvar ipv6WanIspPrefixLen 64
CDRouter also supports prefix delegation for this WAN mode. Please see this Knowledge Base article for information on configuring prefix delegation.
Unnumbered Mode
In this mode, neither CDRouter nor the DUT has a global IPv6 address on the WAN. The DUT uses only its link-local address on the WAN, and CDRouter’s Router Advertisements don’t include a prefix. Instead, the DUT gets a global IPv6 prefix through DHCPv6 prefix delegation and uses it on its LAN.
To enable unnumbered mode on the WAN, set the testvar ipv6WanMode
to unnumbered:
testvar ipv6WanMode unnumbered
Prefix delegation is enabled by default in this mode, and is required,
since the delegated prefix is the DUT’s only source of global IPv6
addresses. The delegated prefix is configured using the testvars
dhcpv6WanAssignPrefix and dhcpv6WanAssignPrefixLen:
testvar dhcpv6WanAssignPrefix 3001:dddd::
testvar dhcpv6WanAssignPrefixLen 48
For more information, please see this Knowledge Base article on configuring prefix delegation.
Static Mode
In this mode, any arbitrary IPv6 network may be used for the WAN connection. Unlike 6to4, there is no correlation between the WAN and the LAN addresses.
To enable static IPv6 on the WAN, set the testvar ipv6WanMode
to static:
testvar ipv6WanMode static
The DUT’s IPv6 address is configured using the testvar ipv6WanIspAssignIp,
whereas the ISP’s WAN address is configured
using the ipv6WanIspIp testvar. The value of these
testvars must match the configuration of the DUT.
For example, if the DUT is configured with a static WAN IPv6 address
of 3001::2, and a default router (next-hop gateway) of 3001::1,
the testvars ipv6WanIspAssignIp and ipv6WanIspIp
should be configured as follows:
testvar ipv6WanIspAssignIp 3001::2
testvar ipv6WanIspIp 3001::1
IPv6 over PPPoE
To enable IPv6 over PPPoE, set the testvar ipv6WanMode
to PPPoE:
testvar ipv6WanMode PPPoE
The PPPoE username, password, and authentication type must also be configured using the following testvars:
testvar pppoeUser qacafe
testvar pppoePassword qacafe123
testvar pppAuthType CHAP
IPv6 over PPP is formally defined in IETF RFC 5072. In addition, IETF RFC 4241 describes a dual-stack internet access model which defines the basic IPv6 over PPPoE architecture implemented by CDRouter.
PPPoE primarily provides authentication capabilities for IPv6. There
are no NCP (IPv6CP) options for negotiating IPv6 addresses like there
are for IPv4. As a result, following successful PPPoE connection
establishment, the CPE must utilize another mechanism for obtaining
global IPv6 address and prefix information. The testvar
ipv6PPPoEAddressMode specifies how the CPE gets its
global WAN IPv6 address after the PPPoE session is established:
DHCP(default): DHCPv6autoconf: SLAAC, using the prefix in CDRouter’s Router Advertisementsstatic: manually configured on the CPEnone: no global WAN address (unnumbered PPPoE)
testvar ipv6PPPoEAddressMode DHCP
DHCPv6 prefix delegation is enabled by default in this mode, and provides the CPE with a prefix for its LAN.
If the CPE is running PPPoE for IPv4 as well as IPv6, CDRouter requires that both IPCP and IPv6CP occur in the same PPPoE session. CDRouter does not support implementations where IPCP and IPv6CP occur in different PPPoE sessions.
For more information on IPv6 over PPPoE, including configuration examples, please see our article Testing IPv6 over PPPoE with CDRouter.
IPv6 WAN without IPv4
In an IPv6-only network, the service provider delivers native IPv6 service and no IPv4 service. To test a DUT in this topology, configure one of the native IPv6 WAN modes described above, then turn off IPv4 in one of two ways:
- To disable IPv4 completely, on both the WAN and the LAN, set the
testvar
supportsIPv4tono. CDRouter automatically skips all IPv4 tests. - To keep IPv4 on the LAN only, set the testvar
wanModetonone. The DUT still provides IPv4 to its LAN clients, but CDRouter doesn’t provide IPv4 service on the WAN, so LAN clients have no IPv4 access to the WAN.
For example, to disable IPv4 completely:
testvar supportsIPv4 no
testvar ipv6WanMode DHCP
To keep IPv4 on the LAN only:
testvar wanMode none
testvar ipv6WanMode DHCP
6to4 Mode
To enable 6to4, set the testvar ipv6WanMode to 6to4:
testvar ipv6WanMode 6to4
6to4 (RFC 3056) lets IPv6 networks connect over the IPv4 Internet. A
special IPv6 subnet, 2002::/16, is specifically allocated for 6to4
use. Since each public IPv4 address is unique, it can simply be used
as bits 17-48 of a 2002:: address. This creates a unique 48 bit
network for every IPv4 address. Since the IPv4 address is embedded in
the IPv6 address, it’s already known where the packet must be going,
or is from. This makes delivery between nodes very easy.
This doesn’t solve the issue of communicating with native IPv6 addresses. To get packets delivered to non 6to4 hosts, special relay servers are run on anycast, each at the same static, well-known IPv4 address. Any of these servers are able to route traffic between the 6to4 network and the native network. These servers are run for the general public by institutions advocating IPv6 adoption.
CDRouter IPv6 simulates a 6to4 relay server for testing this
functionality. By default CDRouter creates a 6to4 relay server at the
well known IPv4 address 192.88.99.1 with IPv6 address
3001:051a:cafe::6. These addresses can be changed using the testvars
ipv6RelayServer and ipv6RelayServerGlobal:
testvar ipv6RelayServer 192.88.99.1
testvar ipv6RelayServerGlobal 3001:051a:cafe::6
6to4 addresses are deterministic. The IPv4 WAN address determines the IPv6 prefix available for the LAN clients. These addresses can be allocated through autoconf or by DHCPv6.
6rd Mode (Rapid Deploy)
To enable 6rd, set the testvar ipv6WanMode to 6rd:
testvar ipv6WanMode 6rd
6rd is a generalized application of 6to4. For a detailed explanation of 6rd and its differences from 6to4, please view our article Testing 6to4 and 6rd IPv6 Islands with CDRouter.
CDRouter IPv6 creates a 6rd relay server on the WAN stack for testing
6rd functionality. By default CDRouter creates a 6to4 relay server at
the well known address 192.88.99.1. Under 6rd, the ISP will
generally use its own relay server with a native ISP IPv4 address.
This address can be changed using the testvar ipv6RelayServer.
Similarly, the IPv6 address used by the relay
server can be configured using the testvar ipv6RelayServerGlobal:
testvar ipv6RelayServer 10.3.3.3
testvar ipv6RelayServerGlobal 3001:051a:cafe::6
6rd requires three additional testvars for complete configuration:
testvar ipv6rdPrefix 3010:1234::
testvar ipv6rdPrefixLen 32
testvar ipv6rdIPv4MaskLen 0
The ipv6rdPrefix testvar is of arbitrary length,
assigned to an ISP by the IANA. The length of this prefix is
determined with ipv6rdPrefixLen. Finally, the ipv6rdIPv4MaskLen
indicates the number of leading bits to
be dropped from the mapped IPv4 WAN address. This technique was
written into the 6rd protocol in order to save prefix bits, since any
bits in the IPv4 address that are not unique are useless for
identifying the 6rd client.
IPv4-over-IPv6 Transition Technologies
Service providers that have moved their access networks to IPv6-only can use IPv4-over-IPv6 transition technologies to give their customers access to the IPv4 Internet. These technologies carry the customer’s IPv4 traffic across the IPv6-only network, either by encapsulating it in IPv6 or by translating it to IPv6.
In CDRouter, each of these technologies is an IPv4 WAN mode that runs on top of a native IPv6 WAN mode.
- Set the IPv4
wanModetestvar to the IPv6 transition technology the DUT uses. - Set
ipv6WanModetoDHCP,autoconf,unnumbered,static, orPPPoE. CDRouter simulates the service provider’s end of the tunnel or translation on the WAN.
| Technology | wanMode |
How IPv4 crosses the IPv6 network | More information |
|---|---|---|---|
| DS-Lite (RFC 6333) | dslite |
Encapsulated in IPv6 | DS-Lite Testing with CDRouter |
| MAP-E (RFC 7597) | MAP-E |
Encapsulated in IPv6 | MAP and LW4o6 testing with CDRouter |
| MAP-T (RFC 7599) | MAP-T |
Translated to IPv6 | MAP and LW4o6 testing with CDRouter |
| LW4o6 (RFC 7596) | LW4o6 |
Encapsulated in IPv6 | MAP and LW4o6 testing with CDRouter |
For example, to test a DS-Lite DUT that gets its WAN IPv6 address using DHCPv6:
testvar wanMode dslite
testvar ipv6WanMode DHCP
testvar ipv6DsliteAftr 3001:aaaa::1