Mental model
IPv6 got rid of broadcasts entirely. Instead, everything is either unicast (talk to one), anycast (talk to the nearest one of many), or multicast (talk to all subscribers of a group). If you catch yourself typing “broadcast” in an IPv6 context, you’re wrong — that concept doesn’t exist here.
The three address types
| Type | What it does | Range | Example |
|---|---|---|---|
| Unicast | One destination, one recipient | Multiple prefixes (below) | 2001:db8::5 |
| Anycast | Same address on multiple hosts; routers deliver to the nearest one | Uses unicast address space; role determined by config | Root DNS servers (13 clusters, one anycast IP each) |
| Multicast | One-to-many; recipients subscribe to the group | ff00::/8 | ff02::1 = all nodes on the link |
Anycast has no dedicated prefix — you enable it by assigning the same unicast address to multiple hosts and letting routing pick the shortest path. Useful for CDN edges, DNS, and time servers.
Unicast sub-types (the three you’ll be asked about)
Global unicast — 2000::/3
The public internet. Every globally reachable IPv6 host has one. Structure:
| 48-bit global routing prefix | 16-bit subnet ID | 64-bit interface ID |
| from your ISP | your choice | the host |
Example: 2001:db8:acad:10::5 — RFC 3849’s 2001:db8::/32 is reserved for documentation, hence the constant appearance in Cisco material.
Unique local — fc00::/7 (practically fd00::/8)
The IPv6 answer to RFC 1918. Private, not routable on the public internet, but organisationally globally-unique because the middle 40 bits are randomized. Format:
fd | 40-bit random global ID | 16-bit subnet ID | 64-bit interface ID |
Two organisations can merge without renumbering, because their random 40-bit IDs collide with probability approaching zero.
Link local — fe80::/10
Every IPv6-enabled interface has one, automatically. Only valid on the local link — routers never forward link-local packets. Used for:
- Neighbor Discovery Protocol (NDP), IPv6’s ARP replacement
- OSPFv3 / EIGRPv6 hello packets (routing protocols use link-locals as next-hops on point-to-point links)
- Router advertisements
- Interior DHCPv6 message exchanges
You can talk to another host on the same segment using its link-local address, but you need to specify the outgoing interface because fe80::1 is ambiguous across your host’s interfaces:
R1# ping fe80::1
Output Interface: GigabitEthernet0/0
Loopback / unspecified / mapped
| Address | Purpose |
|---|---|
::1/128 | Loopback — same as 127.0.0.1 in IPv4 |
::/128 | Unspecified — used as source address before an interface has a valid IP |
::ffff:0:0/96 | IPv4-mapped IPv6 — dual-stack applications see IPv4 sockets as ::ffff:192.0.2.5 |
Multicast — the CCNA short list
You’ll be expected to recognise these well-known groups:
| Address | Group |
|---|---|
ff02::1 | All nodes on the link (IPv4 equivalent: 224.0.0.1) |
ff02::2 | All routers on the link |
ff02::5 | OSPFv3 all-SPF-routers (was 224.0.0.5) |
ff02::6 | OSPFv3 all-DR-routers (was 224.0.0.6) |
ff02::9 | RIPng routers |
ff02::a | EIGRP for IPv6 |
ff02::d | PIM routers |
ff02::1:ffXX:XXXX | Solicited-node multicast (used by NDP for MAC lookup) |
The solicited-node address is IPv6’s clever trick — instead of broadcasting an ARP request to every host, a sender constructs the multicast address ff02::1:ff + the last 24 bits of the target’s IPv6 address, and only the target listens on that specific multicast group.
EUI-64 — burning the MAC into the address
If you configure ipv6 address <prefix>/64 eui-64 on an interface, IOS derives the 64-bit host portion from the interface’s 48-bit MAC:
- Split the MAC in half:
AA:BB:CC|DD:EE:FF - Insert
FF:FEin the middle:AA:BB:CC:FF:FE:DD:EE:FF - Flip the seventh bit (the U/L bit) of the first octet:
AA(10101010) →A8(10101000)
The result becomes the interface ID appended to the prefix.
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ipv6 address 2001:db8:1::/64 eui-64
R1(config-if)# end
R1# show ipv6 interface GigabitEthernet0/0 | include 2001
2001:DB8:1:0:A8BB:CCFF:FEDD:EEFF, subnet is 2001:DB8:1::/64
That last IP identifies the interface uniquely without needing a DHCP server — SLAAC uses this to auto-address hosts on the network.
Configuring each type in IOS
R1(config)# interface GigabitEthernet0/0
!
! Global unicast — pick your own host portion
R1(config-if)# ipv6 address 2001:db8:1::1/64
!
! Or derive it via EUI-64
R1(config-if)# ipv6 address 2001:db8:2::/64 eui-64
!
! Or accept a prefix from the router via SLAAC (client style)
R1(config-if)# ipv6 address autoconfig
!
! Link-local — automatic on any enabled interface, or set manually
R1(config-if)# ipv6 enable
R1(config-if)# ipv6 address fe80::1 link-local
!
R1(config-if)# end
!
R1# show ipv6 interface brief
GigabitEthernet0/0 [up/up]
FE80::1
2001:DB8:1::1
2001:DB8:2:0:A8BB:CCFF:FEDD:EEFF
The #1 mistake
Forgetting that every IPv6-capable interface has a link-local address, even if you never assign a global one. fe80:: addresses show up in ping responses, in routing-protocol next-hops, in NDP tables — new engineers think they’re seeing garbage. They’re not; they’re seeing IPv6 doing its job.
Quick recap
- Broadcast is gone. Multicast fills that role.
- Every interface gets a link-local (
fe80::) automatically. - Global unicast = internet routable (
2000::/3); unique local = private (fd00::/8). - EUI-64 generates the host portion from the MAC — used by SLAAC and by manual
eui-64command. - Anycast is a routing pattern, not a distinct address class — same IP on multiple hosts, nearest wins.
