1. 自建NAT网关
专有网络环境下,没有公网IP地址的云服务器ECS实例,可以通过一台绑定了EIP的ECS实例访问公网。如下图所示。
假如Client ECS不能访问公网,ping www.aliyun.com 失败。下文告诉用户如何操作可以让Client ECS上公网。
数据规划
SNAT GW ECS的规格参数举例如下:
地域:华东2
可用区:华东2 可用区B
I/O优化实例:I/O优化实例
实例规格:1核1GB
网络类型:专有网络
虚拟交换机ID:vsw-11xxj71x8
操作系统:Ubuntu 14.04 64位
系统盘:40GB高效云盘
Client ECS的规格参数举例如下:
地域:华东2
可用区:华东2 可用区B
I/O优化实例:I/O优化实例
实例规格:1核1GB
网络类型:专有网络
虚拟交换机ID:vsw-11xxj71x8
操作系统:Ubuntu 14.04 64位
系统盘:40GB高效云盘
环境准备
1.创建一个VPC实例,具体操作可以参考 https://help.aliyun.com/document_detail/27710.html?spm=5176.product8315065_27706.4.4.lc50gL。
2.创建一个VSwitch,具体操作请参考 https://help.aliyun.com/document_detail/27710.html?spm=5176.product8315065_27706.4.4.lc50gL。
3.创建EIP实例,具体操作请参考 https://help.aliyun.com/document_detail/27714.html?spm=5176.doc27711.6.97.OJTsOP。
4.创建ECS实例,具体操作可参考 https://help.aliyun.com/document_detail/27713.html?spm=5176.doc27714.6.96.vkkuMO。
说明:ECS各参数的选择,可以参考数据规划部分的配置。
操作步骤
1.将SNAT网关的ECS绑定EIP。
2.SNAT网关可以访问公网。
3.配置Iptables。
a.打开iptables forward功能。
cd /etc/
vim sysctl.conf
b.添加 net.ipv4.ip_forward = 1
执行命令使修改生效: sysctl –p
c.使用如下命令把192.168.1.0/24发出的包的源地址替换为192.168.1.1。
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.1.1
4.添加路由。
把发往0.0.0.0/0网段的包,发送给SNAT网关(i-11gwp2l9l)。
5.登陆Client ECS,验证是否可以ping www.aliyun.com 成功。
2. 高速通道VPC共享
两个VPC共用自建SNAT网关
该场景中,VPC1里有一个用户自建的SNAT网关,用于实现同VPC内的其他ECS访问公网;VPC2的实例借助高速通道实现使用VPC1里的自建SNAT网关访问公网。
实现过程大致如下:
假设用户1拥有路由器1,用户2拥有路由器2;经协商后由用户1付费;
1.通过高速通道将两个VPC进行互连(具体步骤见前面的场景介绍)
2.在路由器2的路由表中添加条目,将0.0.0.0/0指向路由器2上的路由器接口;
3.确认路由器1上也已经添加了0.0.0.0/0的默认路由,是指向ECS1的;
此时,VPC2中的ECS访问公网时,路由器2会根据路由表将数据包通过高速通道转发到路由器1上,路由器1会将该消息转发到ECS1上,ECS1会行使SNAT网关的职能,将数据发向公网,并将回包原路返回。