Expand IPv6 addresses to eight full groups or shorten zero runs with ::
IPv6 ULA Generator
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
0010/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: 0010A 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.