跨数据中心 IP 故障转移/迁移

网络工程 路由 交换 锦缎
2021-07-08 23:23:21

我正试图解决这个(非常)简单的 IP 故障转移问题,即从一个物理位置到另一个物理位置。我有几台虚拟机在站点 A 运行,我需要在其中重建 NAS。为此,我想将这些虚拟机 vMotion/移动到站点 B,但希望保留虚拟机/网络配置的 IP 地址。SiteA 和 SiteB 的路由器之间有一个 GRE 隧道,我为正在迁移的 IP 的下一跳定义了静态路由。

为了使其正常工作,我在站点 B 的 routerB 上创建了一个虚拟接口,并使用 VM 期望的相同网关 IP 地址。它工作正常,但是当我尝试从迁移的 VM 访问同一子网中的任何机器时,我无法这样做,因为我请求的子网物理上不存在于路由器 B 上。它属于路由器 B 上子网的 /24 广播域.

NSX 使用 VxLAN 解决了​​这个问题,但是跨多个数据中心实现 IP 故障转移的替代方法是什么?我在两个位置运行 BGP,并在 Brocade NetIron 路由器上运行。我想在我现有的 IP 网络上创建一个 MPLS 云,并定义一个可从路由器 A 和 B 访问的虚拟路由器接口?或者某种扩展的VLAN?

或者我会说我有 2 个站点、2 个路由器,我需要在两个站点之间有一个扩展的 LAN,以便我可以同时从任何位置使用 1 个 IP 地址。

谢谢。

1个回答

使用纯路由做这种事情的一种方法是让“服务”IP 地址成为所有服务器上的辅助 IP 地址,并根据需要设置路由。

考虑这个简单的网络,其中客户端 AC 和 BC 通过路由器到达服务器 A1、A2、B1、B2。一切都有针对其网络 .1 的默认网关。RA和RB也有明显的站点间路由:RA向RB发送10.0.0.2/24和10.1.2.0/24;RB向RA发送10.0.1.0/24和10.1.1.0/24。

       servers                 servers
       A1  A2                  B1  B2
       |.4 |.5                 |.4 |.5
===+===+===+===+===     ===+===+===+===+====
10.1.1.0/24    |.1         |.1   10.1.2.0/24
               RA---------RB
10.0.1.0/24    |.1         |.1   10.0.2.0/24
===+===========+===     ===+===========+====
   |.64                                |.64
   AC                                  BC
  clients                             clients

如果服务器也被指定为 10.0.0.0/24 中的地址作为环回接口上的别名(例如lo:1)A1=10.0.0.4,B1也是10.0.0.4,A2=10.0.0.5,B2也是10.0.0.5。

然后您可以通过 RA 和 RB 上的路由来控制哪个服务器获得工作。

如果全网从站点A移动到站点B,你在10.0.0.0/24做路由;如果一次是一台主机,则您执行主机路由,例如 10.0.0.4/32。

这种结构在两种情况下很有用:

  • 如果您想在内容分发方法中使用本地服务器(例如 8.8.8.8 上的 Google 的 DNS),您可以在 RA 和 RB 上使用不同的路由。(RA 上的 10.0.0.4->10.0.1.4,RB 上的 10.0.0.4->10.0.2.4)。
  • 如果您一次只想要一个给定的服务器,那么您在 RA 上有 10.0.0.4->10.0.1.4,在 RB 上有 10.0.0.4->RA。

该方案自然适用于一些虚拟化方案,其中服务网络位于虚拟主机内部。

这些帮助有用?

其他方法包括

  • MPLS,正如你所说
  • VPN 隧道

编辑:使用 NAT 肯定有一些可怕的方法可以做到这一点,并且使用代理 ARP 可能有一种可怕的方法来做到这一点。纯路由方法的优点是您可以通过任何可用的方法来管理路由,例如您提到的 BGP,但任何路由更新方法都可以使用。此外,路由方法是(我认为)唯一一种支持“发送到我最本地的”CDP 类型功能的方法,如果这可能会有所帮助的话。