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:8329Two shortening rules apply:
- Leading zeros within a group can be omitted:
0db8→db8 - One (and only one) consecutive run of all-zero groups can be replaced with
::
Applying both rules:
2001:db8::ff00:42:8329The Major IPv6 Address Types
IPv6 defines three fundamental categories of addresses, replacing IPv4’s concept of unicast/broadcast/multicast with a cleaner model:
| Category | Purpose |
|---|---|
| Unicast | Identifies a single, specific interface — packets go to exactly one destination |
| Multicast | Identifies a group of interfaces — packets go to all members of the group |
| Anycast | Identifies 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 with2xxxor3xxx). - 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 asfd00::/8since 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):
| Prefix | Scope | Meaning |
|---|---|---|
ff02::/16 | Link-local | Stays on the local link only |
ff05::/16 | Site-local | Can travel within a site/organization |
ff0e::/16 | Global | Can be routed across the entire Internet |
Well-Known Multicast Addresses (Critical for CCNA)
| Address | Purpose |
|---|---|
ff02::1 | All-nodes multicast (all IPv6 devices on the link) — replaces IPv4 broadcast in most contexts |
ff02::2 | All-routers multicast (all IPv6 routers on the link) |
ff02::1:ffXX:XXXX | Solicited-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 Type | Prefix/Range | Scope | Example | Analogous IPv4 Concept |
|---|---|---|---|---|
| Global Unicast (GUA) | 2000::/3 | Global (Internet-routable) | 2001:db8:acad:1::10 | Public IP address |
| Link-Local (LLA) | fe80::/10 | Local link only | fe80::1a2b:3c4d | No true equivalent (closest: APIPA 169.254.x.x) |
| Unique Local (ULA) | fc00::/7 (usually fd00::/8) | Private/internal only | fd12:3456:789a::1 | Private IP (RFC 1918) |
| Loopback | ::1/128 | This device only | ::1 | 127.0.0.1 |
| Unspecified | ::/128 | N/A (absence of address) | :: | 0.0.0.0 |
| Multicast | ff00::/8 | Varies by scope byte | ff02::1 | Multicast (224.0.0.0/4) |
| Anycast | (uses unicast ranges) | Nearest instance | (any GUA/ULA assigned to multiple devices) | No true equivalent |
| Broadcast | Does not exist in IPv6 | N/A | N/A | 255.255.255.255 |
How IPv6 Addresses Are Assigned
Method 1: Stateless Address Autoconfiguration (SLAAC)
A device automatically generates its own GUA/ULA using:
- The prefix advertised by a local router (via Router Advertisement messages)
- 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 shutdownEnabling SLAAC-Based Addressing (EUI-64) on an Interface
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ipv6 address 2001:db8:acad:2::/64 eui-64This 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-localVerification 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:1Notice 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 linkPython 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 -> LoopbackBest Practices
- 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.
- 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.
- 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.
- 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-routingis 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.