IPv6:为什么不在 IPv6 的 P2P 链接上使用 /126?

网络工程 ipv6
2021-07-19 15:10:09

在 IPv4 中,我们使用 /30 来保存地址。那么为什么有些人建议在 P2P 链接上使用 /64 而不是 /126?我在常规子网上使用 /64,但在 P2P 链接上只使用两个地址时不使用 /64 会造成巨大的地址浪费吗?

4个回答

我们中的许多人确实在 PTP 链接上使用 /126。我个人喜欢能够仅根据地址的前 64 位将某些内容识别为网络基础设施 PTP 链接,因此我保留了一个 /64 以从中提取 /126。不同的人对重要的事情有不同的看法,所以……耸耸肩

顺便提一下(#1),因为 IPv6 没有 IP 网络上的广播地址或网络地址的概念,所以您实际上可以使用 /127's 而不是 /126's。请注意,尽管 /127 的网络掩码完全有效,但考虑到 /127 的网络掩码“无效”,某些供应商设备(错误地)不允许使用它们,这意味着如果您决定尝试使用它们,则可能会遇到一些供应商支持问题。这就是我使用 /126 的原因。

顺便说一下(#2),如果您的链接真正定义为 PTP 链接,您应该能够使用任何 IP 地址,而它们根本不必位于公共 IP 网络中。

答案有两个部分。

首先直接回答你的问题:官方对这个话题的推荐已经变了。过去,RFC 3627的标题是“在认为有害的路由器之间使用 /127 前缀长度”,但当前的建议有所不同:RFC 6164建议在点对点链路上使用 /127(而不是 /126!)。两个 RFC 都概述了各自建议的原因。

答案的第二部分是,通常,在点对点链接之外,IPv6因任何长于 /64 的前缀中断。它实际上不是 IPv6 本身,而是它使用的许多协​​议,例如 SLAAC、Neighbor Discovery 等。由于点对点链路不涉及任何形式的发现,因此该考虑无关紧要,并且 /127将工作。

因为 IPv6 始终建议对所有链接使用 /64。

对于问题的第二部分,是否浪费?

A /64 有18,446,744,073,709,551,615或 18 个 quintillion 地址。

大多数 IPv4 子网少于 255 个主机。假设您的网络上有 255 台主机,并且它们被赋予了 /64 前缀。这意味着 255 台主机被分配了一个 v6 地址,剩下 18,446,744,073,709,551,360 个地址未使用。这超过了 99.99%。更准确地说,这是 16 个 9,或者说实际上是 100% 的“浪费”。

即使您有一个包含 1,000,000 个主机的子网,也有 18,446,744,073,708,551,616 个被浪费的地址,或者仍然超过 99.99%。这次只有 13 个 9,但仍然有效 100%“浪费”。

因此,在单个链接上使用一百万个地址或两个地址之间的百分比差异可以忽略不计。

只是为了让您可以看到这些数字的样子。

* Two hosts is 99.9999999999999999891579782751449556599254719913005828857422% unused.
* 255 hosts is 99.9999999999999986176422300809818466404976788908243179321289% unused.
* 1M  hosts is 99.99999999999457898913757247782996273599565029144287109375% unused.
* 4B  hosts is 99.999999976716935634613037109375% unused.

即使将整个 IPv4 Internet 放置在单个 /64 链接上,也会有效地 100% 未使用地址。当您查看这样的数字时,在链接上使用除 /64 以外的任何其他内容都是愚蠢的。

因此,作为 ISP,我想对此添加评论。具体来说,我们将 GUA 和 ULA(唯一本地地址)用于我们的内部路由。这意味着我们有一个来自 /32 GUA 池的块 (/48),但我们在边缘过滤将它们变成 ULA。更大的 /32 GUA 仍在广告中,但 /48 ULA 在我们的边缘被过滤掉了。我们将此 ULA 用于我们的大部分内部寻址需求(AS 特定)以及 PtP 链接。

我们所有的 PtP 链接都是一个完整的 /64 块,但是它们在路由器上专门配置为 /127。这是为了在 IPv4 和 IPv6 空间都可能的情况下专门处理乒乓攻击。你很少在 IPv4 空间看到它,因为我们都使用 /30s 来表示那里的 PtP 链接。然而,在 IPv6 空间中,使用 /64 为这些类型的攻击创造了能力(参见https://www.rfc-editor.org/rfc/rfc6164#section-5.1

如前所述,为这些链接分配一个 /64 似乎是一种浪费,但是一旦您花费大量时间制定 IPv6 地址计划(一个很好的读物是https://www.amazon.com/IPv6-Address-Planning- Designing-Future-ebook-dp-B00PCZMAOW/dp/B00PCZMAOW)你会发现在你的计划中永远不会超过 /64 更容易。

同样如前所述,由于我们仅讨论 PtP 链接,因此 /127 不会遇到超出 /64 的任何正常问题。为什么我们不为 PtP 链接使用未编号的地址?主要用于调试目的、跟踪、监控等。

--- 我忘了提及(在重新阅读上面的一些评论之后...)如果您使用 /126 作为 PtP 链接,您仍然会遇到与 /64 相同的乒乓问题。为什么?因为 /126 中的 00 和 11 位是有效的 IPv6 地址(而在 IPv4 中它们不是,它们有不同的用途)。因此,尽管 /32(来自 /32 的两位)适用于 IPv4,但 /127(来自 /128 的一位)是 IPv6 所需要的。