当一个站点没有停机且子网不同时如何重定向流量?

网络工程 局域网 子网 路线
2022-02-10 00:53:31

我们有一个统一的高可用性配置 [有点像 1],不同之处在于我们有两个不同的子网,vlan 和 vsphere,用于两个不同的站点 X 和 Y。站点 X 中的主机具有 ip 10.192.168.5,站点 Y 中的类似主机具有ip 10.150.6.16)。主机连接到一个主动-主动存储,在该存储中可以在两个不同的站点中看到 lun。客户端将点击一个具有公共 IP 的 URL,然后该 URL 将映射到站点 X 10.192.168.5 上的 IP。但是,当站点 X 发生故障时,它不会将流量重定向到站点 Y,因为我们无法在位于不同子网的站点 Y 中获得相同的 ip。我们试图最小化路由,即当站点 X 出现故障时,然后转到防火墙并添加规则以将流量重定向到站点 Y。

  1. 在具有不同子网的两个不同站点上拥有 HA 的最佳方式是什么,客户端不会遇到任何停机时间,即从客户端的角度来看是无缝的?
  2. 为了适应上述设计,我们可以做的最小改变是什么?

[1] https://www.yellow-bricks.com/2012/11/13/vsphere-metro-storage-cluster-uniform-vs-non-uniform/

2个回答

有几个选项——你选择哪一个取决于许多细节。这是人们聘请顾问解决的问题。您不应该期望从 Internet 上的陌生人那里免费获得解决方案。

也就是说,一种可能的解决方案是使用将流量转发到活动服务器的负载平衡器。负载均衡器可以执行 NAT,因此客户端始终看到相同的地址。

很多时候,类似的事情是通过虚拟 IP 完成的。虚拟 IP 被映射到其中一台主机(使用带有路由的 NAT,或带有共享 L2 段的 ARP)并在故障转移时重新映射。

如果您使用来自 ISP 的公共 IP 地址,则需要在该 ISP 处进行任何重新路由。不同的 ISP 要求您拥有自己的公共 IP 地址(至少 /24),并且您的 ISP 需要宣传这些地址。

另一种方法是使用 DNS 主机名并将 A 记录重新映射到不同的 IP 地址。这需要记录的短 TTL(以避免冗长的缓存和冗长的传播延迟)。尽管如此,基于 DNS 的故障转移只是几分钟而不是几秒钟的事情。

当然,无缝故障转移需要服务器状态的持续同步——然而,包括虚拟化在内的主机配置在这里显然是题外话。