March 18, 2013

248 Views

Legacy Application and IPv6

Everyone in touch with the networking world knows that IPv4 addresses are going to be exhausted very soon, and having held the World IPv6 launch day on June 6, 2012, it is clearly indicated that IPv6 is coming in a big way.  This raises a critical signal of the need to migrate existing networking environments to support and work with IPv6. The IPv6 problem is similar to the Y2K problem in size and impact. There are alternatives to allow procrastination of the migration, however, it cannot be avoided forever.

Simply upgrading the network hardware that carries the network traffic will not help. IPv6 will impact the software/application layer too, from server and desktop operating systems to office productivity suites and email programs, web services, management software and security tools. DNS and Web server issues can impact the user experience in this period of transition. This has led me to analyze the areas where this migration may impact the applications. The possible impact areas of IPv6 transition on different applications can be:

  • User Interface -- legacy applications with a user interface to configure IP addresses will be impacted, as the user interface needs to support both IPv4 and IPv6 addressing formats, and IPv6 addressing formats are quite complex in comparison to the IPv4 address format.

  • The transport layer of legacy business-critical applications will be impacted, whether it communicates over the network directly or by using a third-party library/middleware. Legacy applications code needs to be accordingly modified at API level to accommodate the change requirements to support both IPv4 and IPv6.

  • The mechanism used to fetch the remote addresses can use DNS, hard coded or configurable IP addresses. If the application is running on a dual stack and using DNS, it may be possible that there will be an increase in response time, as now the application lookup is for both A and AAAA entries in the DNS server. So, there can be some scope for optimization.

  • If the application has any database dependency, special care must be taken to ensure that the existing data type used for storing IPv4 addresses also supports the storage of IPv6 addresses. Also ensure that the database server supports the IPv6 connection from the application in addition to the IPv4 connection.

  • If the application is using any third party library or middleware, those dependencies must be updated to the version which offers IPv6 support.

  • The IPv6 address format poses another issue for applications, where the IP address parsing is being performed inside the application algorithms. One needs to re-write the code or add some alternate path for IPv6 address parsing.

  • Application level data management for fragmented packets will also be impacted by IPv6, as IPv4 typically has 576 bytes, while IPv6 is 1,280 bytes.

There can be many different approaches to make an application IPv6 enabled, however, in my opinion, we should think about two approaches. First, we can develop new applications with similar functionality, and deploy these in the IPv6 island to allow applications to support the new interactions specific to IPv6. With this approach, we can go through the transition without making any changes in the existing code structure, but it may add complexity to the code structure and may require additional cost, time and effort. The second approach is about developing a combined logic for the IPv4/IPv6 which ensures operations regardless of the IP version used on the network. This may be better than the first approach in terms of complexity, effort, time and cost. In the second approach, one application can be configured to run in different modes like only IPv4, IPv6 only, or dual stack.

The impact areas discussed need to be carefully addressed during the transition of applications from IPv4 to IPv6. Here the role of domain expertise and IPv6 porting tools becomes all the more important for making the transition smooth and effective. Domain expertise may help us to enhance the performance and security of applications on the network using the new IPv6 features.  IPv6 porting tools will help us by analyzing the application from different aspects such as the protocols used by the application, or different dependencies of the application which can have an impact on the transition. These tools will accelerate the code analysis process to identify the possible areas of change to support IPv6, and to make it IPv6 enabled, and will assist the developers by making suggestions for migration on the impacted part of the code. The transition to IPv6 is unavoidable, so why not be ready with some expertise and tool which will assist the world in this migration? HCL Tech provides mainframe migration services for legacy languages, databases and platforms that help customers mitigate risks.