Compare IPv6 Address Types

Compare IPv6 address types

IPv4’s roughly 4.3 billion addresses seemed limitless in the 1980s — but the explosion of Internet-connected devices made address exhaustion inevitable. IPv6 was designed to solve this problem permanently, offering a staggering 340 undecillion (3.4 × 10^38) addresses. But IPv6 isn’t just “IPv4 with more digits” — it introduces entirely new address types, each with a specific purpose.

This article compares every major IPv6 address type from first principles, explains how to recognize them, and shows practical configuration and verification examples.

IPv6 Address Format Refresher

An IPv6 address is 128 bits long, written as eight groups of four hexadecimal digits, separated by colons:

2001:0db8:0000:0000:0000:ff00:0042:8329

Two shortening rules apply:

  1. Leading zeros within a group can be omitted: 0db8 → db8
  2. One (and only one) consecutive run of all-zero groups can be replaced with ::

Applying both rules:

2001:db8::ff00:42:8329

The Major IPv6 Address Types

IPv6 defines three fundamental categories of addresses, replacing IPv4’s concept of unicast/broadcast/multicast with a cleaner model:

CategoryPurpose
UnicastIdentifies a single, specific interface — packets go to exactly one destination
MulticastIdentifies a group of interfaces — packets go to all members of the group
AnycastIdentifies a group of interfaces, but packets go to only the nearest one

Notably, IPv6 has no broadcast address at all — multicast (and specifically the all-nodes multicast address) replaces broadcast’s function entirely.

Unicast Address Types

1. Global Unicast Address (GUA)

The IPv6 equivalent of a public IPv4 address — globally unique and routable across the entire Internet.

  • Range: Begins with 2000::/3 (in practice, most assigned GUAs today start with 2xxx or 3xxx).
  • Structure: Global Routing Prefix (assigned by ISP/RIR) + Subnet ID + Interface ID (typically /64 total).

Example: 2001:db8:acad:1::10/64

2. Link-Local Address (LLA)

Automatically self-assigned on every IPv6-enabled interface, used only for communication with devices on the same physical/local link — never routed beyond that link.

  • Range: fe80::/10
  • Automatically generated using either EUI-64 (derived from the MAC address) or a randomized interface identifier (modern default on most operating systems for privacy).
  • Required for protocol operation — link-local addresses are used for Neighbor Discovery Protocol (NDP), which handles the IPv6 equivalent of ARP, router discovery, and more. Every IPv6 interface has one, even if no other address is configured.

Example: fe80::1a2b:3c4d:5e6f:7890

3. Unique Local Address (ULA)

The IPv6 equivalent of IPv4’s private addressing (RFC 1918) — used for internal communication that should never be routed on the public Internet.

  • Range: fc00::/7 (in practice, almost always seen as fd00::/8 since the “locally assigned” flag bit is typically set to 1)
  • Not guaranteed globally unique like GUAs, but designed to have a very low probability of collision even between organizations, due to a pseudo-random 40-bit Global ID.
  • Commonly used for internal-only addressing, dual-stack transition strategies, or environments not yet ready for public GUA deployment.

Example: fd12:3456:789a:1::10

4. Loopback Address

The IPv6 equivalent of 127.0.0.1 — refers to the device itself.

  • Address: ::1/128 (exactly one address, unlike IPv4’s entire 127.0.0.0/8 range)

5. Unspecified Address

Represents the absence of an address — used, for example, as a source address before a device has obtained a real one (similar in spirit to IPv4’s 0.0.0.0).

  • Address: ::/128

Multicast Addresses

IPv6 multicast addresses always begin with the prefix ff00::/8. The second hex digit after ff indicates the scope (how far the multicast packet can travel):

PrefixScopeMeaning
ff02::/16Link-localStays on the local link only
ff05::/16Site-localCan travel within a site/organization
ff0e::/16GlobalCan be routed across the entire Internet

Well-Known Multicast Addresses (Critical for CCNA)

AddressPurpose
ff02::1All-nodes multicast (all IPv6 devices on the link) — replaces IPv4 broadcast in most contexts
ff02::2All-routers multicast (all IPv6 routers on the link)
ff02::1:ffXX:XXXXSolicited-node multicast — used by Neighbor Discovery Protocol to resolve link-layer addresses (replacing ARP)

Anycast Addresses

An anycast address is assigned to multiple interfaces (often on multiple different devices), and the network automatically routes traffic to the topologically nearest one, based on the normal routing table’s metric/cost calculations.

  • Anycast addresses are not a separate prefix range — they are simply regular unicast addresses that have been deliberately assigned to more than one interface.
  • Commonly used for services like DNS root servers, CDN load-balancing, and redundant service endpoints, where any available instance can serve the request equally well.
graph TB
    Client["Client"] -->|"Requests anycast address 2001:db8::53"| Router["Router (chooses nearest path)"]
    Router --> ServerA["DNS Server A (Region 1)"]
    Router -.->|"Not chosen - farther"| ServerB["DNS Server B (Region 2)"]

Comparison Table: All IPv6 Address Types

Address TypePrefix/RangeScopeExampleAnalogous IPv4 Concept
Global Unicast (GUA)2000::/3Global (Internet-routable)2001:db8:acad:1::10Public IP address
Link-Local (LLA)fe80::/10Local link onlyfe80::1a2b:3c4dNo true equivalent (closest: APIPA 169.254.x.x)
Unique Local (ULA)fc00::/7 (usually fd00::/8)Private/internal onlyfd12:3456:789a::1Private IP (RFC 1918)
Loopback::1/128This device only::1127.0.0.1
Unspecified::/128N/A (absence of address)::0.0.0.0
Multicastff00::/8Varies by scope byteff02::1Multicast (224.0.0.0/4)
Anycast(uses unicast ranges)Nearest instance(any GUA/ULA assigned to multiple devices)No true equivalent
BroadcastDoes not exist in IPv6N/AN/A255.255.255.255

How IPv6 Addresses Are Assigned

Method 1: Stateless Address Autoconfiguration (SLAAC)

A device automatically generates its own GUA/ULA using:

  1. The prefix advertised by a local router (via Router Advertisement messages)
  2. An interface identifier — either derived from the MAC address using EUI-64, or a randomly generated value (privacy extensions, RFC 4941 / RFC 8981, now the default on most modern OSes)

Method 2: DHCPv6

A DHCPv6 server assigns addresses (and/or just DNS/other options), similar in concept to IPv4 DHCP, but with important distinctions:

  • Stateful DHCPv6 assigns the full address.
  • Stateless DHCPv6 only provides additional options (like DNS servers) while the address itself comes from SLAAC.

Method 3: Static Configuration

Manually configuring the address, exactly like static IPv4 configuration.

Cisco Configuration Examples

Enabling IPv6 and Assigning a Static GUA

Router(config)# ipv6 unicast-routing
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:db8:acad:1::1/64
Router(config-if)# no shutdown

Enabling SLAAC-Based Addressing (EUI-64) on an Interface

Router(config)# interface GigabitEthernet0/1
Router(config-if)# ipv6 address 2001:db8:acad:2::/64 eui-64

This tells the router to use the network prefix 2001:db8:acad:2::/64 combined with an interface identifier automatically derived from the interface’s MAC address.

Manually Assigning a Link-Local Address (Optional — Normally Automatic)

Router(config-if)# ipv6 address fe80::1 link-local

Verification Commands

Router# show ipv6 interface brief
GigabitEthernet0/0    [up/up]
    fe80::1
    2001:DB8:ACAD:1::1

Router# show ipv6 interface GigabitEthernet0/0
GigabitEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::1
  Global unicast address(es):
    2001:DB8:ACAD:1::1, subnet is 2001:DB8:ACAD:1::/64
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FF00:1

Notice this single interface shows THREE address types simultaneously:

  • Its link-local address (automatic, always present)
  • Its global unicast address (statically or SLAAC-assigned)
  • Several multicast group memberships it has automatically joined (all-nodes, all-routers, and its own solicited-node multicast address)

Linux Verification Example

$ ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet6 2001:db8:acad:1::10/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::1a2b:3c4d:5e6f:7890/64 scope link

Python Example: Classifying IPv6 Addresses Programmatically

import ipaddress

addresses = [
    "2001:db8:acad:1::10",
    "fe80::1a2b:3c4d",
    "fd12:3456:789a::1",
    "ff02::1",
    "::1",
]

for addr_str in addresses:
    addr = ipaddress.ip_address(addr_str)
    if addr.is_loopback:
        category = "Loopback"
    elif addr.is_link_local:
        category = "Link-Local"
    elif addr.is_multicast:
        category = "Multicast"
    elif addr.is_private:
        category = "Unique Local (ULA) / Private"
    else:
        category = "Global Unicast (GUA)"
    print(f"{addr_str:30} -> {category}")

Output:

2001:db8:acad:1::10           -> Global Unicast (GUA)
fe80::1a2b:3c4d                -> Link-Local
fd12:3456:789a::1              -> Unique Local (ULA) / Private
ff02::1                        -> Multicast
::1                            -> Loopback

Best Practices

  1. Never disable link-local addresses. They are required for core IPv6 operation (Neighbor Discovery, router advertisements) even if you never intend to use IPv6 for actual application traffic.
  2. Use ULA for internal-only IPv6 addressing in environments not yet ready for public GUA deployment, but plan a real GUA strategy for eventual Internet routing.
  3. Prefer SLAAC with privacy extensions for client devices to reduce long-term address trackability; use static addressing or DHCPv6 for servers and infrastructure devices that need consistent, predictable addresses.
  4. Document your IPv6 addressing plan just as rigorously as IPv4 — the larger address space makes it tempting to be sloppy, but consistent subnetting (typically /64 per LAN segment) is still essential for manageability.

Troubleshooting Tips

  • No IPv6 connectivity at all? Confirm ipv6 unicast-routing is enabled globally on Cisco routers — without it, the router won’t forward IPv6 packets between interfaces even if addresses are configured.
  • Link-local communication works but GUA doesn’t? Check for a missing or incorrect Router Advertisement (RA) configuration, or a missing static/DHCPv6-assigned GUA.
  • Address looks wrong/unexpected? Check whether EUI-64 or a randomized privacy-extension address was used — this can cause the same device to show different addresses at different times if privacy extensions are enabled.

Summary

IPv6 replaces IPv4’s public/private/broadcast/multicast model with a cleaner set of address types: Global Unicast (public, Internet-routable), Link-Local (mandatory, local-link only), Unique Local (private, internal-only), Multicast (group communication, scoped by prefix), and Anycast (nearest-instance delivery). Notably, broadcast no longer exists — multicast fully replaces its function. Understanding which address type serves which purpose is essential before you can correctly configure or troubleshoot any IPv6 network.

Further Reading

Total
2
Shares

Leave a Reply

Previous Post
How to Configure and verify IPv6 addressing and prefix

How to Configure and Verify IPv6 Addressing and Prefix

Next Post
How to verify IP parameters for Client OS (Windows, Mac OS, Linux)

How to Verify IP Parameters for Client OS (Windows, macOS, Linux)

Related Posts