上一篇 下一篇 分享链接 返回 返回顶部

Linux网关故障自动切换运维指南

发布人: 发布时间:8小时前 阅读量:6

多网关场景下的运维挑战

在实际IDC或云环境中,单一网络出口往往存在单点故障风险。当默认网关不可用时,服务器将失去与外网的连接,即便备用链路正常也无法自动恢复。Linux系统默认只维护一份路由表,需通过额外机制实现网关故障的检测与切换。

基于路由表的备用网关配置

Linux内核支持多路由表(通过ip ruleip route实现),可针对不同源地址或目标网段为独立路由表配置优先级。以下为常见配置思路:

  1. 创建两个路由表:table link_atable link_b,分别绑定不同网关。
  2. 通过ip rule add from lookup link_a priority 100实现主路由优先。
  3. 在主路由表失效时,通过监控脚本动态降低优先级或删除规则,使流量切换至备用表。

该方案需要配合健康检查(如Ping网关或运营商对端IP)才能生效。

使用ip route + 脚本实现自动切换

对于仅需处理默认网关故障的场景,可编写简单Shell脚本,周期检测网关连通性,并在失败时替换默认路由。

核心思路

  • 使用ping -c 3 -W 1 $GATEWAY判断连通性。
  • 若连续检测失败(建议重试2~3次),执行ip route del default via $PRIMARY,再添加ip route add default via $BACKUP
  • 恢复检测与回切逻辑类似,注意设置回切确认次数,避免抖动。

注意事项

  • 脚本需以root或具有CAP_NET_ADMIN权限的用户运行。
  • 对网关的探测应同时测试下一跳IP及远端公共服务(如DNS),防止网关IP可达但上行链路中断。
  • 若服务器使用DHCP获取地址,需配置忽略默认网关或使用metric控制优先级。

基于keepalived的冗余网关方案

keepalived常被用于高可用场景,也可管理虚拟IP,并与后端状态联动。但在网关切换场景,更推荐的组合是keepalived + VRRP

  • 两台服务器形成主备,共享一个虚拟IP作为内网网关。
  • 主机通过健康检查脚本检测上行线路(如探测运营商网关或公网IP)状态。
  • 当主机检测失败,VRRP优先级降低,备用机自动接管虚拟IP,从而实现网关切换。

该方案适用于物理服务器或虚拟机,但需要在同一二层网络内。若跨VLAN则需配合动态路由协议(如OSPF)。

路由优先级与策略路由的补充说明

对于多运营商接入(双线双IP)场景,常规默认路由切换可能会导致源IP选择错误,此时需要利用策略路由将不同源IP分发到对应路由表。切换时只需禁用对应表或更新健康状态标记,而无需改动全局默认路由。

运维观测与日志记录

建议在切换脚本中加入日志输出(syslog或独立文件),记录执行时间、前后路由变化及探测结果。同时可使用Prometheus + alertmanager等监控工具,将网关连通性暴露为指标,在自动切换时及时发送告警,便于人工确认。

验证与灰度

生产环境实施前,应先在测试服务器验证脚本逻辑和切换时间。可以手动断开主网关链路的物理连接或使用iptables模拟丢包,确认备用网关能自动接管,并观察业务恢复情况。恢复过程中也应验证回切动作不会引起短暂双网关冲突。

目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com