Department of Defense
High Performance Computing Modernization Program

(NOTE: For tools to help troubleshoot Internet Protocol version 6 (IPv6) network behavior or network services (such as web, mail, DNS, DNSSEC, NTP, or XMPP), see the IPv6 Troubleshooting article in the Network Management section.)

 The IPv6 Test Techniques article is organized in 6 topics:

1. Introduction
2. IPv6 test lab set up
3. Interaction between item under test and test environment
4. Test plans, specifications, scenarios, and data packets
5. Test Network Setup
     5.1 Dual-stack test network setup
     5.2 IPv6-only test network setup
6. IPv6 application testing

1. Introduction

Whenever a change will be made to an existing product or application, testing that change in isolation before deploying it in the real world is a recommended practice. Guidance documents and how-to articles usually recommend setting up an IPv6 test lab or test network as one of the early steps in the process of deploying IPv6. For example: 

Setting up a testing capability is important for the safe, controlled introduction of new features, technology, and versions of control software into your network and prototyping with an emphasis on validation of targeted behavior and performance outcomes (e.g., experimenting with secure IPv6-enabled teleworking). Testing in a controlled environment enables the agency IT group to perform tests that could potentially be disruptive or introduce a security risk if deployed on the production network. The test environment should be set up as close as possible to resemble the production environments, including required network services such as DNS and DHCP. At first, the test sites should not be connected to the production network but be limited to a controlled environment until preliminary testing is complete. During the testing phase, the IT team will gain valuable experience with integrating IPv6, allowing them to determine whether the technology plan or schedule needs to be modified. Once preliminary limited testing is complete, the test environment can be interconnected to other IPv6 test networks.

Note: The above guidance is recommended by the Planning Guide/Roadmap Toward IPv6 Adoption within the US Government, July, 2012. (While the policies contained in that memorandum are no longer in effect [the memorandum was rescinded Aug, 2018 by Office of Management and Budget (OMB) Memorandum M-18-23 Shifting From Low-Value to High-Value Work], the guidance recommended by that memorandum remains valid.) A policy is a formal statement of specific actions that must be taken or goals that must be achieved while guidance is an informal statement of non-mandatory actions that could be taken or methods that could be used to achieve recommended goals.

2. IPv6 test lab set up

For Microsoft Windows environments, this Microsoft website shows how to configure an IPv6 test lab using five (5) computers, along with extensions to that basic IPv6 test lab for DHCPv6, DNS Zone Transfers, IPv6-only networking and numerous others. It even suggests how a virtual IPv6 test lab can be set up using only one physical computer. The resulting IPv6 test lab has no external Internet access. Part6: Configuring IPv6 Routing through IPv4 in a Microsoft Windows Environment in the article Enabling IPv6 in Microsoft Windows Environment in the Infrastructure section provides additional information, including how to add IPv6 network access.

This article offers various alternative approaches that can be used to set up an IPv6 test lab, either at home or at work, including some without computers. This older WindowsITPro article describes how to set up an IPv6 test lab using a computer, a router, and a tunnel broker to provide Internet access.

This paper (OPNET Modeler referenced by the paper has since been renamed Riverbed Modeler) and this more recent paper (VMWare licensing required) describe how to create an entirely virtual test environment. 

For Linux environments, this American Registry for Internet Numbers (ARIN) web page includes a Home Labs subsection that describes several ways to set up an IPv6 test lab. This article combines IPv6 theory with practical guidance for setting up an IPv6 test lab. Yet another article describes using Kernel-based Virtual Machine (KVM) to set up a virtual IPv6 test lab in part1 and part2.

A more elaborate IPv6 test lab set up is described here.

3. Interaction between item under test and test environment 

Guidance documents and how-to articles often skip over this aspect. In the course of modifying an item to make it IPv6-capable (whether hardware or software), the way IPv4 packets are processed may be changed. The following table shows eight ways that any item which has been modified to become IPv6-capable should be tested to verify that no new vulnerabilities or undesired behaviors have been introduced as a result. As Internet Engineering Task Force (IETF) Request for Comments (RFC) 6586 Experiences from an IPv6-Only Network makes clear, inadequate testing for test case 9 is presently the norm. 

Configuration of
Item under Test
Network Test Environment
IPv4 packets on native
IPv4 Network
IPv4 and IPv6 packets
on dual-stack network
IPv6 packets on native
IPv6 network
IPv4-only Item
1. This test case has
already been tested
2. Does Item process
IPv4 and ignore IPv6?
3. Does Item ignore
IPv6-capable Item
with IPv6 disabled
4. Is IPv4 behavior
5. Does Item process
IPv4 and ignore IPv6?
6. Does Item ignore
IPv6-capable Item
with IPv6 enabled
7. Is IPv4 behavior
8. Are both protocols
processed correctly?
9. Are IPv6 packets
processed correctly?

Most commercial and open source operating system and web browser clients are now IPv6-enabled by default, so they need to be reconfigured to disable IPv6 before being tested.

Too often, only test cases 7 and 8 are used. To give just two examples of the importance of the other test cases, sometimes the modified networking hardware can crash in test case 6 or a large packet (containing IPv6 records which are larger because of their larger addresses) can cause a buffer overflow in a modified DNS resolver in test case 5.

4. Test plans, specifications, scenarios, and data packets

Sample test plans and procedures, specifications, and the scenarios they are part of may be found on the websites of six different categories of organizations:

(1) International,
(2) United States (US) Government,
(3) US Department of Defense (DoD),
(4) Commercial testing service and equipment provider and open source testing software developer,
(5) Original Equipment Manufacturer (OEM), and
(6) Other

that conduct IPv6 standards conformance and interoperability testing are referenced in the IPv6 Product Testing Results article in the Testing section..

The standard IPv6 profiles approved for use by the US Government departments and agencies, US DoD, and European countries are discussed in the IPv6 Boiler Plate Acquisitions Language article in the Deployment section.

A network test plan used by the Malaysian Communications and Multimedia Commission is available in Appendix B of this document.

It is desirable to use real streams of IPv4 and IPv6 packets in test cases 2, 5, and 8 above. One way to create such packet streams is with the Simple Packet Translator tool discussed by an article of the same name in the Testing section. Packet streams can also be generated by tools referenced in that article.

5. Test Network Setup

Guidelines, techniques, and recommendations for setting up test networks may be found in the following:

a. IPv6 test lab setup (see part 1 above)
b. The project management factors mentioned in the Before You Begin article in the IPv6 Deployment section
c. IETF RFC 5180 IPv6 Benchmarking Methodology for Network Interconnect Devices, May 2008 (IPv6-specific guidelines for benchmarking)
d. IETF RFC 2544 Benchmarking Methodology for Network Interconnect Devices, Mar 1999, along with associated updates in RFCs 6201 and 6815. (IP-agnostic guidelines for benchmarking)
e. Tips on configuring your network to use Google Public DNS

Note: This article describes ways to "Avoid the Top 5 IPv6 Network Testing Troubles" when setting up or reconfiguring an IPv6 network. Additional tips and techniques for troubleshooting IPv6 networks is available in the IPv6 Troubleshooting article in the Network Management section.

5.1. Dual-stack test network setup

It is no longer the case that an organization needs to set up its own test network. See Available Internet Service Providers (ISPs) and Networks in the FAQ section for a list of Internet Service Providers (ISPs) offering dual-stack network services.

During the early stages of IPv6 deployment, a few organizations chose to set up dual-stack test networks to gain experience with IPv6 deployment. In Europe, the 6bone was established as an informal collaborative test bed through the efforts of the IETF in 1996. It ceased operation in 2006. In the United States, the Defense Research and Engineering Network (DREN) IPv6 pilot was established in July 2003 by the DoD High Performance Computing Modernization Program (HPCMP). It became a production network in 2007. In Australia, the VIC6 network was established in 2008 by the AI Group and IPv6Now. It became a production network in 2010.

This report from 2004 describes the setup of a network to test IPv6 Quality-of-Service performance for Aviation applications.

5.2. IPv6-only test network setup

IPv6-only networks are not yet currently commercially available in the United States although they might be closer than you think. However, any organization may set up a test network that supports only the IPv6 protocol, in order to gain experience with IPv6-only networking, for reasons described in RFC 6586 Experiences from an IPv6-only network. Facebook, LinkedIn (Part1, Part2, and Part3), Cisco and Microsoft have deployed IPv6-only test networks on their premises. The Trans-European Research and Education Networking Association (TERENA) extensively documented their experience while deploying an IPv6-only test network in their office.

6. IPv6 application testing

Whether developing a new dual-stack or IPv6-only application or updating an existing IPv4-only application to include support for IPv6, testing for correct behavior is required. Testing techniques that can be used during the development of new and conversion of existing applications to support IPv6 are discussed in the Application Conversion Introduction and Application Conversion Tools articles in the Applications section.