阿里云通过EIP实现VPC下的SNAT以及DNAT

如何通过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. 提前准备好参数:

  1. 知道EIP,即阿里云外网IP地址,可以进入ECS服务器;
  2. 绑定EIP的ECS服务器的内网ip,我的是172.17.107.38;
  3. 专有网络网段,我的是172.17.0.0/16;
    在这里插入图片描述
  4. 找到添加VPC路由的位置,专有网络->路由表->进去之后->
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

2. 开始配置:

  1. 开启ip转发功能,并使之生效;

    sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
    sysctl –p
    

    在这里插入图片描述

  2. 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;

  3. 添加VPC路由:
    在这里插入图片描述这是阿里云工程师给的回复:
    在这里插入图片描述

  4. 完成!测试其他两台电脑是否能上网:
    在这里插入图片描述在这里插入图片描述

第二次配置:

系统:CentOS 7.4,配置过程不是很顺利:

  1. 开启ip转发功能,并使之生效;
    sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
    
  2. 然后执行:sysctl -p
    并没有出现文档截图所说的:net.ipv4.ip_forward = 1
    只好手动切换到etc目录下,编辑sysctl.conf文件,在最上面添加:net.ipv4.ip_forward = 1
    在这里插入图片描述
    然后执行shift+zz保存,最后执行sysctl -p,才可以了;
  3. 执行下面代码:
    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版权协议,转载请附上原文出处链接和本声明。