我知道 IPv6 为链接本地地址保留 fe80::/10 前缀,并且主机选择带有 /64 前缀的地址。
为什么保留空间比实际用于链接本地的空间大得多?
我知道 IPv6 为链接本地地址保留 fe80::/10 前缀,并且主机选择带有 /64 前缀的地址。
为什么保留空间比实际用于链接本地的空间大得多?
我认为链接本地范围设置为 /10 只是为了更好地“适应”其他范围,例如站点本地(在它被唯一的本地替换之前)。
最初我认为可能是为了允许在同一链路上使用许多链路本地网络,但RFC 4291 明确规定只能使用 fe80::/64。
你知道,我从来没有考虑过这个。
我认为使用 fe80::/64 是因为系统然后在该 /64 中运行无状态地址自动配置 (SLAAC)。将 /10 的其余部分留给静态分配的链接本地地址和网络块。我很难为静态链接本地分配提出重要的用例,但我想人们可能最终想要这样做是有原因的。
IPv6 背后的设计理念是拥有合理结构的地址空间比保存地址更重要。顺便说一下,IPv4 的构想也是相同的(这就是为什么每个设备都有 1600 万个环回地址,但只使用 127.0.0.1 地址,并且大部分 D 类和 E 类地址都没有使用)。
链路本地地址理论上会浪费大量的 IP 地址,但这不被视为问题。同样,给每个客户一个完整的 /56 甚至 /48 在技术上是非常浪费的,但不是一个真正的问题。
这种方法有一个阴暗面:声称 IPv6 可以为世界上的每一粒沙子(或某些沙子)提供 IP 地址是无稽之谈,就像声称 IPv4 可以支持 40 亿台设备一样。实际上,当您将 IPv6 中的所有浪费加起来时,您会发现限制要窄得多(仍然比 IPv4 大)。
我认为这归结为两件事。首先,不能路由本地链路,因此不需要子网 ID。假设由于无法路由,因此前缀之后直到最后 64 位的任何内容都将为零。其次,与其他类似的 IPv6 前缀一样,前缀是直到最后一个“1”位的所有内容。这样可以保持一致性。