当您需要在有公网NAT网关的专有网络VPC(Virtual Private Cloud)中开启IPv4网关时,您可以通过新建公网NAT网关和保留原有公网NAT网关的方式,本文介绍这两种方式的配置。
场景示例
某公司在新加坡地域拥有一个VPC,在该VPC内的交换机VSW1上的云服务器ECS(Elastic Compute Service)集群部署了云服务。现已通过公网NAT网关(名称为NATGW1)的DNAT功能实现了ECS可以面向公网提供服务。因业务发展,ECS集群中的部分ECS实例已经拥有了固定公网IP或者弹性公网IP(Elastic IP Address,简称EIP)地址,这些有公网IP地址的ECS实例可以直接访问公网而不受VPC路由表的控制。
为了降低ECS直接访问公网可能带来的安全管控风险,现在该公司想在该VPC中创建一个IPv4网关,并结合子网路由功能,实现对VPC中的ECS访问公网行为的约束。因此公网NAT网关所在的交换机需要有公网访问能力(交换机关联的路由表配置默认路由指向IPv4网关),通过公网NAT网关访问公网的ECS需要部署在没有公网访问能力的交换机中(交换机关联的路由表配置默认路由指向公网NAT网关,不能配置路由指向IPv4网关),这就需要将这些ECS和公网NAT网关部署在不同的交换机中,您可以通过以下两种方式进行操作:
方式一:新建公网NAT网关,在新建的交换机VSW2中创建公网NAT网关(名称为NATGW2),将交换机VSW1上有公网IP的ECS迁移至新的交换机VSW2,无公网IP的ECS继续保留在交换机VSW1中。
方式二:保留原有的公网NAT网关,将交换机VSW1上无公网IP的ECS迁移至新的交换机VSW2。
方式一:新建公网NAT网关
通过方式一实现对VPC中的ECS访问公网行为进行约束时,您需要创建一个名为VSW2的新交换机,将VSW1交换机中已有公网IP的ECS2实例迁移到VSW2交换机中,在VSW2交换机中新建一个公网NAT网关(名称为NATGW2),将指向VSW1交换机中NATGW1网关的路由条目切换为指向VSW2交换机中的公网NAT2网关,并且删除VSW1交换机中的NATGW1网关。
通过以上操作,VSW1交换机中无公网IP的ECS1可以经由NATGW2网关和IPv4网关访问公网,VSW1交换机中的ECS1即使有公网IP也不能访问公网,VSW2交换机中有公网IP的ECS2实例经由IPv4网关访问公网,从而实现对VPC中的ECS访问公网行为的约束。
方式二:保留原有的公网NAT网关
通过方式二实现对VPC中的ECS访问公网行为进行约束时,首先您需要在VPC中创建IPv4网关,然后创建一个名为VSW2的新交换机并关联新的子网路由表-2,将VSW1交换机中无公网IP的ECS1实例迁移到VSW2交换机中,在VSW1关联的子网路由表-1中将指向NATGW1网关的路由条目切换为指向IPv4网关的路由,将VSW2中关联的子网路由表2中配置默认路由下一跳指向NATGW1,最后激活IPv4网关。
通过以上操作,VSW2交换机中无公网IP的ECS1可以经由NATGW1网关和IPv4网关访问公网,VSW2中的ECS1即使有公网IP也不能访问公网,VSW1交换机中有公网IP的ECS2实例可以经由IPv4网关直接访问公网,从而实现对VPC中的ECS访问公网行为的约束。
您可以根据需要选择以上两种方式中的一种进行配置。本文以方式一:新建公网NAT网关为例进行配置说明。
当前新建的公网NAT网关只有按量付费一种计费方式,如果您以前的公网NAT网关是包年包月的计费方式并且您期望保留原有的计费方式不发生变化,请使用方式二:保留原有的公网NAT网关的方式进行配置。
前提条件
您已经在新加坡地域创建VPC,且在该VPC中创建了两个交换机,分别为VSW1和VSW2。具体操作,请参见搭建IPv4专有网络。
您已经在VSW1交换机中创建了一台名称为ECS1的无公网IP的ECS实例,在VSW2交换机中创建了一台名称为ECS2的有公网IP的ECS实例。具体操作,请参见自定义购买实例。
您已在VSW1交换机中创建了一台名为NATGW1网关的公网NAT网关,且该公网NAT网关已绑定了EIP。同时已删除了系统路由表中指向该NATGW1网关的自定义路由条目。具体操作,请参见创建和管理路由表。
您已在VSW2交换机中创建了一台名为NATGW2的公网NAT网关,且该公网NAT网关已绑定了EIP。具体操作,请参见创建和管理公网NAT网关实例。
步骤一:创建自定义路由表
您需要创建自定义路由表并绑定VSW2交换机,创建完成后,您可以在该路由表中添加指向IPv4网关的路由条目。
- 登录专有网络管理控制台。
- 在左侧导航栏,单击路由表。
在顶部菜单栏处,选择自定义路由表所属的地域。 本文选择新加坡。
- 在路由表页面,单击创建路由表。
在创建路由表页面,根据以下信息配置路由表,然后单击确定。
配置
说明
资源组
选择自定义路由表所属的资源组。
专有网络
选择自定义路由表所属的VPC。
说明该VPC需与创建IPv4网关时选择的VPC相同。
绑定对象类型
选择路由表绑定的对象类型。本文选择交换机。
名称
输入自定义路由表的名称。
描述
输入自定义路由表的描述。
- 在路由表页面,找到目标路由表,单击路由表的ID。
在路由表详情页面,单击已绑定交换机页签,然后单击绑定交换机。
在绑定交换机对话框中,选择要绑定的交换机VSW2,然后单击确定。
步骤二:创建并激活IPv4网关
创建IPv4网关时,VPC下的公网NAT网关兼容IPv4网关,则会创建成功;VPC下的公网NAT网关不兼容IPv4网关,则会创建失败。您可以通过切换公网NAT网关的模式,使公网NAT网关兼容IPv4网关,然后再重新创建IPv4网关。关于如何切换公网NAT网关的模式,请参见切换公网NAT网关模式。
- 登录专有网络管理控制台。
在顶部菜单栏处,选择要创建IPv4网关的地域。本文选择新加坡。
- 在左侧导航栏,单击IPv4网关。
在IPv4网关页面,单击创建IPv4网关。
在创建IPv4网关对话框中,配置以下参数信息,然后单击创建。
在创建IPv4网关对话框,创建并激活IPv4网关,同时配置指向IPv4网关的路由。
创建IPv4网关
在创建IPv4网关配置向导,配置以下信息,然后单击创建。
参数
说明
地域
自动显示IPv4网关地域。
专有网络
选择关联IPv4网关的VPC。
名称
输入IPv4网关的名称。
描述
输入IPv4网关的描述信息。
激活IPv4网关
在激活IPv4网关配置向导,选择步骤一创建的自定义路由表,然后单击激活。
稍等片刻,即可看到激活成功的提示,然后单击关闭。
步骤三:为VSW2交换机中的NATGW2网关创建SNAT条目
您需要为VSW2交换机中的NATGW2网关创建SNAT条目,以实现VSW1交换机中无公网IP的ECS可以通过VSW2交换机中的NATGW2网关访问互联网。
- 登录NAT网关管理控制台。
在顶部菜单栏,选择公网NATGW2网关的地域。本文选择新加坡。
- 在公网NAT网关页面,找到目标公网NAT网关实例,然后在操作列单击设置SNAT。
在SNAT管理页签,单击创建SNAT条目。
在创建SNAT条目页面,配置以下参数,然后单击确定创建。
配置
说明
SNAT条目粒度
选择SNAT条目的粒度。本文选择交换机粒度。
选择交换机
选择指定交换机下的ECS实例通过配置的SNAT条目规则访问互联网。本文选择VSW1交换机。
交换机网段
系统自动显示VSW1交换机的网段。
选择公网IP地址
选择用来提供互联网访问的公网IP。
本文选择使用单IP,然后在下拉列表中选择已绑定至NATGW2网关的EIP。
条目名称
输入SNAT条目的名称。
步骤四:为系统路由表添加自定义路由条目
您需要为VSW1交换机绑定的系统路由表添加指向VSW2中的NATGW2网关的自定义路由条目,使VSW1交换机中无公网IP的ECS可以通过该路由条目配置的下一跳地址找到NATGW2网关,以实现公网访问。
- 登录专有网络管理控制台。
- 在左侧导航栏,单击路由表。
在顶部菜单栏处,选择自定义路由表所属的地域。 本文选择新加坡。
在路由表页面,找到VPC的系统路由表,单击路由表的ID。
在路由表详情页面,选择 。
单击添加路由条目,在添加路由条目面板,根据以下信息配置路由条目,然后单击确定。
配置
说明
名称
输入自定义路由条目的名称。
目标网段
输入要转发到的目标IPv4网段。本文输入目标网段为0.0.0.0/0。
下一跳类型
选择下一跳类型。本文选择NAT网关。
NAT网关
选择公网NATGW2网关的实例ID。
步骤五:删除VSW1交换机中的NATGW1网关
删除NATGW1网关前,请确保:
公网NAT网关没有绑定EIP,如有绑定请解绑。具体操作,请参见解绑EIP。
SNAT列表中没有SNAT条目,如有请删除。具体操作,请参见创建和管理SNAT条目。
公网NAT网关实例基本信息页面默认未开启删除保护。如开启,请关闭删除保护。
- 登录NAT网关管理控制台。
在顶部菜单栏,选择公网NATGW1网关的地域。本文选择新加坡。
在公网NAT网关页面,找到目标公网NAT网关,然后在操作列选择 。
在删除网关对话框,单击确定。
重要当您需要强制删除公网NATGW1网关及其资源时,请在删除网关对话框,选中强制删除(删除 NAT 网关及其包含资源)。强制删除公网NATGW1网关时,系统会自动解绑EIP、删除该公网NATGW1网关下的SNAT条目,请您谨慎操作。
步骤六:连通性测试
完成上述操作后,VSW1交换机中的ECS1可以经由公网NATGW2网关和IPv4网关访问目标网段;VSW2交换机中的ECS2可以经由IPv4网关访问目标网段。本文中的ECS1和ECS2均为Linux操作系统。
测试ECS1访问目标网段的能力。
远程登录ECS1。具体操作,请参见ECS远程连接操作指南。
在ECS1实例中执行
curl www.aliyun.com
命令,测试网络连通性。收到如下图所示的回复报文,则表示网络已连通。
测试ECS2访问目标网段的能力。
远程登录ECS2。
在ECS2实例中执行
curl www.aliyun.com
命令,测试网络连通性。收到如下图所示的回复报文,则表示网络已连通。