IPv6 subnetting is easier than IPv4 subnetting, once two things click: the subnet size is almost always /64, and the interesting boundary therefore lives in the top half of the address, where prefixes are carved in 4-bit nibble steps. This calculator shows the address as its eight 16-bit hextets, marks the boundary, expands and compresses the notation according to RFC 5952, counts the /64s in any prefix, derives the reverse DNS zone, and names the address type, including the findings people actually trip over: ULAs generated in the wrong half, prefixes that break SLAAC, and EUI-64 addresses that quietly embed a MAC address.

Reading an IPv6 address

An IPv6 address is 128 bits, written as eight groups of four hex digits: 2001:0db8:0000:0000:0000:ff00:0042:8329. Two shortening rules make the everyday form: leading zeros in a group are dropped, and one run of consecutive all-zero groups collapses to ::. That gives 2001:db8::ff00:42:8329.

The rules have edges worth knowing, because they are where addresses stop matching each other as strings. The :: may appear once only; two runs would make the expansion ambiguous. When two zero runs compete, RFC 5952 compresses the longer one, and the leftmost on a tie, so 2001:db8:0:0:1:0:0:1 canonically is 2001:db8::1:0:0:1. A single zero group is written 0, not compressed. Hex is lowercase. Software mostly accepts any variant on input but should emit the canonical form; the calculator shows both the canonical and the fully expanded spelling, since firewalls and log greps regularly need the expanded one.

A tail like ::ffff:192.0.2.128 is also legal: the last 32 bits written as IPv4. It appears mostly in IPv4-mapped addresses, which is how a dual-stack socket reports an IPv4 peer.

How to read the calculator

Type an address or a prefix. A missing length is read as /64 and flagged; a zone index like %eth0 is stripped and explained. The hextet cards show the address in full, sixteen bits per card, with the prefix boundary marked; click a card to set the boundary at its end, or step bit by bit with +/−. The ribbon underneath draws the three-part anatomy (routing prefix, subnet ID, interface ID) to scale, which is the picture worth keeping in mind for every address plan.

The addresses panel gives the canonical and expanded forms, the first and last address of the prefix, and the ip6.arpa reverse zone, each copyable with a click. The findings panel names the address type and the traps near it, and the split panel divides the prefix at nibble boundaries or straight into /64s. Everything runs in this tab; no address you type leaves the page.

--expanded

Shows every address in the split table and the range rows in the full eight-group form instead of the compressed one. Useful when the output is destined for systems that compare addresses literally, or for people who want to see the columns line up while checking a plan.

Prefix, subnet ID, interface ID

A global IPv6 address splits into three parts, and the split is the entire mental model:

PartBitsWho chooses it
routing prefix48 (typical site)your ISP or RIR allocation
subnet ID16 (with a /48)you, one value per LAN/VLAN
interface ID64the host (SLAAC, privacy extensions) or DHCPv6

All subnetting decisions happen in the middle part. With a /48 the subnet ID is 16 bits, so there are 65,536 possible /64s and the ID is exactly four hex digits: the fourth hextet of the address. 2001:db8:acad:0001::/64 is subnet 1 of site 2001:db8:acad::/48. Nothing in IPv4 subnetting maps to this comfort: the subnet number is legible in the address, no octet-straddling masks, no host-count planning.

Why everything is a /64

The /64 boundary is not a convention that emerged, it is baked into the standards. SLAAC (RFC 4862) generates interface IDs of exactly 64 bits, so a LAN with a longer prefix cannot autoconfigure, and hosts without DHCPv6 clients (Android is the well-known one) get no address at all. That makes /64 the size of every host-facing network regardless of how many machines it holds: a point-to-point VLAN with two servers and a campus WLAN with ten thousand devices are both /64s.

The instinct to conserve addresses, drilled in by IPv4, actively hurts here. Handing a /122 to a small LAN saves nothing measurable (the site has 65,536 /64s to spend) and costs SLAAC, complicates the address plan, and confuses every operator after you. The two legitimate exceptions are infrastructure links: /127 for router-to-router links per RFC 6164, closing neighbor-cache exhaustion and ping-pong issues, and /128 for loopbacks. The calculator warns on prefixes between /65 and /126 for exactly this reason.

Address plans and nibble boundaries

Good IPv6 plans slice prefixes in 4-bit steps, because a nibble is one hex digit: the structure of the plan stays visible in the address itself. From a /48, the natural cuts are /52 (16 blocks), /56 (256), /60 (4,096) and /64 (65,536). A three-level plan might read: hex digit one is the region, digits two and three the building, digit four the VLAN. Anyone who can read hex can then locate 2001:db8:acad:2f04::/64 without a lookup table.

Nibble alignment has a second, harder reason: reverse DNS delegation (next section) works in 4-bit steps, so a /50 cannot be delegated as a clean zone. The split panel offers nibble-aligned targets first, and the findings flag prefixes that end off-nibble.

Two sizing realities from the provider side complete the picture. What you can plan with depends on the delegation: a /48 is common for business connections, /56 for consumer ones, and a bare /64 (no subnetting possible) still occurs on mobile and budget ISPs. And ULA space gives every site a parallel /48 (fdxx:xxxx:xxxx::/48 with a random 40-bit ID) whose plan can mirror the global one subnet for subnet, which keeps internal numbering stable across an ISP change.

Address types worth recognizing

The first hextet nearly always identifies what kind of address you are looking at. The ranges that come up in real logs and configs:

PrefixType
2000::/3global unicast, the routable internet (currently 2xxx and 3xxx)
fe80::/10link-local, on every interface, never forwarded
fd00::/8unique local (ULA), the private space of IPv6
ff00::/8multicast; ff02::1 all nodes, ff02::2 all routers
2001:db8::/32, 3fff::/20documentation only, never routed
::ffff:0:0/96IPv4-mapped, how dual-stack sockets show IPv4 peers
64:ff9b::/96NAT64 well-known prefix
::1, ::loopback and the unspecified address

Two findings deserve their asterisk here. ULAs live in fd00::/8; the fc00::/8 half of the ULA block was reserved for a central registry that never happened, so a prefix starting with fc is formally undefined, and the calculator warns about it. And an interface ID with ff:fe in its middle is EUI-64: it embeds the network card's MAC address, recoverable by anyone who sees the address. The calculator decodes the MAC to make the leak visible; modern systems avoid it via stable privacy addresses (RFC 7217) and temporary addresses (RFC 8981).

Reverse DNS: ip6.arpa

Reverse DNS for IPv6 expands the address to all 32 hex digits and reverses them, one label per digit, under ip6.arpa. For 2001:db8::1:

PrefixZone
2001:db8::/328.b.d.0.1.0.0.2.ip6.arpa
2001:db8:acad::/48d.a.c.a.8.b.d.0.1.0.0.2.ip6.arpa
the full /12832 labels ending in .8.b.d.0.1.0.0.2.ip6.arpa

The digit-by-digit format is why prefix lengths divisible by 4 matter operationally: a /48 delegates as one clean zone, while a /50 would need four zones of the enclosing /48 and careful carving. Mail servers are the systems that still check reverse DNS seriously, so the zone string the calculator prints is most often headed for a PTR delegation request to an ISP.

The same boundary thinking, in 32 bits and with broadcast addresses and host counts back in play, is what the IPv4 subnet calculator does; its article covers the CIDR table, wildcard masks and the cloud-provider host math.

IPv6 prefix questions

Why is /64 the standard IPv6 subnet size?

Because SLAAC, the mechanism hosts use to configure their own addresses from router advertisements, is specified in RFC 4862 to require exactly 64 bits of interface ID. A LAN with a /72 or /80 prefix cannot autoconfigure; every host would need DHCPv6 or static addressing, and Android famously ships without a DHCPv6 client at all. The apparent waste is intentional: with 2^64 addresses per subnet, address scanning becomes impractical, and subnet size never has to be revisited when a network grows.

How many /64 subnets are in a /48 or a /56?

Each bit of difference doubles the count, so a /48 contains 2^16 = 65,536 /64 subnets and a /56 contains 2^8 = 256. In between, a /52 holds 4,096 and a /60 holds 16. That is why a site with a /48 can hand a /56 to each of 256 buildings and still give every building 256 LANs, with no address shortage at any level. The arithmetic is prefix subtraction, nothing more.

What are the rules for shortening an IPv6 address?

RFC 5952 defines the canonical form: lowercase hex, leading zeros dropped in every group (0db8 becomes db8), and one double colon replacing the single longest run of two or more all-zero groups, the leftmost run when there is a tie. A lone zero group is written as 0, not compressed. So 2001:0DB8:0000:0000:0000:0000:0000:0001 is written 2001:db8::1, and 2001:db8:0:0:1:0:0:1 becomes 2001:db8::1:0:0:1, compressing the first run, not the second. Uppercase and needless zeros are accepted on input everywhere, but tools that compare addresses as strings need the canonical form.

Does IPv6 have a broadcast address?

No. IPv6 removed broadcast entirely and replaced it with multicast groups: ff02::1 reaches all nodes on the link and ff02::2 all routers, and protocols subscribe to narrower groups like the solicited-node multicast used by neighbor discovery. A subnet therefore does not lose a broadcast address, and the last address of a prefix is an ordinary assignable address. The all-zeros interface ID is reserved as the subnet-router anycast address, so in practice hosts avoid exactly one address per subnet, not two.

What is the difference between a link-local and a global IPv6 address?

Every IPv6 interface always has a link-local address from fe80::/10, self-generated without any router, valid only on its own layer-2 segment and never forwarded. Global unicast addresses from 2000::/3 are assigned via router advertisements or DHCPv6 and are routable on the internet. The two coexist on the same interface by design: default routes and gateway addresses are usually link-local (a routing table full of fe80:: next-hops is normal), while the global address is what appears in DNS.

What is a unique local address (ULA) and when should I use one?

ULAs are the fd00::/8 range defined in RFC 4193: routable inside your site, never on the public internet, the closest IPv6 has to RFC 1918 space. Generate the 40-bit global ID randomly as the RFC requires; picking fd00::/48 because it looks tidy recreates the collision problem ULAs were designed to avoid, painfully visible when two such sites merge or VPN together. Use ULAs for internal-only services and as a stable internal numbering layer; do not use them as the only addresses if hosts also need internet access, because address selection rules prefer IPv4 over ULA-to-global paths.

Can I use a /127 prefix on a point-to-point link?

Yes, and RFC 6164 recommends exactly that for router-to-router links. A /64 on a two-router link leaves 2^64 minus 2 unused addresses that an attacker can sweep to exhaust the routers' neighbor-discovery cache, and it enables the ping-pong behavior on some platforms. A /127 leaves two addresses and no room for either problem. SLAAC does not matter here since routers are configured statically. /128 remains the loopback and host-route size.

What IPv6 prefix does an ISP typically delegate: /48, /56 or /64?

Business and enterprise connections commonly receive a /48 (65,536 subnets), consumer connections typically a /56 (256 subnets), and the outliers hand out a single /64, which prevents any subnetting at all. RIPE's guidance and RFC 6177 both push against /64-only delegation, but it still happens on mobile and some consumer ISPs. Check what you actually get via prefix delegation before designing a home network with VLANs; with only a /64, every additional network needs NAT66 or relies on the router taking more via DHCPv6-PD.

What is 2001:db8:: used for?

Nothing real, and that is the point: 2001:db8::/32 is reserved for documentation and examples by RFC 3849, the IPv6 counterpart of 192.0.2.0/24. It is never routed on the internet. RFC 9637 added 3fff::/20 in 2024 for examples that need more space than a /32. If a production config contains a 2001:db8 address, it was copy-pasted from a tutorial and will never carry traffic; that pattern is worth an automated check in any config repository.

How does reverse DNS work for IPv6 addresses?

The address is expanded to all 32 hex digits, the digits are reversed, dotted individually, and suffixed with ip6.arpa. 2001:db8::1 becomes 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. Delegation happens on nibble boundaries, every 4 bits, which is one of the practical reasons address plans stick to prefix lengths divisible by 4: a /48 or /52 delegates as a clean zone, a /50 cannot without covering ranges it does not own.

Do IPv6 subnets lose two addresses like IPv4 subnets do?

No. There is no broadcast address to reserve, and no network address in the IPv4 sense. The only reserved value is the all-zeros interface ID, which RFC 4291 defines as the subnet-router anycast address, so hosts should not use the very first address of a /64. A /64 therefore has 2^64 minus 1 assignable addresses, which is a distinction without practical consequence: the count is about 18.4 quintillion either way.

Is there NAT in IPv6?

Not as a standard part of the architecture: hosts get globally routable addresses and the firewall does the access control that NAT did incidentally in IPv4. Two translation mechanisms exist for edges of the ecosystem: NAT64 (with DNS64) lets IPv6-only clients reach IPv4-only servers via the 64:ff9b::/96 prefix, and NPTv6 (RFC 6296) does stateless prefix translation for multihoming without provider-independent space. Full stateful NAT66 exists in some firewalls but drops the end-to-end property without the security benefit people expect from it, since the stateful firewall provides that on its own.

How many addresses are in a /64 subnet?

2^64, which is 18,446,744,073,709,551,616, about 18.4 quintillion. That is the square of the entire IPv4 internet in one LAN, and it is per subnet: a /48 site holds 65,536 such subnets. The size is not meant to be filled; it exists so SLAAC can pick 64-bit interface IDs with negligible collision probability and so scanning a subnet is computationally pointless. At a million probes per second, sweeping one /64 takes over half a million years.