在多个数据中心使用 IP 子网

网络工程 ip ipv4 子网 ipv6 任播
2021-07-02 18:07:27

我们控制 IPv4 和 IPv6 子网。现在我们想/24在一个数据中心使用IPv4 子网的一部分,在另一个数据中心使用另一部分。我知道在多个 DC 上宣布 Internet 上的子网会创建任播场景,因此这不是一个选项。我们有什么办法可以做到这一点吗?


编辑:

大多数对等点仅接受/24或更短,因此我们无法拆分它们并宣布子网部分。

4个回答

使用专用连接连接两个 DC。然后在两个数据中心通告 /24。

当流量到达另一个 DC 时,您的内部设备会根据需要通过专用链路路由或切换流量。


第二个选项取决于可用的连接选项,您可能能够在两个 DC 和您的上游提供商之间获得第 2 层(交换)链路。这样,ISP 将您一侧的 IP 之一用作网关 IP,并为您提供到双方的交换第 2 层连接。

正如之前的答案还指出,解决方案将涉及在两个数据中心之间建立专用连接或拥有足够的 IP 地址来从每个数据中心通告一个块。

然而,这两个选项并不相互排斥,在配置它时还有几个方面需要牢记。

如果您有足够的地址,如何做广告

您最终可能会决定获得一个足够短的 IPv6 前缀,以便从每个数据中心宣传一半,这意味着 /47 或更短。然后,您可以选择如何宣布这一点。

  • 您可以从不同的数据中心宣布两个不同的 /48。
  • 您可以在两个数据中心宣布一个 /47。
  • 你可以两者都做。

如果您宣布两个不同的 /48,流量将通过互联网路由到正确的数据中心,这让您的工作变得更简单。另一方面,如果您在两个位置都只宣布 /47,则您必须将流量传送到正确的数据中心。如果您发现数据中心之间有私人连接并且比公共互联网更可靠,这可能是可取的。

执行上述两项操作将作为一种故障转移。通常流量会直接到达正确的数据中心。但是您的私人连接将作为备份存在。但是,如果其他网络认为您向他们发送了过多的通知,他们可能会决定忽略您的 /48 并仅使用 /47,您的私人连接将看到更多流量。

如果数据中心之间没有专用连接,最好的选择很可能是通告两个 /48 而不是通告聚合的 /47。

以上所有内容也适用于 IPv4,只是前缀长度不同。

如果无法获得更多 IPv4 地址该怎么办

如果您继续从每个数据中心发布 /25 广告,则存在明显的风险,这些广告将被忽略。即使它今天有效,也有它在未来停止工作的风险,所以你需要一个不同的计划。

如果两个数据中心之间没有专用连接,则可以在两个数据中心之间使用 IPv4 over IPv6 隧道作为专用连接。

隧道方法的明显缺点是隧道不会比两个数据中心之间的互联网连接更可靠。并且通过仅通告特定前缀来避免使用隧道不是一种选择,因为这些特定前缀会太长。

如果您在两个位置使用相同的公交提供商,那么值得追求的一个选项是同时宣传汇总的 /24 和更具体的 /25。您需要从运输提供商那里向全世界做广告的是 /24。您只需要传输提供商在其自己的网络中接受和使用这两个 /25,以便将流量路由到您的两个数据中心的正确位置。

显然,在您做任何类似的事情之前,您必须与您的传输提供商讨论它,以确保这是他们愿意支持的配置。

隧道的其他注意事项

在任何隧道的情况下的另一个警告是 MTU 问题。您需要确保您没有在隧道上做一些愚蠢的事情,这会导致大数据包被静默丢弃。此外,您最好使用足够低的 MSS 配置您的服务器,这样即使您正在与之通信的人默默地丢弃太大的错误,它也能正常工作。对于我描述的设置,将 MSS 设置为 1200 应该是安全的。

如果您的设置将涉及任何类型的 DSR 负载平衡,请记住负载平衡可能也需要隧道。在这种情况下,请确保您的 DSR 负载平衡器配置为使其正在执行的隧道连接而不是连接您的数据中心的隧道 - 而不是它上面的另一层隧道。

结论

最简单的解决方案是获得足够的 IP 地址。但是,如果您绝对需要它们,则存在替代方案。

对网络进行子网划分时,不会从两个地方通告整个网络。假设您拥有10.0.0.0/24网络,并且希望在每个数据中心使用一半,那么您可以10.0.0.0/25从一个数据中心和10.0.0.128/25另一个数据中心进行广告宣传您不会10.0.0.0/24从两个数据中心做广告,只做广告正在使用的内容。


编辑:

由于您要尝试在 Internet 上公开发布,因此您不能发布任何大于/24IPv4 或/48IPv6 的前缀您需要为另一个数据中心获取另一个 IPv4 公共地址块,或者您需要连接两个数据中心,以便在一个数据中心接收到的该块中的流量可以在内部发送到另一个数据中心。如果您去 IPv4 地址市场,这是可能的,但它可能很昂贵。使用 IPv6 非常容易。

您有一个基本观点:您的 /24 实际上不能在多个提供商之间拆分和宣传。如果两个站点都连接到同一个运营商,并且他们选择接受您的一对 /25,那么您可能会将路由聚合到 /24 中,以便向上游和对等端做广告,同时仍然允许流量流向适当的设施。

如果做不到这一点,您将需要从两个站点通告 /24,并建立某种与 /24无关的逻辑连接正如其他人所提到的,在站点之间提供私有链接可以实现这一点。另一种选择是建立某种与运营商分配的外部地址相关联的隧道(IPSEC、GRE 等)(我假设两者都是静态的)。在这种情况下,您可能会接收到其他站点的流量,然后这些流量必须被封装并通过隧道(或专用链接)发送,这取决于您的设置,这可能代表不可接受的低效率程度。