GCP侧将10.27.20.0/24内网IP NAT为公网IP对接本地VPN方案咨询
解决方案:基于Compute Engine搭建自定义NAT网关
1. 前置资源准备
- 申请并分配一个静态公网IP:确保该IP是本地ONPREM侧可正常路由的公网地址(需和本地运维团队确认路由可达性)
- 创建Compute Engine实例:
- 网络归属:加入10.27.20.0/24所在的VPC及对应子网
- 关键配置:启用IP转发(实例创建时在"网络接口"->"高级选项"中开启,这是NAT转发的必要条件)
- 公网绑定:将上述静态公网IP关联到实例的外网卡
- 防火墙放行:添加防火墙规则,允许10.27.20.0/24网段的所有入站流量(TCP/UDP/ICMP),同时允许实例出站流量到VPN隧道方向
2. 实例NAT规则配置
登录到该Compute Engine实例,执行以下命令完成SNAT配置:
# 开启内核IP转发 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p # 配置SNAT规则,将10.27.20.0/24的源IP转换为实例绑定的静态公网IP iptables -t nat -A POSTROUTING -s 10.27.20.0/24 -o eth0 -j SNAT --to-source [替换为你的静态公网IP] # 保存规则,避免重启后失效 # Debian/Ubuntu系统 iptables-save > /etc/iptables/rules.v4 # CentOS/RHEL系统 service iptables save
3. VPC路由调整
在GCP VPC控制台添加自定义路由:
- 目标网段:填写本地ONPREM侧需要访问的网段(若需所有流量走该NAT,填0.0.0.0/0)
- 下一跳类型:选择"实例",并指定上述创建的Compute Engine实例的内网IP
- 优先级:设置为比默认路由、VPN路由更高的优先级(数值越小优先级越高,建议设为100)
4. 连通性验证
- 从10.27.20.0/24网段内的主机发起对ONPREM侧节点的访问,通过抓包或ONPREM侧日志确认源IP为配置的静态公网IP
- 验证ONPREM侧的回程流量能正确路由回该静态公网IP,并到达GCP侧的目标主机
高可用性补充
若需避免单点故障,可部署两台NAT实例,通过keepalived实现VRRP虚拟IP切换,或搭配GCP内部负载均衡分发流量,确保NAT服务持续可用
内容的提问来源于stack exchange,提问作者Daniel Barber
相关产品推荐
相关产品推荐

