VPC 网络对等互连

Google Cloud VPC 网络对等互连连接两个 Virtual Private Cloud (VPC) 网络,以便每个网络中的资源相互通信。对等互连的 VPC 网络可以位于同一项目、同一组织的不同项目中或不同组织的不同项目中。

规范

借助 VPC 网络对等互连,您可以执行以下操作:

连接性

  • VPC 网络对等互连支持连接 VPC 网络,但不支持旧版网络。
  • VPC 网络对等互连可在 VPC 网络对之间提供低延迟的内部 IPv4 和 IPv6 连接。
    • VPC 网络对等互连不提供传递性路由。例如,如果 VPC 网络 net-anet-b 使用 VPC 网络对等互连进行连接,并且 VPC 网络 net-anet-c 也使用 VPC 网络对等互连进行连接,VPC 网络对等互连不提供 net-bnet-c 之间的连接。
    • 您无法使用 VPC 网络对等互连连接两个自动模式的 VPC 网络。这是因为对等互连的 VPC 网络始终交换使用专用内部 IPv4 地址的子网路由,并且自动模式 VPC 网络中的每个子网都使用在 10.128.0.0/9 CIDR 块范围内的子网 IP 地址范围。
    • 您可以将自定义模式 VPC 网络连接到自动模式 VPC 网络,只要该自定义模式 VPC 网络没有任何子网 IP 地址范围在内即可10.128.0.0/9
  • 当到以下资源的目标外部 IPv6 地址的路由通过 VPC 网络交换时,VPC 网络对等互连还会提供与以下资源的目标外部 IPv6 地址范围的某些外部 IPv6 连接对等互连:
    • 双栈虚拟机 (VM) 实例网络接口
    • 用于外部协议转发的转发规则
    • 外部直通式网络负载均衡器的转发规则
  • VPC 网络对等互连同时支持 IPv4 和 IPv6 连接。您可以在包含双栈子网的 VPC 网络上配置 VPC 网络对等互连。

管理

  • 对等互连的 VPC 网络在管理上保持独立。根据对等互连配置,只有路由会交换。
  • 如需建立对等互连连接,每个 VPC 网络的 Network Administrator 必须创建与其他 VPC 网络的对等互连连接。任一 VPC 网络的 Network Administrator 都可以断开对等互连连接。
  • 对等互连关联资源的每一方都是独立设置的。只有当双方的配置匹配时,对等互连才是有效的。任何一方都可以随时选择删除对等互连关联资源。
  • 创建对等互连连接不会向您授予另一个 VPC 网络上的任何 Identity and Access Management (IAM) 角色。例如,如果您拥有某个网络的 Compute Network Admin 角色或 Compute Security Admin 角色,则不会成为另一个网络的网络管理员或安全管理员。

IAM 权限

  • Compute Network Admin 角色 (roles/compute.networkAdmin) 具有用于创建和删除 VPC 网络对等互连的 IAM 权限
  • 如果自定义角色具有以下权限,则可以使用该角色:
    • compute.networks.addPeering
    • compute.networks.updatePeering
    • compute.networks.removePeering
    • compute.networks.listPeeringRoutes

网络安全

VPC 网络对等互连不会交换 VPC 防火墙规则防火墙政策

对于 VPC 防火墙规则:

  • 使用网络标记定义目标的防火墙规则只会解析为防火墙规则的 VPC 网络中的实例。虽然对等互连的 VPC 网络的安全管理员可以使用相同的网络标记来定义对等互连 VPC 网络中的防火墙规则的目标,对等互连 VPC 中的防火墙规则的目标不包括您的 VPC 网络中的实例。同样,使用网络标记定义来源的入站防火墙规则只会解析为防火墙规则的 VPC 网络中的实例。

  • 使用服务账号定义目标的防火墙规则仅解析为防火墙规则的 VPC 网络中的实例。根据 IAM 权限,对等互连 VPC 网络的安全管理员可能可以使用同一服务账号在对等互连 VPC 网络中定义防火墙规则的目标,但防火墙规则的目标不包含您的 VPC 网络中的实例。同样,使用服务账号定义来源的入站防火墙规则只会解析为防火墙规则的 VPC 网络中的实例。

网络防火墙政策中的规则可以使用与网络标记不同的安全标记来识别目标和来源:

  • 当使用标记为网络防火墙政策中的入站或出站规则指定目标时,标记只能识别其范围限定为的 VPC 网络中的目标。

  • 当使用标记为网络防火墙政策中的入站规则指定来源时,标记可以识别其范围限定为的 VPC 网络以及与其范围限定为的 VPC 网络连接的任何对等互连 VPC 网络中的来源。如需了解详情,请参阅防火墙的标记

每个 VPC 网络都包含隐式防火墙规则。由于隐式拒绝入站防火墙规则,每个 VPC 网络的安全管理员必须在防火墙政策中创建入站允许防火墙规则或规则。这些规则的来源可以包括对等互连 VPC 网络的 IP 地址范围。

由于隐式允许出站防火墙规则,您无需在防火墙政策中创建出站允许防火墙规则或规则即可允许数据包发送到对等互连 VPC 中的目的地网络,除非您的网络包含出站拒绝规则。

DNS 支持

对等互连 VPC 网络中的资源不能使用由本地 VPC 网络创建的 Compute Engine 内部 DNS 名称

对等互连的 VPC 网络不能使用仅针对本地 VPC 网络获得授权的 Cloud DNS 托管式专用区域。如需使 DNS 名称可用于对等互连 VPC 网络中的资源,请使用以下方法之一:

内部负载均衡器支持

本地 VPC 网络中的客户端可以访问对等 VPC 网络中的内部负载均衡器。如需了解详情,请参阅以下负载均衡器文档的使用 VPC 网络对等互连部分:

对等互连的网络可以交换将内部直通式网络负载均衡器用作下一个跃点的静态路由。如需了解详情,请参阅路由交换选项

对等互连组和配额

VPC 对等互连配额取决于一个称为对等互连组的概念。每个 VPC 网络都有自己的对等互连组,其中包含自身以及使用 VPC 网络对等互连连接到它的所有其他 VPC 网络。在最简单的场景中,如果两个 VPC 网络 net-anet-b 彼此对等互连,则有两个对等互连组:一个从 net-a 的角度来看,另一个从 net-b 的角度来看。

如需详细了解 VPC 网络对等互连配额,请参阅:

路由交换选项

当 VPC 网络与对等互连的 VPC 网络共享本地路由时,它会导出路由。然后,对等互连的 VPC 网络可以导入路由。子网路由(使用以非公开方式使用的公共 IPv4 地址的 IPv4 子网路由除外)始终会交换。

通过 VPC 网络对等互连配置,您可以控制以下内容:

  • 是否交换 IPv6 路由。
  • 如果导出或导入使用以非公开方式使用的公共 IPv4 地址的子网的路由。
  • 静态和动态路由是否会同时导出或导入。

您可以在建立对等互连之前或在对等互连连接处于有效状态时更新配置。

VPC 网络对等互连不提供:

  • 一种精细的方法,用于控制特定子网路由、静态路由和动态路由的交换。
  • 支持交换基于政策的路由

交换子网路由的选项

下表介绍了子网路由的路由交换选项:

路由类型 路由导出条件 路由导入条件
使用专用 IPv4 地址范围的 IPv4 子网路由(主要和次要 IPv4 子网范围) 始终导出

无法停用
始终导入

无法停用
使用以非公开方式使用的公共 IPv4 地址范围的 IPv4 子网路由(主要和次要 IPv4 子网范围) 默认导出

使用 --export-subnet-routes-with-public-ip 标志控制导出
默认不导入

导入使用 --import-subnet-routes-with-public-ip 标志控制
内部 IPv6 子网范围
(ipv6-access-type=INTERNAL)
默认情况下不导出

通过设置 --stack-type=IPV4_IPV6 启用导出功能
默认不导入

通过设置 --stack-type=IPV4_IPV6 启用导入功能
外部 IPv6 子网范围
(ipv6-access-type=EXTERNAL)
默认情况下不导出

通过设置 --stack-type=IPV4_IPV6 启用导出功能
默认不导入

通过设置 --stack-type=IPV4_IPV6 启用导入功能

交换静态路由的选项

下表介绍了静态路由的路由交换选项。

路由类型 路由导出条件 路由导入条件
带有网络标记的静态路由(所有下一个跃点类型 无法导出 无法导入
使用默认互联网网关的下一个跃点的静态路由 无法导出 无法导入
无网络标记的 IPv4 静态路由(使用不同于默认互联网网关的下一个跃点) 默认情况下不导出

导出使用 --export-custom-routes 标志控制
默认不导入

导入使用 --import-custom-routes 标志进行控制
将虚拟机实例用作下一个跃点的 IPv6 静态路由(无网络标记) 默认不导出

当对等互连的堆栈类型设置为 --stack-type=IPV4_IPV6 时,导出由 --export-custom-routes 标志控制
默认不导入

当对等互连的堆栈类型设置为 --stack-type=IPV4_IPV6 时,导入由 --import-custom-routes 标志控制

交换动态路由的选项

下表介绍了动态路由的路由交换选项。

路由类型 路由导出条件 路由导入条件
动态 IPv4 路由 默认情况下不导出

导出使用 --export-custom-routes 标志控制
默认不导入

导入使用 --import-custom-routes 标志进行控制
动态 IPv6 路由 默认不导出

当对等互连的堆栈类型设置为 --stack-type=IPV4_IPV6 时,导出由 --export-custom-routes 标志控制
默认不导入

当对等互连的堆栈类型设置为 --stack-type=IPV4_IPV6 时,导入由 --import-custom-routes 标志控制

交换静态和动态路由的优点

当一个 VPC 网络导出静态和动态路由,而另一个 VPC 网络导入这些路由时,导入网络可以将数据包直接发送到下一个跃点所在的每个已导入静态或动态路由的下一个跃点对等 VPC 网络。

本地 VPC 网络的网络管理员可以使用 --export-custom-routes 标志共同控制该网络的静态和动态路由的导出。相应对等互连 VPC 网络的网络管理员可使用 --import-custom-routes 标志控制这些静态和动态路由的导入。如需了解详情,请参阅忽略的路由子网和对等互连子网路由交互以及子网和静态路由交互

在以下场景中,从对等互连的 VPC 网络导入静态和动态路由非常有用:

  • 如果对等互连的 VPC 网络包含基于路由的 GKE 集群,并且您需要将数据包发送到这些集群中的 Pod。Pod IP 地址实现为对等互连 VPC 网络中静态路由的目标范围。
  • 如果您需要在本地网络和对等互连 VPC 网络之间提供连接。假设本地 VPC 网络包含具有下一个跃点 Cloud VPN 隧道、Cloud Interconnect 连接 (VLAN) 或连接到本地网络的路由器设备的动态路由。要提供从对等互连 VPC 网络到本地网络的路径,本地 VPC 网络的网络管理员可启用自定义路由导出,而对等互连的 VPC 网络的网络管理员可启用自定义路由导入。如需提供从本地网络到对等互连 VPC 网络的路径,本地 VPC 网络的网络管理员必须在为连接到本地网络的 Cloud VPN 隧道、Cloud Interconnect 连接 (VLAN) 或路由器设备管理 BGP 会话的 Cloud Router 路由器上使用 Cloud Router 路由器自定义路由通告。这些自定义路由通告的内容必须包含对等互连 VPC 网络的子网 IP 地址范围。

忽略的路由

即使 VPC 网络导入了路由,在以下情况下也可能会忽略导入的路由:

  • 当本地 VPC 网络具有具有相同或更具体的目标(较长的子网掩码)的路由时,本地 VPC 网络始终使用其本地路由。

  • 如果本地 VPC 网络不包含数据包目的地的最具体路由,但两个或多个对等互连 VPC 网络包含同一个最具体的数据包,则 Google Cloud 将使用内部算法,用于仅从其中一个对等互连的 VPC 网络选择下一个跃点。 此选择发生在考虑路由优先级之前,您无法配置行为。最佳做法是避免进行此配置,因为添加或移除对等互连 VPC 网络可能会导致路由顺序发生意外更改。

如需详细了解上述情况,请参阅路由顺序

对于双栈对等互连,如果导入 IPv6 路由的本地 VPC 网络没有任何双栈子网,则它从对等互连的 VPC 网络接收的 IPv6 路由都无法使用。此外,如果设置了 constraints/compute.disableAllIpv6 组织政策限制条件,则网络管理员可能无法创建双栈子网。

子网和对等互连子网路由交互

对等互连 VPC 网络中的 IPv4 子网路由不能重叠:

  • 对等互连禁止相同的 IPv4 子网路由。例如,两个对等互连的 VPC 网络不能同时具有目的地为 100.64.0.0/10 的 IPv4 子网路由。
  • 对等互连会禁止子网路由包含在对等互连子网路由中。例如,如果本地 VPC 网络具有目的地为 100.64.0.0/24 的子网路由,则所有对等互连的 VPC 网络都不能有目的地为 100.64.0.0/10 的子网路由。

在以下情况下,Google Cloud 会对 IPv4 子网路由强制执行上述条件:

  • 首次使用 VPC 网络对等互连连接 VPC 网络时。
  • 当这两个网络对等互连时。
  • 更改对等互连配置(例如,允许导入具有以非公开方式使用的公共 IP 地址的子网 IPv4 路由)。

建立对等互连网络时,如果以下任何操作导致重叠,Google Cloud 将返回错误:

根据定义,IPv6 子网路由(内部和外部)是唯一的。两个 VPC 网络不能使用相同的内部或外部 IPv6 子网范围。例如,如果一个 VPC 网络使用 fc:1000:1000:1000::/64 作为 IPv6 子网范围,则 Google Cloud 中的其他 VPC 网络均无法使用 fc:1000:1000:1000::/64,无论 VPC 网络是否使用 VPC 网络对等互连进行连接。

子网和静态路由交互

Google Cloud 要求子网路由和对等互连子网路由具有最具体的目的地 IPv4 或 IPv6 范围。在任何 VPC 网络中,本地静态路由的目标不能与本地子网路由完全匹配或适合本地子网路由。如需详细了解此场景,请参阅与静态路由的交互

此概念通过以下两条规则扩展到 VPC 网络对等互连:

  • 本地静态路由的目标不能与对等互连子网路由的目的地完全一致,也不能适合对等互连子网路由。如果存在本地静态路由,则 Google Cloud 会强制执行以下各项:

    • 如果对等互连配置导致导入冲突的子网路由,则您无法与已包含子网路由(或包含本地静态路由的目的地)的 VPC 网络建立新的对等互连连接。例如:

      • 如果存在具有 10.0.0.0/24 目的地的本地静态路由,则您无法建立与包含目的地与 10.0.0.0/24 完全匹配的 IPv4 子网路由的 VPC 网络的新对等互连连接或包含 10.0.0.0/24(例如 10.0.0.0/8)。

      • 当预期的对等互连堆栈类型为 IPV4_IPV6 时,如果存在目标为 2001:0db8:0a0b:0c0d::/96 的本地静态路由,则您无法与包含 2001:0db8:0a0b:0c0d::/96 的 VPC 网络建立新的对等互连连接,其 IPv6 子网路由目标与它完全匹配或包含它。在这种情况下,唯一可能的子网 IPv6 地址范围是 2001:0db8:0a0b:0c0d::/64,因为 Google Cloud 中的子网 IPv6 地址范围必须使用 64 位子网掩码长度。

    • 如果更新后的对等互连配置导致导入有冲突的子网路由,则无法更新现有对等互连连接。例如:

      • 假设两个 VPC 网络已建立对等互连,但它们目前没有使用以非公开方式使用的公共 IPv4 地址范围导出和导入 IPv4 子网路由。第一个 VPC 网络中存在具有 11.0.0.0/24 目的地的本地静态路由,对等互连 VPC 网络中存在目的地为 11.0.0.0/8 的子网路由。您无法同时将对等互连 VPC 网络配置为使用以非公开方式使用的公共 IPv4 地址导出子网路由,并且将第一个 VPC 网络配置为使用非公开方式导入子网路由使用的公共 IPv4 地址。

      • 假设两个 VPC 网络已建立对等互连,并且对等互连栈类型仅为 IPv4。第一个 VPC 网络中存在目的地为 2001:0db8:0a0b:0c0d::/96 的本地静态路由,对等互连 VPC 网络中存在目的地为 2001:0db8:0a0b:0c0d::/64 的 IPv6 子网路由。您无法将对等互连堆栈类型更改为 IPV4_IPV6

    • 反之,如果 VPC 网络已使用 VPC 网络对等互连连接,则您无法执行以下操作:

      • 创建一个新的本地静态路由,其目的地与导入的对等互连子网路由的目的地完全匹配或符合。

      • 在对等互连 VPC 网络中创建新的子网地址范围(如果该范围完全匹配或包含现有的本地静态路由)。

  • 对等互连静态路由的目标不能与本地子网路由完全匹配或适合本地子网路由。如果存在本地子网路由,则 Google Cloud 会禁止执行以下操作:

    • 如果对等互连配置导致以下情况,则您无法与已包含静态路由(与本地 VPC 网络子网路由的目的地完全一致)的 VPC 网络建立新的对等互连连接。从对等体导入静态路由。例如:

      • 如果存在 10.0.0.0/8 的本地子网路由,则您无法使用目标与 10.0.0.0/8 完全匹配或在 10.0.0.0/8 范围内的静态路由与 VPC 网络建立对等互连连接(例如 10.0.0.0/24)。

      • 当预期的对等互连堆栈类型为 IPV4_IPV6 时,如果存在 2001:0db8:0a0b:0c0d::/64 的本地子网路由,则您无法与使用目的地为 {101 的静态路由的 VPC 网络建立对等互连连接。 } 与 2001:0db8:0a0b:0c0d::/64 完全匹配或适合 2001:0db8:0a0b:0c0d::/64(例如 2001:0db8:0a0b:0c0d::/96)。

    • 如果更新后的对等互连配置导致导入有冲突的静态路由,则无法更新现有对等互连连接。

    • 反之,如果 VPC 网络已使用 VPC 网络对等互连连接,则您无法执行以下操作:

      • 创建一个新的本地子网路由,其目的地将与导入的对等互连静态路由完全匹配或包含导入的对等互连静态路由。
      • 在目的地与现有本地子网路由完全匹配或适合的对等互连 VPC 网络中创建新的静态路由。

动态路由模式的影响

VPC 网络的动态路由模式确定在哪个区域应用从该网络中的 Cloud Router 路由器获知的前缀作为本地动态路由。如需详细了解此行为,请参阅动态路由模式的影响

此概念已扩展到 VPC 网络对等互连。exporting导出 VPC 网络的动态路由模式决定了对等互连动态路由所在的区域,该网络包含获知这些动态路由前缀的 Cloud Router 路由器。路由可以在对等网络中进行编程:

  • 如果导出 VPC 网络的动态路由模式是区域性的,则该网络仅在其学习前缀的 Cloud Router 路由器所在区域中导出动态路由。

  • 如果导出 VPC 网络的动态路由模式是全球级,则该网络会导出所有区域的动态路由。

在这两种情况下,导入 VPC 网络的动态路由模式都无关紧要。

如需查看说明此行为的示例,请参阅具有本地连接的本地 VPC 网络和对等 VPC 网络

子网和动态路由交互

本地或对等互连子网路由与动态路由之间的冲突按与动态路由的交互中所述解决。

VPC 网络对等互连示例

以下示例展示了两种常见的 VPC 网络对等互连场景。

本地 VPC 网络和具有本地连接的对等 VPC 网络

在此示例中,设置了以下网络对等互连:

  • network-anetwork-b 对等互连,network-bnetwork-a 对等互连。
  • network-a 包含两个子网,其中每个子网位于单独的区域中。network-b 包含单个子网。
  • network-b 使用动态路由连接到具有 Cloud VPN 隧道的本地网络。(如果隧道被替换为 Cloud Interconnect VLAN 连接,这些原则同样适用。)
  • network-b 的对等互连连接使用 --export-custom-routes 标志进行配置,network-a 的对等互连连接使用 --import-custom-routes 标志进行配置。

如需提供从本地到 network-anetwork-b 中的子网的连接,network-b 中的 Cloud Router 路由器必须配置为使用自定义路由通告。 例如,Cloud Router 路由器仅通告自定义前缀 custom-prefix-1,其中包含 network-b 中的子网范围和 network-a 中的子网范围。

us-west1 中的 Cloud Router 路由器从本地路由器学习 on-premises-prefixon-premises-prefix 不会产生任何冲突,因为它的覆盖范围大于子网和对等互连子网路由。 换句话说,on-premises-prefix 不完全匹配,也不适合任何子网或对等互连子网路由。

下表汇总了上例中指定的网络配置:

网络名称 网络组件 IPv4 范围 IPv6 范围 区域

network-a

subnet-a

10.0.0.0/24

fc:1000:1000:1000::/64

us-west1

network-a

subnet-b

10.0.1.0/24

fc:1000:1000:1001::/64

europe-north 1

network-b

subnet-c

10.0.2.0/23

fc:1000:1000:1002::/64

us-west1

network-b

Cloud Router

10.0.0.0/22

fc:1000:1000:1000::/64

us-west1

本地网络

本地路由器

10.0.0.0/8

fc:1000:1000:1000::/56

不适用

无论 network-a 的动态路由模式如何,以下路由特征都适用:

  • network-b 的动态路由模式是全局性的时,Cloud Router 路由器在 network-b 中知悉的 On-premises prefix 将添加为 network-b 的所有地区中的动态路由,并且作为 network-a 所有区域中的对等互连动态路由。如果防火墙规则配置正确,vm-a1vm-a2vm-b可以与具有 IPv4 地址的本地资源进行通信10.5.6.7(或 IPv6 地址)fc:1000:1000:10a0:29b:: )。

  • 如果network-b更改为区域On-premises prefixCloud Router 路由器在network-b系统只会将us-west1所在区域network-b以及作为对等互连动态路由us-west1所在区域network-a提交反馈。如果防火墙规则配置正确,则只有 vm-a1vm-b 才能与具有 IPv4 地址 10.5.6.7(或 IPv6 地址 fc:1000:1000:10a0:29b::)的本地资源通信),因为这是与 Cloud Router 路由器位于同一区域中的唯一虚拟机。

传输网络

在以下示例中,network-b 充当中转网络

  • network-anetwork-b 对等互连,network-bnetwork-a 对等互连。
  • network-cnetwork-b 对等互连,network-bnetwork-c 对等互连。
  • network-b 使用动态路由连接到具有 Cloud VPN 隧道的本地网络。如果隧道已替换为 Cloud Interconnect VLAN 连接,这些原则同样适用。
    • 为了提供从本地到 network-anetwork-bnetwork-c 中的子网的连接,network-b 中的 Cloud Router 路由器配置为使用 自定义路由通告。 例如,Cloud Router 路由器会通告 network-b 中的子网路由以及涵盖 network-anetwork-c 中的子网路由的自定义前缀。
    • 根据子网和动态路由交互network-b 中的 Cloud Router 路由器会学习本地前缀,并在 network-b 中创建动态路由。
  • network-bnetwork-a 以及从 network-bnetwork-c 的对等互连连接使用 --export-custom-routes 标志进行配置。从 network-anetwork-b 以及从 network-cnetwork-b 的对等互连连接使用 --import-custom-routes 标志进行配置。
    • 根据子网和动态路由交互network-b 中的 Cloud Router 路由器还会在 network-anetwork-c 中创建对等互连动态路由。

如果防火墙配置正确,则可能会出现以下连接场景:

  • network-a 中的虚拟机实例可以访问 network-b 和本地系统中的其他虚拟机。
  • network-c 中的虚拟机实例可以访问 network-b 和本地系统中的其他虚拟机。
  • network-b 中的虚拟机实例可以访问 network-anetwork-c 中的其他虚拟机以及本地网络中的系统。

由于 VPC 网络对等互连不具有传递性,因此除非您还使用 VPC 连接 network-anetwork-c 网络,否则 network-anetwork-c 中的虚拟机实例无法相互通信网络对等互连。

价格

常规网络价格适用于 VPC 网络对等互连。

后续步骤