Per the IPv6 standard, Linux assigns IPv6 link local addresses to interfaces. These interfaces are always assigned /64 addresses. Is this correct? I would think they should be /10. Why are they assigned /64 addresses?


The address space allocated to link-local addresses is fe80::/10, but the next 54 bits are defined to be all zeroes, so the effective range is fe80::/64. Which puts it in line with the usual custom for IPv6 addresses.

RFC 4291:

2.5.6.  Link-Local IPv6 Unicast Addresses

   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         |

FE80::/64 includes 2^48 Ethernet addresses and some other link-level derived combinations, but not necessarily all types. The /10 allows for future expansion of new types not yet defined.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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