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.

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.

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.

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

4. Loopback Address

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

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).

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.

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:

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:

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

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

Exit mobile version