IPv4 vs IPv6 Subnetting: What Actually Changes

If you already subnet IPv4 confidently, IPv6 is less of a new skill than it looks. The core idea — a prefix length splits the address into a network part and a host part — is identical. What changes is the scale, a couple of conventions, and a handful of habits you can simply drop. Here is the side-by-side.

Address length: 32 bits vs 128 bits

IPv4 addresses are 32 bits, written as four decimal octets (203.0.113.5). IPv6 addresses are 128 bits, written as eight groups of four hex digits (2001:0db8:0000:0000:0000:0000:0000:0001), usually compressed by collapsing runs of zeros to :: — so that example becomes 2001:db8::1. The compression is cosmetic; the underlying 128-bit number is what subnetting operates on. The calculator shows both the compressed and the fully expanded form so there is never any ambiguity.

No broadcast, no "minus two"

In IPv4, every subnet reserves its first address (network) and last address (broadcast), so usable hosts are 2^host-bits − 2. IPv6 has no broadcast address at all — its equivalent functions use multicast instead. As a result there is nothing to subtract: an IPv6 subnet's capacity is simply 2^host-bits. The "anycast" subnet-router address exists but does not reduce the count you plan around. This removes one of the most error-prone parts of IPv4 math.

The /64 convention

This is the biggest mindset shift. In IPv4 you pick a prefix to fit the number of hosts, conserving addresses carefully. In IPv6 the standard subnet is always /64 — and a /64 holds 264 addresses, about 18 quintillion. You do not size it to your host count; you give every LAN a /64 and never think about host capacity again. Stateless Address Autoconfiguration (SLAAC) actually depends on that 64-bit host portion, so going smaller than /64 on a normal segment breaks address autoconfiguration.

Rule of thumb: in IPv4 you subnet to conserve hosts; in IPv6 you subnet to organise sites.

What you allocate instead

Because individual subnets are fixed at /64, IPv6 planning happens at the site level. A common scheme:

So "subnetting" a /48 into /64s is really just deciding how to number your 65,536 available subnets — picking the bits in between — rather than agonising over host counts.

Compare an IPv4 and an IPv6 block side by side — masks, ranges and host counts in one view.

Open the Subnet Calculator

A worked comparison

Take an IPv4 192.168.10.0/24: 256 total addresses, 254 usable, broadcast 192.168.10.255, mask 255.255.255.0. Now take an IPv6 2001:db8:10::/64: 264 addresses, no broadcast, first address 2001:db8:10::, last 2001:db8:10::ffff:ffff:ffff:ffff. Same concept of a range bounded by a prefix — only the IPv6 one is too large to ever exhaust, which is exactly why you stop counting hosts.

What carries over unchanged

The bitwise mechanics are the same in both: the network address is the IP ANDed with the mask, and a longer prefix always means a smaller block. CIDR notation, the idea of splitting a parent block into children, and the way routers forward between subnets all behave identically. If you understand CIDR notation and what a subnet is in IPv4, you already understand 90% of IPv6 — the rest is dropping the broadcast subtraction and embracing /64. To actually carve a block up, see VLSM subnetting.