操作场景
当您在使用VPC的路由表功能时,需要在弹性云服务器上部署SNAT,使得VPC内其他 没有绑定EIP的弹性云服务器可以通过它访问Internet。
该配置对VPC内所有子网生效。
前提条件
● 已拥有需要部署SNAT的弹性云服务器。
● 待部署SNAT的弹性云服务器操作系统为Linux操作系统。
● 待部署SNAT的弹性云服务器网卡已配置为单网卡。
SNAT 服务器与 NAT 网关服务差异
NAT网关(NAT Gateway)能够为虚拟私有云内的云主机(弹性云服务器、裸金属服 务器、云桌面)或者通过云专线/VPN接入虚拟私有云的本地数据中心的服务器,提供 网络地址转换服务,使多个云主机可以共享弹性公网IP访问Internet或使云主机提供互 联网服务。
对比SNAT服务器实例,NAT网关具有配置简单、灵活易用、支持跨子网部署、跨可用 区部署、支持多种网关规格等优势,您可以在管理控制台选择“网络 > NAT网关”进 行体验。
更多内容请参见《NAT网关用户指南》。
操作步骤
伪装报文攻击,提升安全性。但在SNAT场景中,SNAT实例起转发作用,这种保 护机制会导致报文的发送者无法接收到返回的报文。这种保护机制可以通过设置“源/目的检查”状态为禁用。
7. 绑定EIP。
– 为弹性云服务器的私有IP绑定EIP,详情请参见为弹性云服务器申请和绑定弹 性公网IP。
– 为弹性云服务器的虚拟IP绑定EIP,详情请参见为虚拟IP地址绑定弹性公网IP 或弹性云服务器。
8. 打开待配置SNAT弹性云服务器详情页面,通过remote login登录服务器。
9. 执行如下命令,输入root密码,切换至root。
su - root
10. 执行如下命令,检测弹性云服务器是否可以正常连接Internet。
说明
执行如下命令前,关闭SNAT服务器上响应的IPtables规则,开放安全组规则。
ping www.huawei.com
回显如下所示,表示弹性云服务器可以正常连接Internet。
[root@localhost ~]# ping www.huawei.com
PING www.a.shifen.com (xxx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=51 time=9.34 ms 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=51 time=9.11 ms 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=51 time=8.99 ms
11. 执行如下命令,查看Linux操作系统的IP转发功能是否已开启。
cat /proc/sys/net/ipv4/ip_forward
回显结果:1为开启,0为关闭,默认为0。
– 是,执行14。
– 否,执行12,开启Linux的IP转发功能。
许多操作系统支持路由报文。操作系统需要在转发报文前将报文的源IP地址转换 成操作系统的IP地址,因此,发送的报文带有公共发送者的IP地址,而返回的报文 能够原路返回,这种方式称为SNAT。操作系统需要跟踪转换过IP地址的报文,确 保返回的报文中目的IP地址可以被重写,且报文能够转发给原始的报文发送者。
这一过程实现需要启用IP转发功能,并设置SNAT规则。
12. 使用vi打开“/etc/sysctl.conf”文件,修改net.ipv4.ip_forward = 1,按“:wq”保 存退出。
13. 执行如下命令,使修改生效。
sysctl -p /etc/sysctl.conf 14. 配置SNAT。
执行如下命令,允许网段(例如:192.168.1.0/24)内所有弹性云服务器内访外配 置。实例如图9-7所示。
iptables -t nat -A POSTROUTING -o eth0 -s subnet -j SNAT --to nat-instance-ip
图9-7 配置 SNAT
说明
● 如需实现重启后规则不丢失,则需把规则写在/etc/rc.local文件中。
1. 执行以下命令进入/etc/rc.local文件。
vi /etc/rc.local 2. 执行14配置SNAT
3. 执行以下命令保存并退出。
:wq
4. 执行以下命令添加rc.local文件的执行权限。
# chmod +x /etc/rc.local
● 为保证配置正常生效,请执行iptables -L命令查看已配置的规则是否有冲突。
15. 执行如下命令,查看是否配置成功。如图9-8所示,则表示配置成功(例如:
192.168.1.0/24)。
iptables -t nat --list
图9-8 验证设置
16. 添加自定义路由,详见添加自定义路由。
目的地址是0.0.0.0/0,下一跳地址是SNAT服务器的私有IP或者虚拟IP(例如:
192.168.1.4)。
按以上操作完成配置后,如果出现网络不通等情况,请检查您的安全组、网络ACL配 置,是否放通了对应流量。
9.5 添加自定义路由
操作场景
当VPC内的弹性云服务器需要访问Internet,用户可以添加自定义路由,通过绑定弹性 公网IP的服务器访问Internet网络。
操作步骤
1. 登录管理控制台。
2. 在管理控制台左上角单击 ,选择区域和项目。
3. 在系统首页,选择“网络 > 虚拟私有云”。
4. 在左侧导航栏选择“虚拟私有云”。
5. 在虚拟私有云列表中,单击需要添加路由的虚拟私有云名称。
6. 在“路由表”页签,单击“添加路由信息”。
7. 根据弹出框中提示,填写路由信息。
图9-9 添加路由信息
– “目的地址”是目的网段,默认是0.0.0.0/0,如果是VPC内部发起的流量,
则"目的地址"可以为该VPC下的子网地址。如果是VPC外部发起的流量,
则"目的地址"不能与该VPC下子网网段冲突。但是,每条路由信息的目的地址 不能重复。
– “下一跳地址”是VPC内的私有IP地址或虚拟IP。
说明
如果下一跳地址是虚拟IP,这个虚拟IP必须绑定EIP,否则无法通过自定义路由到虚拟IP访 问Internet。
8. 单击“确定”,完成创建。
9.6 查询路由表
操作场景
已经创建的路由表,您可以随时查询单个路由表或所有路由表的信息。
操作步骤
1. 登录管理控制台。
2. 在管理控制台左上角单击 ,选择区域和项目。
3. 在系统首页,选择“网络 > 虚拟私有云”。
4. 在左侧导航栏选择“虚拟私有云”。
5. 在虚拟私有云列表中,单击需要查询路由的虚拟私有云名称。
6. 在路由表列中查看单个路由表或者所有路由表信息。
9.7 修改路由
操作场景
修改路由的目的地址、下一跳地址。
操作步骤
1. 登录管理控制台。
2. 在管理控制台左上角单击 ,选择区域和项目。
3. 在系统首页,选择“网络 > 虚拟私有云”。
4. 在左侧导航栏选择“虚拟私有云”。
5. 在虚拟私有云列表中,单击需要修改路由的虚拟私有云名称。
6. 在“路由表”页签中,单击需要修改的路由信息所在行的“操作”列下的“修 改”。根据弹出框提示,修改路由信息。
7. 单击“确定”,完成修改。
9.8 删除路由
操作场景
您可以随时删除已创建的路由。
操作步骤
1. 登录管理控制台。
2. 在管理控制台左上角单击 ,选择区域和项目。
3. 在系统首页,选择“网络 > 虚拟私有云”。
4. 在左侧导航栏选择“虚拟私有云”。
5. 在虚拟私有云列表中,单击需要删除路由的虚拟私有云名称。
6. 在“路由表”页签中,单击需要删除的路由信息所在行的“操作”列下的“删 除”。
7. 单击“是”,完成删除。