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?

3
  • 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, 2020 at 22:13
  • Also, see this answer.
    – Ron Maupin
    Dec 2, 2020 at 2: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, 2020 at 23:43

1 Answer 1

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.

3
  • 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, 2020 at 22:12
  • 1
    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, 2020 at 22:17
  • @dr.doom, because it is /10 in order to distinguish it from the Site-Local addressing. See this answer. 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, 2020 at 22:20

Your Answer

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

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