无公网IP的弹性云服务器访问Internet

[TOC]

1 背景

客户买了一批服务器,有些买了公网IP。而有些ECS没有购买公网IP,但是又想要上互联网怎么办?这个时候就需要借用iptables的路由转发功能,让没有公网IP的ECS经过有公网IP的ECS来出网。

这种需求,更加合理的转发应该是购买NAT网关。但是还真的有这样的场景。

2 解决方案

2.1 华为云

参考文档1:https://support.huaweicloud.com/usermanual-ecs/ecs_03_0705.html
参考文档2: https://blog.csdn.net/catoop/article/details/122291776

2.1.1 场景

假设存在两台服务器,分别是

  • 无公网IP的ECS01:10.10.0.213
  • 有公网IP的ECS02:10.10.0.214

这时候要执行的操作一共有两步,首先是在ECS02上打开路由转发功能并配置SNAT规则,然后在ECS01上增加对应的路由规则即可。

2.1.2 步骤

  1. 在ECS02上打开路由转发功能并配置SNAT规则
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
sysctl -p
iptables -t nat -I POSTROUTING -s 10.10.0.0/24 -j SNAT --to-source 10.10.0.214
  1. 在ECS01上配置路由规则
    我这里的配置方法就比较暴力了,直接修改网卡的配置文件,把网关的地址修改为10.10.0.214,如下
IPADDR=10.10.0.213
PREFIX=24
GATEWAY=10.10.0.214
DNS1=223.5.5.5
  1. 华为云的话还需要额外进行一个操作,就是在ECS02上,关闭源/目的检查的功能,该功能在弹性网卡的菜单下。

参考文档上要求还需要配置VPC路由信息,但是我发现不配置也是可以直接访问互联网。

2.2 天翼云

操作方法同华为云

2.3 阿里云

操作方法类似华为云,不同的点有两个:

  1. 阿里云的弹性网卡没有源/目的检查的功能
  2. 阿里云上需要配置VPC路由也就是,在路由表上新增一条类似这样的路由条目:


    image.png

你可能感兴趣的:(无公网IP的弹性云服务器访问Internet)