IPv6 Subnet Calculator
Expand any IPv6 address to its full 8 groups, apply the prefix mask to find the network, count how many /64 subnets and total addresses a prefix holds, and identify the address type from its leading bits.
šÆReal IPv6 Presets
šIPv6 Inputs
Use :: shorthand for zero groups, for example 2001:db8::1.
Number of leading bits that define the network.
Splitting must use a longer prefix than the base.
Index of the child subnet in the table below (0 is first).
š¢Structure Snapshot
šChild Subnet Preview
| Index | Child Subnet | New Prefix | First Address | Subnet ID |
|---|---|---|---|---|
| Enter values above to list child subnets. | ||||
šIPv6 Prefix Reference
| Prefix | Network Nibbles | Host Bits | /64 Subnets | Total Addresses |
|---|---|---|---|---|
| /32 | 8 nibbles | 96 bits | 2^32 (about 4.29e9) | 2^96 (about 7.92e28) |
| /40 | 10 nibbles | 88 bits | 2^24 (about 1.68e7) | 2^88 (about 3.09e26) |
| /48 | 12 nibbles | 80 bits | 2^16 (65,536) | 2^80 (about 1.21e24) |
| /52 | 13 nibbles | 76 bits | 2^12 (4,096) | 2^76 (about 7.56e22) |
| /56 | 14 nibbles | 72 bits | 2^8 (256) | 2^72 (about 4.72e21) |
| /60 | 15 nibbles | 68 bits | 2^4 (16) | 2^68 (about 2.95e20) |
| /64 | 16 nibbles | 64 bits | 1 (itself) | 2^64 (about 1.84e19) |
| /128 | 32 nibbles | 0 bits | 0 (single host) | 1 address |
šIPv6 Address-Type Reference
| Type | Prefix Block | Leading Bits | Scope | Typical Use |
|---|---|---|---|---|
| Global Unicast | 2000::/3 | 001 | Global | Public routable addresses |
| Unique Local | fc00::/7 | 1111 110 | Site | Private ULA, fd00::/8 in practice |
| Link-Local | fe80::/10 | 1111 1110 10 | Link | Auto-config on one link |
| Multicast | ff00::/8 | 1111 1111 | Varies | One-to-many delivery |
| Loopback | ::1/128 | all zero + 1 | Host | Local host self-test |
| Unspecified | ::/128 | all zero | None | Absence of an address |
| Documentation | 2001:db8::/32 | within 2000::/3 | Global | Examples and docs only |
š§®Hex Nibble to Prefix Map
| Nibble Boundary | Prefix | Bits | Group Position | Notes |
|---|---|---|---|---|
| End of group 2 | /32 | 32 | xxxx:xxxx:: | Common RIR allocation |
| Mid group 3 | /48 | 48 | xxxx:xxxx:xxxx:: | Standard site block |
| Group 4 nibble 2 | /56 | 56 | ...:xx00:: | Home or small site |
| Group 4 nibble 3 | /60 | 60 | ...:xxx0:: | 16 subnets of /64 |
| End of group 4 | /64 | 64 | ...:xxxx:: | One LAN, host bits below |
| End of group 7 | /112 | 112 | ...:xxxx:0 | Point-to-point style |
| End of group 8 | /128 | 128 | full address | A single host |
šAllocation Comparison Grid
| Scenario | Assigned | Subnet Into | Child Prefix | Child Count | Addresses Each |
|---|---|---|---|---|---|
| RIR to ISP | /32 | /48 | /48 | 2^16 (65,536) | 2^80 each |
| ISP to customer | /48 | /56 | /56 | 256 | 2^72 each |
| Business site | /48 | /64 | /64 | 65,536 | 2^64 each |
| Home gateway | /56 | /64 | /64 | 256 | 2^64 each |
| Small delegation | /60 | /64 | /64 | 16 | 2^64 each |
| Single LAN | /64 | /64 | /64 | 1 | 2^64 hosts |
| Router links | /64 | /112 | /112 | 2^48 | 65,536 each |
| Host route | /64 | /128 | /128 | 2^64 | 1 each |
āFull Method Breakdown
šReference Values
| Item | Common Value | How It Is Used | Effect on Count |
|---|---|---|---|
| Prefix length | /32 to /64 | Sets network vs host split | Longer prefix, fewer addresses |
| Zero compression | :: once per address | Collapses one zero run | Display only, no bit change |
| Nibble boundary | Every 4 bits | Aligns hex digits to prefix | Clean subnetting at nibbles |
| Subnet split | /48 to /64 | 2^(M ā N) children | 65,536 /64 subnets from /48 |
| Host portion | Lower 64 bits | Interface identifier space | 2^64 hosts per /64 |
š”Practical IPv6 Tips
An IPv6 address might appear to be a coordinate system masquerading as a number. While itās true that IPv4 made us feel like we were running out of street addresses in an expanding city, IPv6 give each grain of sand on planet Earth its own plot of land. Itās a lot, but math isnāt mystical.
All you have to know is how to map those long strings of hex digits into host and network numbers. You put in your block size into the calculator above, and it does the rest for you. When itās time to slice up a network, instead of having to convert back and forth between decimal, hexadecimal and binary, you saves time.
How to Plan an IPv6 Network
Put in the prefix length and base address, and it will tell you just how many subnets youāll be able to create out of this, as well as how many device will be supported on each subnet. Thatās all down to learning what goes in for your particular situation.
The prefix notation also trips many folks up because it goes in reverse of how most people thinks about IP masking. The longer the prefix is, the narrower it makes the scope (right down to just one host). The shorter the prefix, the bigger block of addresses. An ISP thatās handing out blocks to its customers may be working with a /48, which is huge. That block has 65,536 individual /64 subnets. There is enough room for dozens of internal network so you never have to use the same address again.
And that /64 size? No coincidence there either. Thereās a reason why we use it as the standard. We need to have a full 64 bits available for the interface identifier, otherwise you donāt support Stateless Address Autoconfiguration. Shrink your LAN subnet and make it into a /80 just to save some IP address space, and suddenly your network stops working for standard operating systems because they is expecting that 64-bit host portion.
The calculator shows you that it will always be powers of two when you split up a bigger block into smaller blocks. Twenty-five-six /64s out of a /56. You get sixteen from a /60. Binary arithmetic is doing precisely what it was built to do. Thatās where this common set of bounds is spelled-out in the reference table on the page, giving you an idea of why they prefers some prefixes over others.
Remember nibbles? Because IPv6 addresses use hexadecimal digits, nibble alignment makes the subnet mask human readable. You can end it off cleanly in two groups for a /32. Use three groups for a /48, and so on. If you try to break a network at some other boundary that isnāt a nibble, then you get ugly hex digits that make troubleshooting difficult down the road. They do it for a reason, and sticking with the clean lines will make your network documentation look like a pro and not a mess.
For people dealing with a mix of networks, thereās also an address type detector. The overwhelming bulk (2000::/3) of all traffic on the public internet uses global unicast addresses. Unique local addresses (fc00::) serves a similar role to private IPv4 space. Next up are the ones youāll see first when you donāt yet have a global IP: link-local addresses beginning with fe80::. These only exist on the immediate physical link, theyāre used to discover routers! And then there are unique local addresses, found in the fc00:: range, which play a similar role to private IPv4 space except with much bigger allocations. If you know what kind of address yours is, it can tells you how it should be routed and how it should be secured.
In practice, planning an IPv6 network isnāt nearly as much about āgotta have some IP addresses!ā and more about figuring out the hierarchy. How deep do you want to dig for subnets? Do you want to give each floor its own subnet or each department? You can get a live preview of child subnets, allowing you to visualize where your /48 will split off into a series of /64s or /56s prior to committing to a design. It takes the guesswork out of subnet delegation.
To conclude. IPv6 promises plenty, but plenty without any structure isnāt much of a promise. IPv6 networks will soon devolve into chaos if you donāt establish some sort of structure for prefixes with consistent length and well-defined boundaries. Create a network that naturaly expands by adhering to the /64 host rule and making sure your subnet boundaries are aligned with standard nibble boundaries. Once you quit forcing the math to fit and let the underlying binary logic take over, itās really not so complicated.
It would of been easier if we had more space.

