使用 VPC 网络对等互连

Google Cloud Platform (GCP) 虚拟私有云 (VPC) 网络对等互连允许跨两个 VPC 网络的专用 RFC 1918 连接,而无论其是否属于相同项目或相同组织。

如需详细了解 VPC 网络对等互连,请参阅 VPC 网络对等互连概览

VPC 网络对等互连设置

在同一个组织节点内,网络可托管需要能从相同或不同项目的其他 VPC 网络访问的服务。

此外,一个组织可能希望访问其他组织提供的服务。比如说第三方服务和产品。

项目 ID 在所有 GCP 中都是唯一的,所以在设置对等互连时不需要指定组织。GCP 根据项目 ID 就可以了解是哪个组织。

设置 VPC 网络对等互连会话

考虑这样的情况:组织 A 需要在项目 A 的网络 A 与项目 B 的网络 B 之间建立 VPC 网络对等互连。为了成功建立 VPC 网络对等互连,网络 A 和网络 B 的管理员必须分别配置对等互连关联。

步骤 1:网络 A 与网络 B 对等互连

项目 A 中具有适当 IAM 权限的用户可配置网络 A 与网络 B 对等互连。例如,具有 roles/editorroles/compute.networkAdmin 角色的用户可以配置对等互连。

从网络 A 到网络 B 的对等互连(点击可放大)
从网络 A 到网络 B 的对等互连(点击可放大)

在开始之前,您需要希望对等互连的网络的项目 ID 和网络名称。

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 点击创建连接
  3. 点击继续
  4. 输入 peer-ab 作为连接这一端的名称
  5. 您的 VPC 网络下,选择想要对等互连的网络。
  6. 除非您希望在同一项目内建立对等互连,否则应将对等互连 VPC 网络单选按钮设置为 In another project
  7. 指定另一个项目的项目 ID
  8. 指定另一个网络的 VPC 网络名称
  9. 点击创建

gcloud

gcloud compute networks peerings create peer-ab \
    --network network-A \
    --peer-project project-B \
    --peer-network network-B \
    --auto-create-routes

此时,对等互连状态保持为 INACTIVE,因为项目 B 的网络 B 中没有匹配的配置。

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 状态显示“正在等待对等互联网络连接”。

gcloud

gcloud compute networks peerings list --network network-A
NAME      NETWORK   PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ab   network-A project-B    network-B    True               INACTIVE The peering network has not been configured.

步骤 2:网络 B 与网络 A 对等互连

在项目 B 中,必须由一名 NetworkAdmin 或具有适当 IAM 权限的用户将匹配的配置设置为从网络 B 到网络 A,以便对等互连在两端均变为 ACTIVE

从网络 B 到网络 A 的对等互连(点击可放大)
从网络 A 到网络 B 的对等互连(点击可放大)

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 点击创建连接
  3. 点击继续
  4. 输入 peer-ba 作为连接这一端的名称
  5. 您的 VPC 网络下,选择想要对等互连的网络。
  6. 除非您希望在同一项目内建立对等互连,否则应将对等互连 VPC 网络单选按钮设置为 In another project
  7. 指定另一个项目的项目 ID
  8. 指定另一个网络的 VPC 网络名称
  9. 点击创建

gcloud

gcloud compute networks peerings create peer-ba \
     --network network-B \
     --peer-project project-A \
     --peer-network network-A \
     --auto-create-routes

步骤 3:VPC 网络对等互连转为 ACTIVE 并且交换路由

一旦对等互连转为 ACTIVE 状态,流量流便已设置完成:

  • 在对等互连网络中的虚拟机实例之间:全网状连接。
  • 从一个网络中的虚拟机实例到对等互连网络中的内部负载平衡端点
对等互连处于 ACTIVE 状态(点击可放大)
对等互连处于 ACTIVE 状态(点击可放大)

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 状态显示“已连接”。
  3. 转到另一个项目的“VPC 网络对等互连”页面,确定它同样显示“已连接”。

gcloud

gcloud compute networks peerings list --network network-A
NAME     NETWORK     PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ab  network-A   project-B   network-B    True                ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.
gcloud compute networks peerings list --network network-B
NAME     NETWORK     PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ba  network-B   project-A    network-A    True               ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.

到对等互连网络 CIDR 前缀的路由现可在 VPC 网络对等互连之间可见。这些路由是为活动对等互连生成的隐式路由。它们没有对应的路由资源。以下命令列出了项目 A 所有 VPC 网络的路由。

Console

  1. 转到 Google Cloud Platform Console 中的“路由”页面。
    转到“路由”页面

gcloud

gcloud compute routes list --project project-A
NAME                              NETWORK    DEST_RANGE     NEXT_HOP                  PRIORITY
default-route-2a865a00fa31d5df    network-A  0.0.0.0/0      default-internet-gateway  1000
default-route-8af4732e693eae27    network-A  10.0.0.0/16                              1000
peering-route-4732ee69e3ecab41    network-A  10.8.0.0/16    peer-ab                   1000

删除 VPC 网络对等互连会话

任何一端都可以移除对等互连配置。这会使得对等互连再度转为 INACTIVE 状态,并且到对等互连网络的所有路由都会被移除。在本例中,对等互连配置从网络 A 中移除。

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 选中要移除的对等互连旁边的复选框。
  3. 点击删除

gcloud

gcloud compute networks peerings delete peer-ab --network network-A

当网络对等互连会话的一端被删除时,另一端的对等互连转为 INACTIVE

跨多个组织建立 VPC 网络对等互连

考虑这样一个情景:项目 A/网络 A 中的虚拟机实例需要从两个不同的外部组织访问服务:SaaS1 和 SaaS2。为了通过 RFC 1918 空间访问这些服务,网络 A 必须与托管服务的 SaaS1 项目 B/网络 B 和 SaaS2 项目 C/网络 C 对等互连。

跨组织对等互连(点击可放大)
跨组织对等互连(点击可放大)

要创建此设置,只需创建两个不同的对等互连会话即可。

限制

对等互连 VPC 网络之间不存在子网 IP 范围重叠

子网 IP 范围不能与对等互连 VPC 网络中的另一个子网 IP 范围重叠。

在 VPC 网络对等互连设置中执行检查

在对等互连时,GCP 会检查两个 VPC 网络或任何对等互连网络之间是否存在 IP 范围重叠的子网。如果存在重叠,则不会建立对等互连。由于虚拟机实例之间创建了全网状连接,因此对等互连 VPC 网络中的子网不能有重叠的 IP 范围,否则就会导致路由问题。

两个对等互连方之间重叠的子网 IP 范围(点击可放大)
两个对等互连方之间重叠的子网 IP 范围(点击可放大)

如果在给定 VPC 网络的对等互连方之间存在具有重叠 IP 范围的任何子网,则会导致路由冲突。例如,假设 VPC 网络 N1 已经与 VPC 网络 N2 建立对等互连,则 VPC 网络 N3 会尝试与 N2 建立对等互连。这是无效的对等互连,因为 N3 有一个子网 Subnet-5,其 IP 范围与网络 N1 中的 Subnet-1 重叠。

三个对等互连方之间重叠的子网 IP 范围(点击可放大)
三个对等互连方之间重叠的子网 IP 范围(点击可放大)

在 VPC 网络对等互连情景中创建子网时执行检查

创建 VPC 子网或扩展子网 IP 范围时,GCP 会执行检查以确保新子网范围与同一 VPC 网络或直接对等互连的 VPC 网络内的子网 IP 范围无重叠。如果存在重叠,创建或扩展操作将会失败。例如,在下图的网络 N2 中新建子网 Subnet-3 时,IP 范围不得与直接对等互连网络 N1 中定义的 IP 范围重叠。

子网创建检查(点击可放大)
子网创建检查(点击可放大)

GCP 还可确保在具有共同对等互连网络的多个 VPC 网络之间,未允许重叠的子网 IP 范围。如果存在重叠,创建或扩展操作将会失败。例如,在下图的网络 N3 中新建子网 Subnet-5 时,IP 范围不得与直接对等互连网络 N2 中定义的 IP 范围重叠,也不得与网络 N1 中的 IP 范围重叠(因为 N1 已经与 N2 建立了对等互连)。

三个对等互连方之间的子网创建检查(点击可放大)
三个对等互连方之间的子网创建检查(点击可放大)

VPC 网络对等互连不支持旧版网络

旧版网络是没有子网的网络。旧版网络无法与任何其他网络建立对等互连,VPC 网络对等互连也不支持旧版网络。

无法跨多个对等互连网络访问 VPN

无法通过一个网络访问与其对等互连的另一个网络中的 VPN。

多个项目之间无 Compute Engine DNS

在一个网络内创建的 Compute Engine 内部 DNS 名称不能通过对等互连的网络访问。应使用虚拟机的 IP 地址访问对等互联网络中的虚拟机实例。

用户配置的路由不会在对等互连的网络之间传播

用户配置的路由不会在对等互连的网络之间传播。如果您在网络中配置了一个路由,连接到 VPC 网络中的某个目的地,则无法通过对等互连网络访问此目的地。

标记和服务帐号在对等互连的网络之间不可用

您不能在一个对等互连的网络中使用另一个对等互连网络的标记或服务帐号。

GKE 与 VPC 网络对等互连配合使用

IP 别名配合使用时,支持将 VPC 网络对等互连与 GKE 配合使用。可以在不同 VPC 网络之间访问 Kubernetes 服务(如果通过内部负载平衡公开)和 Pod IP。

限制

对等互连数量限制

一个网络总计最多可以有 25 个直接对等互连的网络。该总数包括活动和非活动的对等互连方。

VPC 网络对等互连虚拟机实例限制

一个 VPC 网络本身及所有直接对等互连的 VPC 网络内最多可以具有 15500 个实例。

每个网络都有一个“对等互连实例限制”。这是该网络和所有直接对等互连的网络中可以具有的实例数量上限。

VPC 网络对等互连内部负载平衡转发规则限制

每个网络的限制是 50。换句话说,一个网络及其所有直接对等互连的网络中的转发规则数量不能超过此限制。

每个网络都有一个“对等互连内部负载平衡转发规则限制”。这是该网络和所有直接对等互连的网络中可以具有的内部负载平衡转发规则数量限制。

问题排查

问:我已经设置好了对等互连连接,但无法访问对等互连虚拟机或内部负载平衡器。

在对等互连连接转为 ACTIVE 状态后,可能需要一分钟时间才能在对等互连的 VPC 网络之间建立起所有流量流。具体所需时间取决于对等互连 VPC 网络的规模。如果您刚刚设置了对等互连连接,请等待一分钟之后再试。此外,请确保没有防火墙规则禁止与对等互连 VPC 网络子网 CIDR 之间的访问。

问:在我尝试设置对等互连连接时,我收到了一条错误,告诉我正在进行另一项对等互连操作。

为了避免与路由更新等操作发生争用,在对等互连网络中,GCP 每次仅允许执行一项与对等互连相关的操作。例如,如果您使用一个网络设置了对等互连,随后立即尝试设置另一个网络,则第一个对等互连中可能仍有任务尚未完成。完成所有任务可能需要一分钟时间。此外,您现有的网络对等方可能正在添加内部负载平衡器或虚拟机,这两者都会影响网络之间的可访问性。大多数情况下,您应该等待一两分钟时间,然后重试对等互连操作。

问:在我尝试删除具有 ACTIVE 对等互连的 VPC 网络时,收到了一条错误。

删除您这一方的对等互连连接,然后重试。

问:我尝试建立对等互连的 VPC 网络具有重叠的子网 CIDR。我能做些什么来解决这个问题?

抱歉,您必须更改 VPC 网络,以使子网 CIDR 无重叠

问:我有一个 VPC 网络与另一个网络建立了对等互连。我想在我的 VPC 网络中创建一个子网。我该如何创建这个子网,使其不与我的对等互连 VPC 网络重叠?

请查看指向您的对等互连 VPC 网络并将其作为下一跳的对等互连路由。这些路由表示对等互连 VPC 网络中的子网 CIDR 列表。请选择与您的现有子网 CIDR 和您的对等互连 VPC 网络子网 CIDR 无重叠的 CIDR

问:我有一个 VPC 网络与另一个 VPC 网络建立了对等互连。我想在我的 VPC 网络中创建一个子网。我该如何创建这个子网,使其不与我的对等方的对等互连 VPC 网络重叠?

目前还没有可以帮助您处理此问题的命令。请询问对等互连网络的管理员,以了解网络中已有哪些子网路由。

问:VPC 对等互连是否存在任何安全或隐私问题?

在建立对等互连之后,每个 VPC 网络都了解另一个网络的子网范围。此外,每个对等互连 VPC 网络都能够与另一个网络的所有虚拟机之间发送和接收流量 - 只要没有相应的防火墙规则禁止此类操作。除此之外,对等互连的网络彼此不可见。

问:我能否查看是否有其他 VPC 网络向我的网络发出了 VPC 对等互连请求?

不能,VPC 对等互连是双向的。您要从自己这一方设置对等互连,而您的对等互连方则从他们的一方设置对等互连。您只能看到您已设置的 VPC 对等互连请求。

后续步骤

  • 如需详细了解 VPC 路由,请参阅路由概览。
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页