Generate a random IPv6 ULA /48 prefix
All computation runs locally in your browser

Info
This tool uses the first method suggested by IETF using the current timestamp plus the MAC address, SHA1 hashed, and the lower 40 bits to generate your random ULA.
The IPv6 ULA Generator produces a random IPv6 Unique Local Address prefix you can use inside a private network. The main output is a prefix like . From that you can create up to distinct subnets (one per VLAN, site, or segment).
Who is this for?
Reliability note: this calculator follows an IETF-referenced approach that combines a timestamp and a MAC address, hashes with , and uses the lower bits to form the Global ID portion of a ULA prefix.
If you’re also working with IPv4 subnetting, our IPv4 Subnet Calculator can help you keep your dual-stack plans consistent.
Worked example (conceptual)
Suppose the tool reads a timestamp and a MAC address. It hashes the concatenated message and keeps the last bits.
The resulting prefix is formatted as , then the calculator shows:
Homelab addressing plan
Background: you want stable internal IPv6 addresses for servers, NAS, and IoT. Input: a router MAC like . Result: a ULA prefix .
How to use it: allocate per VLAN (e.g., users, servers, IoT). The number of possible subnets is .
Site-to-site VPN / overlay network
Background: you connect two locations with a VPN and want non-overlapping private IPv6. Input: the VPN gateway MAC. Result: a that you can subnet into per site.
Tip: if you also need IPv4 planning, pair this with our IPv4 Subnet Calculator.
Lab environment for testing
Background: a CI lab or staging cluster needs predictable addressing that won’t collide with other teams. Input: any stable MAC from your environment. Result: a unique internal prefix for your lab.
Application: document the prefix and use deterministic subnet numbering to avoid surprises.
Security segmentation
Background: you separate networks by trust level (guest, prod, mgmt). Input: a firewall MAC. Result: a ULA with plenty of room for segmented blocks.
How to apply it: write firewall rules per instead of per-host.
Documentation and team handoff
Background: you need a clean prefix to put in runbooks and diagrams. Input: a device MAC. Result: a shareable ULA plan you can copy-paste.
Use the Share button to send the calculator link to teammates when reviewing network changes.
You need a private IPv6 plan for a small org
Pick a ULA /48, then subnet by department or site with /64 blocks.
You want a stable IPv6 lab for development
Use a dedicated ULA prefix so internal services keep working even when upstream addressing changes.
You are merging two networks
Choose non-overlapping prefixes to reduce renumbering and routing confusion.
You are designing security zones
Reserve distinct /64 ranges per zone to simplify ACLs and monitoring.
You are setting up a VPN or overlay
Allocate /64 per tunnel or per site. Keep it consistent across documentation.
You are documenting infrastructure
Copy the ULA and example blocks directly into diagrams or runbooks.
When it may not be appropriate
If you need publicly routable IPv6 for the Internet, you should use a prefix delegated by your ISP or RIR. ULAs are meant for internal routing and private connectivity.
If you want to sanity-check other pieces of your network tooling, you may also find our MAC address lookup useful for confirming OUIs when you’re inventorying devices.
The generator uses a straightforward “hash then format” approach. In words: concatenate the timestamp and the MAC string, compute a SHA1 hash, then take the last 40 bits as the Global ID.
Because the Global ID is bits, the number of possible prefixes is (about one trillion). That makes accidental collisions very unlikely in practice.
Output formatting
The tool prints the and two example ranges:
Key terms
: Unique Local Address space intended for internal routing.
: common “site prefix” size used to create many subnets.
: standard LAN subnet size in IPv6 for SLAAC and typical host addressing.
A practical way to think about it: choose one stable for your environment, then never reuse it elsewhere. Inside that, assign blocks for everything you might want to route.
No. ULAs are intended for internal routing. For public reachability, use global unicast prefixes delegated by your ISP or RIR.
A is a convenient site prefix, and IPv6 networks typically use for LAN subnets. From a single , you can allocate different subnets.
Not necessarily. The method uses the current timestamp, so generating again later can produce a different result even with the same MAC. If you need a stable prefix, generate once and store it in your configuration.
A MAC address can be considered identifying device information in many contexts. Use the Share option without results if you don’t want the MAC embedded.
The input accepts common formats like or . If you get an “Invalid MAC address” message, adjust separators or ensure the bytes are complete.
Important notes
For deeper background, these references are a good place to start:
Use a simple chronometer (stopwatch) to track elapsed time down to milliseconds. Runs locally in your browser.
Normalize email addresses to a standard format for easier comparison. Useful for deduplication and data cleaning. Runs locally in your browser.
Estimate the time needed to consume a total amount at a constant rate, and get an expected end time. Runs locally in your browser.
Parse and decode your JSON Web Token (JWT) and display its content. All computation runs locally in your browser.
Know which file extensions are associated to a MIME type, and which MIME type is associated to a file extension. Includes a full MIME types table.
Generate random Lorem Ipsum placeholder text with customizable paragraphs, sentences, and word counts. Runs locally in your browser.