当多个VPC需要访问公网时,为节约公网IP资源,您可为多个VPC配置一个公网NAT网关,以节省企业成本。本文为您介绍如何通过中转路由器实现多个VPC共享一个NAT网关访问公网。
某企业的业务部署于3个VPC,如下图所示,VPC-A和VPC-C共用一个公网NAT网关,VPC-B不使用公网NAT网关。
上图仅呈现一条SNAT规则,在实际使用过程中,可按需创建多条SNAT规则和DNAT规则。
云服务器ECS-A可通过公网NAT网关NAT-X的SNAT规则访问公网。
根据背景介绍,在操作之前,您需要做如下准备:
创建一个中转路由器实例,配置相关路由,实现VPC-A、VPC-B分别与VPC-C互通,VPC-A与VPC-B彼此之间隔离。
本文以多个VPC同账号同地域为例,您可以参考如下操作配置,也可以参考 实现不同VPC之间的私网互通与隔离(同账号同地域) 。
在实际使用过程中,可能存在如下情况:
参数 | 说明 | 取值示例 |
---|---|---|
地域 | 选择中转路由器实例所属的地域。 | 华北2(北京) |
名称 | 输入中转路由器实例的名称。 | TR-X |
项目 | 选择中转路由器所属的项目。 | default |
标签 | 按需为中转路由器添加一个或多个用户标签。 | 不添加用户标签 |
说明
中转路由器实例创建成功后,系统自动创建了TR系统路由表,请记录该TR系统路由表的名称。下文以RouteTable-default为例。
参考以下步骤,依次创建3条网络实例连接,3条网络实例连接的配置分别如参数配置表中的取值示例一、取值示例二和取值示例三。
在中转路由器实例列表页面,单击目标中转路由器实例的名称。
在“同地域网络实例连接”页签, 单击“创建网络实例连接”按钮。
参考下表,配置相关参数。
参数 | 说明 | 取值示例一 | 取值示例二 | 取值示例三 |
---|---|---|---|---|
中转路由器 | 默认为您选定的中转路由器实例。 | TR-X | TR-X | TR-X |
地域 | 默认与中转路由器实例的地域相同。 | 华北2(北京) | 华北2(北京) | 华北2(北京) |
名称 | 待创建网络实例连接的名称。 | Attach-VPC-A | Attach-VPC-B | Attach-VPC-C |
网络实例类型 | 选择待创建网络实例连接的类型。 | 私有网络 | 私有网络 | 私有网络 |
私有网络 | 选择待关联的私有网络实例。 | VPC-A | VPC-B | VPC-C |
可用区及子网 | 选择连接点的所在可用区的子网。子网为网络实例连接的网卡分配私网IP地址。 | 可用区A,子网-A | 可用区A,子网-B | 可用区A,子网-C |
关联转发 | 是否开启关联转发,并选择关联转发的TR路由表。开启后,来自该网络实例连接的流量,将按照其关联转发TR路由表的路由条目进行转发。 | 开启,RouteTable-default | 开启,RouteTable-default | 开启,R-Table-X |
路由学习 | 是否为开启路由学习,并选择路由选择的TR路由表。开启后,指定TR路由表自动生成目标网段为该私有网络子网的网段,下一跳为该网络实例连接的路由条目。 | 开启,R-Table-X | 开启,R-Table-X | 开启,RouteTable-default |
单击“确定”按钮,完成操作。
此时,两个TR路由表路由条目和关联转发情况如下:
TR路由表名称 | 目标网段 | 下一跳 | 关联转发 | 说明 |
---|---|---|---|---|
RouteTable-default | 10.0.1.0/24 | Attach-VPC-C | Attach-VPC-A、Attach-VPC-B | 中转路由器从Attach-VPC-A和Attach-VPC-B接收的访问10.0.1.0/24的流量将转发至Attach-VPC-C。 |
R-Table-X | 172.16.1.0/24 | Attach-VPC-A | Attach-VPC-C | 中转路由器从Attach-VPC-C接收的访问 172.16.1.0/24的流量将转发至Attach-VPC-A。 |
192.168.1.0/24 | Attach-VPC-B | 中转路由器从Attach-VPC-C接收的访问192.168.1.0/24的流量将转发至Attach-VPC-B。 |
参数 | 说明 | 取值示例 |
---|---|---|
目标网段 | 指定为VPC-C的网段。 | 10.0.0.0/16 |
下一跳类型 | 选择路由条目的下一跳资源类型,将指向目标网段的流量转发到指定的资源。 | 中转路由器 |
下一跳 | 指定具体的下一跳资源。 | TR-X |
参数 | 说明 | 取值示例一 | 取值示例二 |
---|---|---|---|
目标网段 | 分别指定为VPC-A、VPC-B的网段。 | 172.16.0.0/16 | 192.168.0.0/16 |
下一跳类型 | 选择路由条目的下一跳资源类型,将指向目标网段的流量转发到指定的资源。 | 中转路由器 | 中转路由器 |
下一跳 | 指定具体的下一跳资源。 | TR-X | TR-X |
ping 192.168.1.22
和ping 10.0.1.33
。预期结果如下:
您可通过本操作,在VPC-C中创建一个全通模式的公网NAT网关。
参数 | 说明 | 本文取值 |
---|---|---|
计费类型 | 支持按量计费和包年包月。 | 按量计费 |
地域 | 选择公网NAT网关所在地域。 | 华北2(北京) |
名称 | 设置公网NAT网关的名称。 | NAT-X |
计费方式 | 当计费类型为“按量计费”时,选择公网NAT网关的计费方式。支持 按规格计费 和 按使用量计费 。 说明
| 按规格计费 |
规格 | 选择公网NAT网关的规格。 | 小型 |
私有网络 | 选择私有网络。 | VPC-C|10.0.0.0/16 |
子网 | 下拉选择子网。 | 子网-C|10.0.1.0/24 |
项目 | 按需选择公网NAT网关所属的项目。 | default |
配置方式 | 当计费类型为“按量计费”时,选择公网NAT网关的配置方式。
| 自动配置(全通模式) |
公网IP | 当配置方式为“自动配置”时,下拉选择一个公网IP。 | EIP-X |
标签 | 按需为公网NAT网关添加一个或多个用户标签。 | 不添加用户标签 |
说明
若创建失败,请参考 创建公网NAT网关失败是什么原因 。
登录 中转路由器控制台。
单击目标中转路由器实例的名称。
选择“路由表”页签,选中TR系统路由表RouteTable-default,右侧显示TR路由表详情页面。
在“路由条目”页签,单击“创建静态路由”按钮。
参考下表,配置相关参数。
参数 | 说明 | 取值示例 |
---|---|---|
路由名称 | 输入静态路由的名称。 | NAT-Gateway |
目标网段 | 输入静态路由目标网段。 | 0.0.0.0/0 |
黑洞路由 | 选择静态路由是否为黑洞路由。 | 否 |
下一跳 | 选择下一跳网络实例连接。 | Attach-VPC-C |
单击“确定”按钮,完成操作。
参数 | 说明 | 取值示例 |
---|---|---|
目标网段 | 设置流量路由的目标网段。 | 0.0.0.0/0 |
下一跳类型 | 选择路由条目的下一跳资源类型 | 中转路由器 |
下一跳 | 根据下一跳类型,下拉选择资源。 | TR-X |
说明
如果VPC-B也需要使用公网NAT网关与公网互通,则您可按需选择如下方案:
登录VPC-A云服务器实例ECS-A(172.16.1.11),在命令行执行ping 114.114.114.114
。ping
通,则表示VPC-A的ECS-A可通过VPC-C的公网NAT网关访问公网,即VPC-A的云服务器可共享VPC-C的公网NAT网关。
说明
若ping
不通,请参考 已配置SNAT规则的云服务器无法访问公网 。