Nov 252011

Spend 30 minutes with IPv6 every Friday!IPv6 is important for every network-related project, from infrastructure to applications. There are almost no applications that doesn’t use the Internet or the corporate IP network. From web applications, to smartphone apps and business systems. Even if you don’t use IPv6 in your network today, you need to integrate IPv6 in your software project now. Why? If you don’t make it part of the project from start, you will end up rebuilding the project for a much higher cost in just a few years when bug reports come in. And you might meet IPv6 sooner than you expect if you integrate with external network services.

Executive summary: IPv6 is coming. You have the choice of integrating it into your project for a small cost today, or having to fix it for a much higher cost at some later stage. It’s your choice. I know what I would be doing.

What you need to consider

There are many things you want to consider, but here’s a short version of the IPv6 project check list for software projects:

  • Project team: Do you have IPv6 network knowledge in your project team?
  • Test lab: Do you have a test lab for IPv6 – including DNS, Web and e-mail?
  • 3rd party libraries and applications: What’s the status of your vendors? Do they support IPv6 yet?
  • Operating systems: Are they up-to-date and have support of IPv6?
  • Log files and databases: Are they ready for IPv6 data and the length of the data fields?
  • Security: Are there new issues coming up when running your application in a dual-stack world?
  • Migration: Can you help customers that doesn’t have IPv6 to access IPv6 based services?
  • New opportunities: Can IPv6 add new features to your application or service?
If you don’t have these skills in your project team, make sure they get training or that you contract people that know IPv6 and can help you to get going. Set up a lab and test your application.

Lessons learned: Happy Eyeballs

Adapting an application to IPv6 is not hard, it’s just a matter of managing a longer address in input fields, databases, log files and within the application. Transport and application protocols like TCP and HTTP works as before. What you need to consider and put your team to work on is how the application behaves in a dual stack world. In that situation, there are two possible ways to connect. A DNS name will resolve in at least two addresses. And you have multiple local addresses to choose from when setting up a connection. As long as things work fine, everyone will be happy. But if one of the networks has a problem, there will be long timeouts unless you consider this situation from start. Web browsers have learned the lesson and tries to set up multiple connections at the same time, then selecting the fastest one (Google “Happy Eyeballs” to learn more). Before this change, browsers had a timeout around 19 seconds after the user entered a URL or clicked a link. These users where not happy with waiting for a working connection. You don’t want your users to experience the same issues.

IPv4-only users will be affected by IPv6 too

Some application developers think that they will not be affected by IPv6 and avoid the topic. It’s important to know that anyone that use DNS, Web or any other Internet-related services will be affected in one way or another. The Internet is splitting up in two parts, kept together by a common addressing system – the Domain name system. More and more domains are IPv6-enabling their systems. The growth on the Internet will happen on IPv6 – in many cases only on IPv6. There simple aren’t enough of IPv4 addresses available for a reasonable price. IPv6 addresses will start to appear in E-mail headers, SIP IP-telephony signaling and all kinds of DNS responses. Your application needs to be able to understand these addresses in URLs, header fields and data. And you need to make sure that applications doesn’t crash when meeting these 128 bits or longer text strings for the first time.

Web applications will be the first to bite the dust

When I run web applications on my dual stack IP network in the office, they are IPv6 enabled by default. If the developer did not realize that this could happen he will be surprised. IPv6 can show up in HTTP Referer fields, in Javascript and in all kinds of places. Some of these addresses will end up being stored in the log files, databases or cookies. The application needs to be able to handle this.

Now it’s time for you to do your homework. Here are some pointers for your 30 minutes of IPv6 research today: