为什么在实际使用fe80 :: / 64的情况下为链接本地地址保留fe80 :: / 10?


43

我知道IPv6为链接本地地址保留了fe80 :: / 10前缀,并且主机选择了带有/ 64前缀的地址。

为什么保留空间比本地链接实际使用的空间大得多?

Answers:


31

我认为将链接本地范围设置为/ 10只是为了更好地“适应”其他范围,例如站点本地(在被唯一本地取代之前)。

最初,我以为可能是允许在同一链接上使用许多链接本地网络,但是RFC 4291明确指出只能使用fe80 :: / 64。


关于SLAAC的实施有什么意义吗?... SLAAC是否“前缀不可知”?
克雷格·康斯坦丁

1
SLAAC需要一个/ 64,但在这里并没有真正意义,因为SLAAC并未分配本地链接地址-实际上,SLAAC依赖于已经具有本地链接地址。
凯文·基恩

10

你知道,我从来没有考虑过。

我假设使用fe80 :: / 64,因为系统随后在该/ 64中运行无状态地址自动配置(SLAAC)。其余的/ 10可用于静态分配的链接本地地址和网络块。我很难解决静态链接本地分配的大量用例,但是我想人们最终有理由这样做。


SLAAC和/ 64有何重要意义?...关于/ 64前缀,SLAAC是否固有?
克雷格·康斯坦丁

有时静态分配的链接本地地址使动态路由时轻松知道哪个节点是下一跳,即R1为fe80 :: 1/64,R2为fe80 :: 2/64,等等。在实验室中运行良好,可能更少所以在实践中。
hrtednrup

@CraigConstantine-是的,SLAAC已将/ 64边界硬编码到协议中。这就是无法在IPv6中创建小于/ 64的子网的原因,除了用于路由链接的子网(即,对于点对点链接,您应该使用/ 127)。实际上,还有其他协议也将/ 64边界引入其中。
凯文·基恩

我们有一个用例。一个进程隔离系统,需要使用已知的链接本地地址来启动隔离环境,以用于基于IPv6的标识。我们不能等待DAD,因为环境需要在几微秒或几毫秒内准备就绪。
五花八门的

4

IPv6的设计原理是拥有合理结构的地址空间比保存地址更为重要。顺便提一下,IPv4的构想是相同的(这就是为什么每个设备都有1600万个环回地址,但只使用127.0.0.1地址,而大多数D类和E类地址未使用的原因)。

理论上,本地链接地址确实浪费了数以百万计的IP地址,但这并不是问题。同样,给每个客户完整的/ 56甚至/ 48的钱在技术上是非常浪费的,但不是真正的问题。

这种方法有一个阴暗面:宣称IPv6可以为世界上的每个沙粒提供IP地址(或某些类似的说法)是胡说八道,就像宣称IPv4可以支持40亿个设备一样。实际上,当您将IPv6中的所有浪费加起来时,您会发现限制要窄得多(仍然比IPv4大)。


0

我认为这归结为两件事。首先,本地链路无法路由,因此不需要子网ID。假定由于无法路由,因此前缀后的所有内容(直到最后64位)都为零。其次,与其他类似的IPv6前缀一样,该前缀是直到最后一个“ 1”位的所有内容。这样可以保持一致性。


1
如果那是它的工作方式,那将/9不是一个/10
kasperd
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.