我有一台带 1 个 NIC 的 Debian 服务器,我的网络上有两个 ISP。是否可以在单个 NIC 上设置两个网关,一个作为主网关,另一个作为备份/后备网关,以防 ISP1 上的互联网出现故障?
如果可以的话,你能帮我创建这样的路由表吗?我已经试过了,但没有用
ip route add default proto static scope global \
nexthop via 192.168.60.1 weight 1 \
nexthop via 192.168.60.2 weight 1
答案1
您需要编写并运行一些脚本作为系统级服务,以检测 Internet 连接并在当前网关发生故障时动态切换默认网关。使用单个路由表是绝对不可能的,因为即使网关发生故障,您仍然可以通过该网关发送数据包,但不允许接收数据包。换句话说,当您通过当前网关发送数据包时,您不知道当前网关是否正常工作。
因此,除了负载平衡方法之外,您的网关切换脚本还应不断 ping 8.8.8.8(或 1.1.1.1 或任何公共 DNS 等),如果失败超过 N 秒,则切换网关:
route del default
route add default gw 192.168.60.2 eth0
然后继续不断ping,如果超过N秒失败,则切换回来:
route del default
route add default gw 192.168.60.1 eth0
最后,如果两者都失败了,它将每 N 秒来回切换一次。