主备NAT网关部署核心是通过VRRP/Keepalived实现VIP秒级漂移,确保流量无缝接管且连接状态可控;需精准配置优先级、心跳与网络参数,关闭rp_filter,开启IP转发,统一iptables规则,并按业务需求决定conntrack同步策略。

主备 NAT 网关部署的核心是消除单点故障,让备用节点能在主节点失效时秒级接管流量,且不破坏已有连接状态。关键不在“堆机器”,而在协议协同、路径收敛和状态可控。
用 VRRP/Keepalived 实现 VIP 漂移
主备网关共享一个虚拟 IP(VIP),客户端始终访问该 VIP,不感知后端切换。
- 主节点优先级设为 150,备节点设为 100;启用抢占模式(preempt),主恢复后自动夺回 VIP
- 心跳间隔建议 ≤1 秒,死亡时间(advert_int × 3)控制在 3 秒内,兼顾灵敏性与网络开销
- VIP 必须配置在内网接口(如 eth0:0),且所有 Real Server 的默认网关指向该 VIP,确保返回流量必经 NAT 网关
确保 SNAT/DNAT 流量闭环
NAT 是有状态操作,必须保证进出双向都经过同一台网关,否则回程包因无 conntrack 条目被丢弃。
- 关闭 Real Server 的反向路由校验:
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter - 主备节点均开启 IP 转发:
echo 1 > /proc/sys/net/ipv4/ip_forward - iptables 规则统一:POSTROUTING 链中对内网段做 MASQUERADE,FORWARD 链放行内外双向
连接状态与会话连续性处理
纯 LVS-NAT 模式本身不同步 conntrack 表,主备切换时活跃连接会中断。需按场景取舍:
- 若业务容忍短时断连(如 HTTP 短连接),可不做强同步,依赖客户端重试
- 若需会话保持(如 FTP、视频信令),应启用 conntrack-tools 同步,或改用无状态设计(如基于 token 的长连接代理)
- 避免 conntrack 表溢出:检查
/proc/net/nf_conntrack条目数,必要时调大net.nf_conntrack_max
验证要点不能跳过
上线前必须实测以下四项:
- VIP 在主节点宕机后是否 3 秒内可 ping 通、可建连
- Real Server 返回包的源 MAC 是否为主备网关之一,而非直连客户端
- 并发新建连接时,
netstat -s | grep "TCPSynRetrans"无异常重传 - 防火墙未拦截 VRRP 广播(协议号 112)、未启用网卡 offload 导致 DNAT 失效











