Page184
IPv6 addresses are 128 bits long and use colons instead of periods to delineate sections. One series of zeroes may be condensed into two colons (“::”). The ifconfig output in Fig. 5.3 shows two IPv6 addresses:
fc01::20c:29ff:feef:1136/64 (Scope:Global)fe80::20c:29ff:feef:1136/64 (Scope:Link)
The first address (fc01::....) is a “global” (routable) address, used for communication beyond the local network. IPv6 hosts rely on IPv6 routing advertisements to assign the global address. In Fig. 5.3, a local router sent a route advertisement for the fc01 network, which the host used to configure its global address.
The second address (fe80::....) is a link-local address, used for local network communication only. Systems assign link-local addresses independently, without the need for an IPv6 router advertisement. Even without any centralized IPv6 infrastructure (such as routers sending IPv6 route advertisements), any IPv6 system will assign a link-local address, and can use that address to communicate to other link-local IPv6 addresses on the LAN.
/64 is the network size in CIDR format: see “Classless Inter-Domain Routing” section below. This means the network prefix is 64 bits long: the full global prefix is fc01:0000:0000:0000.
The host in Fig. 5.3 used the following process to statelessly configure its global address:
- Take the MAC address:
00:0c:29:ef:11:36 - Embed the “fffe” constant in the middle two bytes:
00:0c:29:ff:fe:ef:11:36 - Set the “Universal Bit”:
02:0c:29:ff:fe:ef:11:36 - Prepend the network prefix and convert to “::” format:
fc01:0000:0000:0002:0c29:ff:feef:1136 - Convert one string of repeating zeroes to “::”:
fc01::20c:29ff:feef:1136
This process is shown in Table 5.3.
Table 5.3 IPv6 Address Stateless Autoconfiguration.

Only one consecutive series of zeroes (shown in gray in the add prefix step shown in Table 5.3) may be summarized with “::”. The “fffe” constant is added to 48-bit MAC addresses to make them 64 bits long. Support for a 64-bit embedded MAC address ensures that the stateless autoconfiguration process is compatible with EUI-64 MAC addresses. The Universal/Local (U/L) bit is used to determine whether the MAC address is unique. Our MAC is unique, so the U/L bit is set.
Stateless autoconfiguration removes the requirement for DHCP (Dynamic Host Configuration Protocol, see “BOOTP and DHCP” section below), but DHCP may be used with IPv6: this is called “stateful autoconfiguration,” part of DHCPv6. IPv6’s much larger address space also makes NAT (see “Network Address Translation” below) unnecessary, but various IPv6 NAT schemes have been proposed, mainly to allow easier transition from IPv4 to IPv6.
Stateless autoconfiguration raises privacy concerns: a system’s hardware MAC address is designed to be globally unique, so embedding it into the IPv6 address allows tracking, regardless of the network it’s on. SLAAC now supports privacy extensions, where a temporary random host address is generated and addresses change frequently.