ipv6 寻址 /127 与 eui-64

网络工程 ipv6 MAC地址
2021-07-23 20:10:14

最佳实践是使用手动 /127 地址进行此​​处描述的点对点寻址RFC2373

EUI-64 ERFC 2373 规定了转换过程,它有两个步骤。第一种是将 48 位 MAC 地址转换为 64 位值。为此,我们将 MAC 地址分为两个 24 位部分:组织唯一标识符 (OUI) 和 NIC 特定部分。然后将 16 位十六进制值 0xFFFE 插入到这两半之间以形成 64 位地址。

我完全理解您将在哪里使用 /127 手动地址分配,但我无法真正看到使用 EUI-64 的好处。除非我完全错过了这个地址函数的实际目的。

如果可能的话,有人可以对 EUI-64 用例特别是在 ISP WAN 拓扑中的用例有所了解吗?或者请指点我一些阅读材料的方向。

3个回答

这是一场持续了一段时间的大型辩论的主题。

归根结底,在点对点链接上使用 /127 并不是一个糟糕的主意。 RFC6164说明使用 /127 实际上可能是一个好主意 - 它确定了在 P2P 链接上移动到 /127 的一些大问题,并讨论了已采取的缓解措施(如果有的话)。最新版本的 ICMP 减轻了对乒乓攻击的恐惧,并且通过使用 /127 前缀实际上消除了对 P2P 链接的邻居缓存耗尽攻击。

EUI-64 通常更适用于用户子网,因为如果不使用 /64 子网,SLAAC 通常会中断。在不使用 SLAAC 的 P2P 链接上,这没什么大不了的。

总之,我相信普遍的共识是使用 /127 没什么大不了的 - 事实上,您可能希望为所有 P2P 链接分配一个 /64。您的路由表可能会受到一些影响,因为所有 P2P 前缀都不容易汇总,但这不太可能是一个大问题。请记住我提到的 RFC,并确保您遵循它提供的指南。

手动配置点对点链接时,使用 /127 很方便。我通常在我的寻址计划中保留一个 /64(为了清晰和与其他非 /127 网络的一致性),然后在链路的xxxx:xxxx:xxxx:xxxx::a/127一侧和xxx:xxxx:xxxx:xxxx::b/127另一侧进行配置。

EUI-64 地址在自动配置接口时被大量使用。本地链路(fe80::/10 地址)经常使用它们,如果系统收到带有前缀信息的路由器广告,它会将 /64 前缀作为其地址的前 64 位,将 EUI-64 作为后 64 位位地址,形成一个完整的 128 位 IPv6 地址。所有这些都不需要手动配置或 DHCP 服务器。

使用 /127 并不可怕,但让它像 /127 一样进入你的主干。

这样做的原因是,从本质上讲,大多数现代路由器 TCAM 通常一次最多只能处理 64 位地址宽度 - 这意味着如果您处于所有路由都是 /64 或更短的情况下,可能会发生查找在一个循环中。任何更长的时间,它都必须执行另一个查找操作。即使在只有 32 或 48 位宽度的 TCAM 上,超过 /64 显然仍然很重要。

因此,我个人的建议是为每个 P2P 链接分配一个 /64,即使您只在线路上使用 /127 - 这样,当您启动路由协议时,您可以将 /127 聚合为 /64。

然而,我个人最喜欢的是分配一个合理的 IPv6 空间块,纯粹是为了促进 P2P 链接(在我的例子中,我保留了一个 /48)——这个 /48 然后在入口处的所有网络边缘接口上作为目的地被阻止。通过这种方式,您可以自由地继续在 P2P 链接上使用 /64 并且仍然有跟踪路由、ICMP 错误等。一切正常,但您不易受到来自外部的 NDP 攻击。

显然不是每个人都会关心这个,如果你可以接受使用更长前缀的额外成本(或者你有超级 128 位 TCAM),那么你当然可以忽略以上所有内容。您希望您的网络具有多大的可扩展性?