Why This Book?
How badly will IPv6 break your application? What do you need to consider to make your application IPv6-ready? What questions should you ask?
In the ideal world, your application should just work on IPv6, just as it does on IPv4. However, in the real world, application issues crop up. These could be as simple as having a user interface field that only allows the input of dotted-decimal IPv4 addresses, or something more fundamental, such as an application binding exclusively to an IPv4 transport interface.
While there have been many books published about IPv6, including OReillys own IPv6 Essentials and IPv6 Network Administration , almost all existing books focus on understanding the protocol itself and using it at a network layer. They contain much discussion about using network-level tools and even about creating applications that interact directly with the network. However, the concerns related to IPv6 at the upper application layers are mentioned only briefly, if at all. The Internet Engineering Task Force (IETF) has published RFC 4038, which addresses many of these concerns, but the concerns have not found their way out into mainstream books.
This short book is designed to help you understand what you need to think about to be sure that your app will work as well with IPv6 as it does with IPv4. This book is not so much about all the solutions but rather about the questions you need to be asking.
For IPv6 to truly be adopted on a large scale, ultimately the applications running on our desktop systems, laptops, and mobile devices all need to play nice with IPv6. That is the end goal of this bookto help enable individuals, companies, and organizations to migrate their apps to IPv6 so that they can transition their networks into IPv6 networks.
Given that now many companies are just starting to pay attention to IPv6, and given that many apps are just now moving to IPv6, this book will continue to evolve to address issues identified as more applications make the move. Id love to receive any feedback you have on issues you encounter in migrating your apps to IPv6and I expect that youll see updates to this book come out over time.
Why This Book Now ?
As this book is updated in early 2012, there are several critical reasons why developers really need to be paying attention to IPv6 right now:
IPv4 address exhaustion is getting closer . In February 2011, the Internet Assigned Numbers Authority (IANA) allocated the last IPv4 address blocks out to the Regional Internet Registries who ultimately distribute IPv4 addresses to Internet service providers (ISPs) and end users. There simply are no more IPv4 addresses to distribute. Now, the RIRs do have existing pools of IPv4 addresses that may in fact last for a few more years, but very soon the options will be increasingly limited and more and more networks will be looking to IPv6 as the solution to bring more devices and users online.
World IPv6 Launch is happening on June 6, 2012 . On that date (and potentially before), IPv6 will be permanently enabled for many websites by more ISPs and by many home router vendors. Major websites and services such as Google, Facebook, Yahoo, YouTube, Netflix, and more will be permanently accessible over IPv6. Very large ISPs have committed to providing IPv6 connectivity to a larger percentage of their customer base. There will be more end users out there using IPv6and more cases where your application may not work if it doesn't work well with IPv6.
The Internet Engineering Task Force (IETF) has specified that IPv6 is no longer considered optional . RFC 6540, IPv6 Support Required for All IP-Capable Nodes , issued in April 2012, states very explicitly that IPv6 can no longer be considered optional and that all nodes connected to IP networks need to support IPv6. While this RFC cannot be directly enforced with todays networks, it does provide a clear direction for implementors to move and also firmly indicates that future IETF standards will require IPv6. You will need to work with IPv6 for your application to work in future networks.
Your application may not work or may suffer performance degradations with IPv4 extension technologies . There are a number of technologies being considered by service providers and enterprises to extend the life of IPv4 addresses and delay the need to move to IPv6. One of the major techniques being considered is called Carrier Grade Network Address Translation (NAT)" or CGN. CGN is basically the idea of using a second layer of NAT at the ISP level to hide an entire ISP's network behind a single public IPv4 network. However, the problem is that some applications, particularly those that use real-time communications or are sensitive to latency, may not work at all or may suffer serious performance degradation when used behind CGN. A recent presentation at the 2012 North American IPv6 Summit documented some research into this issue. In many cases, applications that work over native IPv6 networks worked fine while IPv4-only applications suffered these performance issues.
For all of these reasons, it is now critical to look at your applications and determine whether or not they will work with IPv6and if they won't, how you can fix them so that they will.
Is This Book for You?
Are you an application developer? A product manager? A product marketing manager? A documentation author? A training instructor? A system/network architect? This book is designed to help you understand what issues you need to explore with your application.
Developers, you will come away with enough information to go through your application and make the necessary changes. Product managers, you will gain an understanding of what points you need to considerand what you need to ask of your technical teams. If you are in marketing, documentation, or training, you will get a good sense of what youll need to think about changing in your materials. And if you are a system/network architect looking at your overall IPv6 implementation, you should leave with a better sense of what changes may need to be considered across the applications that are deployed in your infrastructure.