混合 NAT

混合 NAT 是一种专用 NAT 产品, 可用来在两个网络之间执行 IP 地址转换 (NAT) 一个 VPC 网络 或任何其他云服务商网络。这些网络必须连接到 使用 Google Cloud 的企业混合配置来管理 VPC 网络 例如 Cloud VPN 等连接性产品

规格

除了通用 Private NAT 规范之外, 对于混合 NAT,请考虑采用以下规范:

  • 混合 NAT 可让 VPC 网络 本地网络或任何其他云服务商网络,即使子网 通信网络的 IP 地址范围重叠。使用 NAT 配置 type=PRIVATE,资源 - 两者均处于重叠部分 和非重叠子网之间的连接 仅应用于本地网络的非重叠子网中的资源 或任何其他云服务提供商网络
  • 通过本地网络或其他云服务提供商启用混合 NAT 网络必须通告其动态路由,以便您的 VPC 网络 可以学习和使用它们。 您的 Cloud Router 路由器会通过 Google Cloud 的 混合连接解决方案,例如高可用性 VPN 或传统 VPN (配置了动态路由)。这些动态路由的目的地是 VPC 网络之外的 IP 地址范围。

    同样,对于返回流量,您的 VPC 网络必须通告 通过 Cloud Router 路由器配置专用 NAT 子网路由

  • 混合 NAT 会对源自 VPC 的流量执行 NAT 连接到本地网络或任何其他云服务提供商网络。广告网络 必须通过 Cloud VPN 通过动态路由进行连接。

  • Hybrid NAT 仅支持现有的传统 VPN 隧道 (如果已启用动态路由)。

  • 您需要创建具有匹配表达式 nexthop.is_hybrid 的自定义 NAT 规则。 NAT 规则指定目标子网 PRIVATE_NAT 中的 NAT IP 地址范围 VPC 网络中的资源可用来通信 与其他广告联盟通信

  • 要在其中配置混合 NAT 的 Cloud Router 路由器 必须与 VPC 网络位于同一区域。

  • 要在其中配置混合 NAT 的 Cloud Router 路由器 不能包含任何其他 NAT 配置。

  • 您不得在 VPC 中配置混合 NAT 存在 Cloud Interconnect 连接的网络。

基本的混合 NAT 配置和工作流

下图展示了基本的混合 NAT 配置:

<ph type="x-smartling-placeholder">
</ph> 混合 NAT 转换示例。
混合 NAT 转换示例(点击可放大)。

在此示例中,混合 NAT 设置如下:

  • pvt-nat-gw 网关已在 vpc-a 中配置为适用于所有 IP 地址 范围为 us-east1 区域中的 subnet-a
  • 通过使用 pvt-nat-gw 的 NAT IP 地址范围,虚拟机 (VM) 实例 在 vpc-asubnet-a 中,可以将流量发送到本地 subnet-b 中的虚拟机 网络或任何其他云服务商网络,即使vpc-asubnet-a 与本地网络或其他云服务提供商中的另一个子网重叠 。

混合 NAT 工作流示例

在上图中,vm-a,内部 IP 地址 192.168.1.2 vpc-a 上的 subnet-a 需要使用内部 API 从 vm-b 下载更新 本地 subnet-b 中的 IP 地址 192.168.2.2 或任何其他云服务商网络。Cloud VPN 可将 VPC 网络连接到本地网络或任何其他云服务提供商 。假设本地网络或其他云服务提供商 网络包含另一个重叠的子网 192.168.1.0/24 子网在 vpc-a 中。让 subnet-a/vpc-asubnet-b通信 或其他云提供商的服务商 您需要配置一个 Private NAT 网关 pvt-nat-gw, 在 vpc-a 中,如下所示:

  • 专用 NAT 子网:使用子网 IP 地址创建此子网 10.1.2.0/29 范围和用途 PRIVATE_NAT,然后再配置 专用 NAT 网关。确保此子网不重叠 与任何连接的网络中的现有子网共享。
  • 具有 match='nexthop.is_hybrid' 的 NAT 规则。
  • 针对 subnet-a 的所有地址范围的 NAT。

混合 NAT 遵循端口预留过程 预留以下 NAT 来源 IP 地址 和来源端口元组。例如,Private NAT 网关会为 vm-a 预留 64 个源端口:10.1.2.2:3400010.1.2.2:34063

当虚拟机使用 TCP 协议将数据包发送到更新服务器时 在目标端口 80 上设置了 192.168.2.2 时,会发生以下情况:

  1. 虚拟机发送的请求包具有以下属性:

    • 来源 IP 地址:192.168.1.2,虚拟机的内部 IP 地址
    • 来源端口:24000,虚拟机操作系统选择的临时来源端口
    • 目标地址:192.168.2.2,更新服务器的 IP 地址
    • 目标端口:80,指向更新服务器的 HTTP 流量的目标端口
    • 协议:TCP
  2. pvt-nat-gw 网关会执行来源网络地址转换(SNAT 或 来源 NAT)的出站流量,重写请求 数据包的 NAT 来源 IP 地址和来源端口:

    • NAT 来源 IP 地址:10.1.2.2,来自虚拟机预留的 NAT 来源 IP 地址和来源端口元组
    • 来源端口:34022,来自虚拟机预留的来源端口元组之一的未使用的来源端口
    • 目标地址:192.168.2.2,未更改
    • 目标端口:80,未更改
    • 协议:TCP,未更改
  3. 更新服务器发送一个响应数据包,该数据包到达 具有以下特性的 pvt-nat-gw 网关:

    • 来源 IP 地址:192.168.2.2,更新服务器的内部 IP 地址
    • 来源端口:80,来自更新服务器的 HTTP 响应
    • 目标地址:10.1.2.2,与原始 NAT 来源 IP 地址一致 请求数据包的
    • 目标端口:34022,与请求数据包的来源端口一致
    • 协议:TCP,未更改
  4. pvt-nat-gw 网关会执行目标网络地址转换 (DNAT),并重写响应数据包的目标 和目标端口,以便将数据包传送到 使用以下属性请求更新:

    • 来源 IP 地址:192.168.2.2,未更改
    • 来源端口:80,未更改
    • 目标地址:192.168.1.2,虚拟机的内部 IP 地址
    • 目标端口:24000,与请求数据包的原始临时来源端口一致
    • 协议:TCP,未更改

后续步骤