首页/云/云网络与负载均衡速查/自建 NAT 的高可用思路

自建 NAT 的高可用思路

自建出口天然是单点:出口机故障即全网断外网。常见做法是两台出口机配合高可用虚拟 IP 做 keepalived 主备漂移,或直接改用托管 NAT 网关——把高可用责任交给平台。

主备方案两台出口机 + 高可用虚拟 IP + keepalived
健康检查对公网出口做探测,连续失败触发主备切换
脚本要点切换时同步 iptables 与转发配置,避免「地址漂过去、规则没带过去」
替代方案云托管 NAT 网关:节点故障由平台自动切换

出口健康检查(框架示意)

出口健康检查(框架示意)
#!/bin/bash
# 每 10 秒探测公网可达性,连续失败达到阈值触发切换
curl -s --connect-timeout 3 https://ifconfig.me >/dev/null \
  && miss=0 || miss=$((miss+1))
echo "miss=${miss}"
自建高可用可行,但维护成本与故障面都高于托管产品,评估时把人力成本算进去。

易错点

  • 只切换了 VIP,iptables 规则未同步,切换后依然不通
  • 两台出口机同时持有同一 EIP 导致平台侧冲突,方案要提前验证

数据来源与参考

  • keepalived 官方文档
  • 阿里云 NAT 网关文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌