While IPv6 has been standardised in 1998 and its deployment is progressing to overcome the exhaustion of IPv4 addresses, the way IP addresses are used today remains identical to early days of the Internet. We argue that several changes in the Internet infrastructure in the last decade combined with the large addressing space of IPv6 enables opportunities in privacy, mobility, server performance, multihoming, segment routing, differentiated routing and multicast.

During the last decade, applications and transport protocols became further decoupled from the network layer. First, multipath transport protocols such as SCTP, MPTCP, QUIC and MPQUIC are able to use several network paths in the same transport connection. Second, applications leverage TLS to secure their communications and rarely use IP addresses to authenticate their users and services. These two can be combined to reconsider the semantics of IPv6 addresses further than simply identifying a network interface.

In this post we will explore how the roles that IPv6 addresses can play to improve the load-balancing and performance of servers as well as solve the multihoming problem in a more efficient and scalable way.

Multicore dataplane

Figure 1 — Having one IP per core enables a better load-balancing than hashing packet identifiers.
Figure 1 — Having one IP per core enables a better load-balancing than hashing packet identifiers.

Over the last decade, servers have greatly evolved too and now reach hundreds of CPU cores. Today, when the network card has a single IP address, incoming traffic is spread between the cores using techniques such as RSS that hashes the 4-tuple of incoming packets to assign a CPU core to each flow. This represents an additional burden on the NIC and CPUs, but can also lead to a high load imbalance. Using IPv6, one IPv6 can be assigned per CPU core. Then the NIC can forward packets directly to the right CPU core without requiring them to go through dispatching CPU cores first.

Figure 1 illustrates the throughput of a modified QUIC implementation using DPDK and two variants of IPv6 usage in our test bed when serving 128 clients. First, the Single IP variant represents the usage of a single server IPv6 address as widely used on the Internet today. In this case, the server uses RSS to dispatch packets to cores. Second, the One IP per core variant represents our usage of one IPv6 address per core. In this case, the clients use the DNS to randomly select one of the IPv6 addresses. When incoming packets arrive at the server NIC, it simply addresses them at their corresponding core. We can observe that with 8 CPU cores, the throughput can be increased by 25%.

Multihoming with Provider-Aggregatable IPv6 addresses

Figure 2 — Host-based multihoming enable the client and server to use one path per provider for more diversity and resilience.
Figure 2 — Host-based multihoming enable the client and server to use one path per provider for more diversity and resilience.

The growth of the Internet is also reflected in the growth of the Autonomous Systems (AS). Today, a BGP router can interact with more than 70k ASes and has to process a million of routes towards the prefixes that they announce. While most networks are usually first connected to the Internet through a single provider, many enterprise and organisation networks are becoming multihomed. To achieve this, they obtain an AS number and use BGP to advertise their own prefix to the global Internet. This approach is not scalable as it contributes to the growth of BGP routing tables.

IPv6 enables us to reconsider this problem. Let us consider Figure 2 which depicts an enterprise network becoming multihomed using two providers. With IPv6, the network obtains one Provider-Aggregatable IPv6 prefix from each of its provider. It does not need to become an AS or use BGP. It also enables hosts to use different interdomain paths to communicate. Figure 2 illustrates two of such paths between a client in the enterprise network and a server connected to AS5. Multipath transport protocols can select the best performing one given some application requirements and use the two paths simultaneously. They also improve the resiliency of hosts, as when a link fails, for instance the link towards AS2, the multipath transport connection can continue via AS3.

Switching from BGP to host-based multihoming would also greatly reduce the number of BGP messages coming from stub ASes, as the ASes solely existing for multihoming purposes could disappear. From a security perspective, this could also improve the relative adoption of RPKI, as stub ASes have a lower RPKI adoption than transit ASes.

Read more

If you’re interested reading more on how IPv6 enables opportunities in privacy, mobility, segment routing, differentiated routing and multicast, please refer to our article published in the July 2022 issue of the ACM SIGCOMM Computer Communication Review.

Maxime Piraux, Tom Barbette, Nicolas Rybowski, Louis Navarre, Thomas Alfroy, Cristel Pelsser, François Michel, Olivier Bonaventure (2022). The multiple roles that IPv6 addresses can play in today’s internet. ACM SIGCOMM Computer Communication Review, 52(3), 10-18.

This paper was partially supported by the NGI-POINTER programme with funding from the European Union’s Horizon 2020 research and innovation programme under the Grant Agreement no 825354, the FSR Fellowship from UCLouvain, the F.R.S.-FNRS Research Fellowship, the ArtIC project “Artificial Intelligence for Care” (grant ANR-20-THIA-0006-01) and co funded by Région Grand Est, Inria Nancy - Grand Est, IHU of Strasbourg, University of Strasbourg and University of Haute-Alsace.