Skip to content
UniKit

IPv6 ULA prefix generator

Generate RFC 4193 IPv6 unique local address prefixes in fd00::/8 with a random 40-bit Global ID, /48, /56 or /64 lengths and ready-to-use /64 subnet examples — all local.

Runs in your browserEvery computation happens in your browser — your data never leaves this device.

This is an example prefix — click Generate to create a fresh one with the browser crypto RNG

Generated ULA prefixes
fd12:3456:789a::/48

Randomness comes from crypto.getRandomValues and never leaves your browser.

What this tool does

  • Plan IPv6 addressing for a home lab, internal network or Docker environment with an RFC 4193 ULA prefix that can never clash with the public internet.
  • Stand up an environment that needs a stable internal prefix but cannot get a public allocation: generate a random Global ID and get a /48 or /56 inside fd00::/8.
  • Carve up VLANs or sites: enable the /64 subnet examples and get a consecutive list of /64s to hand out to each segment.
  • Replace hand-written prefixes like fd00::1/48, which tend to collide with other people’s choices, with a prefix built from a 40-bit random Global ID.

Example

Input

Prefix length /48, one prefix, Global ID from 40 random bits (example value 0x123456789a)

Output

fd12:3456:789a::/48

With subnet examples enabled this prefix splits into fd12:3456:789a::/64, fd12:3456:789a:1::/64, fd12:3456:789a:2::/64 and so on. When you click Generate the Global ID comes from the browser crypto.getRandomValues API, so every run differs.

Frequently asked questions

Can ULA addresses reach the public internet?

No, and they are not meant to. fd00::/8 is the unique local address block defined by RFC 4193 and public routers drop it. Its purpose is stable internal addressing when you have no public prefix; outbound traffic still needs NAT or a proxy.

How are the prefix and Global ID built?

The first eight bits are fixed at 1111 1101 (that is, fd) and the following 40 bits are a randomly generated Global ID, which together form a /48 inside fd00::/8. Choosing /56 or /64 keeps the same random bits but shortens the prefix.

Could my generated prefix collide with someone else’s?

Extremely unlikely. The 40-bit space holds about 1.1 trillion values, so even generating tens of thousands of prefixes leaves the collision probability far below one percent. The real risk is copying the demo prefix fd12:3456:789a::/48 into production — that one is a fixed example.

How are the subnet examples split?

A /48 is split at the 56-bit boundary (eight extra subnet bits) into consecutive /64s: the first is xxxx:xxxx:xxxx::/64, the second xxxx:xxxx:xxxx:1::/64, and so on. With a /64 prefix the examples simply repeat the same address.

Is the randomness uploaded?

No. The random bytes come from the browser crypto.getRandomValues API and are generated locally; the page makes no request and the result is not stored. It works with the network disconnected.

Keywords:ipv6ula唯一本地地址unique local addressrfc 4193fd00::/8局域网地址子网划分

Related tools