Summary
Highlights
IPv6 multicast addresses start with 'ff00::/8'. They can only be destination addresses. There are well-known multicast addresses like 'ff02::1' (all-node multicast group, joined by all IPv6 devices) and 'ff02::2' (all-router multicast group, joined by all IPv6 routers). A solicited-node multicast address maps to a special Ethernet multicast address, allowing the NIC to filter frames based on the destination MAC address. IPv6 unicast routing must be enabled on the router using 'ipv6 unicast-routing'.
IPv6 subnetting is simpler than IPv4. Typically, the first 64 bits represent the network prefix (global routing prefix + subnet ID), and the remaining 64 bits are the interface ID. A /48 prefix would mean the first 48 bits are fixed, and the next 16 bits can be used for subnetting, creating many subnets within that block.
IPv4 addresses have been exhausted across most regions since 2011-2020. IPv6 provides a substantially larger address space (128 bits, 340 undecillion addresses) compared to IPv4 (32 bits, 4 billion addresses), necessary to accommodate the growing number of IoT and smart devices in homes, which now require 50+ addresses. IPv4 and IPv6 can coexist through dual-stack, tunneling (IPv6 over IPv4), and translation (IPv6 device communicating with IPv4 device).
IPv6 addresses are 128 bits represented in hexadecimal, not case-sensitive. The preferred format is eight groups of four hexadecimal characters (hextets) separated by colons. Leading zeros in a hextet can be removed (e.g., 0db8 becomes db8). A long string of consecutive hextets consisting only of zeros can be represented by a double colon (::), but this can only be used once per address to avoid ambiguity.
IPv6 has Unicast, Multicast, and Anycast addresses. Broadcast addressing is replaced by Anycast, where any IPv6 unicast address can be assigned to multiple devices, and a packet sent to it is routed to the nearest device. There's also an all-node multicast address that functions similarly to a broadcast. IPv6 addresses are divided into a 64-bit prefix (network portion) and a 64-bit interface ID (host portion).
Key IPv6 address types are Global Unicast Addresses (GUAs), similar to public IPv4 addresses, which are unique and internet-routable, typically starting with '2000' and a /3 prefix. Link-Local Addresses (LLAs) are required for every IPv6-enabled device, are not routable, and function similarly to private IPv4 addresses, recognized by an 'fe80' prefix. Unique Local Addresses (ULAs), ranging from 'fc00' to 'fdff', are another form of private address, not globally routed or translated.
IPv6 addresses are configured on interfaces using 'ipv6 address <address>/<prefix-length>', and the interface must be enabled. Link-local addresses can be configured manually or automatically generated. Cisco routers automatically create a link-local address when a GUA is assigned, often using EUI-64 to derive the interface ID from the MAC address.
Devices obtain GUAs dynamically through ICMPv6 messages: router solicitations (sent by hosts to find routers) and router advertisements (sent by routers to inform hosts how to obtain addressing information). There are three methods: SLAAC (Stateless Address Autoconfiguration), SLAAC with a Stateless DHCP server, and Stateful DHCPv6. SLAAC uses the router's prefix and an EUI-64 or randomly generated interface ID. The other methods involve a DHCP server for additional configuration details like DNS.
All IPv6 interfaces must have a link-local address. They are dynamically generated using the 'fe80::/10' prefix and often the EUI-64 process (inserting FFFE into the MAC address and flipping the seventh bit) or a randomly generated number. Cisco routers automatically generate LLAs using EUI-64. Duplicate Address Detection (DAD) is used to ensure address uniqueness, similar to ARP in IPv4.