为什么 IPv6 链路本地地址是 /10?

网络工程 ip 子网 ipv6 IP地址 ip-link-local
2021-07-17 01:17:39

我目前正在为我的 CompTIA Network+ 考试而学习,并且对为什么 IPv6 链路本地地址是 /10 而不是 /12 或 /16 感到有些困惑。由于 IPv6 地址中的每个字符都是 4 位,并且 IPv6 地址的每个部分都包含 4 个十六进制字符,您如何有效地“拆分”一个字符并获得 /10?然后最重要的是,链接本地地址总是以 FE80 开头,对吗?8 不是二进制 1000 吗?为什么在 /12 或 /16 上使用 /10 对我来说没有任何逻辑意义。任何帮助和见解将不胜感激!谢谢!

1个回答

这是因为 IP 地址是二进制数。文本表示只是为了让人类更容易阅读。RFC 4291,IP 版本 6 寻址架构解释了 10 位前缀:

2.5.6. 链路本地 IPv6 单播地址

链路本地地址用于单个链路。链路本地地址具有以下格式:

|   10     |
|  bits    |         54 bits         |          64 bits           |
+----------+-------------------------+----------------------------+
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+

链路本地地址旨在用于在单个链路上寻址,以实现自动地址配置、邻居发现或不存在路由器的情况。

路由器不得将任何带有本地链路源地址或目标地址的数据包转发到其他链路。

您可以在任何位边界上断开 IPv6 前缀,就像使用 IPv4 前缀一样,尽管建议是在半字节(十六进制字符,四位)边界上断开 IPv6 前缀,但这不是必需的。其他 IPv6 范围也在非半字节边界上中断。例如,ULA 寻址范围是fc00::/7.


在问为什么不是之前fe80::/64,请参阅此问题的答案