IPv6 addresses are 128-bit identifiers for interfaces and sets of interfaces. The main types include:
These are globally routable addresses assigned to individual interfaces. They are structured as follows:
Example:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv6 Global Unicast Addresses (GUAs) are publicly routable addresses assigned by the Internet Assigned Numbers Authority (IANA) and are used for communication over the Internet. These addresses are equivalent to public IPv4 addresses and are globally unique.
A typical IPv6 GUA consists of the following components:
The address format enables hierarchical routing and efficient aggregation of routing entries.
2001:0db8:85a3:0000:0000:8a2e:0370:7334
– A documentation address reserved for examples.
2001:1234:abcd:5678:0221:2fff:feb5:6e10
– An example of a GUA with a specific global routing prefix and interface identifier.
2001:4860:4860::8888
– Google's public DNS server IPv6 address.
2606:4700:4700::1111
– Cloudflare's public DNS server IPv6 address.
ULAs are intended for local communications within a site and are not routable on the global Internet. They have the prefix
fc00::/7
, with the following structure:
fc00::/7
Example:
fd12:3456:789a:1::1
These addresses are used for communication between nodes on the same link and are automatically configured on all interfaces. They have the prefix
fe80::/10
.
They are essential for network operations like neighbor discovery and are not routable beyond the link.
Example:
fe80::1ff:fe23:4567:890a
EUI-64 is a method used in IPv6 to automatically generate a 64-bit Interface Identifier (IID) from a device's 48-bit MAC address. This IID is then combined with a 64-bit network prefix to form a complete 128-bit IPv6 address. This mechanism facilitates Stateless Address Autoconfiguration (SLAAC), allowing devices to self-configure their IPv6 addresses without the need for a DHCP server.
The process of generating an EUI-64-based IPv6 address involves the following steps:
0xFFFE
between the two halves, expanding the address to 64 bits.
This method ensures that the generated Interface Identifier is unique and can be used to form a complete IPv6 address when combined with a network prefix.
Given a MAC address:
00:1A:2B:3C:4D:5E
00:1A:2B
and
3C:4D:5E
FFFE
:
00:1A:2B:FF:FE:3C:4D:5E
00000000
00000010
(which is
02
in hexadecimal)
02:1A:2B:FF:FE:3C:4D:5E
If the network prefix is
2001:0db8:abcd:0012::/64
, the full IPv6 address becomes:
2001:0db8:abcd:0012:021A:2BFF:FE3C:4D5E
While EUI-64 facilitates automatic address configuration, it embeds the device's MAC address into the IPv6 address, potentially exposing hardware identifiers. This can lead to privacy concerns, as it allows for device tracking across networks. To mitigate this, many operating systems implement Privacy Extensions (RFC 4941), which generate random Interface Identifiers instead of using EUI-64.
SLAAC allows devices to automatically configure their own IPv6 addresses without the need for a DHCP server. The process involves:
For more details, refer to this resource .
Stateless Address Autoconfiguration (SLAAC) is a mechanism in IPv6 that allows devices to automatically configure their own IP addresses without the need for a DHCP server. The EUI-64 format plays a crucial role in this process by enabling devices to generate a unique Interface Identifier (IID) based on their MAC address.
While the EUI-64 method simplifies address configuration, it embeds the device's MAC address into the IPv6 address, potentially exposing hardware identifiers and enabling device tracking across networks. To mitigate these privacy concerns, modern operating systems often implement Privacy Extensions (RFC 4941) or Stable Privacy Addresses (RFC 7217), which generate randomized or hashed IIDs instead of using the MAC address directly.
Before assigning an IPv6 address to an interface, the device performs DAD to ensure the address is unique on the link. This involves:
For more information, see this article .
DHCPv6 is a network protocol designed to configure IPv6 hosts with IP addresses, prefixes, and other necessary configuration data. It complements Stateless Address Autoconfiguration (SLAAC) by providing additional network information and centralized address management.
The typical DHCPv6 message flow involves the following steps:
Additional messages like RENEW, REBIND, and RELEASE are used for lease maintenance and release.
DHCPv6 is particularly useful in:
DHCPv6 Prefix Delegation (PD) is a mechanism defined in RFC 3633 and updated in RFC 8415 that allows a DHCPv6 client, typically a Customer Premises Equipment (CPE) router, to request and receive an entire IPv6 prefix from a DHCPv6 server. This enables the CPE to assign IPv6 addresses to devices within its local network, facilitating automated and scalable IPv6 address management.
An Internet Service Provider (ISP) assigns a /56 IPv6 prefix to a customer's router using DHCPv6-PD. The customer's router then divides this prefix into multiple /64 subnets, assigning them to different internal networks (e.g., LAN, guest network). Devices on these networks receive IPv6 addresses within the assigned subnets, enabling end-to-end IPv6 connectivity.