2 不同的公共地址以实现高可用性

Nät*_*tas 4 domain-name-system ip high-availability fortinet

这是我第一次在这里提问,我想知道是否可以将两个不同的 ISP 公共 IP 连接到单个系统以实现高可用性?

例如,如果我们的ISP 1离线,第二个ISP将可用,就像google和youtube有不同的公共地址一样,我只是不知道在哪里配置它。

我们目前使用的是fortinet 300D。

Dou*_*oug 7

是的,但是当其中一个系统出现故障时,您如何实现这一点将会影响用户体验。

最简单的是,您可以在面向外部的 DNS 中输入 2 个地址 A 记录,用户将被发送到这两个地址(称为循环 DNS 负载平衡)。这并不是特别好,因为这意味着当其中一个地址不可用时,大约一半的用户连接将失败。由于一个 ISP 的客户端可能会通过另一 ISP 或通过具有不太理想路由的 ISP 发送,因此效率也很低。客户端应用程序和 DNS 缓存可能会延迟客户端获取工作系统的地址,因此失败的客户端往往会在相当长的时间内失败,而无需干预来重新启动应用程序和刷新 DNS 缓存。如果您保持 DNS TTL 较短并且不介意短暂中断,则可以在该地址不提供服务时手动禁用该地址,但用户体验仍然会短暂失败。

为了使这一点变得更智能,您需要让外部系统检查您的服务是否可用,并自动更新 DNS 记录以将用户指向工作系统。进一步的改进是将 DNS 系统直接连接到后端监控,以将用户引导至负载较少的系统。尽管是自动化的,但仍然存在一些用户仍然会看到失败的用户体验。

这些都不是特定于您的防火墙的,防火墙只是向两个 ISP 提供两个外部接口。请注意,不可能通过 ISP2 路由 ISP1 的流量,反之亦然,因为互联网路由只会丢弃此流量。您不能“交叉连接”两个 ISP 并期望一切正常。

大型企业一般不会单独依赖 DNS 循环。相反,他们将转移到自己的网络(或合作伙伴网络),并让 ISP 在称为对等互连的系统中路由到他们的网络。公司网络可能有许多对等点,由分布在区域到全球范围内的多个 ISP 组成。通过交换路由信息,客户端可以从其 ISP 通过当前正在工作的 ISP 路由到公司网络。当网络无法访问时,这仍然可能导致短暂的中断,但是这些系统提供了出色的冗余,使公司网络即使在链路中断期间也可以访问。

其他更复杂的复杂解决方案也是可能的,但超出了 StackExchange 答案的范围。举例来说:

  • 将负载均衡器放置在高度可靠的系统(Azure、AWS 等)上,并将流量转发到“可用”的受监控地址。
  • 使用基于 VPN 的对等点(有时称为隧道代理)来获取独立于 ISP 的外部 IP,并允许 VPN 隧道穿越两个 ISP
  • 将整个系统移至高可用性位置