BYTETOOLS

IPv6 ULA Generator

Generate a random RFC 4193 unique local IPv6 prefix (fd00::/8) with a 40-bit global ID, plus a table of /64 subnets ready to assign.

Your unique local prefix

Press the generate button to create a random RFC 4193 unique local address prefix.

What is the IPv6 ULA Generator?

A unique local address prefix is IPv6's answer to RFC 1918 private space: routable inside your own network, never routed on the public internet, and — because the 40-bit global ID is random — extremely unlikely to clash when two networks are merged.

  • Produces a compliant RFC 4193 fd00::/8 prefix with the L bit set
  • Choice of a CSPRNG global ID or the RFC's SHA-1 of EUI-64 plus NTP timestamp
  • Shows the hash input and full SHA-1 digest so the derivation is auditable
  • Lists up to 256 /64 subnets with their first and last addresses
  • Copy the /48 prefix or the whole subnet table in one click
  • Uses Web Crypto locally — the generated prefix is never transmitted

How to use the IPv6 ULA Generator

  1. 1

    Pick a generation method: random 40 bits, or the RFC 4193 SHA-1 recipe.

  2. 2

    If you chose the RFC method, enter a MAC address from the machine to seed the hash.

  3. 3

    Press the generate button to produce a fresh /48 prefix.

  4. 4

    Set how many /64 subnets to list, then copy the prefix or the subnet table.

About the IPv6 ULA Generator

A unique local address prefix is IPv6's answer to RFC 1918 private space: routable inside your own network, never routed on the public internet, and — because the 40-bit global ID is random — extremely unlikely to clash when two networks are merged. This generator produces one for you as an fd00::/8 prefix with a /48 global ID.

Two methods are offered. The default takes 40 bits straight from your browser's cryptographic random number generator. The second follows the RFC 4193 recipe literally: it hashes a 64-bit NTP-format timestamp concatenated with a modified EUI-64 identifier using SHA-1 and keeps the least significant 40 bits, showing you the hash input and digest so you can check the working.

The output includes a table of /64 subnet prefixes and their address ranges so you can assign one per site or per VLAN. Generation happens 100% locally in your browser using the Web Crypto API — the prefix never leaves your device.

Frequently asked questions

What is a unique local address in IPv6?

It is an address from fc00::/7 intended for use inside a single site or organisation, defined in RFC 4193. It is the closest IPv6 equivalent of 10.0.0.0/8 or 192.168.0.0/16 — reachable internally, filtered at the internet edge, and never allocated by a registry.

Why does every ULA prefix start with fd?

The block is fc00::/7, and the eighth bit is the L flag. RFC 4193 only defines the case where L is 1, which forces the second nibble to d — so every properly generated ULA prefix today begins fd. The fc00::/8 half is reserved for a future centrally assigned scheme.

Should I pick my own ULA prefix like fd00::/48?

No. The whole point of the 40-bit global ID is that it is random, so two networks that merge almost certainly will not collide. Hand-picked prefixes like fd00:: or fd12:3456:789a:: get chosen by thousands of people and defeat that guarantee.

How many subnets does a ULA /48 give me?

65,536 /64 subnets, since the subnet ID field is 16 bits wide. Each /64 then holds 2⁶⁴ addresses. That is deliberately generous — IPv6 planning is about having plenty of subnets rather than conserving host addresses.

Can unique local addresses reach the internet?

Not directly. ULA prefixes must be filtered at your border and are not routed globally. If internal hosts need internet access you either give them a global address alongside the ULA, or translate — though NAT66 is generally discouraged in favour of dual addressing.

Related tools