Skip to main content

IPv6 ULA Generator

Generate a random IPv6 Unique Local Address (ULA) per RFC 4193 — an fd00::/8 prefix with a random 40-bit Global ID and your chosen 16-bit Subnet ID, as both a /64 address and the /48 site prefix.

Input

16-bit subnet, 1–4 hex digits (0000–ffff). The 40-bit Global ID above it is generated randomly on each run.

Output

A /64 network: fd + random Global ID + your Subnet ID, with a zero interface identifier.

The /48 site prefix (fd + Global ID) — carve your own 65,536 subnets out of it.

Was this helpful?

Guides

What this tool does

It generates an IPv6 Unique Local Address (ULA) as described by RFC 4193. ULAs are the IPv6 equivalent of private IPv4 ranges like 10.0.0.0/8 or 192.168.0.0/16: routable inside your own network or between sites you control, but never advertised on the public internet. You get back a ready-to-use /64 address and the /48 site prefix it belongs to.

Anatomy of a ULA

A locally-assigned ULA is built from four parts, 128 bits in total:

  • Prefix fd (8 bits). ULAs live in fc00::/7. The 8th bit (the "L" bit) is set to 1 for locally-assigned prefixes, which fixes the first byte at fd — so every address this tool produces starts fd00::/8.
  • Global ID (40 bits). A pseudo-random value that makes your prefix statistically unique, so two networks that merge later almost certainly won't clash. This tool draws 40 fresh random bits for it on every run.
  • Subnet ID (16 bits). Your own subnet number within the site — from 0000 to ffff, giving you 65,536 subnets. This is the one value you control here.
  • Interface ID (64 bits). Identifies a host on the subnet. The generated address leaves this as zero, so what you get is a /64 network prefix (…::/64) ready for hosts to fill in.

The first 48 bits (fd + Global ID) are the site prefix, shown separately as the /48. Assign yourself one /48 and you can number every subnet in your organisation underneath it.

How to use it

Enter a Subnet ID (1–4 hexadecimal digits — the default 0001 is fine for a first subnet) and click Generate. Each click produces a new random Global ID, so click again for a different prefix. Copy the /48 to record as your site's block, then use /64s beneath it — one per VLAN or segment — by varying the Subnet ID.

About the Global ID and randomness

RFC 4193 §3.2.2 describes deriving the Global ID from a SHA-1 hash of a timestamp and an EUI-64 identifier. That algorithm exists purely to spread assignments evenly; a directly random 40-bit value reaches the same goal, which is why many real-world ULA generators (and this one) simply use randomness. Pick a Global ID once and keep it — it's meant to be stable for the life of your network.

Privacy

Everything is generated in your browser with Math.random(). No address is sent to a server, logged, or stored, and nothing links a generated prefix back to you. Because Math.random() is not a cryptographic source, treat these prefixes as private-network identifiers, not secrets.

ipv6ularfc 4193networkunique local addresssubnetgenerator

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.