IPv6 subnetting: why /64 is the answer almost every time
IPv6 subnetting looks alien at first, but a single design choice makes it simple: use /64 almost everywhere. This prefix length is not arbitrary. It emerges from the protocol's architecture, the need for stateless address autoconfiguration, and decades of operational experience. Understanding why /64 dominates will save you time in the lab and in production.
The 64-bit host boundary
An IPv6 address is 128 bits. When you use /64, you allocate 64 bits to the network and 64 bits to the host. This split is not accidental. The host half (64 bits) is large enough to hold a modified EUI-64 address derived from a device's MAC address, plus millions of additional addresses. The network half (64 bits) is large enough to subnet an entire organization or campus without running out of space.
Compare this to IPv4, where a /24 gives you only 254 usable hosts. A /64 in IPv6 gives you 2^64 minus a few reserved addresses - roughly 18 quintillion hosts per subnet. You will never exhaust a /64 subnet by adding devices.
Stateless address autoconfiguration (SLAAC)
IPv6 was designed to eliminate DHCP overhead. Devices can configure their own addresses using SLAAC: they listen for a router advertisement, take the /64 network prefix, and append a 64-bit interface identifier (often derived from their MAC address via EUI-64). This works only when the network portion is exactly 64 bits. If you use /48 or /56 for subnets, SLAAC breaks or requires workarounds.
This is why /64 is mandatory on most link-local segments. It is the standard that vendors implement, that RFC 4291 recommends, and that every major OS supports without configuration.
Practical allocation strategy
A typical enterprise receives a /32 or /48 from its ISP. From a /48, you can create 65536 separate /64 subnets (48 + 16 = 64). That is enough for most organizations. From a /32, you have 65536 /48 blocks, each containing 65536 /64 subnets. Even a large multi-site deployment will never run out.
ISP allocation: 2001:db8::/32 Site A: 2001:db8:0000::/48 Building 1: 2001:db8:0000:0100::/64 Building 2: 2001:db8:0000:0200::/64 Building 3: 2001:db8:0000:0300::/64 Site B: 2001:db8:0001::/48 Building 1: 2001:db8:0001:0100::/64 Building 2: 2001:db8:0001:0200::/64
This hierarchy is clean, predictable, and scales without waste. Each /64 is a single broadcast domain. Routing is simple. Delegation is straightforward.
When not to use /64
- →Point-to-point links: use /127 (RFC 6164) to save address space and reduce the broadcast domain to two hosts.
- →Loopback addresses: use /128 for a single host address.
- →Aggregation or summarization: if you must squeeze more subnets from a small allocation, /56 or /60 is acceptable, but requires manual address configuration or DHCPv6.
- →Research or lab environments: experiment freely, but understand that production will use /64.
The /64 default is so strong that deviating from it should require justification. Most network engineers and certification candidates should memorize: /64 for subnets, /127 for point-to-point, /128 for hosts.
Practical tools for verification
When you are designing or validating IPv6 networks, you need to compress addresses, verify prefix lengths, and check for overlaps. Elematron offers free network tools including an IPv6 Compressor that lets you work through address notation quickly without leaving your browser.