IPv6 Subnet Calculator
IPv6 subnet calculator: get the network and last address in RFC 5952 canonical and full form, the address count, how many /64s a prefix holds, and split it into smaller subnets.
Subnet details
2001:db8::/32 - reserved for examples (RFC 3849)
- Network address
- 2001:db8:abcd:1234::/64
- Network (full form)
- 2001:0db8:abcd:1234:0000:0000:0000:0000
- First address
- 2001:db8:abcd:1234::
- Last address
- 2001:db8:abcd:1234:ffff:ffff:ffff:ffff
- Last (full form)
- 2001:0db8:abcd:1234:ffff:ffff:ffff:ffff
- Prefix length
- /64
- Total addresses
- 18,446,744,073,709,552,000
- /64 subnets available
- 1
- Address type
- Documentation
Split into smaller subnets
A /64 is the standard size for a single LAN (SLAAC requires it). ISPs typically delegate a /48 or /56 to a site.
About IPv6 Subnet Calculator
The IPv6 Subnet Calculator takes an address with a prefix length, such as 2001:db8:abcd:1234::1/64, and works out the network address, the last address, the total number of addresses and how many /64 LANs the prefix contains. It also names the address type, so you know immediately whether you are looking at global unicast, unique local, link-local, multicast or documentation space. The point is to remove the mental hex arithmetic that makes IPv6 planning feel harder than it actually is.
IPv6 addressing is defined in RFC 4291, and the text form has a canonical representation in RFC 5952: lowercase hex, leading zeros suppressed, and one run of zero groups replaced by :: at the longest run only. That matters because two spellings of the same address will not match a string comparison in an ACL, a firewall rule or a log filter, which is a quiet source of rules that never fire. Showing the compressed and the fully expanded form side by side makes such mismatches obvious.
Everything runs in the browser, with BigInt arithmetic because a 128-bit address does not fit in a JavaScript number and floating-point maths would silently lose the low bits. Nothing you type is sent anywhere. Splitting a prefix offers /48 through /128 and previews the resulting subnets in a table, capped so a huge split does not lock the page. Keep the standard sizes in mind: a /64 is the smallest sensible LAN because SLAAC (RFC 4862) needs a 64-bit interface identifier, and a site is normally delegated a /48 or /56.
How to use it
- 1Enter an IPv6 address with its prefix length, for example 2001:db8:abcd:1234::1/64, or click one of the example prefixes.
- 2Read the subnet details as you type; results recalculate live, with no button to press.
- 3Compare the network and last address in both compressed and full form, and use the copy button beside any value.
- 4Note the address type line, which tells you whether the prefix is global unicast, unique local, link-local, multicast, documentation, loopback or unspecified.
- 5Pick a target prefix under Split into smaller subnets, from /48 down to /128, to preview the resulting subnets in a table.
Common use cases
- -Planning how to carve an ISP-delegated /48 or /56 into per-VLAN /64s for a new site.
- -Confirming the canonical RFC 5952 spelling of an address before pasting it into a firewall rule or an ACL.
- -Checking whether an address seen in a log is global unicast, unique local or link-local before chasing it further.
- -Documenting an addressing plan by listing the exact first and last address of each subnet.
- -Teaching or reviewing IPv6 subnetting without doing 128-bit hex arithmetic by hand.
Frequently asked questions
- Why is /64 the standard size for an IPv6 subnet?
- Because stateless address autoconfiguration expects a 64-bit interface identifier. SLAAC, defined in RFC 4862, builds a host address from the /64 prefix advertised on the link plus a 64-bit identifier, so hosts will not autoconfigure on a longer prefix. Use a /64 per LAN even when it looks wasteful; the address space was designed on that assumption.
- How many /64 subnets are in a /48?
- 65,536. Each bit added to the prefix halves the subnet size, and a /48 has 16 bits to spare before /64, so 2^16 = 65,536 LANs. A /56 gives 256 /64s and a /60 gives 16. That is why a /56 is usually plenty for a home or small office while a /48 is the normal allocation for a multi-site organisation.
- What is the difference between fc00::/7 and fe80::/10?
- Unique local addresses (fc00::/7, in practice fd00::/8) are private and routable inside your own network but never on the internet, the rough IPv6 equivalent of RFC 1918 space and defined in RFC 4193. Link-local addresses (fe80::/10) are valid only on a single link, are configured automatically on every IPv6 interface, and need a zone index such as %eth0 to be usable.
- What is the canonical way to write an IPv6 address?
- RFC 5952 defines it: lowercase hexadecimal, leading zeros in each group removed, and the single longest run of two or more zero groups replaced with ::. Where two runs are equally long, compress the first. This tool prints the canonical compressed form and the fully expanded eight-group form together, so you can match an address against configuration written either way.