Overview
Generates an IPv6 Unique Local Address prefix under RFC 4193: an fd00::/8 prefix with a random 40-bit Global ID, displayed as a /48 ULA prefix and a routed /64 subnet with an editable 16-bit Subnet ID. Generated entirely with the browser's random generator, with no lookup and no network call.
How It Works
The tool loads with a random Global ID already in place. Press Generate Random ID for a new one, or type your own 40-bit hexadecimal value - input is normalized to lowercase hex and hard-capped at ten characters. The Subnet ID field takes up to four hex digits. Below, two cards show the resulting fd-prefixed /48 and the /64 subnet built from your Subnet ID, each click-to-copy.
Step-by-Step Usage Guide
- Press Generate Random ID to draw a fresh 40-bit Global ID, or paste ten hex digits if you have a specific one to use.
- Set the Subnet ID - four hex digits - to the segment number your addressing plan assigns to this network.
- Copy the /48 prefix for your routing domain, or the /64 for the specific subnet you are provisioning.
- Record the Global ID in your addressing documentation; unlike IPv4 RFC 1918 space, ULA Global IDs are meant to be globally unique to your organization.
Technical Specifications & Standards
RFC 4193 defines Unique Local Addresses with the format: 8 bits of prefix (fc00::/7 with the L bit set to 1 gives fd00::/8), a 40-bit Global ID, a 16-bit Subnet ID and a 64-bit interface identifier. The Global ID should be pseudo-randomly generated so independent sites are very unlikely to collide - the RFC describes an algorithm involving SHA-1 over a MAC address, timestamp and key, but its stated goal is collision resistance, not secrecy; this tool draws the five bytes directly from crypto.getRandomValues, which satisfies the statistical intent without reproducing the RFC's specific recipe. The L bit explains the fd prefix you see: locally assigned ULAs live in fd00::/8, while fc00::/8 with L=0 is reserved. Subnet IDs segment the /48 into 65,536 potential /64s, and the tool leaves the Subnet ID editable at four hex digits so you can plan a numbering scheme (0001 for the first VLAN, 0002 for the next, and so on). ULAs are not routable on the public internet - that is the design - and the tool's footer says exactly that: they suit private clusters, lab networks and VPN overlays.
Targeted Use Cases
- Allocating a private IPv6 prefix for a homelab, container network or VPN overlay that will never touch the public internet.
- Planning multi-site IPv6 addressing where each site needs its own collision-resistant /48.
- Teaching RFC 4193 structure: prefix, L bit, Global ID, Subnet ID, and how the /48 decomposes into /64s.
- Generating consistent prefixes for infrastructure-as-code templates without hand-picking hex strings.
Notes & Gotchas
- Let the generator pick the Global ID rather than choosing memorable hex - the collision resistance of ULA space depends on randomness.
- Use one /48 per site and number Subnet IDs systematically, so the /64s inside a site are trivially predictable.
- Do not expect ULA addresses to be routable on the public internet; pair them with a globally routable prefix where outside connectivity matters.
- Document the Global ID once you assign it. Unlike a DHCP lease, this prefix is yours to keep for as long as the network exists.
Frequently Asked Questions
What is the difference between fc00::/8 and fd00::/8?
The eighth bit of the address, called the L bit, distinguishes them: RFC 4193 sets it to 1 for locally assigned ULAs, producing fd00::/8, and reserves fc00::/8 (L=0) for a centralized assignment mechanism that never materialized. Everything generated here begins with fd.
Are these addresses routable on the internet?
No. RFC 4193 defines ULAs as unique but not globally routable - border routers are expected to filter them. That is the point: you get global-uniqueness semantics for safe internal use without consuming public address space.
Does the Global ID follow the RFC 4193 algorithm exactly?
The RFC describes an SHA-1-based construction over a MAC, timestamp and key. This tool instead draws 40 bits from the browser's cryptographic random generator, which achieves the RFC's actual goal - making collisions between independently generated IDs vanishingly unlikely - without the letter of the recipe.
Can I generate the same prefix twice?
Effectively no. A 40-bit random Global ID gives collision odds on the order of one in a trillion even after many generations. If you deliberately retype the same ten hex digits, of course, you get the same prefix back.