实现 IPv6 任播

实现 IPv6 任播

我正在尝试创建一个小型 IPv6 任播网络,其中包含 4 台 PC [运行 CentOs 5.0,称为 PC1-PC4] 和两台 Cisco 2800 系列路由器。

设置如下:PC1、PC2 将位于子网 2001::0/127 上,而 PC3、PC4 将位于 2001::2/127 上。路由器将连接这两个子网,目的是使 PC1、PC2 能够通过任播连接到 PC3 或 PC4。

我完全不清楚如何实现这一点。在阅读先前的 SF 查询,我遇到了为 DNS 实施的 IPv4 Anycast。我可以为 IPv6 重复相同的设置吗?您能提供足够的细节以便实施吗?

[已编辑]

答案1

IPv6 Anycast 的工作方式与 IPv4 相同。最简单的形式是,一个离散子网由多个独立的路由器进行通告。其结果是,尝试联系该子网上的节点的客户端将到达距离它们最近的路由器(按网络跳数计算)。

设置起来其实很简单,你只需要在不同的 IP 子网中设置相同的 IP 子网,最好的是遥远,网络的各个部分,并让连接到这些子网的路由器通告该子网。上游路由器将汇总路由通告,并将流量发送到最靠近上游路由器的路由器/子网。因此,尝试联系该子网上的 IP 地址的机器将到达较近的机器组。

你的问题听起来不像是这样。听起来像是两个子网通过同一个路由器连接,从定义上来说,这很简单单播

从 Anycast 子网到 Anycast 子网的对话比较棘手,应尽量避免。以这个例子为例,2001::3/126 是一个托管在 14 个不同位置的 Anycast 子网,而 2001::4/126 是另一个仅托管在 3 个位置的 Anycast 子网。为简单起见,假设两个 Anycast 网络的子网分布均匀。

  1. 第 6 个 2001::3/126 子网中的一台计算机开始与 2001::4/126 建立连接
  2. 由于路由表,此 SYN 数据包最终被发送到第三个 2001::4/126 子网。
  3. 第三个 2001::4/126 子网中的计算机将ACK数据包发送回 2001::3/126
  4. 由于路由表,此 ACK 数据包最终被发送到第二个 2001::3/126 子网。
  5. 第二个 2001::3/126 子网中的机器没有已启动连接的记录,因此丢弃了数据包。
  6. 第 6 个 2001::3/126 子网中的机器从未收到其期望的 ACK。

单播 -> 任播工作得很好,因为到源只有一条路径,并且两个方向的网络路径都是相同的。

任播 -> 单播可以很好地工作,因为到达目的地只有一条路径,并且两个方向的网络路径都是相同的。

任播 -> 任播是有问题的,因为可能存在多条路径,并且双向的网络路径可能完全不同。

相关内容