IPv6 address format and notation rules
An IPv6 address is 128 bits written as eight groups of four hexadecimal digits separated by colons, like 2001:0DB8:0000:0000:0000:0000:0001:0002. Two abbreviation rules reduce this to something manageable. First, leading zeros within each group can be omitted: 0DB8 becomes DB8 and 0000 becomes 0. Second, one contiguous sequence of all-zero groups can be replaced with a double colon (::). Applying both rules, 2001:0DB8:0000:0000:0000:0000:0001:0002 becomes 2001:DB8::1:2.
The double colon can only appear once in an address. If it appeared twice, you could not determine how many zero groups each :: represents. When expanding an address, count the existing groups and fill the remainder with zero groups so the total reaches eight.
IPv6 uses prefix notation just like CIDR. A /64 prefix means the first 64 bits identify the network and the remaining 64 bits are the interface identifier. Most IPv6 assignments are /64 or /48.
IPv6 address types
Global unicast addresses are the IPv6 equivalent of public IPv4 addresses. They are globally routable and begin with 2000::/3 (the first three bits are 001). These are the addresses you get from your ISP or from a Regional Internet Registry.
Link-local addresses start with FE80::/10 and are automatically assigned to every IPv6-enabled interface. They are valid only on the local link and cannot be routed. Routers use link-local addresses as the next-hop for routing updates. When you see FE80 at the start of an address, the address is link-local.
Unique local addresses (FC00::/7) are the IPv6 equivalent of private IPv4 addresses. They are not routable on the internet but can be used within an organization. The loopback address in IPv6 is ::1, equivalent to 127.0.0.1 in IPv4. The all-nodes multicast address is FF02::1. IPv6 has no broadcast: multicast replaces it entirely.
SLAAC, DHCPv6, and how to choose the correct answer
Stateless Address Autoconfiguration (SLAAC) lets an IPv6 device configure its own address without a DHCP server. The device learns the network prefix from Router Advertisements sent by the local router. It then combines that prefix with an Interface Identifier derived from its MAC address (using the EUI-64 process). The result is a valid, globally unique IPv6 address configured automatically with no central server required.
EUI-64 generates a 64-bit interface identifier from a 48-bit MAC address by inserting FFFE in the middle and flipping the seventh bit. For example, MAC 00:1A:2B:3C:4D:5E becomes 021A:2BFF:FE3C:4D5E as the interface identifier.
DHCPv6 provides stateful address assignment when you need centralized control. Stateless DHCPv6 gives devices additional information like DNS server addresses without assigning the IP address itself, which SLAAC handles.
Address type identification: starts with 2 or 3 = global unicast. Starts with FE80 = link-local. Starts with FC or FD = unique local. ::1 = loopback. No broadcast in IPv6: use multicast (FF02::1 for all nodes, FF02::2 for all routers).