IPv6 ULA Generator

Generate RFC4193-like Unique Local Address prefixes.

About This Tool

The IPv6 ULA Generator creates RFC 4193 Unique Local Addresses (ULA), which are the IPv6 equivalent of private IPv4 addresses (RFC 1918). ULAs use the fd00::/8 prefix and include a 40-bit pseudo-random Global ID to ensure statistical uniqueness across organizations. Unlike IPv4 private addresses that are identical across all organizations (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), each ULA prefix is probabilistically unique, reducing conflicts when merging networks or establishing VPNs. This tool generates cryptographically random ULA prefixes suitable for internal networks, development environments, and any scenario requiring non-globally-routable IPv6 addressing with collision avoidance.

How to Use

  1. Specify how many ULA prefixes to generate (1-20)
  2. Optionally enter custom subnet IDs (comma-separated, e.g., "1, 2, abcd")
  3. If subnet IDs are provided, each generated prefix will include those subnets
  4. If omitted, subnet 0000 is used by default
  5. Click "Generate" to create ULA prefixes
  6. Each result shows the complete /64 network prefix
  7. Global ID and Subnet ID are displayed separately for reference
  8. Save generated prefixes for your network documentation

Features

  • Generates RFC 4193 compliant ULA prefixes (fd00::/8)
  • Cryptographically random 40-bit Global ID
  • Custom subnet ID support (0000-ffff)
  • Batch generation (up to 20 prefixes)
  • Multiple subnets per Global ID
  • Displays /48 and /64 prefix formats
  • Ensures statistical uniqueness across generations
  • Clear display of Global ID and Subnet ID components
  • Suitable for production network planning

Common Use Cases

  • Designing private IPv6 networks for internal infrastructure
  • Creating isolated development and testing environments
  • Planning IPv6 addressing for organizations without provider-assigned prefixes
  • Establishing VPN networks with minimal collision risk
  • Lab environments and training networks
  • IoT device networks requiring local-only communication
  • Kubernetes cluster internal networking
  • Multi-site enterprise networks with site-specific subnets
  • Replacing IPv4 RFC 1918 addresses in dual-stack migrations
  • Documentation and network architecture diagrams

Technical Details

Unique Local Addresses (RFC 4193) are IPv6 addresses intended for local communications within a site or between a limited set of sites. They are not globally routable on the public IPv6 Internet.

ULA Address Structure:

  • Prefix: fd00::/8 (fd = 1111 1101 in binary, L bit set to 1)
  • Global ID: 40 bits (pseudo-randomly generated)
  • Subnet ID: 16 bits (for internal subnet hierarchy)
  • Interface ID: 64 bits (host identifier)
  • Total: 128 bits

Format Breakdown:

  • Bits 0-7: fd (11111101) - ULA prefix with L-bit set
  • Bits 8-47: Global ID (40 bits, randomly generated)
  • Bits 48-63: Subnet ID (16 bits, organizationally assigned)
  • Bits 64-127: Interface ID (64 bits, host portion)

Example ULA Address:

  • Full prefix: fd12:3456:789a:bcde::/64
  • Prefix: fd
  • Global ID: 12:3456:789a (40 bits)
  • Subnet ID: bcde (16 bits)
  • /48 prefix: fd12:3456:789a::/48 (organization-wide)
  • /64 prefix: fd12:3456:789a:bcde::/64 (specific subnet)

Why Random Global ID?

The 40-bit pseudo-random Global ID provides 2^40 (about 1.1 trillion) possible values, making accidental collisions extremely unlikely when two organizations merge or establish VPN connections. This is a major improvement over IPv4 where 10.0.0.0/8 conflicts are common.

RFC 4193 Generation Algorithm:

  1. Obtain the current time (NTP timestamp)
  2. Obtain a unique identifier (MAC address or system ID)
  3. Concatenate time + identifier
  4. Compute SHA-1 hash of the concatenated value
  5. Take the least significant 40 bits of the hash as Global ID

ULA vs. IPv4 Private Addresses:

  • IPv4: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 (identical everywhere)
  • IPv6 ULA: fd00::/8 with unique Global ID per organization
  • ULA collision probability: ~1 in 1 trillion for random selection
  • IPv4 collision probability: 100% (guaranteed conflict)

Routing and Reachability:

  • ULAs are not advertised to the global IPv6 Internet
  • ISPs and public routers filter ULA prefixes
  • ULAs are routable within an organization or VPN
  • Hosts can have both ULA and Global Unicast addresses simultaneously

ULA Best Practices:

  • Generate once and reuse across your entire organization
  • Document your Global ID for future reference
  • Consider registering at ula-central.com (optional, informal registry)
  • Use consistent Subnet IDs across your network architecture
  • Plan subnet hierarchy before deploying (Subnet ID provides 65,536 subnets)

When to Use ULA:

  • No global IPv6 prefix available: ISP doesn't provide IPv6
  • Stable internal addressing: Addresses that shouldn't change if ISP changes
  • VPNs and inter-site links: Private connectivity between locations
  • Isolated networks: Air-gapped or security-sensitive environments
  • DNS split-horizon: Different addresses for internal vs. external clients

ULA + Global Unicast Dual Addressing:

Many organizations assign both ULA and Global Unicast addresses to hosts. ULA provides stable internal addresses while Global Unicast enables Internet access. Applications can use ULA for local communication (reducing latency and bypassing firewalls) and Global addresses for external services.

fc00::/8 vs. fd00::/8:

  • fc00::/8: Centrally assigned (L-bit = 0) - never implemented, avoid using
  • fd00::/8: Locally assigned (L-bit = 1) - RFC 4193 standard, use this
  • Only fd00::/8 should be generated and used in practice