Skip to content
Calcrivo

IPv6 ULA Calculator

Build an RFC 4193 unique local address prefix from a global ID and see how many subnets it yields.

Inputs

subnets

ULA Prefix

fda1:b2c3:d4e5::/48

Example /64 Subnet

fda1:b2c3:d4e5:0001::/64

/64 Subnets Available

65,536

Subnet Space Used

0.76%

Step by step

  1. Values used

    Global ID (10 hex digits) = a1b2c3d4e5; Subnet ID (hex) = 0001; Subnets needed = 500 subnets

  2. IPv6 ULA

    prefix = fd (fc00::/7 with the local bit set) + a 40-bit pseudo-random global ID, leaving 16 bits of subnet ID inside a /48.

  3. ULA Prefix

    = fda1:b2c3:d4e5::/48

  4. Example /64 Subnet

    = fda1:b2c3:d4e5:0001::/64

  5. /64 Subnets Available

    = 65,536

  6. Subnet Space Used

    = 0.76

How it works

A ULA prefix is fd followed by 40 randomly chosen bits, which produces a /48 that is almost certainly unique without registration. The next 16 bits give 65,536 /64 subnets for internal use. ULAs give stable internal addressing that survives an ISP change, but only if the global ID is genuinely random — sequential IDs collide the first time two networks merge.

Formula

IPv6 ULA

prefix = fd (fc00::/7 with the local bit set) + a 40-bit pseudo-random global ID, leaving 16 bits of subnet ID inside a /48.

fd
fc00::/7 with the L bit set to 1, the only ULA form in use
global ID
40 bits that must be randomly chosen, not sequential

Frequently Asked Questions

How is IPv6 ULA calculated?

prefix = fd (fc00::/7 with the local bit set) + a 40-bit pseudo-random global ID, leaving 16 bits of subnet ID inside a /48. A ULA prefix is fd followed by 40 randomly chosen bits, which produces a /48 that is almost certainly unique without registration. The next 16 bits give 65,536 /64 subnets for internal use.

Why does IPv6 ULA matter?

ULAs give stable internal addressing that survives an ISP change, but only if the global ID is genuinely random — sequential IDs collide the first time two networks merge.

What values do I need to enter?

This calculator takes 3 inputs: Global ID (10 hex digits), Subnet ID (hex), Subnets needed. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

You might also need