Navigation
SEARCH
TOOLBOX
LANGUAGES

CDRouter IPv6 User Guide 6.3/FULL

From QA Cafe Support Wiki

Jump to: navigation, search


Contents

Introduction

CDRouter IPv6 adds IPv6 test capabilities to our industry leading CPE and router test platform, CDRouter. CDRouter IPv6 has been designed from the ground up to support the most common IPv6 features found in today’s leading IPv4/IPv6 dual-stack CPE implementations.

CDRouter IPv6 supports dual-stack CPE devices that implement the following IPv6 WAN connection modes:

  • Static IPv6, optionally with RFC 3633 prefix delegation
  • RFC 3315 DHCPv6, optionally with RFC 3633 prefix delegation
  • RFC 4862 stateless address autoconfiguration, optionally with RFC 3633 prefix delegation
  • RFC 3056, commonly referred to as “6to4” tunneling
  • RFC 5969, commonly referred to as “6rd” tunneling
  • RFC 5072 IPv6 over PPPoE, with static LAN configuration or DHCPv6
  • Support for additional IPv6 WAN modes may be included in future releases

RFC 3056 and RFC 5969 are commonly referred to as “6to4” and “6rd”, respectively, and are similar techniques for providing automatic IPv6 connectivity over IPv4 networks. Although drafted first, 6to4 is operationally a subset of 6rd by utilizing a fixed prefix length and globally accessible relay servers.

When CDRouter IPv6 is enabled, CDRouter will create and maintain the necessary IPv6 next-hop gateway or relay server on the WAN. CDRouter will also create one or more IPv6 clients on the LAN that support either RFC 3315 DHCPv6 or IPv6 stateless address autoconfiguration as defined in RFC 4862.

CDRouter IPv6 is compatible with all CDRouter or CDRouter Multiport test setups and can be enabled on any existing CDRouter or CDRouter Multiport license. Before IPv6 testing can begin, the license file must be updated to enable CDRouter IPv6. See the Requirements and License section of this document for more information on enabling IPv6.

Once you have enabled IPv6 support within CDRouter, you can select and run any of the IPv6 specific test modules included with CDRouter IPv6. The IPv6 test modules can be run either individually or as part of a larger test run which includes other CDRouter, CDRouter Multiport, CDRouter IKE, or CDRouter TR-069 test modules.

Like all products in the CDRouter family, CDRouter IPv6 creates all of the necessary WAN-side and LAN-side network elements required to completely simulate an end-to-end IPv6 network within a single test system. CDRouter IPv6 allows the user to easily and efficiently create a variety of IPv6 network scenarios and utilize the array of included functional verification tests to thoroughly explore the IPv6 behavior of the device under test (DUT).

Test Methodology

Initial Setup

As mentioned earlier, CDRouter IPv6 is compatible with all existing CDRouter or CDRouter Multiport test setups. However, there are a few important caveats that must be taken into consideration prior to performing IPv6 testing with CDRouter IPv6.

1. IPv6 configuration within Linux

We recommend that IPv6 be disabled within the CDRouter Linux host operating system to avoid potential addressing conflicts when using CDRouter IPv6. Please see this Knowledge Base article for more information on disabling IPv6 within your Linux operating system.

2. Avoid using private IPv4 addresses for the primary IPv4 WAN connection when using 6to4 for IPv6 WAN connectivity

The 6to4 mechanism defined in RFC 3056 relies on translating globally routable 32-bit IPv4 addresses into a unique 48-bit IPv6 prefix. 6to4 is not designed to work with private IPv4 addresses, which should be avoided when configuring and running tests with CDRouter IPv6. Please see Example 1 provided in the Example Configurations section of this document for more information.

Start-Up

During the start-up procedure, CDRouter IPv6 expects the DUT to obtain an IPv4 address using any of the standard WAN connection modes supported by CDRouter (DHCP, PPPoE, PPPoA, PPP/T1, L2TP, PPTP, and static IP). Once an IPv4 address is obtained, the DUT should attempt to establish IPv6 connectivity on the WAN using the selected IPv6 WAN protocol (static, DHCP, PPPoE, 6to4, 6rd, or autoconf).

CDRouter will then create one or more IPv6 enabled LAN clients with IPv6 link local addresses. CDRouter’s LAN clients can be configured to obtain global IPv6 addresses via DHCPv6 or stateless address autoconfiguration. When DHCPv6 is chosen, CDRouter expects the DUT to be running a DHCPv6 server. Likewise, when stateless address autoconfiguration is used, CDRouter expects the DUT to advertise a valid global prefix on the LAN.

If CDRouter’s LAN client is successful in obtaining a valid global IPv6 address, basic Path MTU Discovery will be performed on the LAN and the testing procedure will begin.

Running

IPv6 support can be enabled within CDRouter by uncommenting the testvar supportsIPv6 and setting it to a value of “yes”.

CDRouter IPv6 includes a number of test modules designed to verify a wide variety of IPv6 related functionality, as outlined in the following table:

Test Module Description
basic-v6.tcl Basic IPv6 extension header processing tests
frag-v6.tcl IPv6 fragmentation tests
ndp.tcl Neighbor Discovery Protocol and Router Advertisement tests for IPv6 devices
ndp-wan.tcl Neighbor Discovery Protocol and Router Advertisement tests for the WAN side of IPv6 devices
dhcpv6-c.tcl DHCPv6 client tests for the WAN side of the router
dhcpv6-pd.tcl DHCPv6 prefix delegation tests for WAN to LAN IPv6 configuration
dhcpv6-s.tcl DHCPv6 server tests for the LAN side of the router
pppoe-c-v6.tcl PPPoE client tests with IPv6 on the WAN side of the router
6to4.tcl 6to4 tunnel tests for connecting IPv6 hosts over IPv6 networks
6rd.tcl 6rd tunnel tests for connecting IPv6 hosts over IPv6 networks
icmp-v6.tcl ICMPv6 tests for baseline ICMPv6 not including Neighbor Discovery
firewall-v6.tcl IPV6 firewall tests including port scans
apps-v6.tcl Application tests for IPv6
forward-v6.tcl IPv6 forwarding tests with different packet sizes and directions
scaling-v6.tcl Scaling tests for maximum number of IPv6 clients and connections (TCP, HTTP, etc)

To run only the IPv6 related test modules from the buddy command-line:

# buddy –module basic-v6.tcl,ndp.tcl,ndp-wan.tcl,dhcpv6-c.tcl,dhcpv6-pd.tcl,dhcpv6-s.tcl,
        pppoe-c-v6.tcl,6to4.tcl,6rd.tcl,icmp-v6.tcl,firewall-v6.tcl,apps-v6.tcl,
        forward-v6.tcl,scaling-v6.tcl –trace –pt

For additional test execution options, see the CDRouter User Guide.

Requirements and License

CDRouter IPv6 is available for CDRouter 6.0 and newer releases only.

In order to use CDRouter’s IPv6 functionality, your license file must include IPv6 support. For information on upgrading your license to support CDRouter IPv6, please contact sales@qacafe.com. Please follow the instructions from support@qacafe.com when updating your license file to enable CDRouter IPv6.

CDRouter will report the status of all available add-ons during the installation process and during startup. To verify that CDRouter IPv6 is enabled on your system, execute the command buddy –info as root and look for the line “IPv6 is enabled” as shown below. If this line is present, CDRouter IPv6 is enabled and ready to use.

root@pod5:~# buddy -info
Copyright (c) 2001-2010 by QA Cafe
Built on 2009-10-19 on fourcubed, pktsrc version 6.1 build 12
Using license installed at: /etc/cdr-mp.lic
Registered to: qacafe
Maintenance, Support and Upgrades until: 2010-05-22
Licensed to run: cdr-mp
Buddyweb is enabled
IPv6 is enabled
IKE is enabled
TR69 is enabled
TR69-EDM is enabled

Configuration

Global IPv6 Configuration

CDRouter IPv6 has several IPv6 specific configuration options, also known as test variables, or “testvars” for short, that define the DUT and the test environment.

The following tables describe each available testvar. The tables below group testvars by the test interface they are applicable to or the protocol/functionality they define.

To globally enable IPv6 within CDRouter, the testvar supportsIPv6 must be set to a value of “yes”.



supportsIPv6 This option enables or disables IPv6 functionality within CDRouter. If enabled, CDRouter will create a new client on the LAN and attempt to obtain an IPv6 address from the DUT using the protocol specified by the "LAN Mode" option.

Values: yes|no

Example:
testvar supportsipv6 yes

IPv6 WAN Configuration

CDRouter IPv6 supports a number of different IPv6 WAN connection modes and options. See the table below for a complete list of all distinct IPv6 WAN connection modes currently supported by CDRouter, where "DHCPv6 NA" refers to the use of DHCPv6 for non-temporary address assignment, and "DHCPv6 PD" refers to the use of DHCPv6 for prefix delegation.


Configuration IPv6 WAN Mode
ipv6WanMode
DHCPv6 NA
dhcpv6WanEnableNA
DHCPv6 PD
dhcpv6WanEnablePD
1 static not applicable no
2 static not applicable yes
3* PPPoE no no
4 PPPoE yes yes
5 PPPoE no yes
6 6to4 not applicable not applicable
7 6rd not applicable not applicable
8 autoconf not applicable no
9 autoconf not applicable yes
10 DHCP not applicable** no
11 DHCP not applicable** yes

* This configuration assumes that the DUT's global IPv6 address and prefix on the LAN are manually configured.
** When the testvar ipv6WanMode is set to DHCP, DHCPv6 is implicitly used for non-temporary address assignment. The testvar dhcpv6WanEnableNA has no impact.


The following testvars describe the basic IPv6 configuration of the WAN interface.



ipv6WanMode This option specifies the IPv6 WAN connection mode, or protocol, implemented by the DUT. CDRouter currently supports the following IPv6 WAN connection modes:

* 6to4
* 6rd
* DHCP
* PPPoE
* autoconf
* static
* none

CDRouter will create and simulate all necessary network elements based on the chosen WAN connection mode. Please see the specific configuration options associated with each WAN connection mode.

Values: 6to4 | 6rd | DHCP | PPPoE | autoconf | static | none

Example:
testvar ipv6WanMode 6to4

ipv6WanIspIp This parameter specifies the IPv6 address assigned by CDRouter to the WAN test interface. This is CDRouter's WAN IPv6 address and represents the simulated ISP IP address and next-hop gateway for the DUT.

Values: A valid IPv6 address

Example:
testvar ipv6WanIspIp 3001::1

ipv6WanIspAssignIp This parameter specifies the IPv6 address of the DUT's WAN interface. This address can be statically configured or assigned by CDRouter via DHCPv6. This IPv6 address must be on the same network as the ISP's IPv6 address.

Values: A valid IPv6 address

Example:
testvar ipv6WanIspAssignIp 3001::2

ipv6WanIspNextIp This parameter specifies a free IPv6 address used for WAN-side renumbering tests. This IPv6 address must be on the same network as the ISP's IPv6 address.

Values: A valid IPv6 address

Example:
testvar ipv6WanIspNextIp 3001::3

ipv6WanIspPrefixLen This parameter specifies the prefix length of the WAN IPv6 network.

Values: decimal from 1 to 128

Example:
testvar ipv6WanIspPrefixLen 64

ipv6RelayServer This parameter specifies the IPv4 address of the 6to4 or 6rd relay server on the WAN. For 6to4 configurations this address is usually the well known anycast address 192.88.99.1. For 6rd configurations this address must be arbitrarily chosen.

Values: A valid IPv4 address

Example:
testvar ipv6RelayServer 192.88.99.1

ipv6rdPrefix This parameter specifies the DUT's staticly configured 6rd prefix. This parameter is represented as a 16 octet IPv6 address with all bits following the 6rd prefix length set to 0.

Some 6rd configuration examples:

**Private WAN IPv4 Address**
WAN IPv4 Address: 192.168.200.2
6rd Prefix: 2010:1234::
6rd Prefix Length: 32
6rd IPv4 Mask Length: 8
6rd Delegated Prefix: 2010:1234:A8C8:0200:/56

**Public WAN IPv4 Address**
WAN IPv4 Address: 12.12.12.2
6rd Prefix: 2010::
6rd Prefix Length: 16
6rd IPv4 Mask Length: 0
6rd Delegated Prefix: 2010:0C0C:0C02::/48

Note that stateless address autoconfiguration (autoconf) requires an IPv6 prefix less than or equal to 64 bits. The test run will be aborted if autoconf is used on the LAN and the DUT provides a 6rd prefix greater than 64 bits in length.

Values: A valid IPv6 address

Example:
testvar ipv6rdPrefix 2010:1234::

ipv6rdPrefixLen This parameter specifies the length of the DUT's 6rd prefix. The prefix length must be an integer value between 1 and 128. By default the 6rd prefix length is 32.

Some 6rd configuration examples:

**Private WAN IPv4 Address**
WAN IPv4 Address: 192.168.200.2
6rd Prefix: 2010:1234::
6rd Prefix Length: 32
6rd IPv4 Mask Length: 8
6rd Delegated Prefix: 2010:1234:A8C8:0200:/56

**Public WAN IPv4 Address**
WAN IPv4 Address: 12.12.12.2
6rd Prefix: 2010::
6rd Prefix Length: 16
6rd IPv4 Mask Length: 0
6rd Delegated Prefix: 2010:0C0C:0C02::/48

Note that stateless address autoconfiguration (autoconf) requires an IPv6 prefix less than or equal to 64 bits. The test run will be aborted if autoconf is used on the LAN and the DUT provides a 6rd prefix greater than 64 bits in length.

Values: decimal from 1 to 128

Example:
testvar ipv6rdPrefixLen 32

ipv6rdIPv4MaskLen This parameter specifies the number of high-order bits that are identical across all IPv4 addresses within a 6rd domain. If the IPv4 mask length is 0, the DUT's entire WAN IPv4 address is used to create the 6rd delegated prefix. If the DUT's 6rd mask length is 8, only the lowest order 24 bits of the DUT's WAN IPv4 address are used to create the 6rd prefix. The IPv4 mask length must be an integer value between 0 and 32. By default the IPv4 mask length is 0.

Some 6rd configuration examples:

**Private WAN IPv4 Address**
WAN IPv4 Address: 192.168.200.2
6rd Prefix: 2010:1234::
6rd Prefix Length: 32
6rd IPv4 Mask Length: 8
6rd Delegated Prefix: 2010:1234:A8C8:0200:/56

**Public WAN IPv4 Address**
WAN IPv4 Address: 12.12.12.2
6rd Prefix: 2010::
6rd Prefix Length: 16
6rd IPv4 Mask Length: 0
6rd Delegated Prefix: 2010:0C0C:0C02::/48

Note that stateless address autoconfiguration (autoconf) requires an IPv6 prefix less than or equal to 64 bits. The test run will be aborted if autoconf is used on the LAN and the DUT provides a 6rd prefix greater than 64 bits in length.

Values: decimal from 0 to 32

Example:
testvar ipv6rdIPv4MaskLen 0

ipv6WanIspGateway This parameter specifies the IPv6 address for the CDRouter IPv6 gateway on the WAN. This testvar is normally used for DHCPv6 relay configurations and is not normally defined. CDRouter uses this address as its IPv6 gateway on the WAN. If not specified, CDRouter uses the testvar ipv6WanIspAssignIp as the gateway.

Values: A valid IPv6 address

Example:
testvar ipv6WanIspGateway 3001::9

ipv6ExpectRAonWan This parameter specifies whether or not the DUT is configured to send Router Advertisements on the WAN. This testvar impacts some aspects of the ndp-wan test module.

Values: yes|no

Example:
testvar ipv6ExpectRAonWan yes

ipv6WanRDNSS This option enables or disables the IPv6 RDNSS option for router advertisements on the WAN. When set to yes, CDRouter will announce the configured IPv6 DNS servers using the RDNSS option in router advertisements. By default, this option is set to no.

Values: yes|no

Example:
testvar ipv6WanRDNSS yes

WAN-Side DHCPv6 Server Configuration

The following testvars relate to the general configuration of CDRouter’s DHCPv6 server on the WAN.



dhcpv6IAValidLifetime This parameter defines the IA Valid Lifetime, in seconds, utilized by CDRouter's DHCPv6 server on the WAN. CDRouter's DHCPv6 server will provide this Valid Lifetime to the DUT's DHCPv6 client on the WAN. To return an infinite Valid Lifetime to the WAN client, a value of "infinite" may be specified. In an infinite lifetime is used, all tests that require the WAN client to renew or rebind will be skipped. Note that the Valid Lifetime must be greater than or equal to the Preferred Lifetime.

Example:
testvar dhcpv6IAValidLifetime 300

dhcpv6IAPreferredLifetime This parameter defines the IA Preferred Lifetime, in seconds, utilized by CDRouter's DHCPv6 server on the WAN. CDRouter's DHCPv6 server will provide this Preferred Lifetime to the DUT's DHCPv6 client on the WAN. To return an infinite Preferred Lifetime to the WAN client, a value of "infinite" may be specified. In an infinite lifetime is used, all tests that require the WAN client to renew or rebind will be skipped. Note that the Preferred Lifetime must be less than or equal to the Valid Lifetime

Example:
testvar dhcpv6IAPreferredLifetime 300

dhcpv6DuidType This option defines the DUID type used by the CDRouter DHCPv6 client and server. Types 1, 2, and 3 are defined by RFC 3315.

* Type 1 DUID-LLT
* Type 2 DUID-EN
* Type 3 DUID-LL

Values: decimal from 1 to 3

Example:
testvar dhcpv6DuidType 1

dhcpv6ServerOptionCode* CDRouter’s DHCPv6 server on the WAN may be configured to return specific options to the DUT’s DHCPv6 client. Up to 255 additional DHCPv6 options may be defined. The testvar dhcpv6ServerOptionCode* should specify the DHCP option code in decimal format.

The dhcpv6ServerOptionData* testvar is used to define the option data for any additional DHCPv6 options configured on the WAN side DHCPv6 server. The option data must be encoded in ascii hex format. The option length will be computed automatically based on the size of the data.

Values: decimal from 1 to 255

Example:
testvar dhcpv6ServerOptionCode1 69

dhcpv6ServerOptionData* CDRouter’s DHCPv6 server on the WAN may be configured to return specific options to the DUT’s DHCPv6 client. Up to 255 additional DHCPv6 options may be defined. The testvar dhcpv6ServerOptionCode* should specify the DHCP option code in decimal format.

The dhcpv6ServerOptionData* testvar is used to define the option data for any additional DHCPv6 options configured on the WAN side DHCPv6 server. The option data must be encoded in ascii hex format. The option length will be computed automatically based on the size of the data.

Example:
testvar dhcpv6ServerOptionData1 04040404

WAN-Side DHCPv6 Prefix Delegation Configuration

The following testvars relate to the configuration of DHCPv6 prefix delegation within CDRouter’s WAN DHCPv6 server.



dhcpv6WanEnablePD This option defines whether or not the DUT supports DHCPv6 prefix delegation, as defined in IETF RFC 3633, on the WAN. If this option is enabled, CDRouter's DHCPv6 server will respond to DHCPv6 IA_PD option requests from the DUT.

Values: yes|no

Example:
testvar dhcpv6WanEnablePD yes

dhcpv6WanAssignPrefix This parameter specifies the IPv6 address prefix assigned by CDRouter's DHCPv6 server on the WAN to the DUT. The DUT should use this prefix as the basis for its LAN side IPv6 configuration. The prefix delegation latency parameter defines the expected maximum amount of time it takes the DUT to update its LAN-side IPv6 settings when a new prefix is learned on the WAN.

Values: A valid IPv6 address

Example:
testvar dhcpv6WanAssignPrefix 3001:dddd::

dhcpv6WanAssignNextPrefix This parameter specifies a free IPv6 address prefix used for WAN-side renumbering tests.

Values: A valid IPv6 address

Example:
testvar dhcpv6WanAssignNextPrefix 3001:ddde::

dhcpv6WanAssignPrefixLen This parameter specifies the IPv6 address prefix length assigned by CDRouter's DHCPv6 server on the WAN to the DUT.

Values: decimal from 1 to 128

Example:
testvar dhcpv6WanAssignPrefixLen 64

dhcpv6PDLatency This parameter specifies the maximum amount of time, in seconds, that it takes for the DUT to update its LAN-side IPv6 settings when a new prefix is learned on the WAN. CDRouter will wait this amount of time before verifying that changes to the delegated prefix on the WAN have propagated to clients on the LAN-side of the DUT.


Values: decimal

Example:
testvar dhcpv6PDLatency 30



IPv6 LAN Configuration

CDRouter IPv6 currently supports DHCPv6 or stateless address autoconfiguration (autoconf) for provisioning of global IPv6 addresses on the LAN. If the testvar ipv6LanMode is set to "DHCP", CDRouter's LAN clients will attempt to obtain global IPv6 addresses from the DUT via DHCPv6. If this testvar is set to "autoconf" CDRouter's LAN clients will attempt to obtain addresses via stateless address autoconfiguration using an EUI-64 based host identifier.

CDRouter's IPv6 LAN configuration must match the LAN configuration of the DUT. CDRouter compares the actual IPv6 global address and prefix information obtained from the DUT with the expected values defined in the CDRouter configuration file.

Regardless of which LAN mode is implemented, the expected global IPv6 address and prefix used by the DUT on the LAN is largely dependent on the IPv6 WAN mode that is selected. With certain WAN modes, LAN side prefix information is assumed to be learned or calculated dynamically, whereas with other WAN modes manual configuration of LAN side prefix information is required.


IPv6 WAN Configuration IPv6 LAN Mode
ipv6LanMode
DUT's IPv6 WAN Address DUT's IPv6 LAN Prefix
1 autoconf or DHCP manually configured manually configured
2 autoconf or DHCP manually configured manually configured*
3 autoconf or DHCP no address manually configured
4 autoconf or DHCP DHCPv6 NA DHCPv6 PD
5 autoconf or DHCP no address DHCPv6 PD
6 autoconf or DHCP no address 6to4
7 autoconf or DHCP no address 6rd
8 autoconf or DHCP autoconf manually configured
9 autoconf or DHCP autoconf DHCPv6 PD
10 autoconf or DHCP DHCPv6 NA manually configured
11 autoconf or DHCP DHCPv6 NA DHCPv6 PD

* Note that in this mode of operation the prefix portion of the testvar ipv6LanIp must be explicitly specified and must match the prefix assigned by CDRouter's DHCPv6 server to the DUT, as specified by the testvar dhcpv6WanAssignPrefix.

For configurations where the DUT's global IPv6 prefix must be manually configured (configurations 1, 2, 3, 8, and 10 above), the testvar ipv6LanIp should match the DUT's LAN side global IPv6 address exactly, and should be a complete IPv6 address including both a prefix and host identifier. CDRouter automatically determines the expected global IPv6 prefix used by the DUT on the LAN using the ipv6LanIp and ipv6LanPrefixLen testvars.

When using IPv6 WAN configurations 4, 5, 6, 7, 9, or 11 above, the DUT is expected to dynamically update prefix information on the LAN based on information either learned or calculated from the WAN and/or WAN settings. For these configurations, the expected LAN IPv6 prefix is deterministic. As a result, the testvar ipv6LanIp need only include a host identifier. If a prefix is included it will be ignored by CDRouter.

The following testvars describe the basic IPv6 configuration of the LAN interface.



ipv6LanMode This option specifies the mode, or protocol, used by CDRouter to obtain IPv6 addresses on the LAN. CDRouter currently supports the following LAN-side IPv6 address acquisition modes:

* autoconf
* DHCP
* router
* none

If DHCP is chosen, the DHCPv6 address pool used by the DUT must also be configured. Note that when DHCPv6 is enabled, CDRouter will use DHCPv6 pool range to determine the validity of IPv6 addresses received by its DHCPv6 clients. CDRouter's DHCPv6 clients expect to receive an IPv6 address within the specified DHCPv6 pool range.

The router option is used in test scenarios where the DUT is not a gateway, or does not support address provisioning for LAN clients via autoconf or DHCP. In router mode CDRouter will automatically transmit Router Advertisements on the LAN and advertise a global IPv6 prefix based on the prefix portion of the testvar ipv6LanIp. CDRouter will also configure its primary LAN interface with an IPv6 address based on the Router Advertisements it sends. The most common test scenario for router mode is testing a standalone storage device.

Values: autoconf | DHCP | dhcp | router | none

Example:
testvar ipv6LanMode autoconf

ipv6LanIp This parameter specifies the DUT's expected LAN side global IPv6 address.

The keyword "%eui64%" can be used for the host ID portion of this address. When "%eui64%" is used, CDRouter will automatically calculate the expected host ID portion of the DUT's LAN IPv6 address based on the EUI64 representation of its LAN MAC address. For IPv6 WAN modes where the prefix is deterministic, such as "6to4" or "6rd", or when DHCPv6 prefix delegation is enabled, the prefix portion of this address may be omitted.

Some examples:

testvar ipv6LanIp 2004::1
testvar ipv6LanIp 2004::%eui64%
testvar ipv6LanIp ::%eui64% (suitable for 6to4, 6rd, or prefix delegation configurations only)

Example:
testvar ipv6LanIp 2004::1

ipv6LanPrefixLen This parameter specifies the prefix length of the DUT's LAN side global IPv6 address. This value should match the value configured on the DUT and must be an integer value between 8 and 64.

Values: decimal from 8 to 64

Example:
testvar ipv6LanPrefixLen 64

ipv6MaxLanClients This parameter specifies the maximum number of IPv6 LAN clients CDRouter will attempt to create during the scaling tests. If the IPv6 LAN mode is configured The default value is 10.

If the IPv6 LAN mode is set to "dhcp", the DHCPv6 client pool will be used to determine the maximum number of LAN clients to create during the scaling tests if the pool size is less than
ipv6MaxLanClients. Alternatively, if the DHCPv6 pool size is greater than ipv6MaxLanClients, the number of LAN clients created during the scaling tests will be capped at ipv6MaxLanClients.

Note that the maximum number of clients that can be created during the scaling-v6.tcl test module is 512.

Values: decimal from 2 to 512

Example:
testvar ipv6MaxLanClients 10

ipv6RAInterval This parameter specifies the maximum expected Router Advertisement interval supported by the DUT. CDRouter will wait up to this number of seconds for Router Advertisements on the LAN. The default value is 300 seconds.

Values: decimal from 1

Example:
testvar ipv6RAInterval 300

ipv6LanSubnetId This parameter specifies a hex string which represents the subnet ID portion of the DUT's LAN IPv6 prefix. This parameter is only used by CDRouter when the WAN mode is "6to4" or "6rd", or when DHCPv6 prefix delegation is enabled.

In 6to4 terminology the subnet ID is referred to as the SLA ID and is fixed at 16 bits. As a result, this parameter should be four or less hex characters when 6to4 is used. In 6rd and DHCPv6-PD modes the subnet ID field can be variable length.

Example:
testvar ipv6LanSubnetId ffff testvar ipv6LanSubnetId 1

dhcpv6ClientTimeout This parameter specifies the amount of time, in seconds, that DHCPv6 clients created on the LAN by CDRouter will wait for a response from the DUT's DHCPv6 server. This timeout may need to be increased when testing slow DHCPv6 server implementations.

Values: decimal

Example:
testvar dhcpv6ClientTimeout 5

ipv6DhcpClientStart This parameter specifies the host identifier portion of the first IPv6 address in the DUT's DHCPv6 address pool. This value should match the value configured on the DUT.

CDRouter will automatically determine the correct prefix for this address based on the IPv6 WAN mode being used. If the IPv6 WAN mode is "6to4", CDRouter will use the expected 6to4 prefix for the prefix portion of the DHCPv6 address pool. If the IPv6 WAN mode is "static", CDRouter will calculate the IPv6 prefix based on the IPv6 LAN IP and prefix length.

Values: A valid IPv6 address

Example:
testvar ipv6DhcpClientStart ::2

ipv6DhcpClientEnd This parameter specifies the host identifier portion of the final IPv6 address in the DUT's DHCPv6 address pool. This value should match the value configured on the DUT.

CDRouter will automatically determine the correct prefix for this address based on the IPv6 WAN mode being used. If the IPv6 WAN mode is "6to4", CDRouter will use the expected 6to4 prefix for the prefix portion of the DHCPv6 address pool. If the IPv6 WAN mode is "static", CDRouter will calculate the IPv6 prefix based on the IPv6 LAN IP and prefix length.

Values: A valid IPv6 address

Example:
testvar ipv6DhcpClientEnd ::1F

ipv6DhcpClientExclude This parameter parameter specifies a list of IPv6 addresses that are excluded from the DHCPv6 pool. All excluded addresses must be contained within the configured DHCPv6 pool.

Example:
testvar ipv6DhcpClientExclude "::3 ::7"

dhcpv6RapidCommit This option defines whether or not the DHCPv6 server on the LAN side of the DUT supports
the DHCPv6 Rapid-Commit Option. The default value is yes. Rapid-Commit testing on the LAN
will be skipped if the value is set to no.

Values: yes|no

Example:
testvar dhcpv6RapidCommit no

dhcpv6ClientOptionRequest The testvar dhcpv6ClientOptionRequest can be used to request extra options from the DUT’s DHCPv6 server on the LAN. If configured, CDRouter’s LAN DHCPv6 client(s) will request these specific options from the server.

Example:
testvar dhcpv6ClientOptionRequest "21 22"

dhcpv6ClientOptionCode* CDRouter’s DHCPv6 LAN clients may be configured with up to 10 additional options using the dhcpv6ClientOptionCode* and dhcpClientOptionData* testvars. Client side options are configured the same way as the existing DHCPv6 server side options.

Each DHCPv6 option is configured using a testvar entry for the option code and another for the raw hex data. The DHCP option data must be converted into the raw ascii hex format. The total option
length will be computed automatically.

Values: decimal from 1 to 255

Example:
testvar dhcpv6ClientOptionCode 124

dhcpv6ClientOptionData* CDRouter’s DHCPv6 LAN clients may be configured with up to 10 additional options using the dhcpv6ClientOptionCode* and dhcpClientOptionData* testvars. Client side options are configured the same way as the existing DHCPv6 server side options.

Each DHCPv6 option is configured using a testvar entry for the option code and another for the raw hex data. The DHCP option data must be converted into the raw ascii hex format. The total option
length will be computed automatically.

Example:
testvar dhcpv6ClientOptionData 000000000401020304

IPv6 DNS Configuration

The following testvars relate to the basic IPv6 DNS configuration of the test environment.



ipv6DNStoLAN This parameter specifies whether or not the DUT supports IPv6 DNS relay functionality. This option should be enabled if the DUT is configured to relay the IPv6 DNS servers learned on the WAN side to clients on the LAN via DHCPv6 options or the Neighbor Discovery RDNSS option. This parameter should be disabled if the DUT announces its LAN side IPv6 address as the DNS server to all clients on the LAN.

Values: yes|no

Example:
testvar ipv6DNStoLAN no

ipv6WanDnsServer This parameter specifies the IPv6 address of the primary DNS server created by CDRouter.

Values: A valid IPv6 address

Example:
testvar ipv6WanDnsServer 3001:51a:cafe::2

ipv6WanBackupDnsServer This parameter specifies the IPv6 address of the backup DNS server created by CDRouter.

Values: A valid IPv6 address

Example:
testvar ipv6WanBackupDnsServer 3001:51a:cafe::3

ipv6RdnssSupport This parameter specifies whether or not the DUT supports the Router Advertisement Recursive DNS Server (RDNSS) option (25) defined in RFC 6106. If the DUT does not support the RDNSS option, this parameter should be set to "no".

Values: yes|no

Example:
testvar ipv6RdnssSupport yes

dnsHostname* This parameter specifies the hostname portion of user configurable DNS entries which will be automatically added to CDRouter's DNS servers. Up to 100 custom DNS mappings may be defined.

Example:
testvar dnsHostname1 foo.test.com
testvar dnsIp1 5.5.5.5
testvar dnsHostname2 ipv6host.test.com
testvar dnsIp2 3001:4860:0:2222::68
testvar dnsHostname3 test.qacafe.com
testvar dnsIp3 “5.5.5.5 3001:cafe::1 7.7.7.7”

dnsIp* This parameter specifies the IP address portion of user configurable DNS entries which will be automatically added to CDRouter's DNS servers. The IP address may be an IPv4 or IPv6 address. Up to 100 custom DNS mappings may be defined.

Example:
testvar dnsHostname1 foo.test.com
testvar dnsIp1 5.5.5.5
testvar dnsHostname2 ipv6host.test.com
testvar dnsIp2 3001:4860:0:2222::68
testvar dnsHostname3 test.qacafe.com
testvar dnsIp3 “5.5.5.5 3001:cafe::1 7.7.7.7”

dnsLookupTimeout This parameter specifies the DNS lookup timeout. The default value of 5 seconds and can be adjusted if the DUT's DNS proxy implementation is slow to respond to DNS queries.

Values: decimal

Example:
testvar dnsLookupTimeout 5

IPv6 General Purpose Networking Configuration

The following testvars define the CDRouter’s IPv6 remote host address and the IPv6 free network range.



ipv6RemoteHost This parameter specifies the IP address of an IPv6-enabled remote host created by CDRouter on the WAN side of the network. This host will be used for verification of LAN to WAN and WAN to LAN traffic through the DUT, and is commonly referred to as the **IPv6 Remote Host**.

Values: A valid IPv6 address

Example:
testvar ipv6RemoteHost 3001:051a:cafe::1

ipv6FreeNetworkStart This parameter specifies the starting IPv6 address of a free network range on the WAN. IPv6 addresses from the free network range may be allocated to WAN hosts created by CDRouter during certain test cases, and should not conflict with any of the other IP addresses configured within CDRouter.

Values: A valid IPv6 address

Example:
testvar ipv6FreeNetworkStart 3001:cafe:1::

ipv6FreeNetworkStop This parameter specifies the ending IPv6 address of a free network range on the WAN. IPv6 addresses from the free network range may be allocated to WAN hosts created by CDRouter during certain test cases, and should not conflict with any of the other IP addresses configured within CDRouter.

Values: A valid IPv6 address

Example:
testvar ipv6FreeNetworkStop 3001:ffff:ffff::

ipv6FreeNetworkPrefixLen This parameter specifies the IPv6 prefix length of the IPv6 free network range. The prefix length must be between 8 and 64.

Values: decimal from 8 to 64

Example:
testvar ipv6FreeNetworkPrefixLen 64

IPv6 Firewall Configuration

The following testvars define the configuration of the DUT’s IPv6 firewall and the associated test environment.


ipv6FirewallTcpClosedPorts This parameter specifies a list of TCP ports that are expected to be closed by the DUT on the WAN interface for IPv6. These ports will be verified as closed ports during the port scan tests. The special keyword **all** may be used for non-stealth devices that report all TCP ports closed. To configure the range of ports that are scanned, please see the "Scan Start Port" and "Scan Stop Port" parameters in the **Port Scan/Firewall Configuration** section of this wizard.

Example:
testvar ipv6FirewallTcpClosedPorts "2323"

ipv6FirewallUdpClosedPorts This parameter specifies a list of UDP ports that are expected to be closed by the DUT on the WAN interface for IPv6. These ports will be verified as closed ports during the port scan tests. The special keyword **all** may be used for non-stealth devices that report all UDP ports closed. To configure the range of ports that are scanned, please see the "Scan Start Port" and "Scan Stop Port" parameters in the **Port Scan/Firewall Configuration** section of this wizard.

Example:
testvar ipv6FirewallUdpClosedPorts "113"

ipv6FirewallTcpOpenPorts This parameter specifies a list of TCP ports that are expected to be open or accessible from the DUT's WAN interface for IPv6. These ports will be verified as open ports during the port scan tests. To configure the range of ports that are scanned, please see the "Scan Start Port" and "Scan Stop Port" parameters in the **Port Scan/Firewall Configuration** section of this wizard.

Example:
testvar ipv6FirewallTcpOpenPorts "22 443"

ipv6FirewallUdpOpenPorts This parameter specifies a list of UDP ports that are expected to be open or accessible from the DUT's WAN interface for IPv6. These ports will be verified as open ports during the port scan tests. To configure the range of ports that are scanned, please see the "Scan Start Port" and "Scan Stop Port" parameters in the **Port Scan/Firewall Configuration** section of this wizard.

Example:
testvar ipv6FirewallUdpOpenPorts "1234"

ipv6WanPingRespond This parameter indicates if the DUT will respond to ICMPv6 Echo Requests on its WAN interface. The default value is 'no', indicating the DUT will not answer an ICMPv6 ping from the WAN.

Values: yes|no

Example:
testvar ipv6WanPingRespond no

Example Configurations

There are large variety of IPv6 configurations that can be tested with CDRouter IPv6. CDRouter IPv6 currently supports 11 distinct IPv6 WAN modes, two IPv6 LAN modes, and seven IPv4 WAN modes, resulting in over 100 unique configurations that can be tested. The table below summarizes the dual-stack configurations that can be tested with CDRouter IPv6:


IPv4 WAN Mode
wanMode
IPv6 WAN Mode
Configuration Number
IPv6 LAN Mode
ipv6LanMode
Any* 1-2 autoconf or DHCP
Any Ethernet** 3-5 autoconf or DHCP
Any* 6-11 autoconf or DHCP

* CDRouter currently supports the following IPv4 WAN modes: static, DHCP, PPPoE, L2TP, PPTP, PPPoA, PPP/T1.
** PPPoE requires an Ethernet physical layer. As a result, this IPv6 WAN mode supports only IPv4 WAN modes of static, DHCP, PPPoE, L2TP, PPTP.


A number of basic example configurations for CDRouter IPv6 are provided below. The examples provided are independent of the IPv4 WAN connection mode used by the DUT, and cover the following IPv6 modes of operation:

  • Example 1: 6to4 on the WAN and autoconf on the LAN
  • Example 2: 6to4 on the WAN and DHCPv6 on the LAN
  • Example 3: Static IPv6 on the WAN and autoconf on the LAN
  • Example 4: Static IPv6 on the WAN and DHCPv6 on the LAN
  • Example 5: DHCPv6 without prefix delegation on the WAN and autoconf on the LAN
  • Example 6: DHCPv6 with prefix delegation on the WAN and DHCPv6 on the LAN
  • Example 7: Autoconf on the WAN and DHCPv6 on the LAN
  • Example 8: 6rd on the WAN and autoconf on the LAN
  • Example 9: IPv6 over PPPoE on the WAN
  • Example 10: Static IPv6 with prefix delegation on the WAN and autoconf on the LAN
  • Example 11: Autoconf with prefix delegation on the WAN and autoconf on the LAN

Example 1: 6to4 on the WAN and autoconf on the LAN

In this example, CDRouter is configured to create a basic dual-stack IPv4/IPv6 test setup for the DUT using 6to4 for IPv6 connectivity on the WAN and autoconfiguration for IPv6 address assignment on the LAN. This is the most basic IPv6 test setup and requires minimal configuration of CDRouter and the DUT.

From an IPv4 perspective, CDRouter will create a DHCP server on the WAN which will terminate the DUT’s WAN DHCP connection. CDRouter is configured to provide the global IPv4 address 12.12.12.2 and DNS servers 1.1.1.1 and 1.1.1.2 to the DUT. The DUT is also configured with a LAN IPv4 address of 192.168.1.1 and a DHCP pool range of 192.168.1.2 through 192.168.2.7. CDRouter is configured to match these LAN-side settings on the DUT. Please see the CDRouter User's Guide for more information on the IPv4 specific configuration options listed below.

From an IPv6 perspective, IPv6 is enabled and it is expected that the DUT will provide IPv6 connectivity to all connected clients via an automatic 6to4 tunnel on the WAN. As a result, CDRouter is configured to create a 6to4 relay server at the default anycast address of 192.88.99.1 on the WAN.

The DUT’s global IPv6 address is expected to be <6to4 prefix>:<ipv6LanSubnetId>:<host ID portion of ipv6LanIp>. In this particular example, assuming the 16-bit Site Level Aggregator (SLA) used by the DUT is simply 1, the expected global IPv6 address of the DUT is:

  • <6to4 prefix>:<ipv6LanSubnetId>:<host ID portion of ipv6LanIp> = 2002:c0c:c02:1::1

CDRouter is also configured to use IPv6 stateless address autoconfiguration on the LAN for all clients that it creates. CDRouter will create 100 LAN clients during the scaling tests.

This example also assumes that the DUT supports the NDP RDNSS option (25) and is configured to provide its global IP address as the DNS server to all clients on the LAN.

IPv4 Configuration:
  testvar wanInterface eth2
  testvar wanMode DHCP
  testvar wanIspIp 12.12.12.1
  testvar wanIspAssignIp 12.12.12.2
  testvar wanNatIp 12.12.12.2
  testvar wanIspNextIp 12.12.12.254
  testvar wanIspMask 255.255.255.0
  testvar wanMac 00:0b:0b:00:00:01
  testvar wanDnsServer 1.1.1.1
  testvar wanBackupDnsServer 1.1.1.2
  testvar lanInterface eth1
  testvar lanIp 192.168.1.1
  testvar lanMask 255.255.255.0
  testvar lanMac 00:0a:0a:00:00:01
  testvar dhcpClientStart 192.168.1.2
  testvar dhcpClientEnd 192.168.1.7

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode 6to4
  testvar ipv6RelayServer 192.88.99.1

  # -- LAN configuration
  testvar ipv6LanMode autoconf
  testvar ipv6LanIp ::1
  testvar ipv6LanSubnetId 1
  testvar ipv6SupportsRdnss yes
  testvar ipv6DNStoLAN no
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

IPv6 Firewall Configuration:
  testvar ipv6FirewallTcpClosedPorts “80 8080”
  testvar ipv6FirewallUdpClosedPorts all
  testvar ipv6FirewallTcpOpenPorts “443”
  testvar ipv6FirewallUdpOpenPorts 113
  testvar ipv6WanPingRespond no

Note that the range of ports scanned in the firewall-v6.tcl test module can be configured using the portScanStart and portScanStop testvars. Please see the CDRouter User's Guide for more information.

Example 2: 6to4 on the WAN and DHCPv6 on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above.

The primary difference between this configuration and the configuration provided in Example 1 is the IPv6 LAN mode. As in Example 1, the DUT will provide IPv6 connectivity to all connected clients via an automatic 6to4 tunnel on the WAN. As a result, CDRouter is configured to create a 6to4 relay server at 192.88.99.1 on the WAN. The DUT’s global IPv6 address is expected to be <6to4 prefix>:<ipv6LanSubnetId>:<host ID portion of ipv6LanIp>. In this particular example, assuming the 16-bit Site Level Aggregator (SLA) used by the DUT is simply 1, the expected global IPv6 address of the DUT is again:

  • <6to4 prefix>:<ipv6LanSubnetId>:<host ID portion of ipv6LanIp> = 2002:c0c:c02:1::1

Likewise, the DHCPv6 pool range of the DUT is expected to be:

  • <6to4 prefix>:<ipv6LanSubnetId>:<ipv6DhcpClientStart> = 2002:c0c:c02:1::2
  • <6to4 prefix>:<ipv6DhcpClientEnd> = 2002:c0c:c02:1::1F

With the following LAN clients excluded from the DHCPv6 pool:

  • <6to4 prefix>:<ipv6LanSubnetId>:<ipv6DhcpClientExlude> = 2002:c0c:c02:1::3,

2002:c0c:c02:1::7

In this example, 28 LAN clients (the size of the DHCPv6 pool) will be created during the scaling tests. This example also assumes that the DUT does not support the NDP RDNSS option (25) and that the DUT is configured to provide the specific IPv6 DNS server addresses 3001:51:cafe::2 and 3001:51:cafe::3 to clients on the LAN via DHCPv6 options.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode 6to4
  testvar ipv6RelayServer 192.88.99.1

  # -- LAN configuration
  testvar ipv6LanMode DHCP
  testvar ipv6LanIp ::1
  testvar ipv6LanSubnetId 1
  testvar ipv6DhcpClientStart ::2
  testvar ipv6DhcpClientEnd ::1F
  testvar ipv6DhcpClientExclude “::3 ::7”
  testvar ipv6SupportsRdnss no
  testvar ipv6DNStoLAN yes
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 3: Static IPv6 on the WAN and autoconf on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above.

The primary difference between this configuration and the configuration provided in Example 1 is the IPv6 WAN mode. In this example, it is expected that the DUT will provide IPv6 connectivity to all connected clients via a static IPv6 connection on the WAN. The DUT’s static IPv6 address is 3001::2, and CDRouter’s IPv6 address (representing the ISP next-hop gateway) is 3001::1. CDRouter will create IPv6 DNS servers at the addresses 3001:51a:cafe::2 and 3001:51a:cafe::3.

On the LAN side, the DUT is configured for autoconf. Since the IPv6 WAN mode is static, the DUT’s global LAN IPv6 address must be manually configured. In this example the DUT’s global LAN IPv6 address is configured to 2004::1 with a prefix length of 64. This example assumes that IPv6 DNS information will be provided to clients on the LAN via DHCPv6 information requests.

In this example, 100 LAN clients will be created during the scaling tests.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode static
  testvar ipv6WanIspIp 3001::1
  testvar ipv6WanIspAssignIp 3001::2

  # -- LAN configuration
  testvar ipv6LanMode autoconf
  testvar ipv6LanIp 2004::1
  testvar ipv6LanPrefixLen 64
  testvar ipv6DNStoLAN yes
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 4: Static IPv6 on the WAN and DHCPv6 on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above. Additionally, both the IPv6 WAN mode and IPv6 LAN mode differ from that of Example 1.

On the WAN side, it is expected that the DUT will provide IPv6 connectivity to all connected clients via a static IPv6 connection. In this example, the DUT’s static IPv6 address is 3001::2, and CDRouter’s IPv6 address (representing the ISP next-hop gateway) is 3001::1. CDRouter will create IPv6 DNS servers at the addresses 3001:51a:cafe::2 and 3001:51a:cafe::3.

On the LAN side, the DUT’s global IPv6 address is configured to be 2004::1 with a prefix length of 64. The LAN side prefix is automatically determined by CDRouter based on these values.

Any LAN clients created by CDRouter are configured to obtain global IPv6 addresses via DHCPv6. The configured DHCPv6 pool is ::2 through ::1F, where the prefix is automatically determined as stated above. There is one address excluded from the DHCPv6 pool range (::12). This pool range must match the pool range configured on the DUT. With the prefix included, the DHCPv6 pool range is:

  • <LAN prefix>:<ipv6DhcpClientStart> = 2004::2
  • <LAN prefix>:<ipv6DhcpClientEnd> = 2004::1F

With the following LAN clients excluded from the DHCPv6 pool:

  • <LAN prefix>:<ipv6DhcpClientExlude> = 2004::12

This example assumes that IPv6 DNS server address will be provided to clients on the LAN via DHCPv6 options.

In this example, 29 LAN clients (the size of the DHCPv6 pool) will be created during the scaling tests.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode static
  testvar ipv6WanIspIp 3001::1
  testvar ipv6WanIspAssignIp 3001::2
  testvar ipv6WanIspNextIp 3001::3
  testvar ipv6WanIspPrefixLen 64

  # -- LAN configuration
  testvar ipv6LanMode DHCP
  testvar ipv6LanIp 2004::1
  testvar ipv6LanPrefixLen 64
  testvar ipv6DhcpClientStart ::2
  testvar ipv6DhcpClientEnd ::1F
  testvar ipv6DhcpClientExclude ::12
  testvar ipv6DNStoLAN yes
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 5: DHCPv6 without prefix delegation on the WAN and autoconf on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above. Additionally, it is expected that the DUT will implement DHCPv6 on the WAN for acquisition of a non-temporary IPv6 address. DHCPv6 prefix delegation is not used in this configuration. CDRouter’s DHCPv6 server (representing the ISP next-hop gateway as well) is 3001::2. CDRouter will assign the non-temporary IPv6 address 3001::2 and the IPv6 DNS server addresses 3001:51a:cafe::2 and 3001:51a:cafe::3 to the DUT via DHCPv6. The prefix length utilized by CDRouter on the WAN is configured to 64 bits. CDRouter will use the address 3001::3 as a temporary address for renumbering tests on the WAN.

On the LAN side, the DUT is configured for autoconf. The DUT’s global LAN IPv6 address must be manually configured. In this example the DUT’s global LAN IPv6 address is configured to 2004::1 with a prefix length of 64. This configuration also assumes that the DUT passes the IPv6 DNS server addresses learned on the WAN to clients on the LAN via the NDP RDNSS option (25).

In this example, 100 LAN clients will be created during the scaling tests.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode DHCP
  testvar ipv6WanIspIp 3001::1
  testvar ipv6WanIspAssignIp 3001::2
  testvar ipv6WanIspNextIp 3001::3
  testvar ipv6WanIspPrefixLen 64
  testvar dhcpv6WanEnablePD no

  # -- LAN configuration
  testvar ipv6LanMode autoconf
  testvar ipv6LanIp 2004::1
  testvar ipv6LanPrefixLen 64
  testvar ipv6SupportsRdnss yes
  testvar ipv6DNStoLAN yes
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 6: DHCPv6 with prefix delegation on the WAN and DHCPv6 on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above. Additionally, it is expected that the DUT will implement DHCPv6 on the WAN for acquisition of a non-temporary IPv6 address and an IPv6 address prefix for the LAN. CDRouter’s DHCPv6 server (representing the ISP next-hop gateway as well) is 3001::2. CDRouter will assign the non-temporary IPv6 address 3001::2 and the IPv6 DNS server addresses 3001:51a:cafe::2 and 3001:51a:cafe::3 to the DUT via DHCPv6. The prefix length utilized by CDRouter on the WAN is configured to 64 bits. CDRouter will use the address 3001::3 as a temporary address for renumbering tests on the WAN.

The prefix assigned by CDRouter to the DUT is 3001:dddd:: with a prefix length of 48 bits. The prefix 3001:ddde:: will be used by CDRouter for renumbering tests on the WAN. CDRouter is also configured with a prefix delegation latency of 30 seconds. This latency specifies the expected amount of time, in seconds, that it takes for the DUT to propagate prefix changes on the WAN to clients on the LAN.

On the LAN side, the DUT is configured to provide addresses to clients via DHCPv6, as in Example 2. This example also assumes that the DUT is configured to provide the IPv6 DNS server addresses learned on the WAN, 3001:51:cafe::2 and 3001:51:cafe::3, to clients on the LAN via DHCPv6 options.

In this example, 100 LAN clients will be created during the scaling tests.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode DHCP
  testvar ipv6WanIspIp 3001::1
  testvar ipv6WanIspAssignIp 3001::2
  testvar ipv6WanIspNextIp 3001::3
  testvar ipv6WanIspPrefixLen 64
  testvar dhcpv6WanEnablePD yes
  testvar dhcpv6WanAssignPrefix 2011:dddd::
  testvar dhcpv6WanAssignNextPrefix 3001:ddde::
  testvar dhcpv6WanAssignPrefixLen 48
  testvar dhcpv6PDLatency 30

  # -- LAN configuration
  testvar ipv6LanMode DHCP
  testvar ipv6LanIp ::1
  testvar ipv6DhcpClientStart ::2
  testvar ipv6DhcpClientEnd ::1F
  testvar ipv6DhcpClientExclude “::3 ::7”
  testvar ipv6DNStoLAN yes
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 7: Autoconf on the WAN and DHCPv6 on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above. Additionally, it is expected that the DUT will implement stateless address autoconfiguration for IPv6 address acquisition on the WAN. The prefix and prefix length advertised by CDRouter are automatically determined based on WAN ISP address and prefix length. In this example the prefix advertised on the WAN will be 3001::/64.

On the LAN side, the DUT is configured to provide addresses to clients via DHCPv6, as in Example 2. This example also assumes that the DUT is configured to provide the IPv6 DNS server addresses learned on the WAN, 3001:51:cafe::2 and 3001:51:cafe::3, to clients on the LAN via DHCPv6 options.

In this example, 100 LAN clients will be created during the scaling tests.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode autoconf
  testvar ipv6WanIspIp 3001::1
  testvar ipv6WanIspPrefixLen 64
  testvar dhcpv6WanEnablePD no
  
  # -- LAN configuration
  testvar ipv6LanMode DHCP 
  testvar ipv6LanIp ::1
  testvar ipv6DhcpClientStart ::2
  testvar ipv6DhcpClientEnd ::1F
  testvar ipv6DhcpClientExclude “::3 ::7”
  testvar ipv6DNStoLAN yes
  testvar ipv6RAInterval 300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 8: 6rd on the WAN and autoconf on the LAN

Please see this Application Note for more information on configuring CDRouter for 6rd support on the WAN.

Example 9: IPv6 over PPPoE on the WAN

Please see this Application Note for more information on configuring CDRouter for IPv6 over PPPoE support on the WAN.

Example 10: Static IPv6 with prefix delegation on the WAN and autoconf on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above.

This example is very similar to Example 3 above with one major difference - DHCPv6 prefix delegation is used on the WAN to obtain a global IPv6 prefix for the LAN. In this example, it is expected that the DUT will provide IPv6 connectivity to all connected clients via a static IPv6 connection on the WAN. The DUT’s static IPv6 address is 3001::2, and CDRouter’s IPv6 address (representing the ISP next-hop gateway) is 3001::1. CDRouter will create IPv6 DNS servers at the addresses 3001:51a:cafe::2 and 3001:51a:cafe::3. CDRouter's DHCPv6 server is configured to provide the prefix 3001:dddd::/48 to the DUT via DHCPv6 on the WAN.

On the LAN side, the DUT is configured for autoconf. Since the IPv6 WAN mode is static with prefix delegation, the DUT’s global LAN IPv6 address must be manually configured*. The DUT’s global LAN IPv6 address is configured to 3001:dddd::%eui64% (which assumes the DUT is using EUI64 for the host ID portion of its global LAN IPv6 address), matching the configuration of CDRouter's DHCPv6 server on the WAN. This example assumes that IPv6 DNS information will be provided to clients on the LAN via DHCPv6 information requests.

In this example, 100 LAN clients will be created during the scaling tests.

* Note that this configuration is an exception, since in most configurations involving DHCPv6 prefix delegation the prefix portion of the ipv6LanIp is dynamically calculated by CDRouter. However, when using static IPv6 with prefix delegation the prefix portion of the ipv6LanIp testvar must be explicitly configured to match the expected prefix assigned by CDRouter's DHCPv6 server on the WAN, as specified by the testvar dhcpv6WanAssignPrefix. Likewise, the LAN IPv6 prefix length, ipv6LanPrefixLen must also match the prefix length utilized by CDRouter's DHCPv6 server as specified by the testvar dhcpv6WanAssignPrefixLen.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode           static
  testvar ipv6WanIspIp          3001::1
  testvar ipv6WanIspAssignIp    3001::2
  testvar ipv6WanIspNextIp      3001::3
  testvar ipv6WanIspPrefixLen   64

  # -- WAN DHCPv6 prefix delegation configuration
  testvar dhcpv6WanEnablePD            yes 
  testvar dhcpv6WanAssignPrefix        3001:dddd::
  testvar dhcpv6WanAssignNextPrefix    3001:ddde::
  testvar dhcpv6WanAssignPrefixLen     48 
  testvar dhcpv6PDLatency              30

  # -- LAN configuration
  testvar ipv6LanMode        autoconf
  testvar ipv6LanIp          3001:dddd::%eui64%
  testvar ipv6LanPrefixLen   64
  testvar ipv6DNStoLAN       yes
  testvar ipv6RAInterval     300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Example 11: Autoconf with prefix delegation on the WAN and autoconf on the LAN

In this example, the IPv4 configuration and IPv6 firewall configuration are identical to those provided in Example 1 above.

This example uses autoconf on the WAN to determine a global WAN IPv6 address. DHCPv6 prefix delegation is also used on the WAN to obtain a global IPv6 prefix for the LAN. The DUT should automatically configure its WAN interface with a valid global IPv6 address based on the prefix information provided by CDRouter on the WAN. CDRouter is configured to advertise the prefix 3001::/64 on the WAN and will create IPv6 DNS servers at the addresses 3001:51a:cafe::2 and 3001:51a:cafe::3. CDRouter's DHCPv6 server is configured to provide the prefix 3001:dddd::/48 to the DUT via DHCPv6 on the WAN.

On the LAN side, the DUT is configured for autoconf. The DUT should automatically assign a global IPv6 address to its LAN interface via the prefix information obtained from CDRouter's DHCPv6 server on the WAN. CDRouter is configured to advertise the prefix 3001:dddd::/48. The DUT should use this prefix information to determine a valid 64-bit prefix to advertise to clients on the LAN. CDRouter's LAN clients will listen for Router Advertisements on the LAN and automatically assign EUI-64 based addresses using the 64-bit prefix advertised by the DUT. It is expected in this configuration that the DUT will assign its LAN interface an EUI-64 based global IPv6 address using the 64-bit prefix it has derived.

In this example, 100 LAN clients will be created during the scaling tests.

IPv6 Configuration:
  testvar supportsIPv6 yes

  # -- WAN configuration
  testvar ipv6WanMode           autoconf
  testvar ipv6WanIspIp          3001::1
  testvar ipv6WanIspPrefixLen   64

  # -- WAN DHCPv6 prefix delegation configuration
  testvar dhcpv6WanEnablePD            yes 
  testvar dhcpv6WanAssignPrefix        3001:dddd::
  testvar dhcpv6WanAssignNextPrefix    3001:ddde::
  testvar dhcpv6WanAssignPrefixLen     48 
  testvar dhcpv6PDLatency              30

  # -- LAN configuration
  testvar ipv6LanMode        autoconf
  testvar ipv6LanIp          3001:dddd::%eui64%
  testvar ipv6LanPrefixLen   64
  testvar ipv6DNStoLAN       yes
  testvar ipv6RAInterval     300

  # -- other configuration options
  testvar ipv6RemoteHost 3001:51a:cafe::1
  testvar ipv6WanDnsServer 3001:51a:cafe::2
  testvar ipv6WanBackupDnsServer 3001:51a:cafe::3
  testvar ipv6MaxLanClients 100
  testvar ipv6FreeNetworkStart 3001:cafe:1::
  testvar ipv6FreeNetworkEnd 3001:ffff:ffff::
  testvar ipv6FreeNetworkPrefixLen 64

Testing Exercises

Aside from running each test case in CDRouter IPv6, other testing scenarios can be created. The following test scenarios are recommended.

Our IPv6 whitepapers on residential IPv6 testing with CDRouter and DHCPv6 prefix delegation testing with CDRouter also contain a number of common issues associated with residential IPv6 implementations.

Vary the IPv4 Configuration

IPv6 functionality within the device under test should be consistent regardless of its IPv4 configuration. CDRouter IPv6 can be used to efficiently verify that the IPv6 functionality of the device under test continues to perform as expected across a wide range of IPv4 WAN modes and configurations.

With CDRouter multiple configuration files can be created that each have a different IPv4 WAN configuration. For example, separate configuration files for all of the supported IPv4 WAN connection modes, including static IP, DHCP, PPPoE, PPPoA, PPP/T1, PPTP, and L2TP, can be easily created and tested. Other parameters such as the default IPv4 addresses assigned by CDRouter to the device under test can also be modified and tested. Running CDRouter IPv6’s test modules against the device under test in all of the above configuration scenarios will quickly reveal any inconsistent behavior.

Add a Wireless LAN Client

IPv6 functionality should be consistent for both wired and wireless LAN clients. Running the same set of test cases with both wired and wireless LAN clients will quickly reveal any discrepancies or inconsistencies in the device behavior. Note that certain test cases will be automatically skipped by CDRouter when using only a wireless LAN interface for testing. In these scenarios any test cases that require the creation of multiple LAN hosts, such as the scaling modules, will be skipped due to limitations inherent in the wireless drivers used.

Testing for Unofficial IPv6 Support

Some devices do not advertise support for or include any means to configure IPv6, yet do actually provide IPv6 connectivity for LAN clients. Such devices will often automatically create an IPv6 6to4 connection on the WAN and begin sending IPv6 Router Advertisements on the LAN.

CDRouter IPv6 can be used to quickly determine if a device unofficially supports IPv6 by utilizing a basic IPv6 configuration similar to Example 1 above. If CDRouter successfully passes startup with this IPv6 configuration enabled, one can assume that some level of IPv6 functionality is supported within the DUT.

Test all IPv6 Modes Supported by the DUT

Devices that support IPv6 often have a wide range of configuration options. A great testing exercise is to test all of the different combinations of IPv6 related options supported by the DUT. If a DUT supports four different IPv6 WAN connection modes (assume DHCPv6 with and without prefix delegation, static IPv6, and 6to4) and two LAN modes (assume autoconf and DHCPv6) there are essentially eight different baseline configurations that can be tested. Mixing in various other options, such as DNS or prefix delegation configuration options, will grow the possible test matrix further.

This type of testing is easy to perform with CDRouter and provides a great baseline for a device’s overall IPv6 behavior across a wide range of possible configurations. Any inconsistent or broken behavior can be easily and quickly identified this way. This same methodology can be extended to include IPv4 configuration options as well, as mentioned earlier in this section.

Possible Problems

IPv6 Conflict Between CDRouter and the Linux Kernel

We recommend that IPv6 be disabled within the Linux operating system to avoid potential addressing conflicts when using CDRouter IPv6. Please see this Knowledge Base article for more information on disabling IPv6 within your Linux operating system.

CDRouter IPv6 will automatically detect if any of the allocated test interfaces have IPv6 addresses that were assigned by the Linux kernel. If pre-existing IPv6 addresses are detected, CDRouter will produce a warning message and abort the test run. Please see the above Knowledge Base article for information on disabling IPv6 within your Linux operating system.

It is also possible to skip CDRouter’s IPv6 address check. Please see this Knowledge Base article for more information.

6to4 Tunnel Not Being Created by DUT

The 6to4 mechanism defined in RFC 3056 relies on translating globally routable 32-bit IPv4 addresses into a unique 48-bit IPv6 prefix. 6to4 is not designed to work with private IPv4 addresses, which should be avoided when configuring and running tests with CDRouter IPv6. Please see the example configuration provided in the Configuration section of this document for more information.

Some devices may not initiate a 6to4 tunnel on the WAN if the primary IPv4 address obtained on the WAN is not a global address. In these cases configuring CDRouter to assign a global IPv4 address to the DUT may force initiation of the 6to4 tunnel on the WAN as expected.

Inconsistent IPv6 Behavior for Different IPv4 WAN Modes

The IPv6 behavior of some devices varies significantly based on the IPv4 WAN connection mode that is used. For example, the behavior of a dual-stack CPE configured for static IPv6 and DHCP IPv4 connectivity on the WAN may be different than the results for the same basic setup but using PPPoE for IPv4 connectivity on the WAN instead. In rare cases some devices and combinations of IPv4 and IPv6 WAN connection modes essentially do not work all. Ideally, the behavior should be consistent regardless of the IPv4 connection type used. As mentioned in Section 6, a good testing exercise is to verify IPv6 functionality across all IPv4 WAN connection types supported by the DUT (DHCP, PPPoE, PPPoA, PPP/T1, PPTP, L2TP, and static IP).

No IPv6 Firewall

Many devices that include IPv6 support have no firewalling capabilities for IPv6 connections. This poses a significant threat to overall security as IPv6 connections from the WAN are simply forwarded blindly to hosts on the LAN.

Limited IPv6 Firewall Support

In IPv6 enabled devices IPv6 firewall support is often limited when compared to IPv4 firewall support. As a result, devices may handle certain applications differently over IPv4 and IPv6 connections. For example, FTP and TFTP are widely supported applications that generally work through IPv4 firewalls. However, FTP and TFTP ALG functionality for IPv6 is less common. The end result is that some applications, such as FTP and TFTP, may work properly through the device under test over IPv4 but not IPv6.

Missing or Incorrect Default Routes for IPv6

Some devices that claim support for IPv6 do not properly establish default routes for IPv6 traffic. As a result, these devices are unable to forward IPv6 traffic from LAN to WAN, resulting in restricted access clients on the LAN attempting to communicate with IPv6 resources on the WAN.

Unofficial Support for IPv6

As mentioned in the previous section, some devices that do not officially support IPv6 actually do. This is problematic because often there is no IPv6 firewall support within these devices and no mechanism for configuring or disabling IPv6 support.

Incorrect Router Advertisement Interval Configured

If the value of the testvar ipv6RAInterval does not match the actual Router Advertisement interval configured on the device under test, CDRouter may incorrectly fail test cases or fail to obtain global IPv6 addresses via stateless address autoconfiguration. If you are unsure of the Router Advertisement interval, try setting this testvar to a large value and running test case ipv6_ndp_2 to see the actual interval implemented by the DUT.

IPv6 Subnet Issues

When static IPv6 is used on the WAN, it is important that the LAN side configuration utilizes a different IPv6 network to ensure proper routing from LAN to WAN and WAN to LAN through the DUT. If both the LAN and WAN interfaces of the DUT are on the same IPv6 network, packets may not be routed properly.

IPv6 DNS Information when DHCPv6 Prefix Delegation is Enabled

Some devices may not request IPv6 DNS information when DHCPv6 is used only for prefix delegation on the WAN. This issue can be quickly identified with CDRouter by running tests using autoconf with prefix delegation as the primary IPv6 connection WAN mode.

IPv6 Routes Not Updated After Renumbering Event on WAN

When a new address or prefix is assigned by the ISP to the DUT, the DUT must update its routing table to ensure that traffic continues to flow properly from LAN to WAN and vice-versa. Some implementations fail to update their IPv6 routes following an address or prefix change on the WAN – this often results in dropped packets and a general loss of connectivity for all clients on the LAN.

Not All IPv6 Configurations Work as Expected

CDRouter makes it easy to run a baseline set of tests against a device using a wide variety of IPv6 configuration options. This is an excellent test exercise, as mentioned in the previous section, and often reveals inconsistencies in IPv6 behavior. A common example is a device that works well when a tunneling protocol, such as 6to4 is used on the WAN, but fails to set up the proper IPv6 routes when native IPv6 or DHCPv6 is used on the WAN instead. In this scenario is that the DUT fails to forward IPv6 packets for any WAN mode other than 6to4.

Additional Online Resources

The following resources are available online: