NAT网关SNAT场景最佳实践环境包括:
1个VPC(test-vpc)
2个子网(nat-subnet和private-subnet)
2个路由表,(nat-rt和private-rt)
1台云主机(test-vm)
1台NAT网关(test-natgw)
创建1个测试VPC(test-vpc),在测试VPC中创建两个测试子网(nat-subnet,private-subnet),详细步骤请参见VPC配置和子网配置
在测试子网private-subnet中创建1台没有公网IP的测试云主机(test-vm),详细步骤参见创建实例
创建2个路由表(nat-rt,private-rt), private-rt关联子网private-subnet,nat-rt关联子网nat-subnet,详细步骤请参见路由表配置
在左侧导航栏,点击NAT 网关
在NAT网关页面,点击创建
根据以下信息,配置NAT网关
配置 | 说明 |
---|---|
地域与可用区 | 选择需要配置NAT网关的VPC所在的地域并选择可用区 |
规格 | 选择NAT网关的规格。NAT网关的规格会影响SNAT功能的最大连接数和每秒新建连接数,但不会影响数据吞吐量。详情参见产品规格 |
网络 | 选择需要配置NAT网关的VPC和子网 |
NAT网关公网IP | 选择NAT网关公网带宽 |
基本信息 | 填写NAT网关名称(test-natgw)和描述 |
请注意:需要给NAT网关创建单独子网,不能和使用NAT网关的云主机创建在同一子网
确认信息无误后,点击立即购买
确认订单信息,勾选已阅读NAT《网关服务协议》,点击立即开通
返回NAT网关页面确认新购买NAT网关已显示,状态为运行中
在左侧导航栏,点击路由表
选择NAT网关所在子网关联的路由表(nat-rt),进入路由表详情页
选择路由策略,点击编辑,增加一条路由,目的为0.0.0.0/0 下一跳类型为Internet,下一跳为Internet,确认后点击保存
选择云主机所在子网关联的路由表(private-rt),进入路由表详情页
选择路由策略,点击编辑,增加一条路由,目的为0.0.0.0/0 下一跳类型为NAT 网关,下一跳选择NAT网关(test-natgw),确认后点击保存
注意: 云主机所在子网配置默认路由规则0.0.0.0/0下一跳为NAT网关后,如没有配置优先级更高的访问互联网精细路由,有如下影响: (1)该子网内所有云主机将通过NAT网关访问互联网 (2)子网内原绑定公网IP的云主机将不能再通过公网IP与互联网互通。如云主机仍需对外提供Telent、SSH或其他高可用服务,请参见NAT网关最佳实践文档https://docs.jdcloud.com/cn/nat-gateway/config-lb-eni-nat-gateway。
确认在云主机所在子网内已经创建了一台没有关联公网IP的云主机
在左侧导航栏,点击实例
选择用来测试的云主机,在右侧操作列点击远程连接,登录云主机
在命令行运行 "ping www.jd.com", 确认可以ping通
在左侧导航栏,点击网络ACL
指定NAT网关所在VPC(test-vpc),选择创建网络ACL(nat-acl),进入网络ACL详情页
选择关联子网,指定NAT网关所在子网(nat-subnet),点击确定,此时网络ACL的缺省规则入栈规则和出栈规则都是全部流量拒绝,会丢弃所有报文
再次测试云主机通过NAT网关访问Internet,通过VNC远程连接登陆云主机
在命令行运行 "ping www.jd.com", 确认不能ping通
此时需要修改ACL规则,才能允许云主机访问Internet
选择入栈规则,点击编辑规则,增加一条新规则,优先级为100,类型为ALL ICMP,源IP为0.0.0.0/0 策略为接受,确认后点击保存
选择出栈规则,点击编辑规则,增加一条新规则,优先级为100,类型为ALL ICMP,目的IP为0.0.0.0/0 策略为接受,确认后点击保存
再次测试云主机通过NAT网关访问Internet,通过VNC远程连接登陆云主机
在命令行运行 "ping www.jd.com", 确认可以ping通
此时云主机如果要通过NAT网关访问其他公网服务,比如"curl www.jd.com:80", 需要添加http类型的入栈和出栈规则,允许接受对应流量访问
注意: 1、网络ACL不是NAT网关最佳实践的必选项,只有需要进行访问控制时,才需要配置 2、网络ACL规则是无状态的,即使设置入站规则允许指定的IP地址访问,如果没有设置相应的出站规则会导致无法响应访问,所以按照白名单配置允许访问时,需要入栈规则和出栈规则同时配置