IPv6 Subnet Calculator
Calculate IPv6 networks, subnet divisions, and address counts. Compact and expanded notation, reverse DNS zones, and network type classification (Global, Link-Local, ULA, Multicast).
- Network (compact)
- 2001:db8::
- Network (expanded)
- 2001:0db8:0000:0000:0000:0000:0000:0000
- Last address (compact)
- 2001:db8::ffff:ffff:ffff:ffff
- Last address (expanded)
- 2001:0db8:0000:0000:ffff:ffff:ffff:ffff
- Prefix length
- /64
- Total addresses
- 1.84 × 10^19 (20-digit)
- Network type
- Documentation
- RFC / range
- 2001:db8::/32, RFC 3849
- Reverse DNS zone
- 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
- Netmask
- ffff:ffff:ffff:ffff:0000:0000:0000:0000
About this tool
IPv6 addresses are 128 bits — four times the length of IPv4 — so the
math and notation are fundamentally different. This calculator parses
any valid IPv6 representation (compact 2001:db8::1,
expanded 2001:0db8:0000:...:0001, or mixed with a
trailing IPv4 like ::ffff:192.0.2.1) and gives you the
network and last address, total address count, network type
classification, netmask, reverse DNS zone, and subnet division options.
The tool uses JavaScript BigInt for all arithmetic —
regular numbers cannot represent 128-bit values without loss. Address
counts for large blocks are displayed in scientific notation because a
/64 already holds 1.8 × 10^19 addresses, which is too large to
enumerate meaningfully.
Typical prefix conventions: /128 is a single host route. /127 is a point-to-point link (RFC 6164 recommends this for router-to-router). /64 is the standard end-user subnet — required by SLAAC and by several RFCs. /56 is a common allocation to residential customers (256 /64s). /48 is the standard allocation to enterprises and small ISPs (65,536 /64s). /32 is the typical allocation to Regional Internet Registry members. Allocations larger than /48 exist but are rare outside the backbone.
Network type classification follows RFC 4291 (and related RFCs): Global Unicast (2000::/3) is the publicly routable space everyone uses in practice. Link-Local (fe80::/10) is auto-configured on every IPv6 interface and used for on-link protocols like neighbor discovery and router advertisement — it does not route off-link. Unique Local Addresses (fc00::/7, RFC 4193) are the IPv6 equivalent of IPv4 private space (RFC 1918), intended for internal networks that should not route on the public Internet. Multicast (ff00::/8) replaces IPv4 broadcast; IPv6 has no broadcast addresses. Documentation (2001:db8::/32, RFC 3849) is reserved for examples — the default the tool loads is from this space.
Reverse DNS zones for IPv6 use nibble-reversed
notation under ip6.arpa. A /64 generates a zone of 16
reversed nibbles. This is how you tell bind, Knot, or your DNS
provider where to point the PTR records for a given prefix.
Frequently asked questions
Why is /64 the standard end-user subnet?
RFC 4291 specifies a 64-bit interface identifier for IPv6 unicast. SLAAC (Stateless Address Autoconfiguration) generates this identifier automatically from the interface MAC or a random value. If you use a prefix longer than /64, SLAAC breaks. Some protocols (like 6to4 and some transition mechanisms) also assume /64 boundaries. The result: /64 is the de facto end-user subnet, /56 or /48 is typical for a customer allocation.
What does "::" mean in an IPv6 address?
The "::" is zero compression — it stands in for one or more consecutive all-zero 16-bit groups. "2001:db8::1" expands to "2001:0db8:0000:0000:0000:0000:0000:0001". The compression can appear at most once per address (otherwise it would be ambiguous). "::" alone is the unspecified address (::/128), and "::1" is the loopback.
Why are IPv6 address counts shown as scientific notation?
A /64 contains 2^64 = 18,446,744,073,709,551,616 addresses — written as "1.8 × 10^19" for readability. A /48 has 2^80 (≈1.2 × 10^24), a /32 has 2^96. Enumerating these is meaningless; the scientific form captures the scale. Contrast with IPv4, where subnet sizes rarely exceed 2^24.
How does IPv6 subnetting differ from IPv4?
Three key differences: (1) No broadcast address — IPv6 uses multicast for one-to-many delivery. Every address in a subnet is usable as a host. (2) Prefix arithmetic uses 128 bits instead of 32, requiring BigInt in most languages. (3) /31 and /127 are point-to-point equivalents with no "wasted" addresses; /64 is the normal host subnet; larger blocks (/48, /56) are allocated hierarchically.
What are the main IPv6 address types?
Global Unicast (2000::/3, publicly routable), Link-Local (fe80::/10, on-link only), Unique Local / ULA (fc00::/7, similar to IPv4 private), Multicast (ff00::/8, one-to-many), Loopback (::1/128), Documentation (2001:db8::/32, examples only). Link-local addresses are auto-configured on every IPv6 interface and used for neighbor discovery.
What is SLAAC and EUI-64?
Stateless Address Autoconfiguration: an IPv6 host derives its own address from the router advertisement prefix plus an interface identifier. Classic SLAAC uses EUI-64 — deriving the identifier from the MAC address (insert FF:FE in the middle, flip the universal/local bit). Modern stacks use RFC 4941 temporary addresses or RFC 7217 stable privacy addresses instead, because MAC-derived addresses expose device identity across networks.