IPv6 Subnet Calculator

Calculate subnet sizes, host counts, and address classifications for IPv6 prefixes. Includes an EUI-64 interface identifier generator from MAC addresses.

Prefix & Subnet Size

Accepts compressed notation (::), full addresses, or just a /prefix length

Common Prefix Lengths

PrefixTypical Allocation/64 Subnets
/32ISP allocation from RIR2^32 ≈ 4.3 billion
/48Organisation / site65,536
/56Home ISP allocation256
/60Small site / home router16
/64Single subnet (required for SLAAC)1
/128Single host / loopback

EUI-64 Interface Identifier

Derive the 64-bit interface identifier that SLAAC uses to build an IPv6 address from a MAC address.

Published: April 2026 | Author: TriVolt Editorial Team

IPv6 Address Structure

An IPv6 address is 128 bits long, represented as eight groups of 16 bits each, written in hexadecimal and separated by colons:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Two compression rules defined in RFC 5952 allow shorter notation. First, leading zeros within any group may be omitted: 0db8 becomes db8. Second, one or more consecutive all-zero groups may be replaced by a double colon ::, but only once per address. Applying both rules to the example above yields:

2001:db8:85a3::8a2e:370:7334

IPv6 was designed to solve the fundamental exhaustion of the 32-bit IPv4 address space, which can accommodate roughly 4.3 billion unique addresses — a number that was insufficient even before the smartphone era. IPv6's 128-bit space provides 2128 ≈ 3.4 × 1038 addresses: roughly 340 undecillion. Even if every grain of sand on Earth were assigned an entire IPv4 internet, we would still have addresses to spare.

Beyond sheer size, IPv6 was redesigned to simplify routing (hierarchical allocation), eliminate the need for NAT (every device can have a globally unique address), improve security (IPsec is architecturally integrated), and streamline packet processing (fixed-length 40-byte header, no fragmentation by routers).

Prefix Allocation Hierarchy

IPv6 address space is allocated hierarchically, designed so that routing tables stay small and summarisation is efficient at every tier:

  • IANA: Manages the global IPv6 address pool. Allocates /12 blocks to the five Regional Internet Registries (RIRs).
  • RIRs (ARIN, RIPE NCC, APNIC, LACNIC, AFRINIC): Allocate /32 blocks (and sometimes larger) to ISPs and large organisations. Each /32 contains over four billion /64 subnets.
  • ISPs: Typically allocate a /48 to each business customer and a /56 or /64 to residential customers. Some ISPs are more generous with /48s for households.
  • Organisations: Receive a /48 and subdivide it internally into /56 (per department), /60 (per floor or VLAN), and /64 (per individual subnet).
  • Subnets: The /64 boundary is the atomic unit for end-user subnets. Each /64 can hold 264 ≈ 18.4 quintillion addresses.
  • Hosts: A /128 is a single host address — the IPv6 equivalent of a /32 in IPv4.

This hierarchy means a core internet router only needs to store routes at the /32 or /48 level, not individual /64 entries. The result is a much smaller global routing table than what NAT fragmentation has forced IPv4 into.

The /64 Boundary

The /64 prefix length holds a special status in IPv6 that has no equivalent in IPv4. It is theminimum prefix size required for Stateless Address Autoconfiguration (SLAAC). SLAAC (defined in RFC 4862) is the mechanism by which a host automatically generates its own IPv6 address by combining the /64 network prefix from a Router Advertisement with a 64-bit interface identifier it derives from its MAC address or generates randomly.

Because SLAAC depends on a 64-bit host portion, you must never use a prefix longer than /64 on a subnet that will contain SLAAC-configured hosts. This means that, unlike IPv4 where you might assign a /29 (8 addresses) to a small network to conserve space, in IPv6 you should assign a full /64 to every link — even a point-to-point link that will only ever have two addresses. The address space is vast enough that this represents no meaningful waste.

The sole exception is point-to-point links (router-to-router) where some operators use /127 prefixes (RFC 6164) to avoid the ping-pong attack, and /128 for loopback addresses. These links are explicitly not intended for SLAAC.

EUI-64: Deriving Host Addresses from MAC

The EUI-64 process (Extended Unique Identifier, 64-bit) is the algorithm that SLAAC uses to automatically generate a stable IPv6 interface identifier from a device's 48-bit MAC address:

  1. Split the MAC: Divide the 48-bit (6-byte) MAC address into the 24-bit OUI (Organizationally Unique Identifier — the vendor-assigned first three bytes) and the 24-bit NIC specific portion (last three bytes).
  2. Insert FFFE: Insert the two-byte sequence 0xFF, 0xFE between the OUI and the NIC portion. This expands the 48-bit address to 64 bits.
  3. Flip the U/L bit: Toggle bit 6 (counting from the most significant bit) of the first byte — this is the Universal/Local bit, which indicates whether the address was globally assigned (U/L = 0 in Ethernet, meaning universally administered) or locally assigned. By flipping this bit, EUI-64 produces a locally unique interface identifier in the IPv6 context (U/L = 1 in EUI-64 notation means the address is "universal" per RFC 4291's inverted convention).

Example: MAC 00:1A:2B:3C:4D:5E

  • After FFFE insertion: 00:1A:2B:FF:FE:3C:4D:5E
  • First byte 0x00 (binary 00000000) → flip bit 6 → 0x02 (binary 00000010)
  • EUI-64 IID: 021a:2bff:fe3c:4d5e
  • Full SLAAC address with prefix 2001:db8::/64: 2001:db8::021a:2bff:fe3c:4d5e

A consequence of embedding the MAC address is that the resulting IPv6 address uniquely identifies both the device and its manufacturer — raising privacy concerns. An observer can track a device as it moves between networks because its IPv6 address suffix remains constant. This led to RFC 4941 (Privacy Extensions) and RFC 8981 (Temporary Addresses).

DHCPv6 vs SLAAC vs Privacy Extensions

IPv6 hosts can acquire their addresses through three distinct mechanisms, each with different tradeoffs:

  • SLAAC (Stateless Address Autoconfiguration): The host generates its own address from the /64 prefix in a Router Advertisement, using EUI-64 or a random interface identifier. No server infrastructure required. The router does not maintain a list of assigned addresses. Advantage: zero configuration on the network side. Disadvantage: the network has no record of which host holds which address (complicates forensics and DNS registration).
  • DHCPv6 (Stateful): A DHCPv6 server assigns specific addresses from a pool, records the lease, and can populate DNS automatically. Closely mirrors how IPv4 DHCP works. Advantage: full address accountability and predictable assignments. Disadvantage: requires server infrastructure; adds failure point; does not provide default gateway information (the router still sends a Router Advertisement for that).
  • Privacy Extensions (RFC 8981): The host generates a random interface identifier that it rotates periodically (typically every few days). Outbound connections use the temporary address; the stable EUI-64 address remains for inbound connections. Modern operating systems (Windows Vista+, iOS, Android, Linux with NetworkManager) enable privacy extensions by default. Advantage: prevents long-term tracking. Disadvantage: temporary addresses complicate server setups where a consistent address is needed.

In enterprise networks, stateful DHCPv6 is usually preferred for servers and managed infrastructure, while SLAAC with privacy extensions is accepted for end-user devices. Dual-stack environments may run both IPv4 DHCP and IPv6 SLAAC/DHCPv6 in parallel.

Special Address Ranges

Several IPv6 address ranges are reserved for special purposes and should never appear in general routing tables or be assigned to regular hosts:

  • ::1/128 — Loopback: The IPv6 equivalent of 127.0.0.1. Every host has exactly one loopback address. Packets sent to ::1 never leave the host.
  • fe80::/10 — Link-Local Unicast: Automatically assigned to every IPv6-capable interface. Used for neighbor discovery (NDP), router discovery, and DHCPv6 on the local link. Not routable — a router will never forward a packet with a link-local source or destination address. Every interface must have at least one link-local address.
  • fc00::/7 — Unique Local Addresses (ULA): The IPv6 analogue of RFC 1918 private space (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). The fd00::/8 sub-range is used for locally administered ULA addresses. Unlike RFC 1918, ULA addresses include a randomly generated 40-bit Global ID to prevent collisions when merging two ULA networks.
  • ff00::/8 — Multicast: All IPv6 multicast addresses start with ff. IPv6 has no broadcast — all broadcast-like functions (ARP, DHCP discovery) are replaced by multicast. Important groups: ff02::1 (all nodes), ff02::2 (all routers),ff02::1:ff00:0/104 (solicited-node multicast for NDP).
  • 2001:db8::/32 — Documentation: Reserved by RFC 3849 for use in technical documentation, examples, and this very calculator. Never routable on the public internet.
  • 2001::/32 — Teredo: Used for the Teredo IPv6-in-UDP-over-IPv4 tunnelling mechanism (RFC 4380). Largely obsolete now that native IPv6 is widespread.
  • ::ffff:0:0/96 — IPv4-mapped addresses: Represent IPv4 addresses in an IPv6 socket API context (e.g., ::ffff:192.0.2.1 maps to 192.0.2.1). Used internally by dual-stack implementations, not routed on the wire.

Transition Mechanisms

Despite IPv6 being available since the late 1990s, global adoption has been gradual. Several transition mechanisms were developed to allow IPv6 to coexist with and eventually replace IPv4:

  • Dual-Stack: Every device and every router runs both IPv4 and IPv6 simultaneously. DNS returns both A (IPv4) and AAAA (IPv6) records, and modern operating systems prefer IPv6 when both are available (RFC 6724 default address selection). Dual-stack is the overwhelmingly dominant approach today and the recommended migration strategy.
  • 6to4 (RFC 3056): Tunnels IPv6 packets inside IPv4 packets using protocol 41. Uses the 2002::/16 prefix, embedding the IPv4 address in the IPv6 prefix. Deprecated in RFC 7526 due to reliability and security issues with anycast relay routers.
  • Teredo (RFC 4380): Tunnels IPv6 inside UDP/IPv4, allowing IPv6 connectivity even when behind a NAT. Used primarily by Windows systems. Now largely unnecessary as most consumer ISPs provide native IPv6.
  • 6rd (IPv6 Rapid Deployment, RFC 5969): An improved version of 6to4 where the ISP operates the relay router and encodes part of the IPv4 address into a provider-supplied /32 prefix. Used by some DSL providers as a migration step.
  • NAT64 / DNS64 (RFC 6146, RFC 6147): Allows IPv6-only clients to reach IPv4-only servers. The DNS64 server synthesises AAAA records for A-only domains (embedding the IPv4 address in a well-known /96 prefix), and NAT64 translates the resulting IPv6 packets to IPv4 at the network boundary. Used in IPv6-only mobile networks (some carriers have deployed IPv6-only 4G/5G with NAT64 for legacy compatibility).

The practical advice for most organisations is simple: deploy dual-stack. Run native IPv6 alongside IPv4 on all infrastructure, prefer IPv6 for all new deployments, and let the operating system's default address selection algorithm prefer IPv6. Avoid tunnelling mechanisms in production if at all possible — they add complexity, latency, and troubleshooting difficulty.

Related Calculators

View all Networking Calculators →

Disclaimer

This calculator performs address expansion and classification based on published IANA and IETF standards. Address type classification is based on the IANA IPv6 Special-Purpose Address Registry and may not reflect the most recent allocations. EUI-64 interface identifier generation follows RFC 4291. Privacy Extensions (RFC 8981) mean that real-world SLAAC addresses may differ from EUI-64 derived values. Always consult current IANA registries and your network vendor's documentation for authoritative allocation information.