使用 VPC 网络对等互连

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

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

创建对等互连配置

在开始之前,您必须知道要与之建立对等互连的 VPC 网络的名称。如果该网络位于另一个项目中,则您还必须知道该项目的项目 ID。

对等互连配置可确立连接到另一个 VPC 网络的意图。在您的网络和另一个网络没有针对对方的对等互连配置之前,它们不会连接。在另一个网络设立与您的网络建立对等互连的相应配置之后,这两个网络中的对等互连状态都将更改为 ACTIVE,并且相互连接。如果另一个网络中没有匹配的对等互连配置,则对等互连状态保持为 INACTIVE,这表示您的网络未连接到另一个网络。

连接后,这两个网络将始终交换子网路由。如果一个对等互连网络配置为导出静态和动态自定义路由,则可以选择从该网络导入这些路由。如需了解详情,请参阅导入和导出自定义路由

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 点击创建连接
  3. 点击继续
  4. 输入对等互连连接的名称
  5. 您的 VPC 网络下方,选择您要建立对等互连的网络。
  6. 选择要与之建立对等互连的网络。

    • 如果您要与之建立对等互连的网络位于同一项目中,请选择在项目 [NAME-OF-YOUR-PROJECT] 中 (In project [NAME-OF-YOUR-PROJECT]),然后选择要与之建立对等互连的网络。
    • 如果您要与之建立对等互连的网络位于其他项目中,请选择在另一个项目中。指定包含您要与之建立对等互连的网络的项目 ID 以及 VPC 网络的名称。
  7. 要导入或导出自定义路由,请展开交换自定义路由部分,然后选择导入自定义路由和/或导出自定义路由

  8. 点击创建

gcloud

创建 VPC 网络对等互连连接。使用 --import-custom-routes--export-custom-routes 标志从对等互连网络导入或向对等互连网络导出自定义路由。

gcloud beta compute networks peerings create [PEERING-NAME] \
    --network=[MY-LOCAL-NETWORK] \
    --peer-project [PEER-PROJECT-ID] \
    --peer-network [PEER-NETWORK-NAME] \
    [--import-custom-routes] \
    [--export-custom-routes]

更新对等互连连接

更新现有 VPC 网络对等互连连接,以更改 VPC 网络是向对等 VPC 网络导出还是从对等 VPC 网络导入自定义路由。

仅当对等互连网络也导出自定义路由时,您的网络才会导入自定义路由,并且仅当对等互联网络导入自定义路由时,才会接收到自定义路由。

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 选择要更新的对等互连连接。
  3. 点击修改
  4. 通过选择或取消选择导入自定义路由导出自定义路由来更新自定义路由设置。

gcloud

更新对等互连连接,以更改自定义路由的导入或导出设置。

gcloud beta compute networks peerings update [PEERING-NAME] \
    --network=[MY-LOCAL-NETWORK] \
    [--[no-]import-custom-routes] \
    [--[no-]export-custom-routes]

列出对等互连连接

列出现有对等互连连接,以查看其状态及其是导入还是导出自定义路由。

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面,以列出您的项目中的所有对等互连连接。
    转到“VPC 网络对等互连”页面
  2. 选择对等互连连接以查看其详细信息。

gcloud

gcloud beta compute networks peerings list \
    --network=[MY-LOCAL-NETWORK]

列出来自对等互连连接的路由

列出您的 VPC 网络从对等互连的 VPC 网络导入或向对等互连的 VPC 网络导出的路由。对于导出的路由,您可以检查对等互连网络是接受还是拒绝您的自定义路由。对于导入的路由,您可以检查您的网络是接受还是拒绝来自对等互连网络的自定义路由。

Console

  1. 转到 Google Cloud Platform Console 中的“VPC 网络对等互连”页面,以列出您的项目中的所有对等互连连接。
    转到“VPC 网络对等互连”页面
  2. 选择对等互连连接以查看其详细信息。
  3. 查看您的网络正在导入或导出的自定义路由。使用区域选择器查看特定区域中的动态路由。子网和静态路由都是全球性的,并且针对所有区域显示。

    • 要查看导入的自定义路由,请选择导入的路由标签。
    • 要查看导出的自定义路由,请选择导出的路由标签。

gcloud

gcloud beta compute networks peerings list-routes [PEERING-NAME] \
    --network=[MY-LOCAL-NETWORK]
    --region=[REGION] \
    --direction=INCOMING|OUTGOING
  • --region 标志列出了来自特定区域的所有动态路由。子网和静态路由都是全球性的,并且针对所有区域显示。
  • --direction 指定是列出导入的 (INCOMING) 还是导出的 (OUTGOING) 路由。

删除 VPC 网络对等互连连接

您或对等互连 VPC 网络的网络管理员可以删除对等互连配置。删除对等互连配置后,对等互连连接在另一个网络中会切换为 INACTIVE,并且在这两个网络之间共享的所有路由都会被移除。

Console

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

gcloud

gcloud compute networks peerings delete [PEERING-NAME] \
    --network [NETWORK-NAME]

示例 VPC 网络对等互连设置

请考虑以下情况:组织 organization-a 需要在 project-anetwork-aproject-bnetwork-b 之间建立 VPC 网络对等互连。为了成功建立 VPC 网络对等互连,network-anetwork-b 的管理员必须分别配置对等互连关联。

步骤 1:网络 a 与网络 b 对等互连

project-a 中具有适当 IAM 权限的用户将 network-a 配置为与 network-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. 点击创建
  10. 导入和导出自定义路由。
    1. 展开自定义路由部分。
    2. 选择导入自定义路由导出自定义路由

gcloud

gcloud beta compute networks peerings create peer-ab \
    --network network-a \
    --peer-project project-b \
    --peer-network network-b \
    --import-custom-routes \
    --export-custom-routes

此时,对等互连状态保持为 INACTIVE,因为 project-bnetwork-b 中没有匹配的配置。

当对等互连状态变为 ACTIVE 时,VPC 网络对等互连会自动交换子网路由。GCP 还会通过对等互连连接导入或导出自定义路由(静态路由和动态路由),从而交换这些路由。必须将这两个网络配置为在共享自定义路由之前交换这些路由。如需了解详情,请参阅导入和导出自定义路由

要查看当前对等互连状态,请查看对等互连连接:

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   IMPORT_CUSTOM_ROUTES EXPORT_CUSTOM_ROUTES STATE    STATE_DETAILS
peer-ab   network-b project-b    network-b    True                 True                 True                 INACTIVE The peering network has not been configured.

步骤 2:网络 b 与网络 a 对等互连

project-b 中,必须由一名 NetworkAdmin 或具有适当 IAM 权限的用户将匹配的配置设置为从 network-bnetwork-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. 点击创建
  10. 导入和导出自定义路由。
    1. 展开自定义路由部分。
    2. 选择导入自定义路由导出自定义路由

gcloud

gcloud beta compute networks peerings create peer-ba \
     --network network-b \
     --peer-project project-a \
     --peer-network network-a \
     --import-custom-routes \
     --export-custom-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   IMPORT_CUSTOM_ROUTES EXPORT_CUSTOM_ROUTES STATE    STATE_DETAILS
peer-ab  network-a   project-b    network-b   True                 True                 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   IMPORT_CUSTOM_ROUTES EXPORT_CUSTOM_ROUTES STATE    STATE_DETAILS
peer-ba  network-b   project-a    network-a   True                 True                 True                 ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.

到对等互连网络 CIDR 前缀的路由现可在 VPC 网络对等互连之间可见。这些路由是为活跃对等互连连接生成的隐式路由。它们没有对应的路由资源。以下过程显示了 project-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
peering-static-route              network-a  10.138.0.0/20  peer-ab                   1000

创建多个对等互连连接

请考虑以下情景:network-a 中的虚拟机实例需要访问两个不同的外部组织 SaaS1SaaS2 的服务。要仅使用内部(专用,RFC 1918)IP 地址来访问这两个服务,需要两个对等互连连接:

  • network-aSaaS1 中的 network-b 对等互连
  • network-aSaaS2 中的 network-c 对等互连

使用 VPC 网络对等互连时,network-bnetwork-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 网络,您必须先删除该网络中的所有对等互连配置。请参阅删除 VPC 网络对等互连连接

问:能否将其子网具有重叠的主要或次要 IP 范围的 VPC 网络进行对等互连?

不能。只能将其子网具有唯一主要和次要子网 IP 范围的 VPC 网络进行对等互连。

问:如何确保我在 VPC 网络中创建的新子网的子网 IP 范围不会与对等互连网络中的子网或路由冲突?

在创建新子网之前,您可以列出来自对等互连连接的路由。确保在 VPC 网络中创建新子网时,不使用其任何目标位置作为主要或次要 IP 范围。

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

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

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

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

问:如何确定是否存在来自其他 VPC 网络的请求,请求使用 VPC 网络对等互连连接到我的 VPC 网络?

无法列出对您的 VPC 网络的任何对等互连请求。您只能看到您已创建的对等互连配置。

VPC 网络对等互连要求您的网络和另一个网络在建立连接之前创建针对对方的对等互连配置。除非您创建针对另一个 VPC 网络的对等互连配置,否则即使该网络的管理员创建了针对您的网络的对等互连配置,对等互连连接也不会创建

问:如何使用 Cloud VPN 或 Cloud Interconnect 使对等互连网络中的路由可用于连接到我的 VPC 网络的本地网络?

VPC 网络对等互连不支持传递性路由;也就是说,您的 VPC 网络中的 Cloud Router 路由器不会自动通告从其他网络导入的路由。但是,您可以使用您的 VPC 网络中的 Cloud Router 路由器的自定义 IP 范围通告来共享到对等互连网络中的目标位置的路由。

对于使用静态路由的 Cloud VPN 隧道,您必须在本地网络中配置到对等互连网络的目标范围的静态路由。

问:为什么对等互连的网络之间没有交换自定义路由?

首先,列出来自对等互连连接的路由。如果您没有看到去往预期目标的路由,请执行以下检查:

  • 列出对等互连连接。找到具有所需目标范围的网络,并确保其对等互连状态为 ACTIVE。如果对等互连连接状态为 INACTIVE,则另一个网络中不存在您的网络的对等互连配置。如果另一个网络不由您管理,则需要与该网络的管理员协调。

  • 更新您的网络中的对等互连配置,将其配置为从另一个网络导入自定义路由。确保已将另一个网络配置为导出其自定义路由。

问:为什么目标位置为对等互连网络的流量被丢弃?

首先,列出对等互连连接,确保您的网络仍然连接到另一个网络。如果对等互连状态为 INACTIVE,则另一个网络中不存在您的网络的对等互连配置。如果另一个网络不由您管理,则需要联系该网络的管理员。

然后,列出来自对等互连连接的路由。您只能导入 VPC 网络对等互连限制允许的路由数。

问:为什么流量会发送到非预期的下一个跃点?

检查路由顺序,查看是否选择了其他路由。

后续步骤