How do different IPv6 hosts generate their addresses ?

One of the main advantages of IPv6 is that it uses 128 bits long addresses. The 64 high order bits of the address are used to identify the subnet while the low order 64 bits are reserved for the host identifier. This host identifier can be configured manually, allocated by DHCPv6 or auto-configured using the Stateless Address Autoconfiguration (SLAAC). SLAAC evolved over the years. The first versions, RFC1971, RFC2462 RFC4862 mainly computed the low order 64 bits of the address from the MAC address of the endhost. However, this utilisation of a stable identifier raised privacy concerns as a host would use the same low order bits in any IPv6 address that it generates RFC3041. Today’s stack implement the privacy extensions defined in RFC4941 and generate random identifiers that are used as the low order 64 bits of the IPv6 addresses that they generate.

In a recent blog post, Joe Neville provides a good summary of how different operating systems generate their IPv6 addresses. Surprisingly, there are important differences in the configuration of the Fedora, Debian and Ubuntu Linux distributions.


If you plan to operate an IPv6 network that will support a mix of endhosts, remember how they generate their IPv6 addresses…

This blog post was written to inform the readers of Computer Networking: Principles, Protocols and Practice about the evolution of the field. You can subscribe to the Atom feed for this blog. These notes are also posted on the ebook’s Facebook page

Written on August 21, 2019