IPv6 address structure and notation
An IPv6 address is 128 bits written as eight 16-bit groups in hexadecimal, separated by colons: 2001:0db8:0000:0000:0000:0000:0000:0001. Two abbreviation rules apply: leading zeros in any group can be omitted (0db8 → db8, 0000 → 0), and one contiguous sequence of all-zero groups can be replaced with :: (double colon). The example above becomes 2001:db8::1.
The :: can only appear once in an address. To expand it, count the existing groups, subtract from 8, and insert that many all-zero groups. Understanding expansion is essential for reading routing tables and troubleshooting output.
IPv6 prefixes work the same way as CIDR notation in IPv4: 2001:db8::/32 means the first 32 bits are the network prefix. Interface addresses include both the prefix length and the full address: 2001:db8::1/64.
Global unicast addresses
Global unicast addresses (GUAs) are the IPv6 equivalent of public IPv4 addresses — routable on the internet. They currently begin with 2000::/3, meaning the first three bits are 001. In practice, IANA allocates from 2000:: through 3fff::, with most assignments in the 2001::/16 and 2600::/16 ranges.
The typical allocation structure: an ISP receives a /32 prefix, divides it into /48 prefixes for customers, customers divide /48s into /64 subnets for each LAN segment. The /64 subnet is the standard because EUI-64 and SLAAC (Stateless Address Autoconfiguration) require a 64-bit interface portion.
GUAs are configured statically, via DHCPv6, or via SLAAC. With SLAAC, a host generates its own GUA by combining the /64 prefix (received from a Router Advertisement) with a self-generated 64-bit interface ID.
Unique local addresses
Unique local addresses (ULAs) are the IPv6 equivalent of RFC 1918 private addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). They use the prefix FC00::/7, which in practice means addresses starting with FC or FD. The FD prefix is used for locally assigned unique local addresses.
ULAs are not routed on the internet. They're used for internal communication within an organization. Unlike RFC 1918 addresses which are reused by every organization, ULAs include a 40-bit randomly generated global ID that makes address collisions extremely unlikely when two ULA networks are merged — an advantage for VPN tunnels and corporate acquisitions.
Link-local addresses
Every IPv6-enabled interface automatically generates a link-local address in the FE80::/10 prefix range (FE80:: through FEBF::). Link-local addresses are only valid on the local link — they cannot be routed beyond a single network segment.
Despite their limited scope, link-local addresses are critical: they're used for neighbor discovery (finding other IPv6 devices on the same link), router discovery (finding the default gateway via Router Advertisements), and as the next-hop address in routing tables for directly connected routes. When you configure IPv6 on a Cisco router with `ipv6 unicast-routing`, it automatically generates link-local addresses on all enabled interfaces.
The link-local address is often derived using EUI-64 from the interface's MAC address, though RFC 8064 introduced a privacy extension alternative.
EUI-64 interface ID generation
EUI-64 is the algorithm that derives a 64-bit interface ID from a 48-bit MAC address. The process: split the MAC address in half, insert FFFE in the middle, then flip the seventh bit (the Universal/Local bit) of the first byte.
Example: MAC address 00:1A:2B:3C:4D:5E. Split: 00:1A:2B | 3C:4D:5E. Insert FFFE: 00:1A:2B:FF:FE:3C:4D:5E. Flip seventh bit of 00 (binary 00000000 → bit 7 is 0 → flip to 1 → 00000010 = 02). Result: 02:1A:2B:FF:FE:3C:4D:5E → EUI-64 interface ID: 021A:2BFF:FE3C:4D5E.
Combined with the /64 prefix FE80::/64, the full link-local address becomes FE80::021A:2BFF:FE3C:4D5E. This is exactly what you see on a Cisco router interface after `ipv6 enable` is configured.
Multicast and anycast
IPv6 multicast uses the FF00::/8 prefix. Important well-known multicast addresses for CCNA: FF02::1 is all IPv6 nodes on the local link; FF02::2 is all IPv6 routers; FF02::5 and FF02::6 are OSPFv3 multicast addresses. IPv6 has no broadcast — multicast replaces broadcast for neighbor discovery and routing protocol communication.
Solicited-node multicast is a special multicast used by Neighbor Discovery Protocol (NDP) for address resolution (the IPv6 replacement for ARP). Every unicast address has a corresponding solicited-node multicast address in FF02::1:FF00:0/104, formed by taking the last 24 bits of the unicast address.
Anycast assigns the same IPv6 address to multiple devices. Packets sent to an anycast address are delivered to the nearest (in routing terms) device with that address. Common use: anycast for DNS servers or routing anycast in ISP networks. The CCNA exam tests the concept rather than the implementation details.