What’s Wrong With IPv4?IPv4 is sort of like that first apartment for a newly married couple. It’s functional, practical and, above all else, it works. But 10 years, four children and two dogs later, there’s just not enough space for everyone. So, the devoted patriarch of the family proceeds to divide the space available into smaller subsets to provide things such as privacy, better defined boundaries and more autonomy within each of the subsets. The end result seems to be a viable solution - until the matriarch of the family comes home with news indicating that a new addition will be joining the family in a mere nine months. So, the process of dividing, subdividing, and reassigning begins once more. And just when it seems like all's well, the couple learns that the new addition to the family will actually be two additions - twins!
Such is the problem with IPv4. No matter how the available address space is divvied up, the house that is IPv4 is beginning to burst at the seams. In a 2011 article at Network World, it was reported that the Internet Assigned Numbers Authority has actually assigned the last blocks of IPv4 address space to the regional Internet registries.
Wow! I for one had no idea that it had come this, and it leads me to wonder: Will IPv6 really be a viable solution?
IPv6: The Not-So-Simple SolutionIn terms of pure mathematics, the answer is yes. IPv6 addresses are 128 bits long, meaning that the number of IP addresses available is 2128. Put another way, the number of IPv6 addresses available is: 340,282,366,920,938,463,463,374,607,431,768,211,456.
This number is typically expressed as 3.4 * 1038, and in a world consisting of approximately 6 billion people, this should provide plenty of room to expand. So, just enable IPv6 on all network devices, and away we go right? As in most things in life, it’s just not that simple.
What’s the Hold Up?The primary problem with transitioning to IPv6 is that it's not backward compatible with IPv4. Simply put, when IPv6 was first devised, it was not created to function with IPv4. So, if you decide to use an IPv6 address within a network that is strictly based on IPv4, all types of routing and DNS problems can occur. Consequently, some really smart people within various think tanks and governing bodies came up with a few solutions.
Tunneling is the process of encapsulating IPv6 packets within IPv4 packets. This allows for the transport of IPv6 packets through existing IPv4 backbones, as the existing IPv4 routing infrastructure is completely oblivious to the encapsulated IPv6 packets. Upon arrival to its destination, special flags within the IPv4 packets are read by the end device instructing it to de-encapsulate the IPv4 packets and look for IPv6 packets.
The dual stack approach has become a very common one, and it involves a given network’s entire existing infrastructure supporting both IPv4 and IPv6 functionality. In this configuration, IPv6 is enabled as the preferred method of transport, and when incoming IPv6 traffic is detected, IPv6 networking is the end result. When IPv4 traffic enters into the network, each network device is instructed to revert back to IPv4 networking. Although this is becoming more commonplace, especially at the ISP level, one of the disadvantages of this approach is that many legacy operating systems do not support dual stack functionality. Therefore, an organization with legacy systems in its existing infrastructure will have to make a financial commitment toward a total transition to newer systems.
The 6to4 solution has gained popularity in recent years, as it involves a concept very similar to tunneling. Basically, IPv6 traffic is encapsulated within IPv4 packets, and the traffic is sent to designated relay routers. The communication between these relay routers is done via unicast, which results in a sort of point-to-point link. So, when done properly, you have what amounts to an IPv6 tunnel on the cloud without explicitly setting up an actual tunnel.