阅读351 返回首页    go 阿里云 go 技术社区[云栖]


如何通过EIP实现VPC下的SNAT以及DNAT

场景一:有一个EIP,多台ECS,需要通过绑定EIP的机器让其他机器上网
阿里云VPC配置SNAT

1,将EIP绑定到某台ECS上,然后测试通过eip登陆ssh,测试成功
snat1

2,开启ip转发功能,并使之生效

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

snat2

3,iptables添加SNAT转换
172.16.3.0是内网网段,3.2是绑定了EIP的这台机器的内网IP

iptables -t nat -I POSTROUTING -s 172.16.3.0/24 -j SNAT --to-source 172.16.3.2

4,添加VPC路由
snat4
5,测试是否可以访问了
snat51

EIP绑定在3.2那台上

snat52

关闭ip_forward再次测试

snat53

没反应了

snat54

测试成功!

场景二:用户需要将后端的服务映射出去

阿里云VPC配置DNAT

1, 将EIP绑定到某台ECS上,然后测试通过eip登陆ssh,测试成功
dnat1
2,开启ip转发功能,并使之生效

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

dnat2
3,iptables 添加DNAT转换
添加转发规则 访问80端口的请求转给3.1

iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.3.1

(另一台机器的ECS IP)
使转发数据包实现“双向通路”,给数据包设置一个正确的返回通道:

iptables -t nat -I POSTROUTING -p tcp --dport 80 -j MASQUERADE

4,测试是否可以访问了
dnat4

访问自己
dnat42
访问EIP
dnat43

DNAT测试成功!

PS:目前阿里云已经推出了NAT网关,控制台点点就能用,详见
https://www.aliyun.com/product/nat

最后更新:2017-06-29 09:02:38

  上一篇:go  盘点各专业到古代都能干些啥
  下一篇:go  DB2联机移动表——admin_move_table