VPC NAT 网关

更新时间:
复制为 MD 格式

VPC NAT 网关可以将 VPC 内的私网 IPv4 地址转换为 NAT IP,解决地址冲突网络的互访或满足使用指定地址访问的诉求。

  • 私网地址冲突解决:网段重叠的 VPC 无法互连,可添加附加网段并创建 VPC NAT 网关,通过地址转换解决地址冲突。

  • 使用指定地址互访:金融证券等受监管行业,云上业务使用 VPC NAT 网关,可确保通过固定的、指定的私网IP地址访问本地IDC。

工作原理

以云上云下使用固定的、指定的私网 IP 地址互访为例。

  • 云上业务访问本地 IDC:VPC 内的多个 ECS 实例访问本地 IDC,均使用指定的 NAT IP 访问。

    1. 路由转发:按照 VPC 路由表中指向 NAT 网关的路由规则,ECS 实例发出的访问数据包被转发至VPC NAT 网关。

    2. SNAT(源地址转换):VPC NAT网关接收到数据包后,根据 SNAT 条目配置,将数据包的源 IP 地址从 ECS 实例 IP(例如:192.168.1.10)转换为指定的 NAT IP(192.168.10.2)。同时,在内部会话表中记录下转换的映射关系。

    3. 发往对端私网:经过地址转换后的数据包被发送至本地IDC。对于本地 IDC,该请求的发起方是 NAT IP,而非 ECS 实例。

    4. 响应与反向转换:本地 IDC 返回的响应包,目标地址为 NAT IP。VPC NAT网关将按照会话映射表还原为原始的私网IP,从而转发回 ECS 实例。

  • 本地 IDC 访问云上业务:本地 IDC 主动向固定的 NAT IP (192.168.10.2) 发起请求。VPC NAT 网关会根据 DNAT 规则,将该请求的目标 IP 从 NAT IP 转换为 VPC 内实际提供服务的 ECS 实例私网 IP (例如:192.168.1.10),从而将外部访问流量准确地引入到目标服务器。

需注意:VPC NAT 网关本身不决定流量的走向,仅负责地址转换。流量是否会被发送到 NAT 网关,以及地址转换后流向何处,由 VPC 的路由表控制。

与其他 VPC、本地 IDC 的连通,需通过云企业网(CEN)、物理专线等产品实现。
  • 配置 VPC 出向路由( VPC 到外部网络):确保 VPC 路由表中已添加目的地址为对端网络(如本地 IDC)、下一跳为 VPC NAT 网关的路由条目,确保 VPC 内实例发起的访问请求,可转发至 NAT 网关进行 SNAT 转换。

  • 声明 NAT IP:当使用自定义 NAT IP地址段时,确保 VPC 路由表中已添加目的地址为该 NAT IP 地址段、下一跳为 VPC NAT 网关的路由条目,声明该地址段的归属,确保 DNAT 入向流量与 SNAT 回程流量在 VPC 内可正确转发。

  • 配置外部网络路由(外部网络到 VPC):确保对端网络已配置路由,目的地址为 NAT IP 地址段,确保来自外部网络的响应包或主动访问请求,可转发至 NAT 网关。

image

创建 VPC NAT 网关

控制台

前往NAT 网关 - VPC NAT网关购买页

  • 付费类型:按量付费。

  • 地域:选择创建 VPC NAT网关的地域。

  • 网络及可用区:选择VPC NAT 网关所属的VPC和交换机。为便于路由管理,建议为 VPC NAT 网关规划并使用独立的交换机。

  • 私网IP:作为默认 NAT IP,可从交换机网段(默认NAT IP地址段)中指定 NAT IP。如未配置,则系统指定。

  • 私网IP Prefix:可批量创建 NAT IP。需先为 VPC NAT 网关所属的交换机创建预留网段,VPC NAT 会将预留网段拆分为/28掩码的 IP Prefix。指定 IP Prefix 后,系统将为 NAT 网关添加该网段下全部 16 个地址作为 NAT IP。

API

调用CreateNatGateway创建VPC NAT网关。

配置 NAT IP 和地址段

NAT IP 用于配置 SNAT 条目与 DNAT 条目,在地址转换时替代 ECS 实例的真实 IP,作为统一的源地址或目的地址。NAT IP 需从 NAT IP 地址段中分配。

  • 默认 NAT IP 地址段:系统使用 VPC NAT 网关所属交换机网段作为默认 NAT IP 地址段。

    • 创建时配置的私网 IP 作为默认 NAT IP,可自行指定。如不配置,则系统指定。后续可添加 NAT IP。

    • 支持从交换机预留网段中配置私网 IP Prefix,用于批量创建 NAT IP。

  • 新建 NAT IP 地址段:分配非所属交换机网段下的 NAT IP。

    • 建议使用RFC私网地址10.0.0.0/16、172.16.0.0/16、192.168.0.0/16这三个私网网段及其子网作为地址段,支持的子网掩码位数范围为1632位。

    • 如需使用公网网段,需使用用户网段保证该网段在专有网络地址段范围内,再将其作为NAT IP地址段。

    • 不能与VPC NAT网关所属VPC的私网网段重叠。如果需要将私网地址转换为VPC私网网段内的其他地址,请在对应的VPC私网网段内创建交换机,并在该交换机中创建新的VPC NAT网关提供私网地址转换服务。

控制台

配置 NAT IP 地址段

  • 默认 NAT IP 地址段:系统默认使用 VPC NAT 网关所属交换机网段,无法删除。

  • 新建 NAT IP 地址段:前往VPC NAT网关页面,单击目标VPC NAT网关实例ID进入详情页,选择NAT IP页签,单击新建地址段

配置 NAT IP

  • 从默认 NAT IP 地址段中添加:

    • 创建 VPC NAT 网关时,配置的私网 IP 作为默认 NAT IP,可自行指定。如不配置,则系统自动指定。默认 NAT IP 无法删除。

    • 逐个添加 NAT IP:前往VPC NAT网关页面,单击目标VPC NAT网关实例ID进入详情页,选择NAT IP页签,单击添加NAT IP

      • 选择地址段:选择VPC NAT网关下默认 NAT IP 地址段。

      • 分配方式随机分配IP或从所选地址段中指定IP地址手动分配IP

    • 使用 IP Prefix 批量添加 NAT IP:前往VPC NAT网关页面,单击目标VPC NAT网关实例ID进入详情页,在NAT IP页签下选择NAT IP Prefix,单击添加IP Prefix

      • 批量添加:选择随机分配,指定分配的 IP Prefix 个数,将从 VPC NAT 网关所在交换机的预留网段中随机添加指定数量、未分配的/28掩码的 IP Prefix。

      • 逐个添加:选择手动分配,指定 VPC NAT 网关所在交换机的预留网段中未分配的/28掩码的 IP Prefix。

  • 从新建 NAT IP 地址段中添加:单击目标VPC NAT网关实例ID进入详情页,选择NAT IP页签,单击添加NAT IP

    • 选择地址段:选择VPC NAT网关下新建的NAT IP地址段。

    • 分配方式随机分配IP或从所选地址段中指定IP地址手动分配IP

API

配置 SNAT 条目

控制台

前往VPC NAT网关页面,单击目标VPC NAT网关实例操作列的SNAT管理,单击创建SNAT条目

  • SNAT条目粒度:SNAT 规则的生效范围,根据管理精细度需求选择。

    • 专有网络粒度:所属VPC下的所有ECS均可以通过配置的SNAT规则访问外部网络。

    • 交换机粒度:仅指定的交换机下的ECS可访问外部网络。

    • ECS粒度:仅指定的ECS或弹性网卡可访问外部网络。

    • 自定义网段粒度:指定的CIDR网段内的资源可访问外部网络。

  • 选择NAT IP地址:在下拉列表中选择一个或多个用来访问外部私网的NAT IP地址。可以在下拉列表选择新建NAT IP,创建后选择。

  • NAT IP亲和性:选择多个NAT IP,未开启亲和性时,同一个私网IP访问单一目的IP,可能使用不同的NAT IP。开启后,会使用相同的NAT IP。但访问单一目标的并发连接数过多时,会造成端口分配失败,需持续监控端口分配失败丢失数

创建完成后,可单击目标条目操作列的编辑,修改NAT IP地址与NAT IP亲和性。

API

配置 DNAT 条目

控制台

前往VPC NAT网关页面,单击目标VPC NAT网关实例操作列的DNAT管理,单击创建DNAT条目

  • 选择NAT IP地址:选择供外部私网访问的NAT IP 。支持将一个NAT IP 同时用于 DNAT 条目(端口映射方式)和 SNAT 条目。

  • 选择私网IP地址:选择使用 DNAT 规则进行通信的真实私网IP。支持通过 ECS 或弹性网卡进行选择或通过手动输入。

  • 端口设置:配置 DNAT 映射。

    • 任意端口:属于 IP 映射,任何访问该 NAT IP 的请求都将转发到目标 ECS 实例。

      • 目标 ECS 实例也可以使用该 NAT IP 主动访问外部网络。该 NAT IP 不能再被其他 DNAT 条目或 SNAT 条目使用。

      • 如果 NAT 网关既配置了 DNAT IP 映射,又配置了 SNAT 条目,则 ECS 实例会优先通过 DNAT IP 映射方式的 NAT IP 地址访问外部网络。

    • 具体端口:属于端口映射,以指定协议和端口将访问该 NAT IP 的请求转发到目标 ECS 实例的指定端口上。 配置前端端口(NAT IP 被外部网络访问的端口)、后端端口(映射的目标 ECS 实例端口)、协议类型(转发端口的协议类型)。

      • 端口范围需要在1~65535之间,不支持在端口段内转发。

      • 当选择的 NAT IP 已创建SNAT条目,且需要设置大于1024的端口时,因 SNAT 默认分配端口范围在1025~65535之间,需开启端口突破

        重要

        但开启端口突破会导致部分存量SNAT的连接闪断,重连即可恢复,请谨慎操作。

创建完成后,可单击目标条目操作列的编辑,修改NAT IP地址、私网IP地址和端口。

API

资源清理

VPC NAT 网关从创建完成到释放结束均收取实例费,处理流量时还将收取容量单位 CU 费。为避免非必要开销,当不再需要时,可按照以下步骤清理资源:

控制台

  1. 删除配置条目:在实例详情页的SNAT管理DNAT管理页签,删除配置的条目。

  2. 删除 NAT IP 地址:

    • 手动添加的 NAT IP:在实例详情页的NAT IP页签,单击目标NAT IP地址操作列的删除,或选择多个NAT IP地址,在页面下方单击删除

    • 使用 IP Prefix 添加的 NAT IP:在实例详情页的NAT IP页签,选择NAT IP Prefix,单击目标NAT IP Prefix操作列的删除,解除所有关联关系后,将删除 IP Prefix 以及批量创建的全部 NAT IP。

  3. 删除新建 NAT IP 地址段:在实例详情页的NAT IP页签,单击目标 NAT IP 地址段右侧删除图标。

  4. 删除VPC NAT 网关:单击目标实例操作删除

    未删除 NAT IP、配置条目时,可选择强制删除(删除 NAT 网关及其包含资源),由系统删除实例及相关资源。

    在实例详情页开启删除保护,可避免误删。删除实例前,需关闭删除保护。

API

  1. 分别调用DeleteSnatEntryDeleteForwardEntry删除SNAT条目和DNAT条目。

  2. 调用DeleteNatIp删除NAT IP地址。

  3. 调用DeleteNatIpCidr删除NAT IP地址段。

  4. 调用DeleteNatGateway删除VPC NAT网关。

应用于生产环境

最佳实践

  • 网络规划:为便于路由管理,为 VPC NAT 网关规划并使用独立的交换机。

  • 精细化控制:使用交换机粒度或 ECS 粒度的 SNAT 条目,遵循最小权限原则,仅为需要访问外部网络的资源开启权限。

  • 高可用容灾:VPC NAT 网关提供主备可用区容灾,备可用区由阿里云选择。但主备切换过程中,可能存在最长 10 分钟的切换中断。对于无法接受此中断的业务,应在不同可用区部署多个 NAT 网关,并在业务层面实现流量调度和故障切换。

风险防范

  • 安全组配置:VPC NAT 网关实现地址转换,后端 ECS 实例的安全防护仍依赖安全组和网络 ACL。请务必为 ECS 实例配置严格的入方向安全组规则,仅放行必要的端口。

  • 监控与告警:为 VPC NAT 网关的关键指标(如并发连接数、出入方向带宽等)配置告警规则,以便在资源接近瓶颈时及时收到通知并扩容。

  • 连接数限制:业务需要大量连接到同一服务时,需关注最大并发连接数(N × 55,000, N 是 SNAT 条目配置的 NAT IP 数量)。建议提前规划足够的 NAT IP 数量,并监控端口分配失败丢失数

更多信息

计费说明

VPC NAT 网关收取实例费和容量单位CU

image

配额

配额名称

描述

默认限制

提升配额

natgw_quota_nat_num_per_vpc

VPC内可以创建NAT网关的数量

5

前往配额管理页面配额中心申请提升配额。

natgw_quota_nat_ip_num_per_vpc_nat

每个VPC NAT网关可创建的NAT IP数量

15

natgw_quota_snat_entry_num

每个NAT网关中可保有的SNAT条目数量

40

natgw_quota_dnat_entry_num

每个NAT网关中可保有的DNAT条目数量

100