Migrating to IPv6: Don’t forget about the applications
March 8th, 2010With the impending countdown to the exhaustion of available IPv4 addresses, the Federal Government, Internet Service Providers and Enterprises are beginning to deploy IPv6 throughout their networks.
While IPv4 will not go away immediately, IPv6 capability is being adopted by more companies. IPv6 traffic is increasing at unprecedented rates. Wireless communication providers such as Verizon are requiring device manufacturers to support IPv6. Google has enabled IPv6 on their main search engine (ipv6.google.com) and YouTube.
Given the increase in IPv6 devices and the near exhaustion of IPv4 addresses, software applications must now consider porting to IPv6 to support coming onslaught of client IPv6 traffic.
Porting to IPv6, What’s the big deal?
For many applications, migrating to IPv6 may not require ANY code changes. If the application is behind a firewall and is accessible only to the internal network, there may be no need to port to IPv6. Most hosts on a corporate internal network will have an IPv4 address.
If the application is part of a Web Application Suite that does not use IP addressing in its code base, it may not need to be updated. Most web servers today support both IPv4 and IPv6 and most often the application does not need to know about the IP address of its client. For example, Microsoft IIS has supported IPv6 since Windows 2003 Server and IIS 6.0.
Most Java and .NET applications do not require porting to IPv6. Java and .NET frameworks shield the developer from the need to use IP protocol-specific socket API calls. By default, the Java runtime will use IPv6 sockets if IPv6 is enabled on the operating system. This feature allows applications deployed in servlet containers like Apache Tomcat to support IPv6 without any modifications. However, applications written using Java or .NET that refer to network IP addresses must be reviewed to make sure they use the non-IPv4 or IPv6 specific calls.
The biggest challenge to porting applications involves code that uses the C TCP/IP networking API. If your application uses the C TCP/IP networking API, then you may need to change specific IPv4 function calls to use a common IP function call. Microsoft has provided a good synopsis of porting and testing code.
The proof is in the pudding.
So what do I do now? Port and test your application. Get started!
You will never know what is required to port your application to IPv6 until you get started. The four steps below will help you get there.
1. Set up an IPv6 testbed to test your systems.
Configure the machines that run your application and clients that connect to your application in an IPv6-capable network.
2. Incorporate IPv6-enabled infrastructure components.
Install IPv6-capable infrastructure components for your application (e.g., web servers, application containers, databases). Check with the University of Wisconsin - Madison knowledge base to see which databases and servers support IPv6.
3. Upgrade application code to support IPv6 if needed.
Examine your application to see what needs to be upgraded. Are there specific network calls? If so, then make sure those calls are IPv4 and IPv6 capable.
4. Test application with IPv6 enabled hosts.
Run the application through its paces. Test with IPv6-only, dual-stacked, and IPv4-only network infrastructures. Make sure the application supports the different network architectures.
Eureka! I have an IPv6-enabled application. What’s next?
Progressing through the four-step process will provide a wealth of information for your network and application development teams. The first application to go through this process will pave the way and set the standards for the remaining applications. Only by jumping in and testing your application with IPv6 will you be able to truly understand the process steps necessary to port. As mentioned before, each application and every company is different.
By porting and testing your application, you will be able to help your company determine the IPv6 transition strategy that best fits the needs of its employees and more importantly its customers. Remember, this strategy is not just about the network — applications must also be considered.







.gif)

