阿里云VPC网络无EIP的主机上网问题
问题由来
阿里云的VPC与其他基于OpenStack的IaaS不同,他的路由只是作为多网段的路由交换,不提供内到外的路由,因此在VPC内的主机除非绑定EIP,否则是无法连接公网的。通过工单询问客服,得到的结论是通过在路由器上添加一个路由,通过一个绑定EIP的主机做NAT上网,通过设置iptables的方式来实现。
VPC结构图
虚拟路由器配置
添加路由
为了让内网服务器借助EIP访问公网,所以设置所有目标地址0.0.0.0/0下一跳都转发到绑定了公网IP的ECS实例上。这里的下一跳ECS不支持搜索,需要提前记号名称:
绑定EIP的主机配置
iptables添加SNAT规则
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE |
注意: ubuntu 14.04 系统保存iptables设置需要安装iptables-persistent包,然后通过
service iptables-persistent save
的方式保存配置,安装完iptables-persistent后该服务随系统一起启动并会把保存的配置应用
开启IP转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p |