/etc/hosts 中的特殊 ipv6 地址有什么用?

/etc/hosts 中的特殊 ipv6 地址有什么用?

我的中有以下块/etc/hosts

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

它们是由 Ubuntu 中的一些 automagic 插入的,而不是我写的。我发现很多文件都说你应该有这些行。但为什么?为什么他们是令人向往的?

我怀疑他们不是而且都很粗糙(除了第一个)。因为如果你用谷歌搜索其中一个名字,例如ip6-allrouters,你找到的只是对它们的引用/etc/hosts,但没有人真正使用它们。

表达这个问题的另一种方式是,如果删除这些行,会对我造成什么伤害,或者哪些功能将无法正常运行?如果答案是没有任何,我们可以断定它们是多余的吗?

答案1

根据RFC 4291,第 2.7 节:多播地址, 开头的前 8 位 ( FFin FF0X) 将地址标识为多播地址。


旗帜,接下来的 4 位(问题中的第一个)表示0FF0X

...永久分配的(“众所周知的”)多播地址,由互联网号码分配机构 (IANA) 分配。


接下来的 4 位(最后一个十六进制值02中的FF00FF02)定义范围:

 0 reserved
 [...]
 2  Link-Local scope
 [...]

预订的范围保留供将来使用。

链接本地范围意味着该范围内的包永远不会被路由,因此不能离开子网。


所以地址意味着他遵循:

  • ::1:这是环回地址,其 IPv4 等效地址为127.0.0.1
  • fe00::0: 可以比较一下E类地址空间在 IPv4 中,因此它在保留范围内;保留以供将来使用。
  • ff02::1:链路本地范围内所有 IPv6 节点(包括路由器)的组,其 IPv4 等效项为224.0.0.1
  • ff02::2:链路本地范围内所有 IPv6 路由器的组,其 IPv4 等效项为224.0.0.2
  • ff02::3:该选项不再存在且目前未分配。早些时候,它代表链路本地范围内的所有主机(不包括路由器)的组。

进一步阅读/参考文献:

答案2

我认为它们的目的是让您可以更轻松地 ping 所有路由器或所有主机等,而无需记住多播地址。我也没有看到它们在其他地方被使用过。

相关内容