IPv4 分配一整块 IPv4 环回地址,127.0.0.0/8
. 相比之下,IPv6 只分配一个环回地址,::1
.
IPv6 在分配环回地址时如此吝啬,这似乎令人惊讶,因为总体而言,它提供了地址空间的巨大增加。
在 IPv4 中,我发现能够使用多个环回地址很有用。例如,对于某些复杂的 DNS 设置,我可以安装两个本地 DNS 服务器,一个在127.0.0.1:53
,另一个在127.0.1.1:53
。(使用不同的 IP 地址来引用不同的服务器要容易一些,而不是在单个 IP 地址上使用非标准端口号。)我不能在只有一个环回地址的 IPv6 上使用这种策略。
与 IPv4 不同,只为 IPv6 分配单个环回地址可能有什么好的理由?
它们不是必需的。就这么简单。
您始终可以根据需要将链接本地或私有地址分配给环回适配器 - 在极少数情况下您确实会这样做。
我想说大多数人甚至不知道您可以使用 127.0.0.1 以外的任何东西,而您是我在大约 20 年中遇到的第一个声称使用更多的人。不开玩笑。
大多数多服务器设置不需要它(而是使用 HTTP 主机头 - 是的,我知道这仅限于 http,但我会说大多数需要它的服务器来自 Web 开发人员)。
如果您想要更多的本地可用地址,您可以从您选择的 ULA 范围内分配地址并将它们分配给本地计算机(如果您愿意,可以在环回接口上)。这会给你所有你想要的地址。您不必被授予一个特殊的块来分配您的机器将在本地响应的地址。
IPv6 寻址架构有很多空间。用于接口本地多播的 /16 空间非常适合本地服务。
AFAIK 套接字 API 是这里的限制,因为多播和单播地址不能互换使用。