在使用容器服务的过程中。出于业务的需要,用户需要创建VPC集群,但是又不希望每台ECS都绑定公网EIP,一方面是出于业务私密性的保护,另外一方面是出于节约成本的考虑。
- 基于以上场景,我们可以让集群内的机器,通过一台有EIP的机器来上网。在这个过程中主要使用到了SNAT相关的知识。先找一台同区域内的VPC机器,为该机器配置EIP
# iptables添加SNAT转换 其中172.16.0.0/12是内网网段, --to-source是绑定了EIP的这台机器的内网IP
sysctl net.ipv4.ip_forward=1 \
&& echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf \
&& sysctl -p \
&& iptables -t nat -I POSTROUTING -s 172.16.0.0/12 -j SNAT --to-source $(ifconfig eth0 | grep inet | awk '{print $2}') \
&& iptables-save
- 去VPC控制台,添加VPC路由器,其中的下一跳ECS是绑定了公网EIP的那台ECS

网友评论