如何通过EIP实现VPC下的SNAT以及DNAT
参考网址:https://developer.aliyun.com/article/112497
简介: vpc环境通过eip做snat共享网络,以及dnat端口转发
场景一:有一个EIP,多台ECS,需要通过绑定EIP的机器让其他机器上网
阿里云VPC配置SNAT
我有三台阿里云ECS服务器,内网IP分别是172.17.107.38,172.17.107.39,172.17.107.40,其中只有172.17.107.38绑定了外网IP,能够上网;
1. 提前准备好参数:
- 知道EIP,即阿里云外网IP地址,可以进入ECS服务器;
- 绑定EIP的ECS服务器的内网ip,我的是172.17.107.38;
- 专有网络网段,我的是172.17.0.0/16;

- 找到添加VPC路由的位置,专有网络->路由表->进去之后->



2. 开始配置:
开启ip转发功能,并使之生效;
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf sysctl –p
iptables添加SNAT转换
iptables -t nat -I POSTROUTING -s 172.17.0.0/16 -j SNAT --to-source 172.17.107.38
备注:172.17.0.0/16是我的专有网络的网段,172.17.107.38是绑定了EIP的这台机器的内网IP;
添加VPC路由:
这是阿里云工程师给的回复:
完成!测试其他两台电脑是否能上网:


第二次配置:
系统:CentOS 7.4,配置过程不是很顺利:
- 开启ip转发功能,并使之生效;
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf - 然后执行:sysctl -p
并没有出现文档截图所说的:net.ipv4.ip_forward = 1
只好手动切换到etc目录下,编辑sysctl.conf文件,在最上面添加:net.ipv4.ip_forward = 1
然后执行shift+zz保存,最后执行sysctl -p,才可以了; - 执行下面代码:
iptables -t nat -I POSTROUTING -s 172.17.0.0/16 -j SNAT --to-source 172.17.163.76

版权声明:本文为xiaoxinla原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。