Linux 为接口分配 fe80::/64 地址。那不应该是 fe80::/10 吗?

Linux 为接口分配 fe80::/64 地址。那不应该是 fe80::/10 吗?

根据 IPv6 标准,Linux 为接口分配 IPv6 链路本地地址。这些接口始终分配有 /64 地址。它是否正确?我认为它们应该是/10。为什么给它们分配 /64 地址?

答案1

分配给链路本地地址的地址空间是fe80::/10,但接下来的54位被定义为全零,因此有效范围是fe80::/64。这符合 IPv6 地址的通常习惯。

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

答案2

FE80::/64 包括 2^48 以太网地址和一些其他链路级派生组合,但不一定是所有类型。 /10 允许将来扩展尚未定义的新类型。

相关内容