IPv6 · · 4 min read

IPv6 Address Examples: Every Type, Worked Through

IPv6 address examples feature image, PingLabz

IPv6 addresses look intimidating until you have seen enough real ones to recognize the patterns. The first hextet usually tells you everything: what kind of address it is and what it is for. This post is a worked reference - one concrete example of every IPv6 address type you will actually encounter, with the address broken down field by field, so the patterns stick.

For the cluster overview, see the IPv6 complete guide.

The format, briefly

An IPv6 address is 128 bits, written as eight groups of four hex digits (hextets) separated by colons. Two compression rules make them shorter:

  • Drop leading zeros in any hextet: 0db8 becomes db8, 0000 becomes 0.
  • Replace one run of all-zero hextets with :: - but only once per address, otherwise it would be ambiguous.

So 2001:0db8:0000:0000:0000:0000:0000:0001 compresses to 2001:db8::1. Every example below is shown compressed.

Global unicast - the public, routable address

A global unicast address (GUA) is the IPv6 equivalent of a public IPv4 address: globally unique, internet-routable. Current GUAs are assigned out of 2000::/3, which in practice means an address starting with 2 or 3.

Worked example: 2001:db8:acad:10::5

Global routing prefix
Bits/48
Value here2001:db8:acad
Meaning
Assigned to the organization by an ISP/RIR
Subnet ID
Bits16
Value here0010
Meaning
Which subnet inside the org - here subnet 10
Interface ID
Bits/64
Value here::5
Meaning
The host portion - identifies the device

The almost-universal split is a /64 for every subnet: 64 bits of network, 64 bits of interface ID. Note 2001:db8::/32 is the documentation range (reserved for examples like this one), so you will see it constantly in guides and never in the wild.

Every IPv6-enabled interface automatically has a link-local address. It is valid only on its own link, is never routed off that link, and is what neighbor discovery and routing-protocol hellos use. Link-local addresses come from fe80::/10, so they start with fe80.

Worked example: fe80::1ff:fe23:4567:890a

The fe80 prefix is the giveaway. The interface ID is often EUI-64 derived (you can spot the tell-tale fffe inserted in the middle) or randomized. Because link-local addresses are not unique beyond the link, you often must specify which interface you mean - ping fe80::1%GigabitEthernet0/0.

Unique local - private addressing

Unique local addresses (ULAs) are the IPv6 counterpart to RFC 1918 private IPv4 space. They are routable inside an organization but not on the global internet. ULAs come from fc00::/7, and in practice you see fd00::/8 because the locally-assigned bit is set.

Worked example: fd12:3456:789a:1::20

Prefix
Valuefd
MeaningULA, locally assigned
Global ID
Value12:3456:789a
Meaning
A 40-bit pseudo-random value - generate it, do not pick a tidy one
Subnet ID
Value0001
MeaningSubnet 1
Interface ID
Value::20
MeaningThe host

Multicast - one-to-many

IPv6 has no broadcast. Its job is done by multicast, and every multicast address starts with ff00::/8 - the leading ff is the marker. The character after ff encodes flags and scope (1 = node, 2 = link, 5 = site).

ff02::1
NameAll-nodes
Used by
Every IPv6 host on the link
ff02::2
NameAll-routers
Used by
Every IPv6 router on the link
ff02::5
NameAll OSPFv3 routers
Used byOSPFv3
ff02::1:ff00:0/104
NameSolicited-node
Used by
Neighbor discovery (the IPv6 replacement for ARP)

The solicited-node multicast address is worth knowing: a host joins the group ff02::1:ff plus the last 24 bits of its unicast address, so neighbor discovery can target it without flooding the whole link the way ARP does.

The two special single addresses

Loopback
Address::1
Meaning
The host itself - the IPv6 equivalent of 127.0.0.1
Unspecified
Address::
Meaning
"No address yet" - a source address before one is assigned

Both are mostly zeros, which is why they compress so dramatically. ::1 is 127 zero bits and a one; :: is all 128 bits zero.

A compression worked example

Compression trips people up most, so one full example end to end. Take the address 2001:0db8:0000:0000:0000:00a3:0000:8a2e.

  • Drop leading zeros in each hextet: 2001:db8:0:0:0:a3:0:8a2e.
  • Collapse the longest run of zero hextets with ::. The longest run is the three zeros in the middle, so: 2001:db8::a3:0:8a2e.

Note what you cannot do: the single 0 hextet after a3 stays as 0, because :: has already been used and an address may contain it only once. If two zero runs are equal length, collapse the first. Getting this right matters because 2001:db8::a3:0:8a2e and the fully-expanded form are the same address - tools accept both, and you will see both in the wild.

Anycast, briefly

One type that has no special prefix: anycast. An anycast address is an ordinary unicast address (usually a global unicast) deliberately assigned to more than one device. A packet sent to it is delivered to the nearest instance by routing metric. There is no flag in the address that marks it as anycast - it looks like any other unicast address, and only the configuration on multiple devices makes it anycast. It is used for things like distributing a DNS resolver across many sites behind one address.

Reading the first hextet at a glance

2 or 3 (2000::/3)
Global unicast - routable
fe80 (fe80::/10)
Link-local - this link only
fd (fd00::/8)
Unique local - private
ff (ff00::/8)
Multicast
::1 / ::
Loopback / unspecified

Common gotchas

Using :: twice in one address
Only one :: is allowed - two would be ambiguous about how many zero hextets each represents.
Expecting a broadcast address
IPv6 has none. ff02::1 (all-nodes multicast) is the closest equivalent.
Pinging a link-local without an interface
Link-local addresses are not link-unique. Append the zone ID: fe80::1%Gi0/0.
Subnetting smaller than /64
SLAAC and EUI-64 assume a /64. Going smaller breaks host autoconfiguration.
Hand-picking a tidy ULA global ID
The global ID is meant to be pseudo-random so two ULA networks rarely collide when merged.

Key takeaways

Every IPv6 address type has a recognizable opening. Global unicast starts with 2 or 3 and is the public, routable address, split as routing prefix, subnet ID, and a /64 interface ID. Link-local starts with fe80, exists automatically on every interface, and never leaves its link. Unique local starts with fd and is private addressing. Multicast starts with ff and replaces broadcast, with ff02::1 and ff02::2 as the everyday all-nodes and all-routers groups. ::1 is loopback and :: is unspecified. Learn to read the first hextet and an IPv6 address tells you what it is before you read the rest.

For the IPv6 cluster, see the IPv6 pillar.

Read next

Terminal card showing a repeating CDP native VLAN mismatch log naming Ethernet0/0 native VLAN 1 against SW2 Ethernet0/0 native VLAN 99
VLANs ·

Native VLAN Mismatch: Read the CDP Log, Fix the Trunk

%CDP-4-NATIVE_VLAN_MISMATCH hands you both interfaces and both native VLANs in one line. The real damage is underneath it: untagged frames get re-homed at the trunk boundary and two VLANs quietly become one. Captured live on IOS XE 17.18.2 in CML.