CDRouter IPv6 User Guide 6.3/FULL
From QA Cafe Support Wiki
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:
- Get Started Page (includes links to the CDRouter Quick Start Guide)
- NTA1000 Data Sheet
- CDRouter User’s Guides
- QA Cafe Knowledge Base
- QA Cafe Application Notes
- CDRouter Test Case Summaries
- CDRouter-Multiport add-on Test Case Summaries
- CDRouter IKE add-on Test Case Summaries
- CDRouter TR-069 add-on Test Case Summaries
- CDRouter IPv6 add-on Test Case Summaries
- QA Cafe Sales
- QA Cafe Support

