Internet Protocol (IP) provides the base packet transport mechanism for the public Internet and, these days, also for most private IT networks. Internet Protocol was developed in the 1960s and 70s, with version four (IPv4) being the first standard (documented in RFC 791) in 1981.
By 1990, it was already clear that enhancements to IP were needed to support the ongoing growth of the public Internet, with RFC 1883 being the first to describe IPv6 published in 1995 and the first standard adopted in 1998 (in RFC 2460). The changes, compared to IPv4, that are included in the IPv6 specification are as follows:
Although the effect of these changes improves the scalability, efficiency and functionality of Internet Protocol, the fact that the packet format is different to IPv4 means that hosts using the different versions cannot communicate directly, and this has been the cause of practical delays in its adoption.
Since the allocation of public IPv4 addresses by the Regional Internet Registries has ceased, Internet Service Providers now get these address blocks through a marketplace of IP address brokers. IPv4 addresses typically cost around $50 each, adding significantly to the cost of providing IPv4-based Internet services and providing a further incentive for ISPs to offer IPv6-based services.
Despite the improvements offered by the above revisions to Internet Protocol, the adoption of IPv6 has been slow: with Google’s IPv6 Adoption tracker showing 43% globally at the time of this writing in 2023, some 25 years after the protocol was first standardized.
The main reasons for this are:
Regardless of the practical challenges in IPv6 adoption, network equipment and operating system manufacturers have continued to develop IPv6 capabilities in their implementations. In almost all cases, IPv6 features operate in addition to an existing IPv4 implementation, enhancing the dual-stack approach to IPv6 deployment.
A list of IPv6 capabilities in major operating systems is on Wikipedia: Comparison of IPv6 support in operating systems. Whilst this list is not exhaustive, it demonstrates that, at a technical level, a dual-stack IPv4/IPv6 network, including network devices, application servers and clients using the most common operating systems is practicable.
Further, most popular operating systems support the principle of using IPv6 as their first choice IP transport protocol if it is available, with fall-back to IPv4 where necessary.
The RIPE Network Co-ordination Centre provides guidance on the subnet layout for IPv6 address allocations to end-users, whether they’re businesses or domestic customers. This guidance is documented in their Best Current Operational Practices (BCOP) document, ripe-690.
The guidance recommends that each customer receives a delegated public IPv6 address block of at least /56 size, with larger customers receiving a /48 block. This allows any customer to have a local network with a minimum of up to 256 subnets and with each subnet having a /64 block.
The /64-per-subnet requirement comes from the Stateless Address Autoconfiguration (SLAAC, RFC 4862) feature of IPv6. The original intent of SLAAC was that a device could use its Layer 2 MAC address as the basis for the host portion of its IPv6 address within a /64 subnet. By receiving the prefix portion of the IPv6 address in an announcement from a router, a host can configure its public IPv6 address without needing a mechanism such as DHCP.
Given that the Domain Name Service (DNS) is integral to the practical operation of IP-based network services, a means to allow hosts to obtain their DNS parameters is needed to work alongside SLAAC as part of the host auto-configuration process.
IPv6 Router Advertisement Options for DNS Configuration (RFC 8106) provides this capability by adding the IPv6 addresses of DNS servers and the domain search list into the Router Announcement (RA) messages included in the IPv6 Neighbour Discovery (ND) protocol. This capability is often known as RDNSS, after one of the option fields (the Recursive DNS Server option) defined in RFC 8106.
A common layout for an enterprise or domestic network connected to the public Internet using IPv4 is as shown below.
Domestic Network using IPv4
The key elements of this layout are:
A feature of this arrangement is that to allow incoming connections from the Internet to systems in the private network, the Edge Router/Firewall needs to be configured with Port Forwarding rules that define how this traffic should be routed.
For example, in the diagram the private network includes a DMZ subnet with a Web Server that needs to be reachable from the public Internet. To achieve this, the Edge Router/Firewall would be configured with a rule that forwards traffic with a destination address of 203.0.113.47 and port 443 (HTTPS) to 192.168.2.50 and port 443. If external access was also required to the Media server, a second port forwarding rule, using a different port number, would be needed: for example, traffic with a destination address of 203.0.113.47 and port 8443 forwarded to 192.168.1.100 port 443.
The combination of port management, configuration, support and processing overhead represents one of the hidden costs of operating an IPv4-based connection to the public Internet.
An equivalent network layout using IPv6 is shown below.
Domestic Network using IPv6
The key elements of this layout are:
The stability, maturity and completeness of the IPv6 capabilities in modern network equipment and host operating systems enables the implementation of a dual-stack IPv6/IPv4 network. More ISPs are implementing IPv6 as part of their access services to customers and more content hosting providers are including IPv6 alongside IPv4. The tipping point to the widespread adoption of IPv6 may be coming soon.