1

I have trouble understanding how many alternative link local IPv6 address prefixes may exist.

I know that the prefix is fe80::/10 which implies that the first 10 bits must be static as:
       |   10     |
       |  bits    |         6 bits          |          rest              |
       +----------+-------------------------+----------------------------+
       |1111111010|           ??????        |       xxx...xxx            |
       +----------+-------------------------+----------------------------+

Thus, theoretically the next 6 bits regardless of the values will all lead to link local addresses.

The first one should be fe80::, the second fe81::,the last one should be febf::

To be clear, I considered 6 additional bits to complete the total number of bits for the first field (16-bits).

On the other hand, I have seen several resources stating that there can be only four alternative prefixes: (a) fe80::, fe90::, feA0::, and feB0:: which is strange to me because that scheme only considers 2 extra bits and forces the last 4 bits of the first field statically all 0.

To make things really complecated the spec says:

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         |
   +----------+-------------------------+----------------------------+

Which pretty much makes the fe80:: the only possible prefix.

What is correct?

Ron Maupin
  • 98,218
  • 26
  • 115
  • 191
dr.doom
  • 111
  • 1
  • https://tools.ietf.org/html/rfc4291#section-2.5.6 Where's the ambiguity? 10bit "global routing prefix" [`fe80::/10`], 54 zeros, and 64bit interface id (eui-64, or other unique random address) It's defined as fe80::/10, not fe80::/64. (the later is all you should actually *currently* see) – Ricky Nov 28 '20 at 22:13
  • Also, see [this answer](https://networkengineering.stackexchange.com/q/38080/8499). – Ron Maupin Dec 02 '20 at 02:40
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can post and accept your own answer. – Ron Maupin Dec 16 '20 at 23:43

1 Answers1

1

There is only one IPv6 Link-Local prefix. It is fe80::/10, but the next 54 bits are required to be 0, so all IPv6 Link-Local networks are fe80::/64.

I have seen several resources stating that there can be only four alternative prefixes: (a) fe80::, fe90::, feA0::, and feB0::

Those resources are incorrect because every one of those "alternative" prefixes must set one or more of the required 0 bits to 1.

that scheme only considers 2 extra bits and forces the last 4 bits of the first field statically all 0.

The last six bits of the first word are required to be 0.

Thus, theoretically the next 6 bits regardless of the values will all lead to link local addresses.

No, the last six bits of the first word are required to be 0.

Ron Maupin
  • 98,218
  • 26
  • 115
  • 191
  • Your answer what I would naturally expect and of course is according to the spec but why so many resources cite the link local addresses as /10 instead of /64? – dr.doom Nov 28 '20 at 22:12
  • 2
    Because that's how it's defined. Just like IPv4 loopback is 127.0.0.0/8, but 127.0.0.1 is pretty much all anyone ever uses. – Ricky Nov 28 '20 at 22:17
  • @dr.doom, because it _is_ `/10` in order to distinguish it from the Site-Local addressing. See [this answer](https://networkengineering.stackexchange.com/a/62459/8499). The first 10 bits are defined, and the next 54 bits must be `0`, for a total of 64 network bits (`/64`). – Ron Maupin Nov 28 '20 at 22:20