IPv6 Link-Local Address – Why the Range is /10

ipip addressip-link-localipv6subnet

I'm currently studying for my CompTIA Network+ Exam and am a bit confused as to why the IPv6 link-local address is a /10 and not a /12 or /16. Since each character in an IPv6 address is 4-bits and each section of a IPv6 address contains 4 hexadecimal characters, how can you effectively "split" a character and have a /10? And then on top of that, link-local addresses always starts with FE80, correct? And isn't 8 in binary 1000? It's not making any logical sense to me why /10 is used over /12 or /16. Any help and insight will be much appreciate! Thanks!

Best Answer

It is because IP addresses are binary numbers. The text representation is simply to make it easier for humans to read. RFC 4291, IP Version 6 Addressing Architecture explains the 10-bit prefix:

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

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.

Routers must not forward any packets with Link-Local source or destination addresses to other links.

You can break IPv6 prefixes on any bit boundary, just like you can with IPv4 prefixes, although the recommendation is to break IPv6 prefixes on nibble (hexadecimal character, four-bit) boundaries, it is not a requirement. Other IPv6 ranges break on non-nibble boundaries, too. For example the ULA addressing range is fc00::/7.


Before you ask why it isn't fe80::/64, see the answer to this question.

Related Topic