适用于 Network Connectivity Center Spoke 的 Private NAT

借助 Private NAT,您可以创建专用 NAT 与 Network Connectivity Center 协同工作的网关 spoke 以执行以下各项之间的网络地址转换 (NAT) 网络:

  • Virtual Private Cloud (VPC) 网络:在此场景中,您要连接的 VPC 网络会作为 VPC spoke 附加到 Network Connectivity Center hub。
  • VPC 网络和 Google Cloud 之外的网络 (预览):在这种情况下,一个或多个 VPC 网络以如下方式连接到 Network Connectivity Center hub VPC spoke,并连接到您的本地或其他 通过混合 spoke 连接到云提供商网络。

规格

除了常规 Private NAT 规范之外,适用于 Network Connectivity Center Spoke 的 Private NAT 还具有以下规范:

  • Private NAT 使用 type=PRIVATE 的 NAT 配置,让子网 IP 地址范围重叠的网络能够进行通信。但只有不重叠的子网才能连接到 相互通信。
  • 您需要通过引用 Network Connectivity Center hub 来创建自定义 NAT 规则。NAT 规则从目标子网指定 NAT IP 地址范围 Private NAT 用于对流量执行 NAT 的 PRIVATE_NAT 连接网络之间。
  • 在需要配置专用 NAT 的子网范围内创建虚拟机实例时, 来自此虚拟机实例的所有出站流量 网关(如果目标 spoke 与 访问该网关。
  • Private NAT 网关与单个 VPC 网络中单个区域中的子网 IP 地址范围相关联。这意味着,在一个 VPC 网络中创建的 Private NAT 网关无法向 Network Connectivity Center 中心的其他 spoke 中的虚拟机提供 NAT,即使虚拟机与网关位于同一区域也是如此。

VPC 网络之间的流量

以下额外规范适用于 VPC 网络之间的流量 (Inter-VPC NAT):

  • 如需在两个 VPC 网络之间启用 Inter-VPC NAT,每个 VPC 网络都必须配置为 Network Connectivity Center 中心的 VPC Spoke。您必须确保 VPC 边缘中没有重叠的 IP 地址范围。如需了解详情,请参阅创建 VPC spoke
  • 与 Private NAT 网关关联的 Network Connectivity Center 中心必须至少有两个 VPC spoke,其中一个 VPC spoke 是 Private NAT 网关的 VPC 网络。
  • Inter-VPC NAT 仅支持在 Network Connectivity Center VPC spoke 之间进行 NAT,而不支持在使用 VPC 网络对等互连连接的 VPC 网络之间进行 NAT。
  • Inter-VPC NAT 支持对一个区域内以及跨区域的 VPC 子网进行地址转换。

VPC 网络与其他网络之间的流量

以下附加规范适用于 Google Cloud 之外的 VPC spoke 和网络 (预览版):

  • 在 VPC 之间启用专用 NAT 本地网络和本地网络或其他云提供商网络:
    1. VPC 网络必须配置为 VPC 提到了 Network Connectivity Center hub。如果 Network Connectivity Center hub 有多个 VPC spoke,您必须确保这些 VPC spoke 之间没有子网重叠。如需了解详情,请参阅创建 VPC spoke
    2. 混合 spoke 必须连接到同一 Network Connectivity Center hub 在 VPC Spoke 和 Google Cloud 外部的网络混合 spoke 支持 用于 Cloud Interconnect 的 VLAN 连接, Cloud VPN 隧道和路由器设备虚拟机。如需了解详情,请参阅 VPC spoke 与混合 spoke 之间的连接简介
  • 必须在工作负载中配置 Private NAT 网关 VPC 网络中, 与混合 spoke 相关联。如需详细了解工作负载 和路由 VPC 网络,请参阅 使用 VPC spoke 的路由交换

基本配置和工作流

下图展示了两个 VPC 边缘星形网关之间的流量的基本 Private NAT 配置:

Inter-VPC NAT 转换示例。
Inter-VPC NAT 转换示例(点击可放大)。

在此示例中,Private NAT 的设置如下:

  • pvt-nat-gw 网关在 vpc-a 中进行配置,以应用于 us-east1 区域中 subnet-a 的所有 IP 地址范围。如果使用 pvt-nat-gw 的 NAT IP 范围,则 vpc-asubnet-a 中的虚拟机 (VM) 实例可以将流量发送到 vpc-bsubnet-b 中的虚拟机,即使 vpc-asubnet-avpc-bsubnet-c 重叠。
  • vpc-avpc-b 都配置为 Network Connectivity Center hub 的 spoke。
  • pvt-nat-gw 网关经过配置在配置为同一 Network Connectivity Center hub 的 VPC spoke 的 VPC 网络之间提供 NAT。

工作流示例

在上图中,vm-a,内部 IP 地址为 192.168.1.2 subnet-avpc-a 需要从 vm-b 通过内部 IP 地址 192.168.2.2(在 vpc-bsubnet-b 中)。两个 VPC 网络与 VPC 连接到同一 Network Connectivity Center hub Spoke。假设 vpc-b 包含另一个重叠的子网 192.168.1.0/24 子网为 vpc-a 中的子网。让 subnet-a/vpc-asubnet-b通信 (共 vpc-b 个),您需要配置一个 Private NAT 网关 pvt-nat-gw, 在 vpc-a 中,如下所示:

  • Private NAT 子网:在配置 Private NAT 网关之前,请创建用途为 PRIVATE_NAT 的 Private NAT 子网,例如 10.1.2.0/29。确保此子网与连接到同一 Network Connectivity Center hub 的任何 VPC spoke 中的现有子网不重叠。

  • nexthop.hub 与 Network Connectivity Center hub 网址匹配的 NAT 规则。

  • 针对 subnet-a 的所有地址范围的 NAT。

下表总结了上文中指定的网络配置 示例:

网络名称 网络组件 IP地址/范围 区域
vpc-a

subnet-a 192.168.1.0/24 us-east1
vm-a 192.168.1.2
pvt-nat-gw 10.1.2.0/29
vpc-b

subnet-b 192.168.2.0/24 us-west1
vm-b 192.168.2.2
subnet-c 192.168.1.0/24
vm-c 192.168.1.3

Network Connectivity Center spoke 的 Private 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,保持不变

后续步骤