IPv6, or Internet Protocol version 6, is the follow-up to IPv4, the network protocol that most of the current Internet uses. Initially proposed in 1998, IPv6 has been used by developers since the early 2000s. But it wasn’t until 2017 that it was ratified as an actual Internet standard by the IETF (Internet Engineering Task Force).
Logically, there was an IPv5 between IPv4 and IPv6. However, version 5 never saw adaptation as a standard. It was developed specifically to help stream video and is known as Stream protocol or ST. However, like IPv4, it suffered from very limited available addresses. IPv4 and IPv5 use 32-bit addressing. Whereas IPv6 was upgraded to use 128-bit addresses instead. This, among other issues, led to IPv5 being essentially skipped as far as implementation of protocols went.
One of the main limitations that IPv4 suffered from was the limited number of possible addresses. To resolve this issue comprehensively, IPv6 uses a 128-bit addressing scheme compared to the 32-bit addressing scheme of IPv4. The limitation of addresses in the IPv6 protocol is 2128. Or 3.4×1038 if you prefer SI notation, compared to 232 in IPv4. While IPv4 has “just” 4.3 billion possible addresses, 4,294,967,296 to be precise, IPv6 offers 340,282,366,920,938,463,463,374,607,431,768,211,456 possible addresses. That’s 340 trillion trillion trillion. This all but eliminates the issue of limited addresses.
Beyond that, IPv6 offers additional improvements as well – it allows multicasting as a base specification, whereas in IPv4, this was an optional feature. Multicasting enables the transmission of a data packet to multiple destinations in one go, rather than having various operations.
Other improvements include handling more extensive data packets and simplified processing and configuration options. A lot of the base functions that IPv6 comes with had to be additionally implemented for whichever time. Which led to some complicated solutions for relatively simple-to-fix issues. That said, IPv6 isn’t as simple as being a ‘better’ version. It also brings with it a new set of issues that IPv4 lacked.
Challenges and Implementation
Despite being a relentless improvement on the IPv4 protocol regarding available addresses and several other things, some issues keep IPv6 from being readily implemented. A major roadblock is that the two protocols aren’t interoperable and, therefore, can’t communicate with each other directly. It is possible to run computers using both simultaneously in a configuration referred to as a dual-stack. Dual stack devices are now the standard. Though IPv6 may not be used if not actively supported by the ISP.
A challenge for a long time was the lack of support for IPv6 in middleboxes, i.e., ISP routers and internet backbone architecture. While end-user devices and servers are relatively regularly upgraded and had IPv6 support fairly early, many middleboxes didn’t support it, essentially torpedoing any attempt to use it. Most ISPs now actively support it, with some having the majority of their customers on IPv6.
Another thing to consider is the potential for repeating past design mistakes. While IPv6 offers a vast address space, its implementation plan is much more similar to the original use of IPv4. Rather than the modern CIDR design that optimizes the efficient use of the limited IPv4 address space. Instead of using the area efficiently, there will be 264 subnets—each with 264 possible addresses.
This design architecture might at first look like it’s doomed to repeat the design changes of IPv4 to avoid address space consumption until you realize that 264 is 4 billion times more networks than possible IPv4 addresses. Each with 4 billion times more possible addresses than there are possible IPv4 addresses. This design decision was taken to simplify address allocation and route aggregation.
The Death of a “Firewall”
NAT was one of the key pieces of functionality that helped to stave off the exhaustion of IPv4 addresses for so long. NAT allows a router to translate many internal IP addresses to one public IP address, reducing the number of addresses needed by a network. This had the added benefit of essentially acting as a firewall. As unexpected incoming communications couldn’t be translated to an internal host and were dropped.
With the vast abundance of addresses in IPv6, there is no longer any need to conserve address space actively. As such, the design intention is to return to the end-to-end concept where both devices directly communicate rather than having one or more NAT systems translating addresses. This means that every device has its public IPv6 address, and the use of NAT is not generally intended.
This cuts out the protection of the firewall effect that NAT provided; some networks may have relied upon firewall functionality. It means that without an actual firewall implemented, external devices on the Internet, potentially controlled by hackers, can attempt to connect directly to the public IP address of an internal device.
IPv6 is the successor to the long-standing IPv4 addressing scheme of the Internet. IPv4 needed replacement because its limited address space was at risk and has now been exhausted. IPv6 offers a vast address space that ensures that address space exhaustion won’t be an issue for a long time.
The rollout of IPv6 has been long, not helped by the lack of interoperability with IPv4 and, for many years, the lack of IPv6 support on many intermediary network devices. Despite this, support is now almost universal, though the percentage of traffic that uses IPv6 is still significantly below IPv4 traffic.