IPv6 /64 subnet: one LAN with 2^64 addresses

By TechCompare · Updated · How we check

An IPv6 /64 subnet holds 18,446,744,073,709,551,616 addresses, which is the common size for one LAN. Azure requires IPv6 subnets to be exactly /64, and RFC 7421 says SLAAC assumes a 64-bit network boundary.

A /64 is the common block for one LAN. An IPv6 /64 subnet holds 18,446,744,073,709,551,616 addresses, which is 2^64. The address count isn't what limits a LAN. The 64-bit boundary matters more, and SLAAC assumes it.

Prefix
/64
64 host bits
Total addresses
18.45 quintillion
2^64
/64 networks
1
One LAN

How this is calculated

The first 64 bits of an address are the prefix, which says which network the address belongs to. The last 64 bits are the interface ID, the part that picks out one device on that network. RFC 4291 says all global unicast addresses other than those starting with binary 000 have a 64-bit interface ID field. RFC 7421 says most link-layer mappings make SLAAC assume a 64-bit network boundary, and that longer prefixes can't use SLAAC-configured addresses. SLAAC is stateless address autoconfiguration, the way a device builds its own address from the prefix.

Verdict

Use a /64 for each LAN, and plan with the number of /64s instead of hosts. RIPE-690 says it's not possible to assign less than a /64 to each LAN port/segment/subnet/VLAN due to IPv6 protocol requirements. RFC 4291 says there are no broadcast addresses in IPv6, so nothing comes off the count, and the last address is simply the last address of the block. The examples use 2001:db8::/32, the documentation prefix RFC 3849 reserves. Inside that prefix, this /64 runs from 2001:db8:: to 2001:db8::ffff:ffff:ffff:ffff.

More Subnet scenarios

/24 subnet (255.255.255.0)
A /24 subnet, written as 255.255.255.0 in dotted-decimal notation, provides 256 total addresses with 254 usable for hosts (one reserved for the network address and one for broadcast).
View details
/16 subnet (255.255.0.0)
A /16 subnet, written as 255.255.0.0, provides 65,536 total addresses with 65,534 usable for hosts.
View details
/28 subnet (255.255.255.240)
A /28 subnet, written as 255.255.255.240, provides 16 total addresses with 14 usable on a conventional IPv4 subnet.
View details

Frequently asked questions

How many hosts fit in a /64?
The calculator counts all 18,446,744,073,709,551,616 addresses as hosts, because IPv6 has no broadcast address to subtract. You'll never fill that count, so plan around the number of /64s you need, not the hosts.
Why use a /64 for every LAN?
Because SLAAC and Azure both expect it. RFC 7421 says SLAAC assumes a 64-bit network boundary, and Azure requires IPv6 subnets to be exactly /64.
Can I use a /80 or /112 on a LAN?
RFC 7421 says deployments with longer prefixes can't use SLAAC-configured addresses and need manually configured addresses or DHCPv6. RIPE-690 says assigning less than a /64 to a LAN isn't possible under IPv6 protocol requirements, so a /80 or /112 goes against that guidance. Stay with a /64 unless you have a documented design reason.
What's the difference between a /64 and a /56?
A /64 is one LAN with 18,446,744,073,709,551,616 addresses. A /56 holds 256 /64 networks, 4,722,366,482,869,645,213,696 addresses in all. Use a /56 when a home or small site needs several LANs under one allocation.