What is IPv6?

IP addresses

Internet Protocol (IP) addresses are the numbers identifying the interfaces that send and receive internet data. Every phone, tablet, and laptop will use at least one IP address when connected to a network.

The same is true for the services they connect to and the infrastructure that carries the data. Each server needs an IP address, as do the routers and switches that connect them.

IPv6 an update to the smaller IPv4

IPv6 was initially specified in 1995. The specification has been filled out over the last 30 years and engineers have now published over 500 documents describing different aspects of how it works. More than half of all the internet traffic Google sees used IPv4 in March 2024.

IPv6 is much larger than IPv4. IPv4 has a 32-bit address space, which means it has just over 4 billion addresses. That is less than half an address per person on the planet. But every extra bit of address space doubles the number of addresses, so IPv6’s 128-bit address space is massively larger.

We can approximate the number of addresses as 340 undecillion. But most people don’t know what that means. Another way to think about it is that there are 79 octillion times as many IPv6 addresses as IPv4 addresses.

But the key difference isn’t the number of addresses. It’s the way we use them. When we look at IPv6 we focus on networks. With a few exceptions, all IPv6 LANs are /64 networks. That means that there are 64-bits to identify the LAN and 64-bits for host addresses.

Fig 1: The 64-bits in orange identify the LAN, the 64-bits in yellow identify the host. The combined address is shown in green. The double colon shows that some segments have been compressed because they are all zeros.

This means that every LAN has far more addresses than the whole IPv4 internet. That is to allow automatic configuration of addresses without network infrastructure. It also allows random assignment of privacy addresses. These are the default in most consumer operating systems now.

Who uses IPv6?

Almost half the world. The Internet Society’s Pulse project put it at 48 percent at the start of April 2024. To some extent, that’s because the world’s biggest networks use and promote the use of IPv6.

Another way to look at this is to ask where IPv6 dominates and where it is not being deployed. The countries with most deployment in April 2024 include:

  • India (71%)
  • Malaysia (66%)
  • France (65%)
  • Germany (62%)
  • Uruguay (58%)
  • Belgium (58%)
  • Saudi Arabia (57%)
  • USA (53%)
  • Japan (52%)
  • Brazil (48%)

How do networks assign addresses?

Grab it and go – privacy debate

When engineers designed IPv6 they knew that the internet was a success. Their initial design for the structure of IPv6 addresses focused on simplicity. It allowed devices to use the MAC address of their network card as the host part of their IPv6 address.

One downside of this choice was that individuals could be tracked based on their device. The default is now for operating systems to randomly generate what’s called a privacy address which is used by default and changes regularly.

DHCPv6

DHCP is the Dynamic Host Configuration Protocol. It doesn’t just let a device grab an address. It also tells the device about DNS resolvers – the servers that turn a name like ipv4.global into an IP address – and more.

DHCPv6 is the version of DHCP for IPv6 networks. Enterprise networks often use DHCPv6 so they can manage their network better. Provider networks often rely on the Prefix Delegation feature of DHCPv6 to delegate a network prefix to a subscriber.

How much can you get?

The short answer is that you can get enough not to worry about running out. There are three default block sizes handed out.

  • Residential access subscribers, like cable customers, normally get a /56. This is enough for 256 LANs.
  • Business access subscribers, like an office building, normally get a /48. This is enough for 65,536 LANs.
  • Access providers, like a small broadband network, can get a /32 by default and more of request. A /32 is enough for about a million customers with a /56.

These are minimums. More addresses are available on request and the largest block allocated so far is a /16. This contains about 4 billion /48s but only about a fifth of them would need to be used to justify that much. That’s because the policy allows for aggregation losses and bigger networks will need more aggregation.

The Look of IPv6 Addresses

IPv6 addresses are displayed in hexadecimal format. Each segment is 16-bits and they are separated with a colon. The use of letters in the address and the ability to compress segments that are all zero means one address could be written in multiple ways. This makes it hard to manage configurations and debug operational issues.

For example, all of these are the same address:

  • 2001:db8:0:0:1:0:0:1
  • 2001:0db8:0:0:1:0:0:1
  • 2001:db8::1:0:0:1
  • 2001:db8::0:1:0:0:1
  • 2001:0db8::1:0:0:1
  • 2001:db8:0:0:1::1
  • 2001:db8:0000:0:1::1
  • 2001:DB8:0:0:1::1

So engineers have agreed on a standard for how to represent addresses. Systems need to be able to accept addresses in any format but should always display them to humans using this canonical format.

  • Always use lowercase letters
  • Omit leading zeros
  • Use the :: where it will make most difference to shorten the address
  • Never use :: to compress a single 16-bit field