IPv6 is the successor of our beloved IPv4. And although IPv4 is still the main internet addressing scheme with the most extensive compatibility, IPv6 is slowly gaining traction. And although the road to IPv6 is long and complicated, we will all get there eventually.
IPv6 Background: How was IPv6 born?
In the 1990s, when the Internet was already building on top of the IPv4 (Internet Protocol version 4), the Internet Engineering Task Force (IETF) scientists saw the need to create a newer and better version. They saw the need to adopt voice and video over the Internet using IP, but they neglected the rise in IP-enabled devices.
As an experiment, the IETF scientists created the IPv5 (also known as the Internet Stream Protocol or ST). The IPv5 was intended to support voice and video in connection-oriented communications across IP networks. But the main problem with IPv5 (which is why it was never released publicly) was that it used the same 32-bit addressing scheme used by IPv4. And since the Internet and all its connected nodes were overgrowing, IPv5 was never released. And thus, people continued to use IPv4, and IETF scientists started developing the following IP scheme: IPv6.
IPv6: What is it? And how different is it from IPv4?
IPv6 is the latest version of the Internet Protocol (IP)— the communication scheme that provides a system to identify and locate computers and networks across the Internet. As mentioned in the previous section, the Internet Protocol (version 6) is the successor of our widely adopted and established Internet addressing scheme, IPv4. The IETF team created IPv6 as a response to the IPv4 address exhaustion problem, and it is intended to “eventually” completely replace IPv4.
To help clarify the IPv6 concept, it is always handy to use IPv6’s predecessor, IPv4, as a base of comparison.
IPv4 vs IPv6?
Both protocols have lots of things in common. For instance, IPv4 and IPv6 addresses are used to identify nodes connected on a network, can route traffic, and both consist of binary numbers (IPv4 is 32-bits and IPv6 is 128-bits). Other similarities are that both support manual IP assignment, have a packet header, multicasting, and both support VLSM (Variable-Length Subnet Mask).
So, which characteristic describes an ipv6 enhancement over ipv4?
Larger addressing size.
The most significant enhancement of IPv6 over IPv4 is its IP address size. IPv4 uses 32 bits, while IPv6 uses 128 bits. To give you some perspective, the combination of 32 bits (2^32) results in fewer than 4.3 billion addresses, while the combination of 128 bits (2^128) results in 340 trillion trillion trillion addresses. So, if you had a billion devices connected to the Internet; and so does every other human on the planet, there would still be addresses available. This massive increase improves the support for more levels of addressing hierarchy; many more addressable nodes, and a straightforward auto-configuration of addresses.
Simpler IP header format.
An IP header is a field in an IP packet that provides a meta description. An IP header from either IPv4 or IPv6 provides information like IP version; packet length, traffic class, and source and destination. The IPv4 header is 20-60 bytes long, while an IPv6 header is fixed at 40 bytes long. The IPv6 header has been simplified as compared to the IPv4 header. A few IPv4 headers have been dropped (or made optional).
Address types.
The types of addresses provided by IPv4 and IPv6 have changed. IPv4 offers its popular broadcasts, unicasts, and multicast addresses. To differentiate between these addresses, certain sets of IP addresses are subnetted and reserved for general use. There are no broadcasts in IPv6. Instead, IPv6 uses multicasts, anycast, and unicast addresses.
Address assignment and configuration.
Both Internet Protocols use different methods for assigning addresses to their hosts. IPv4, for instance, can use two methods, manual configuration or DHCP (Dynamic Host Configuration Protocol). IPv6, on the other hand, uses two different forms, commonly known as SLAAC(Stateless Address AutoConfiguration) and DHCPv6(stateless/stateful) configuration. With IPv6’s SLAAC, the hosts can configure themselves automatically. In addition, and whenever necessary, IPv6 hosts may configure additional stateful addresses using the DHCPv6 or manually configure a static address.
Above are a few of the more significant differences between IPv6 and IPv4. There are more differences between IPv6 and IPv4, including address notations, format, scopes, public addresses, security, and speed.
Why has IPv6 not been fully implemented?
Much evidence supports that we are already running out of IPv4 addresses. For instance, IANA is out of its last IPv4 /8’s (exact portions of 16,777,216 addresses), and obtaining IPv4 from LIRs or ISPs is getting quite expensive and challenging.
Without giving stats and numbers, you would be able to see IP-hungry technology all around, including mobiles, apps, IoT, virtualization, cloud, containers, etc. Growth and innovation are inevitable. And although technologies like NAT (Network Address Translation) and CIDR (Classless Inter-Domain Routing) would ‘temporarily’ save us some IPv4 address space, there is no going back. There will never be a decline in the number of devices using the Internet or the use of “less-innovative” devices.
In addition, the widespread use of NAT (to save IPv4 space), such as Carrier-Grade NATs (CG-NATs), is no longer a viable solution. There are many security, scalability, and reliability issues when using CG-NATs, plus it is not a solution for the increased number of public addresses.
So, if IPv6 is more than a 10x improvement over IPv4, and we are indeed running out of IPv4s, why hasn’t it been ultimately adopted yet? By the time of this writing, IPv6 should have been connecting all our devices and networks.
But what has happened?
- Compatibility. Not every device, network, ISP, or service supports IPv6. So, if, for example, your computer already supports IPv6 (which most do) and your local ISP also routes IPv6 packets. However, the destination website (or web service) you are trying to access still does not supports IPv6, IPv6 will be unsuccessful.
- Direct and immediate benefit. It can be pretty challenging for enterprises or businesses to initiate migrations because IPv6 is treated more as a long-term vision, so there is no reason to jump ship immediately. Plus, nobody would like to risk their networks and apps to use the new protocol.
Final Words.
Inertia will eventually carry all of us to use IPv6. Mobile Network carriers are the first already implementing IPv6 (as CG-NAT is no longer a solution). Some governments from countries like China and India are also starting to deploy IPv6. And public cloud providers are also beginning to migrate some services; for example, AWS is already migrating its serverless and container workloads to IPv6.
And most significantly, IPv4 addresses are getting too difficult and expensive to obtain. Most enterprises are already starting to eliminate unused and excessive IPv4 space, leasing IP address space, and adopting a dual-stack mode (where both protocols can be used simultaneously) to avoid service interruptions.