BGP - 在 2 个位置使用前缀

网络工程 路由 bgp ospf
2021-07-15 12:13:14

我目前正在通过 BGP 宣布 8 个 /24 个子网。我计划将我们的服务器移至其他数据中心,但我想保留所有 IP。

是否有可能我宣布 2 个位置的前缀并告诉来自 IP 1.1.1.1 的流量应该去位置 A,而来自 IP 1.1.1.2 的流量应该去位置 B?

2 个数据中心之间没有直接连接,不可能有流量交换器。

位置 A 不稳定,几乎每天都有网络问题。位置 B 是稳定的,不应因为位置 A 而受到干扰。

我知道我可以在多个位置宣布前缀,但随后将使用较短的路径。我需要一种方法来告诉其他路由器 IP X 位于位置 A,IP Y 位于位置 B。

使用 BGP 执行此操作的最佳方法是什么?

3个回答

可能的脚本:

  1. 一次移动 BGP 中的每个 /24 前缀。
  2. 在移动第一个 /24 前缀之前,在两个位置之间建立 IP 隧道。
  3. 当您需要移动给定 /24 前缀的一个 IP 时,让位置 A 将该地址(一条 /32 路由)通过隧道转发到位置 B。
  4. 一旦来自一个 /24 前缀的每个地址都通过隧道到达位置 B,将其 BGP 前缀公告从位置 A 移至 B。
  5. 对每个 /24 前缀重复步骤 3-4。
  6. 把隧道弄下来。

如果两个站点使用相同的 ISP,并且两个站点的 ISP 的 AS 相同,则这可能是可能的。您可以与 ISP 合作,/32临时向其宣布一些地址。ISP 的 AS 仍会向 Internet 宣布它拥有您的/24,但它可以在内部路由更长的前缀。这不是您可以假设 ISP 会做的事情,但某些ISP 可能会不时提供此类服务。ISP 通常根本不会帮助您转移到不同的 ISP。

您可以做的是将前缀通告给第二个 ISP,然后监视前缀是否传播到世界其他地方的至少一部分。(有些网络会比您的第一个 ISP 更喜欢路径;这是正常的。)然后让您的第一个 ISP 停止广告前缀,并确保他们通过它们传播您自己的广告。