Fine. That explains why the fe80 address does not need to be /12 or /16--it's because everything after the 10th bit is a zero anyways.

``````fe80::/16 = 1111 1110 1000 0000

fe80::/12 = 1111 1110 1000

fe80::/10 = 1111 1110 10
``````

But if that's the case, then why not go further and strip that last zero and get:

``````fe80::/9  = 1111 1110 1
``````

EDIT: corrected formatting of IPv6 addresses, from fe80/16 to fe80::/16.

• The tenth bit needs to be zero, so that's why it's a /10 Sep 13, 2019 at 12:03
• Thanks @RonTrunk. But that is exactly my question--why does there need to be a tenth bit that is zero? Sep 13, 2019 at 12:08
• The designers of the addressing scheme designed it that way. The tenth bit is zero so you can distinguish it from a specific /11. They could have picked a different scheme, but this is what they chose. Sep 13, 2019 at 12:28

It goes back to the original IPv6 addressing RFC. That 10th bit was used to distinguish between Link-Local and the (now obsolete) Site-Local addressing. If the bit was `0`, then it was a Link-Local address, and if the bit was `1`, it was a Site-Local address. Site-Local addresses were deprecated in favor of Unique-Local addresses to avoid the problems of companies merging or trying to create extranets with overlapping addressing.

RFC 1884, IP Version 6 Addressing Architecture was the original RFC where the Site-Local addressing was defined and carried through two subsequent RFCs (RFC 2373 and RFC 3513):

There are two types of local-use unicast addresses defined. These are Link-Local and Site-Local. The Link-Local is for use on a single link and the Site-Local is for use in a single site. Link-Local addresses have the following format:

``````|   10     |
|  bits    |        n bits           |       118-n bits           |
+----------+-------------------------+----------------------------+
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+
``````

Site-Local addresses have the following format:

``````|   10     |
|  bits    | n bits  |    m bits     |       118-n-m bits         |
+----------+---------+---------------+----------------------------+
|1111111011|    0    |   subnet ID   |       interface ID         |
+----------+---------+---------------+----------------------------+
``````

Site-Local addresses may be used for sites or organizations that are not (yet) connected to the global Internet. They do not need to request or "steal" an address prefix from the global Internet address space. IPv6 site-local addresses can be used instead. When the organization connects to the global Internet, it can then form global addresses by replacing the site-local prefix with a subscriber prefix.

Routers MUST not forward any packets with site-local source addresses outside of the site.

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

Link-Local addresses are designed to be used for addressing on a single link for purposes such as automatic address configuration, neighbor discovery, or when no routers are present.

Site-Local addresses were originally designed to be used for addressing inside of a site without the need for a global prefix. Site-local addresses are now deprecated as defined in [SLDEP].

Site-Local addresses have the following format:

``````|   10     |
|  bits    |         54 bits         |         64 bits            |
+----------+-------------------------+----------------------------+
|1111111011|        subnet ID        |       interface ID         |
+----------+-------------------------+----------------------------+
``````

The special behavior of this prefix defined in [RFC3513] must no longer be supported in new implementations (i.e., new implementations must treat this prefix as Global Unicast).

Existing implementations and deployments may continue to use this prefix.

Because link-local addresses are not the only addresses starting with `111111101`:
So the range `fe80::/9` covers both link-local and site-local addresses.