这是我第一次在这里提出问题,我想知道是否可以将两个不同的 ISP 公共 IP 连接到一个系统以实现高可用性?
例如,如果我们的 ISP 1 离线,则第二个 ISP 将可用,就像 google 和 youtube 有不同的公共地址一样,我只是不知道在哪里配置它。
我们目前使用的是fortinet 300D。
这是我第一次在这里提出问题,我想知道是否可以将两个不同的 ISP 公共 IP 连接到一个系统以实现高可用性?
例如,如果我们的 ISP 1 离线,则第二个 ISP 将可用,就像 google 和 youtube 有不同的公共地址一样,我只是不知道在哪里配置它。
我们目前使用的是fortinet 300D。
是的,但是当其中一个系统出现故障时,您如何实现这一点会影响用户体验。
最简单的是,您可以在面向外部的 DNS 中输入 2 个地址 A 记录,用户将被发送到这两个地址(称为循环 DNS 负载平衡)。这不是特别好,因为这意味着当其中一个地址不可用时,大约一半的用户连接将失败。这也是低效的,因为一个 ISP 的客户端可以通过另一个 ISP 发送,或者通过具有不太理想的路由的 ISP。客户端应用程序和 DNS 缓存可能会延迟客户端获取工作系统的地址,因此失败的客户端往往会在相当长的时间内失败,而无需干预以重新启动应用程序和刷新 DNS 缓存。如果您保持 DNS TTL 较短并且不介意短暂的中断,您可以在该地址不提供服务时手动禁用该地址,
为了使这一点更加智能,您需要让外部系统检查您的服务是否可用,并自动更新 DNS 记录以将用户指向工作系统。进一步的改进使 DNS 系统直接连接到后端监控,以将用户引导到负载较少的系统。尽管是自动化的,但仍然存在一些用户仍然会看到失败的用户体验。
这些都不是特定于您的防火墙的,它只是为两个 ISP 提供两个外部接口。请注意,无法通过 ISP2 路由 ISP1 的流量,反之亦然,因为 Internet 路由只会丢弃此流量。您不能“交叉连接”两个 ISP 并期望任何东西都能正常工作。
大型企业一般不会单独依赖 DNS 轮询。相反,他们将转移到他们自己的网络(或合作伙伴网络),并让 ISP 在称为对等互连的系统中路由到他们的网络。公司网络可能有许多对等点,由分布在区域到全球范围内的多个 ISP 组成。通过交换路由信息,客户端从他们的 ISP 通过当前工作的 ISP 路由到公司网络。当网络无法访问时,这仍然会导致短暂的中断,但是这些系统为企业网络提供了极好的冗余,即使在链路中断期间也可以访问。
其他更复杂的复杂解决方案是可能的,但不在 StackExchange 答案的范围内。例如:
从满足您需求的提供商处购买虚拟机(可能是 cloudflare 级别?),在那里设置虚拟防火墙并从本地站点/站点建立多个 vpn 以绑定并用于虚拟路由(考虑 MPTCP 或类似) .
本地系统的 Internet 连接将是冗余的,具有任意数量的链接(不同的提供商、多种技术)以及每个链接的虚拟防火墙的 vpn。
您将通过托管的虚拟防火墙从本地系统发布所需的服务。
根据可用性要求,您可以将本地 WAN 链接、带宽添加到虚拟防火墙或选择更可靠的 VM 托管提供商。