Why is the IPv6 Link-Local Address Range fe80::/10?

ipip addressipv6protocol-theorysubnet

RFC 4291 specifies that IPv6 link-local unicast addresses must have a high-order bit sequence of 1111111010, or fe80::/10. However, the same document specifies that the 54 bits following the first 10 bits are zeros:

Link-Local addresses are for use on a single link.  Link-Local
   addresses have the following format:

   |  10 bits |         54 bits         |          64 bits           |
   +----------+-------------------------+----------------------------+
   |1111111010|           0             |       interface ID         |
   +----------+-------------------------+----------------------------+

Why isn't the link-local address format simply specified as fe80::/64?

Best Answer

Why isn't the link-local address format simply specified as FE80::/64?

Because that would leave the option open for using other, non link-local networks that start with fe80 as the first word. For example fe80:1:2:3::/64 would not be in fe80::/64, so theoretically could be used for something else, and that would be an undesired result.

It also leaves the possibility that the current 54 0 bits could be used for some enhancement of link-local addresses in the future. Basically, they are reserved bits. Often, protocols with reserved bits start using those bits to add functionality, later. For example, IPv6 multicast has scopes and flags, and there were originally two reserved flags, but one of those was used to add functionality to IPv6 multicast. Then, with only one reserved flag bit left, a later RFC expanded the number of flag bits to eight, even though only three flag bits are used.