When discussing IPv6 addresses folks are often quick to say, “FE80 …that’s link-local.” And it’s true. The prefix FE80::/10 is reserved for link-local IPv6 addressing. But a lot of people overlook the fact that the 10-bit prefix only covers two of the four bits represented by the third character in the address. The ‘F’ and the ‘E’ are always going to be those values but the ‘8’ and the ‘0’ can change.
1111 1110 1000 0000 :: —> FE80::/10
1111 1110 1001 0000 :: —> FE90::/10
1111 1110 1010 0000 :: —> FEA0::/10
1111 1110 1011 0000 :: —> FEB0::/10
In the binary above you can see (in red) that the last two bits that comprise the 3rd hexadecimal character can absolutely change. This means that the link-local address space can be FE80, FE90, FEA0 or FEB0 in the first 16-bit block (4 hex characters).
Now, in more than a decade of looking at link-local IPv6 addresses on Windows, Linux, Mac and Cisco devices (amongst others), I have NEVER seen an automatically generated link-local IPv6 begin with anything other than FE80. Have you?
Cheers,
Colin Weaver