General dev

IPv6 ULA Generator

Runs locally

Use IPv6 ULA Generator

What it does

Get a private IPv6 prefix for a home lab, VPN or internal network that is very unlikely to clash with anyone else's, as RFC 4193 intends.

It runs entirely in your browser: nothing you enter is uploaded.

Example

Subnet 0010

Input
0010
Output (captured 2026-10-20)
/48 Prefix:    fd21:e2e0:24df::/48
/64 Subnet:    fd21:e2e0:24df:0010::/64
Host Example:  fd21:e2e0:24df:0010:56dc:eb87:6ce7:5b5c
Global ID:     21e2e024df
Subnet ID:     0010

A random fdXX:XXXX:XXXX::/48, its subnet fdXX:XXXX:XXXX:0010::/64 and a random host address inside it; the Global ID changes on every run.

FAQ

How is the prefix built?

fd (the locally assigned half of fc00::/7) plus a 40-bit Global ID from crypto.getRandomValues forms the /48, your 16-bit subnet ID forms the /64, and the example host part is 64 random bits. RFC 4193 suggests deriving the Global ID from a SHA-1 hash of the time and a machine identifier, but its requirement is a pseudo-random value, which this is.

What should I enter as the subnet ID?

Up to four hex digits, 0000 to ffff, which gives 65,536 possible /64 networks inside the /48; shorter values are padded with leading zeros. The field is not checked, so a non-hex value such as zz produces an invalid address.

Is anything sent or registered?

No. The prefix is generated in your browser and nothing is uploaded; unique local addresses need no registration.