I'm trying to understand how SLAAC works, but having troubles understanding how the information inside the Router Advertisement is used by a client.

Let's say neither the Manager nor the Other Conflig Flags are set and the RA contains 2 addresses (2001:620:200:effe::/64 and fd7f:3fee:abc:effe::/64)

What (global) IP address will the client add to its interface? EUI64 ID generation probably wont work like with the link local address, as the prefix doesn't have to be 64 bit long as far as I know.

And what is the address starting with fd7f used for?

1 Answer 1


What Global address will be assigned depends on the OS of the host. By default, Windows and some Linux versions will use Privacy Extensions and random address generation, and that makes the assigned address unpredictable, and it will periodically change. An original SLAAC implementation would use the MAC address. Assuming a 48-bit MAC address, such as used by ethernet, the MAC address will be split in half, fffe will be inserted in the middle to extend it to 64 bits, and the U/L bit will be flipped. This method made some people nervous because a particular MAC address could be tracked on different networks. Privacy Extensions and random address generation were introduce. On some OSes, even the Link-local addresses use this.

A prefix does not need to be 64-bits, but it will break features of IPv6, including SLAAC, if it is not 64-bits. The two addresses in your example RA are 64-bit prefixes, so that is what the interfaces will use for auto-address assignment.

The fc00::/7 address range is the ULA (Unique Local Address) range, of which the first half (fc00::/8) is reserved for a global-entity-to-be-named-later to make assignments. The second half (fd00::/8) can be used for locally assigned addresses, but they mut use a pseudo-random number generator for the 40-bit Global ID. See RFC 4193, Unique Local IPv6 Unicast Addresses, Section 3.2.1. Locally Assigned Global IDs:

3.2.1. Locally Assigned Global IDs

Locally assigned Global IDs MUST be generated with a pseudo-random algorithm consistent with [RANDOM]. Section 3.2.2 describes a suggested algorithm. It is important that all sites generating Global IDs use a functionally similar algorithm to ensure there is a high probability of uniqueness.

The use of a pseudo-random algorithm to generate Global IDs in the locally assigned prefix gives an assurance that any network numbered using such a prefix is highly unlikely to have that address space clash with any other network that has another locally assigned prefix allocated to it. This is a particularly useful property when considering a number of scenarios including networks that merge, overlapping VPN address space, or hosts mobile between such networks.

  • quote-unquote break. SLAAC (and thus privacy extensions) require the prefix length to be 64, any other length and they don't apply. I have yet to experience anything IPv6 related that does not work with a non-/64 LAN. And I've run such lans for a long time now. (originally done to keep android devices off IPv6, continued because I can.)
    – Ricky
    Jul 10, 2016 at 23:31
  • @RickyBeam There isn't anything now. There may be in the future. When such functionality comes along, you'll either have to fix your subnetting, or forgo the functionality. Jul 13, 2016 at 16:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.