LAN 静态 IP 分配的 IPv6 地址范围

LAN 静态 IP 分配的 IPv6 地址范围

为 IPv4 LAN 分配静态 IP 时,我从路由器的 DHCP 范围中选择一个地址范围。 192.160.0.2-255。因此,我设置了 DHCP 范围的上限,并选择高于该限制的静态 IP。

在我的 IPv6 路由器上,我看到了相同的 DHCP 范围。简单的假设是我可以对静态 IPv6 地址执行相同的操作。这很简单,但我对链接本地分配感到困惑。

  1. 链路本地网关的 IP 是链路本地序列的第一个地址吗?就像192.168.0.1是LAN的IPv4范围的第一个地址一样?

  2. 我会分配两组静态 IP 吗?一种适用于全球范围,另一种适用于本地?

  3. 我在这里缺少什么?

预计会有人对这些问题提出反对意见,让我解释一下:

我需要静态 IP 在 LAN 上进行可靠的主机名解析,并且我知道通过 IPv4 可以很好地进行主机名解析。从功能上讲,我不需要静态 IPv6——我明白了。

但作为一个爱好者,我想这样做。

答案1

虽然乍一看 IPv6 看起来就像具有更大地址的 IPv4,但实际上并非如此。与 IPv4 相比,IPv6 的工作方式存在一些根本性差异。

与 IPv4 不同,对于 IPv6,正常情况是在单个接口上有多个 IPv6 地址。

因此每个 IPv6 接口至少有一个链接本地地址,fe80::/10。该地址是使用 MAC 地址自动配置的。其他 IPv6 需要它才能工作,例如邻居发现。

此外,路由器还将分配 IPv6 前缀。如果您的 ISP 允许 IPv6,它将告诉您的家庭路由器前缀(例如 2001:...),家庭路由器将依次将此前缀通告给所有其他主机。然后,主机将再次基于 MAC 或随机组件(如果启用了隐私扩展)选择此范围内的地址。

现在您已经有了两个 IPv6 地址,并且到目前为止一切都是自动的,并且不涉及 DHCP。基于 MAC 的地址是静态的,因此您可以根据需要使用这些地址。如果你的家庭路由器没有做DNS,你至少可以在/etc/hosts文件等中输入链接本地地址。

现在如果你绝对需要更多的静态地址,您可以告诉您的路由器通过 DHCP 分发它们。为此,您需要一个有效的前缀。在 IPv4 中,192.168./16 范围是为私有 IP 地址保留的。 IPv6 的等效项是唯一的本地地址(ULA),范围为 fc00::/7。任何其他前缀都可能与用于不同目的的“真实”IPv6 地址发生冲突。

因此,请将此范围用于 DHCPv6,按您想要的任何顺序选择您想要的任何范围。

分发一个第四使用全局前缀设置静态地址将很困难:如果您想使用 ISP 分配的全局前缀,则该前缀将会改变,因此您无法将地址设置为静态。如果您决定使用不同的全局前缀,则该全局前缀将与使用它的人重叠,并且您将无法访问这些主机。所以,这将是一个错误配置。

答案2

将路由器设置在最低地址只是一种约定。另一个约定是使用路由器的最高地址,并且可以使用路由器地址空间内的任何地址。您可以找出您的路由器使用的地址,尽管它应该发送路由器通告并回应路由器请求

IPv6 的链路本地地址范围是 fe80::/10。看维基百科或者 RFC 4862详情

在 Internet 协议版本 6 (IPv6) 中,地址块 fe80::/10 已保留用于链路本地单播寻址

对于 IPv6,MAC 地址和链路本地地址之间存在自动映射。由于以太网 MAC 地址有 6 个字节,这比 IPv6 地址短(而 IPv4 地址为 4 个字节)。 6字节MAC稍作修改,用作链路本地地址的低64位。您的 IPv6 堆栈通常会分配 IPv6 链路本地地址,而不需要执行任何特殊操作。事实上,IPv6 的设计使得在许多情况下不需要 DHCP。对于其他情况,还有 DHCPv6。

使用不变的 MAC 作为 IPv6 地址的一部分存在隐私问题,因此隐私扩展为地址的本地部分选择一个随机值并定期更改它。

相关内容