关于默认路由/网关的网络冗余

关于默认路由/网关的网络冗余

为了实现冗余和可靠性,我有两个 ISP(主 ISP 是 24.xxx 上的 100Mi 电缆 [速度快但不可靠],备用 ISP 是 70.xxx 上的 1.5Mi DSL)。我有专用的 Red Hat Linux 路由器防火墙连接到每个服务,这些防火墙通过 UPS 供电。每个防火墙/路由器的 LAN 端与我家网络上的其他设备一起连接到 24 端口交换机,包括两个 wifi 接入点,它们在房子两端的不同通道上具有相同的 SSID。

我的问题分为两部分;

1)如果主路由器上的服务出现故障(这种情况似乎每月发生几次,几乎总是在周六早上),我该如何配置 Windows/iOS/android/linux/solaris 客户端以将故障转移到第二个路由器?

2)当服务恢复时,如何向客户端发出信号让其重新使用主路由器?

当 DHCP 提供服务时,是否可以只列出两个路由器,然后让客户端挑选出它需要什么?这似乎可能对第 1 部分有用,但对第 2 部分没有任何作用,除非我在主路由器重新上线时手动/假装备份连接失败。

最终,我的目标是维护所有设备的互联网服务,任何服务中断的时间不超过两分钟,并且每次发生这种情况时都无需触摸或重新配置任何客户端或路由器(手动)。

如果我知道那本手册的名字,我会很乐意阅读它。提前感谢任何建议。

答案1

有很多方法可以解决这一问题,但keepalived可能选项

keepalived 是一个虚拟专用网络备份组实现,这意味着您可以定义一个属于其中一个路由器的“虚拟” IP。通常,您将一个指定为主路由器,另一个指定为辅路由器。如果主路由器不可用,辅路由器将接管 IP 地址。

在您的场景中,这将是您的客户端网关 IP。这样,它们就始终与同一个 IP 地址通信,并且该 IP 地址将转到第一个或第二个路由器,具体取决于哪个是主路由器。

如果主路由器发生故障,这会自动导致辅助路由器接管 - 主路由器和辅助路由器交换“hello”数据包,并且一旦辅助路由器不再收到主路由器的消息,它就会接管 IP。

但是,您需要更多内容来监控链接,并让主服务器置于不可用模式 - 您可以使用“跟踪脚本”来执行此操作。

例如,这是主服务器的配置:

vrrp_instance RouterVRRP {
  state MASTER
  interface eth0
  virtual_router_id 50
  priority 200
  advert_int 1
  virtual_ipaddress {
    10.10.10.100/32 dev eth0
  }
  track_script {
    check_google
  }
}

然后是轨道脚本定义:

vrrp_script check_google {
  script       "/scripts/pinggoogle.sh"
  interval 3   # check every 3 seconds
  fall 3       # require 3 fails for down
  rise 2       # require 2 successes back up
}

该脚本将 ping google,并返回 0(表示一切正常),返回 1(表示失败)。

相关内容