IPv6 Addresses Explained

IPv4 has 4.3 billion addresses. We have more devices than that. IPv6 expands the address space from 32 bits to 128 bits — giving us 340 undecillion (3.4 × 10^38) addresses. That’s enough for every grain of sand to have its own subnet.

The format

An IPv6 address is 128 bits, written as 8 groups of 4 hex digits separated by colons:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Each group: 16 bits = 4 hex characters
8 groups × 16 bits = 128 bits total

Two compression rules

That’s a lot to type. Two shortcuts:

1. Drop leading zeros within a group

2001:0db8:85a3:0000:0000:8a2e:0370:7334
2001:db8:85a3:0:0:8a2e:370:7334

2. Use :: once to replace consecutive zero groups

2001:db8:85a3:0:0:8a2e:370:7334
2001:db8:85a3::8a2e:370:7334

The :: can only appear ONCE per address (otherwise it’s ambiguous). The whole address still represents 128 bits.

Common IPv6 addresses to recognize

Address Meaning
::1 Loopback (like 127.0.0.1)
:: All zeros (like 0.0.0.0)
fe80::/10 Link-local (auto-assigned)
fc00::/7 Unique local (private)
2000::/3 Global unicast (public)
ff00::/8 Multicast

The /64 standard

In IPv6, every subnet is /64. Yes, every single one. The first 64 bits are the network prefix, the last 64 bits are the host portion.

That means each subnet has 2^64 = 18 quintillion addresses. ISPs typically give homes a /56 or /48 — meaning you can carve out 256 or 65,536 /64 subnets.

Why no NAT

IPv6 has so many addresses that NAT isn’t needed. Every device gets a real, routable global IP. This restores the original end-to-end principle of the internet.

How devices get IPv6 addresses (SLAAC)

Stateless Address Auto-Configuration. The router announces the prefix; the device generates its own address from that prefix + its MAC (or a random number for privacy). No DHCP server required.

ip -6 addr show              # see your IPv6 addresses on Linux
ifconfig | grep inet6        # macOS

Dual-stack: running both

Most networks today run IPv4 AND IPv6 simultaneously. Each connection prefers IPv6 (Happy Eyeballs algorithm); falls back to IPv4 if IPv6 isn’t reachable. Apps don’t care.

Why adoption is slow

  • Old hardware doesn’t support it
  • NAT made IPv4 “good enough” for most use cases
  • Configuring IPv6 firewalls correctly is a learning curve
  • ISPs in some regions never enabled it

But mobile networks are 100% IPv6 now (with NAT64 for IPv4 services). Cloud providers all support it. The transition is happening.

Quick test

curl -6 https://ipv6.google.com   # force IPv6
curl https://test-ipv6.com         # check your IPv6 readiness in browser

What to learn next

Private vs public IPs and the RFC 1918 ranges that matter for IPv4 networks. Up next.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *