我同意 @artem_d93 的观点,即 BGP 是最合适的解决方案。使用 BGP,当一条路径出现故障时,会发生重新收敛,并向网络流量提供一条新路径(通过备用 ISP)。这可能需要几分钟才能发生。
您真的需要问问自己或管理层,如果 ISP 或网络设备出现故障,这些服务器保持可用的重要性有多大。如果它不是矫枉过正并且确实有必要,那么一种方法可能是像我所做的那样。
我为每个 ISP 配备了两个 Cisco 4431 路由器,每个路由器都直接连接到另一个,共享一个备用 (HSRP) 地址。它们连接到一对端口连接在一起的 DMZ 交换机(不是堆栈,因为堆栈可能会失败)。然后让两个 ASA 5515X 相连,以便它们共享状态和故障转移。然后连接到我网络核心的两台 Nexus 5548UP 交换机。这是一个完全冗余的设置,因此如果生产线上的任何地方出现故障,我们将继续运行。我们的 IPv4 和 IPv6 块用于 ASA 5515x 和 ISR4431 路由器之间的地址。我还有一个专用的 WAN 路由器(有另一个断开的连接)连接回我的核心以及 4431 路由器
请您的 ISP 之一为您分配 IPv4 /24 块(尽可能小)。您将为此支付月费,但只要您继续使用 ISP,就会根据您的需要分配费用。您至少需要一台可以处理 BGP 的企业级路由器或路由防火墙设备。大多数专用路由器以及一些防火墙设备都可以。消费级设备不能。
分配块后,您将需要从 RIPE 获取 ASN。这个自治系统编号将使您成为互联网上的唯一节点。
一旦有了冗余的 ISP,就应该有两个路由器在备用/故障转移配置中共享一个 IP 地址(查找 HSRP),每个路由器都连接到一个 ISP。使用 HSRP,如果一个路由器出现故障,流量将通过另一台路由器 - 它将共享您分配的公共地址之一。
在前面提到的路由器和您的专用网络之间,您应该有一个(或一对)防火墙设备。或许还有一对 DMZ 交换机。通过所有这些互连,您可以拥有完全冗余的互联网连接。
或者,您可以拥有一对具有所有这些功能的防火墙设备。它可以变得非常广泛,但如果你真的需要它,它真的是一个可靠的方法。
其他选项:
如果您通过 IP 地址和端口访问地址,请同时提供您的最终用户并告诉他们在另一个加载失败时使用一个。虽然这是笨拙的解决方法。
如果您可以控制 DNS 记录,则可以更新地址,但请确保将 TTL 设置得非常低,这样陈旧的记录就不会存在很长时间。
如果可能,使用网络托管服务 - 其中一些可以提供 VPN 连接,以便托管服务器可以访问内部数据,但是访问类型可能使其无法使用(例如数据库访问)。