Work out any IPv6 prefix range, split a delegation into child subnets, check nibble alignment, and generate a ULA. Everything runs in your browser — nothing is sent anywhere.
Try one:
Generates a random 40-bit global ID inside fd00::/8, per RFC 4193. Use the result for stable internal addressing that survives an ISP prefix change.
- A
/64is the smallest subnet you should hand to a LAN. SLAAC needs those 64 host bits. - A
/48holds 65,536/64subnets. A/56holds 256. A/60holds 16. - Plan on nibble boundaries —
/48,/52,/56,/60,/64— so every prefix ends on a hex digit. - Generate a ULA for stable internal addressing that survives an ISP prefix change.
- The reverse DNS zone output above is the exact
ip6.arpaname to request from your provider.
This IPv6 subnet calculator does three jobs: prefix math, delegation planning, and ULA generation. Here is the reasoning behind each one.
How IPv6 subnetting differs from IPv4
IPv6 subnetting is about structure, not conservation. Address space is effectively unlimited, so you size prefixes for aggregation and readability instead of squeezing hosts into a block. There is no broadcast address and no usable-host subtraction to perform.
Every habit built on IPv4 scarcity works against you here. In IPv4 you count hosts, then pick the tightest mask that fits. In IPv6 you assign a /64 to each segment and never think about host counts again.
A single /64 contains 18,446,744,073,709,551,616 addresses. No LAN will exhaust that. The interesting question moves up a level: how do you divide the bits above the /64?
That range of bits is your subnet ID field. Its width depends on what your ISP or registry delegated to you. Our beginner’s guide to subnetting covers the IPv4 mechanics if you want the contrast side by side.
No broadcast, no minus two
IPv4 reserves the first and last address of every subnet. IPv6 does not. There is no broadcast address at all — multicast replaces it entirely.
RFC 4291 reserves the subnet-router anycast address, where every interface ID bit is zero. Hosts rarely receive it from SLAAC or DHCPv6. In practice you treat the whole block as usable.
Choosing between a /48, /56, and /60
Ask your ISP what they delegate before planning. Business and enterprise sites typically receive a /48, which yields 65,536 subnets. Residential connections commonly receive a /56, giving 256 subnets. A /60 gives 16, which is thin but workable for a small home lab.
RIPE’s operational guidance, RIPE-690, recommends /48 or /56 for end users. It discourages anything longer than a /56. RFC 6177 makes the same point at the IETF level. Give end sites more than one subnet, then tailor the size to need.
The failure mode is under-allocation, not over-allocation. A site handed a single /64 has no room for a guest VLAN, an IoT segment, or a lab network. Adding one means renumbering.
What each size buys you
- /48 — 65,536
/64subnets. Enough to reserve whole/56blocks per building or site and still leave room. - /56 — 256
/64subnets. The common residential delegation. Comfortable for VLAN-per-purpose home labs. - /60 — 16
/64subnets. Tight, but enough for LAN, guest, IoT, lab, and management. - /64 — one subnet, no room to divide. Ask your ISP for more if this is all you were given.
If you are still weighing the protocols themselves, our IPv4 vs IPv6 comparison covers where each one stands today.
Why nibble boundaries matter
A nibble is four bits, which is exactly one hexadecimal digit. Prefix lengths that are multiples of four — /48, /52, /56, /60, /64 — end cleanly at a digit boundary. Anything else splits a digit, which makes subnets hard to read and reverse DNS awkward to delegate.
Consider a /52 carved from 2001:db8:acad::/48. Each child differs by one hex digit: ...:0000::, ...:1000::, ...:2000::. You can read the subnet number straight off the address.
Now try a /51. The boundary lands mid-digit, so children step by 0x2000. The fourth hextet no longer maps to anything you can scan by eye. This IPv6 subnet calculator flags any prefix that falls off a nibble.
Reverse DNS is the harder consequence. The ip6.arpa namespace is delegated one nibble at a time. A zone cut can only land on a multiple of four. A /51 cannot be delegated as its own zone at all.
Reading the ip6.arpa zone output
The calculator prints the exact zone name for any nibble-aligned prefix. For 2001:db8:acad::/48, that zone is d.a.c.a.8.b.d.0.1.0.0.2.ip6.arpa — the first twelve nibbles, reversed, dot-separated.
That string is what you hand your provider when requesting reverse delegation. For the wider picture on PTR records, see our guide to reverse DNS and when you need it.
Using the IPv6 address planner for a home lab delegation
Start from the prefix your ISP delegates, split it on a nibble boundary, and assign one /64 per VLAN. Document each subnet ID against its purpose before you configure anything. Reserve a contiguous run for future segments rather than numbering sequentially from zero.
Here is a worked example on a /56 delegation. Feed it to the IPv6 address planner tab and split it into /60 blocks. That gives 16 children, and you take /64s from inside each.
:00— infrastructure and management:10— trusted LAN:20— guest network:30— IoT and cameras:40— lab and container networks
Leaving gaps between groups is deliberate. When the IoT segment needs to become four segments, the space beside it is already free. The aggregate route stays intact.
Segmenting for isolation? Our writeup on VLAN basics for a home lab pairs directly with this addressing work.
Match IPv6 subnets to existing VLAN IDs
A trick that saves real troubleshooting time: number the IPv6 subnet ID to match the VLAN ID already in use. VLAN 20 becomes subnet 0020, VLAN 30 becomes 0030.
You lose nothing, because the space is enormous. Every address on the network now names its own VLAN at a glance.
When to generate a ULA prefix
Generate a unique local address prefix when your ISP delegation is dynamic. ULAs live in fd00::/8 and never change. Internal DNS records, firewall rules, and static assignments keep working when the ISP prefix rotates. Run ULA alongside global addressing, not instead of it.
The problem ULAs solve is renumbering. Many ISPs rotate the delegated prefix on reconnect. Every internal reference tied to that prefix breaks when it changes.
RFC 4193 defines the fix. The prefix is fc00::/7, but the local bit must be set, so every usable ULA begins with fd. What follows is a 40-bit global ID that you generate randomly, producing a /48 with 65,536 subnets inside it.
Randomness is not optional. The RFC states that global IDs must not be assigned sequentially or use well-known numbers. Picking fd00::/48 because it looks tidy defeats the design and invites collisions when two networks merge.
What ULAs do not do
A ULA is not a substitute for a firewall, and it is not IPv6 NAT. The address is unroutable on the public internet, but that is a routing property, not a security control.
Devices should hold both a ULA and a global address. Applications pick between them using the RFC 6724 source address selection rules, which prefer the global address for internet destinations.
Common IPv6 subnetting mistakes
Four mistakes cause most IPv6 rework. Subnetting longer than /64 breaks SLAAC. Planning off nibble boundaries blocks reverse DNS delegation. Numbering sequentially leaves no room to grow. Treating a dynamic ISP prefix as permanent breaks every static reference.
- Going past /64. A
/112to “save space” breaks SLAAC. Devices will not autoconfigure, and you will spend an evening finding out why. - Ignoring nibble alignment. A
/58works technically but cannot be delegated in reverse DNS and cannot be read at a glance. - Numbering from zero with no gaps. Sequential assignment paints you into a corner the first time a segment needs to split.
- Hardcoding the ISP prefix. Static internal references to a dynamic prefix break on every reconnect. Use a ULA for anything that must stay stable.
- Assuming one address per interface. An IPv6 interface normally holds several addresses at once. Our guide to IPv6 address types explains which is which.
Frequently asked questions
What is the smallest IPv6 subnet I should assign?
A /64 is the smallest subnet you should assign to a LAN. SLAAC requires a 64-bit interface ID, so any prefix longer than /64 breaks stateless autoconfiguration. Point-to-point router links are the documented exception, where RFC 6164 recommends a /127.
How many /64 subnets does a /48 give me?
A /48 gives you 65,536 /64 subnets. The 16 bits sitting between /48 and /64 form the subnet ID field. A /56 gives you 256 /64 subnets, a /60 gives you 16, and a /52 gives you 4,096.
Why should IPv6 prefixes land on nibble boundaries?
A nibble is four bits, which is exactly one hex digit. Prefix lengths that are multiples of four end cleanly on a digit boundary. That keeps subnet numbering readable by eye and keeps ip6.arpa reverse DNS zones delegable without splitting a hex digit.
Should I use a ULA prefix on my home network?
Use a ULA alongside your ISP prefix rather than instead of it. ULA addresses stay stable when your ISP prefix rotates, which keeps internal DNS records and firewall rules intact. Generate the 40-bit global ID randomly, never sequentially and never as fd00::/48.
Does this IPv6 subnet calculator send my prefix anywhere?
No. Every calculation runs locally in your browser using JavaScript. Nothing you type is transmitted to a server, stored, or logged. You can safely paste a production prefix or a real ULA into any field on this page.
Related tools and resources
Pair this IPv6 subnet calculator with the rest of the NetworkCheckr addressing set. The IPv6 Address Type Checker classifies any single address and tells you whether its interface ID is hardware-derived or randomized.
Working in IPv4 as well? The IPv4 Subnet Calculator is the direct counterpart to this page. The CIDR notation guide explains the slash syntax both protocols share. The IPv4 to IPv6 Converter handles mapped and translated address forms.
References
- RFC 4291 — IP Version 6 Addressing Architecture
- RFC 4193 — Unique Local IPv6 Unicast Addresses
- RFC 5952 — A Recommendation for IPv6 Address Text Representation
- RFC 6177 — IPv6 Address Assignment to End Sites
- RFC 6164 — Using 127-Bit IPv6 Prefixes on Inter-Router Links
- RFC 3596 — DNS Extensions to Support IP Version 6
- RFC 6724 — Default Address Selection for IPv6
- RIPE-690 — Best Current Operational Practice for IPv6 Prefix Assignment