假设您有两个具有静态 IP 地址的网络:
网络 A.)66.xxx.xxx.9(到达此网络的 DNS 条目是 myservice.mydomain.com)
和
网络 B.) 66.xxx.xxx.29((到达此网络的 DNS 条目是 myservice.backupmydomain.com))
第一个网络是您通常使用的网络,第二个网络是备用网络。
您拥有一个在网络中的计算机上托管的服务。
当网络 A 出现故障时,路由器将切换到网络 B。但是您仍然需要某种方式将来自外界的请求从 A 转发到 B。否则,网络外的客户端敲门时会发现 A 已出现故障。
如果您正在向外发送数据包,当网络 A 发生故障时,如何自动转发到网络 B?基本上,当网络 A 发生故障时,我想做两件事。1.) 切换到网络 B。2.) 告诉所有发往网络 A 的数据包改为发往网络 B。
答案1
有几种解决方法,但都不是自动/无缝的。最简单的方法是在其中一个网络出现故障时更改 DNS 条目。一些 DNS 提供商提供“健康检查”,可以为您自动执行此操作,但在传播新 DNS 记录时仍会出现停机时间。
如果选择这条路线,请尽可能缩短 DNS 条目上的 TTL。
另一种选择是使用云中的负载平衡器。DNS 将指向此处,负载平衡器将在服务器关闭/启动时动态地将流量发送到相应的服务器。LB 是新的单点故障,但如果设计得当,它可以很好地工作。
答案2
在网络内部,对于出站流量,您可以在两个路由器之间运行 FHRP*。这将要求您重新设置设备 IP,因为主机将有一个新的默认网关。您可以创建或重新使用 VIP [虚拟 IP] 并将其分配给两个路由器的内部。
但是,协议将通过配置或默认设置根据可配置的“标准”自动转发流量。通常,如果您要跟踪与第 3 层地址(如 WAN 默认网关)的连接,则需要查阅路由器的文档和功能集。
一般的想法是,当您选择的 FHRP 检测到互联网中断时,它会允许您的“备用”路由器(如果需要,也可以是活动路由器)开始响应虚拟 MAC ARP 请求,并开始转发流量,其源与主路由器共享的 VIP 相同。同样,这取决于协议,但有些可以使用“抢占”,一旦故障情况得到纠正,它将推翻并恢复到主网络。有些提供了更精细的设置,可以真正微调到大多数规格。
此外,根据您的流量模式和流量,您可以在两个电路之间对出站流量进行负载共享或会话平衡。这具有在两个电路之间约 100% 出站(约 50/~50 共享)的好处 - 而不是在单个电路中 100% 出站。这是不对称路由,有时并不是理想的。这完全取决于您的目标和布局。例如,数据包从您的备份电路出站,由客户端接收,但回复会发送到您的主 DNS。从一个路由器出去,在另一个路由器里。这可能是一个问题,也可能是解决问题的方法。
这并不能满足您对 DNS 的次要要求,但它确实提供了内部冗余。
- 第一跳冗余协议(VRRP/GLBP/HSRP/CARP/NSRP 等)