设置和管理 VPC 网络对等互连
Google Cloud VPC 网络对等互连允许跨两个 Virtual Private Cloud (VPC) 网络的内部 IP 地址连接(无论它们是否属于同一个 Google Cloud 项目或组织)。对等互连支持在具有以下任意组合的子网的网络之间建立连接:仅限 IPv4、双栈和仅限 IPv6。
准备工作
- 请参阅 VPC 网络对等互连和关于对等互连连接。
- 在项目中启用 Compute Engine API。
IAM 权限
确保您拥有项目的以下角色之一:
- Compute Network Admin 角色 (
roles/compute.networkAdmin) - 包含以下权限的自定义角色:
compute.networks.addPeeringcompute.networks.updatePeeringcompute.networks.removePeeringcompute.networks.listPeeringRoutes
创建对等互连配置
在开始之前,您必须知道要与之建立对等互连的 VPC 网络的名称。如果该网络位于另一个项目中,您还必须知道该项目的项目 ID。您无法列出对您的 VPC 网络的对等互连请求。如有必要,请向您打算与之建立对等互连的网络的管理员询问网络名称和项目 ID。
在每个网络都具有引用另一个网络的对等互连配置之后,您的网络和另一个网络才会连接。如需了解详情,请参阅对等互连连接简介。
Google Cloud 在对等互连网络中,一次只能执行一项对等互连操作。例如,如果您与一个网络设置了对等互连,随后立即尝试设置另一个网络,则操作会失败,并显示以下消息:Error: There is a peering operation in progress on the local or peer network.
Try again later.
控制台
针对对等互连的每一方执行以下步骤。
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
点击创建连接。
点击继续。
在对等互连连接名称字段中,输入对等互连配置的名称。
在您的 VPC 网络字段中,选择您要建立对等互连的网络。
在对等互连 VPC 网络部分中,选择要对等互连的网络:
- 如果您要与之建立对等互连的网络位于同一项目中,请选择在项目 [name-of-your-project] 中,然后选择要与之建立对等互连的网络。
- 如果您要与之建立对等互连的网络位于其他项目中,请选择在另一个项目中。指定包含您要与之建立对等互连的网络的项目 ID 以及 VPC 网络的名称。
选择要在对等互连网络之间交换的路由的 IP 版本:
- IPv4(单栈):仅交换 IPv4 路由。
- IPv4 和 IPv6(双栈):交换 IPv4 和 IPv6 路由。
如需交换 IPv4 自定义路由,请在交换 IPv4 自定义路由部分中,选择以下一个或两个选项:
- 导入自定义路由:从对等网络导入自定义路由。对等网络必须为要导入的路由启用自定义路由导出。
- 导出自定义路由:将自定义路由导出到对等网络。对等网络必须为要导出的路由启用自定义路由导入。
如果您的网络或对等网络在其子网中具有专用公共 IPv4 范围,则这些路由默认导出,但不会默认导入。
如需导入专用公共 IPv4 子网路由,请在交换具有以非公开方式使用的公共 IPv4 地址的子网路由部分中,选择导入具有公共 IP 的子网路由。
在高级选项部分中,为对等互连连接选择更新策略:
点击创建。
gcloud
使用 gcloud compute networks peerings create 命令。
您可以使用默认配置创建对等互连配置,也可以自定义配置。
创建默认对等互连配置
如需创建默认对等互连配置,请运行以下命令:
gcloud compute networks peerings create PEERING_NAME \
--network=NETWORK \
--peer-project=PEER_PROJECT_ID \
--peer-network=PEER_NETWORK_NAME \
替换以下内容:
PEERING_NAME:对等互连配置的名称。NETWORK:项目中您想要对等互连的网络的名称。PEER_PROJECT_ID:包含您要与之建立对等互连的网络的项目的 ID。如果对等网络与您的网络位于同一项目中,则此标志为可选标志。PEER_NETWORK_NAME:您要与之建立对等互连的网络的名称。
例如,如需将 project-a 中的 network-a 与 project-b 中的 network-b 对等互连,请执行以下操作:
为
network-a创建对等互连配置。此步骤通常由network-a的网络管理员执行。gcloud compute networks peerings create peering-a \ --network=network-a \ --peer-project=project-b \ --peer-network=network-b为
network-b创建对等互连配置。此步骤通常由network-b的网络管理员执行。gcloud compute networks peerings create peering-b \ --network=network-b \ --peer-project=project-a \ --peer-network=network-a
这两个网络中的对等互连状态都将更改为 ACTIVE。
自定义对等互连配置
如需自定义对等互连配置,您可以使用以下可选参数:
--stack-type会设置对等互连连接的堆栈类型。默认情况下,仅交换 IPv4 路由,并且堆栈类型设置为IPV4_ONLY。如需同时交换 IPv4 和 IPv6 路由,请指定IPV4_IPV6。--import-custom-routes指示网络接受来自对等互连网络的自定义路由。对等互连网络必须先导出路由。--export-custom-routes指示网络将自定义路由导出到对等互连网络。必须将对等互连网络设置为导入路由。--import-subnet-routes-with-public-ip指示网络在对等互连网络在其子网中具有专用公共 IPv4 地址的情况下接受该网络的子网路由。对等互连网络必须先导出路由。--export-subnet-routes-with-public-ip指示网络导出包含专用公共 IPv4 地址的子网路由。必须将对等互连网络设置为导入路由。--update-strategy会设置对等互连连接的更新策略。默认情况下,更新策略设置为INDEPENDENT。如需将连接配置为使用共识模式,请指定CONSENSUS。连接双方的更新策略必须相同。如需了解详情,请参阅连接模式。
示例:在对等互连连接中交换自定义路由
如需在 project-a 中启用 network-a 并允许 project-b 中的 network-b 交换自定义路由,请在创建对等互连连接时执行以下操作:
为
network-a创建对等互连配置。此步骤通常由network-a的网络管理员执行。gcloud compute networks peerings create peering-a \ --network=network-a \ --peer-project=project-b \ --peer-network=network-b \ --import-custom-routes为
network-b创建对等互连配置。此步骤通常由network-b的网络管理员执行。gcloud compute networks peerings create peering-b \ --network=network-b \ --peer-project=project-a \ --peer-network=network-a \ --export-custom-routes
这两个网络中的对等互连状态都将更改为 ACTIVE。如需详细了解此示例,请参阅对等互连两个 VPC 网络快速入门。
示例:在共识模式下创建对等互连连接
如需在共识模式下创建对等互连连接,请将更新策略设置为 CONSENSUS。在此示例中,您将配置 project-a 中的 network-a 以与 project-b 中的 network-b 建立对等互连。
为
network-a创建对等互连配置。此步骤通常由network-a的网络管理员执行。gcloud compute networks peerings create peering-a \ --network=network-a \ --peer-project=project-b \ --peer-network=network-b \ --update-strategy=CONSENSUS为
network-b创建对等互连配置。此步骤通常由network-b的网络管理员执行。gcloud compute networks peerings create peering-b \ --network=network-b \ --peer-project=project-a \ --peer-network=network-a \ --update-strategy=CONSENSUS
这两个网络中的对等互连状态都将更改为 ACTIVE。
Terraform
您可以使用 Terraform 模块来创建对等互连配置。
对于两个对等互连的 VPC 网络,每个页内链接都包含项目 ID 和 VPC 网络的名称。要获取 VPC 网络的页内链接,您可以在每个 VPC 网络的项目中使用 gcloud compute networks
describe 命令或 networks.get 方法。
创建从 local_network 到 peer_network 的对等互连时,对等互连关系是双向的。从 peer_network 到 local_network 的对等互连将自动创建。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
验证流量是否在对等互连的 VPC 网络之间传递
您可以使用 VPC 流日志来查看虚拟机实例发送和接收的网络流。您还可以使用防火墙规则日志记录来验证流量是否在网络之间传递。创建允许(或拒绝)对等互连网络之间流量的 VPC 防火墙规则,并为这些规则启用防火墙规则日志记录。之后,您便可以使用 Cloud Logging 查看有哪些防火墙规则命中。
更新对等连接
更新现有对等互连连接时,您可以执行以下操作:
- 更改 VPC 网络是向对等 VPC 网络导出或导入自定义路由还是以非公开方式使用的公共 IPv4 子网路由。
- 更新对等互连连接,以启用或停用对等互连网络之间的 IPv6 路由交换。
- 通过更改连接的更新策略,将对等互连连接模式从独立(默认)更新为共识。
仅当对等互连网络也导出路由时,您的网络才会导入路由,并且仅当对等互连网络导入路由时,才会接收路由。
更新连接(独立模式)
控制台
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
选择要更新的对等互连连接。
点击修改。
如需更新要在对等互连网络之间交换的路由的 IP 版本,请选择以下选项之一:
- IPv4(单栈):停止通过对等互连进行的现有 IPv6 路由交换,并继续仅交换 IPv4 路由。
- IPv4 和 IPv6(双栈):开始交换 IPv4 和 IPv6 路由,前提是匹配的对等互连配置也启用了此选项。
如需交换 IPv4 自定义路由,请在交换 IPv4 自定义路由部分中,选择以下一个或两个选项:
- 导入自定义路由:从对等网络导入自定义路由。对等网络必须为要导入的路由启用自定义路由导出。
- 导出自定义路由:将自定义路由导出到对等网络。对等网络必须为要导出的路由启用自定义路由导入。
如果您的网络或对等网络在其子网中具有专用公共 IPv4 范围,则这些路由默认导出,但不会默认导入。
如需导入专用公共 IPv4 子网路由,请在交换具有以非公开方式使用的公共 IPv4 地址的子网路由部分中,选择导入具有公共 IP 的子网路由。
点击保存。
gcloud
使用 gcloud compute networks peerings update 命令。
以下命令中的方括号 [] 表示可选标志:
--stack-type会设置对等互连连接的堆栈类型。默认情况下,仅交换 IPv4 路由,并且堆栈类型设置为IPV4_ONLY。如需同时交换 IPv4 和 IPv6 路由,请指定IPV4_IPV6。--import-custom-routes指示网络接受来自对等互连网络的自定义路由。对等互连网络必须先导出路由。--export-custom-routes指示网络将自定义路由导出到对等互连网络。必须将对等互连网络设置为导入路由。--import-subnet-routes-with-public-ip指示网络在对等互连网络在其子网中使用专用公共 IPv4 地址的情况下接受该网络的子网路由。对等互连网络必须先导出路由。--export-subnet-routes-with-public-ip指示网络导出包含专用公共 IPv4 地址的子网路由。必须将对等互连网络设置为导入路由。--update-strategy会设置对等互连连接的更新策略。默认情况下,更新策略设置为INDEPENDENT。如需将连接配置为使用共识模式,请指定CONSENSUS。连接双方的更新策略必须相同。如需了解详情,请参阅连接模式。
gcloud compute networks peerings update PEERING_NAME \
--network=NETWORK \
[--stack-type=STACK_TYPE] \
[--import-custom-routes] \
[--export-custom-routes] \
[--export-subnet-routes-with-public-ip] \
[--import-subnet-routes-with-public-ip] \
[--update-strategy=UPDATE_STRATEGY]
替换以下内容:
PEERING_NAME:现有对等互连配置的名称。NETWORK:您的项目中对等互连的网络的名称。STACK_TYPE:对等互连连接的堆栈类型。- 指定
IPV4_ONLY以停止现有的 IPv6 路由交换,并继续仅交换 IPv4 路由。 - 指定
IPV4_IPV6以开始同时交换 IPv4 和 IPv6 路由,前提是匹配的对等互连连接也将stack_type设置为IPV4_IPV6。
- 指定
UPDATE_STRATEGY:对等互连连接的更新策略,即INDEPENDENT(默认)或CONSENSUS。如需使用此选项,请参阅将连接更新为共识模式 。
将连接更新为共识模式
您可以通过更改对等互连连接的更新策略,将该连接从独立(默认)模式更新为共识模式。在更改更新策略之前,请查看共识模式的要求。
控制台
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
点击要更新的对等互连连接。
点击修改。
在高级选项部分中,选择共识。
点击保存。
本地配置的更新策略更改为共识。如需完成更新请求,对等互连网络的网络管理员必须为对等互连配置执行第 1-4 步并接受该请求。
在两项配置都更新后,对等互连连接的有效更新策略会更改为“共识”。
gcloud
使用 gcloud compute networks peerings update 命令。
更新本地对等互连配置:
gcloud compute networks peerings update PEERING_NAME \ --network=NETWORK \ --update-strategy=CONSENSUS替换以下内容:
PEERING_NAME:现有对等互连配置的名称。NETWORK:您的项目中对等互连的网络的名称。
查看更新请求的状态:
gcloud compute networks describe NETWORK
将
NETWORK替换为您的项目中对等互连的网络的名称。在输出中,
consensusState字段必须显示以下状态:- 在本地网络的配置中,
PENDING_PEER_ACKNOWLEDGMENT - 在对等互连网络的对应配置中,
PENDING_LOCAL_ACKNOWLEDGMENT
- 在本地网络的配置中,
为连接的对等互连端运行第 1 步中的命令,以接受更新请求。
此步骤通常由对等网络的网络管理员执行。请求完成后,双方配置的
consensusState字段都会更改为IN_SYNC。
如需还原正在等待对等网络批准的更新请求,请将更新策略重置为独立。
列出对等互连连接
列出现有对等互连连接,以查看其状态及其是导入还是导出自定义路由。
控制台
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
选择对等互连连接以查看其详细信息。
gcloud
gcloud compute networks peerings list
查看对等互连连接
控制台
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
在状态列中,查看连接的状态。
gcloud
使用 gcloud compute networks describe 命令。
gcloud compute networks describe NETWORK
将 NETWORK 替换为您的项目中对等互连的网络的名称。
在输出中,peerings.connectionStatus 字段描述了对等互连连接的有效状态。如需了解详情,请参阅连接状态。
列出对等互连路由
控制台
使用有效路由标签页查看 VPC 网络中所有适用的路由类型,包括导入的对等互连子网、对等互连静态路由和对等互连动态路由。
gcloud
使用以下 Google Cloud CLI 命令执行以下操作:
- 列出从您的 VPC 网络发送到对等 VPC 网络的路由导出。
- 列出 VPC 网络的路由导入候选项。
gcloud compute networks peerings list-routes PEERING_NAME \
--network=NETWORK \
--region=REGION \
--direction=DIRECTION
替换以下内容:
PEERING_NAME:现有对等互连连接的名称。NETWORK:您的项目中对等互连的网络的名称。REGION:您要列出所有动态路由的区域。子网和静态路由都是全球性的,并且针对所有区域显示。DIRECTION:指定要列出导入的 (incoming) 还是导出的 (outgoing) 路由。
删除对等连接
当您在自己的网络中删除某个对等互连配置后,该对等互连连接在另一方的网络中会变为非活跃状态,并且在双方网络之间共享的所有路由都会被移除。
删除对等互连连接的程序取决于为该连接配置的更新策略:
- 独立(默认):您或对等 VPC 网络的网络管理员可以随时删除连接。请参阅删除连接(独立模式)。
- 共识:您和对等 VPC 网络的网络管理员都必须提交删除请求,然后才能删除该连接。请参阅删除连接(共识模式)。
删除连接(独立模式)
如需在独立模式(默认)下删除对等互连连接,请执行以下操作。
控制台
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
选中要移除的对等互连连接旁边的复选框。
点击删除。
对于对等网络,连接的状态会更改为不活跃。如需移除无效配置,对等网络的网络管理员需要针对连接的对等方执行以下步骤。
gcloud
使用 gcloud compute networks peerings delete 命令。
gcloud compute networks peerings delete PEERING_NAME \
--network=NETWORK
替换以下内容:
PEERING_NAME:要删除的对等互连配置的名称。NETWORK:您的项目中对等互连的网络的名称。
对等网络连接的状态更改为 INACTIVE。
如需移除无效配置,对等网络的网络管理员需要针对连接的对等方执行此步骤。
删除连接(共识模式)
如需在共识模式下删除对等互连连接,请执行以下操作。
控制台
在 Google Cloud 控制台中,前往 VPC 网络对等互连页面。
点击要移除的对等互连。
在对等互连详细信息页面上,依次点击请求删除和确认。
针对连接的对等端执行步骤 1-3,以接受删除请求。
这些步骤通常由对等网络的网络管理员执行。在对等互连连接的双方都提交删除请求后,两个配置的连接状态都会变为有效,已确认删除。
选择要移除的对等互连,然后点击删除。
对于对等网络,连接的状态会更改为不活跃。如需移除无效配置,对等网络的网络管理员需要针对连接的对等方执行此步骤。
gcloud
请使用 gcloud compute networks peerings request-delete 和 gcloud compute networks peerings delete 命令。
发起删除请求:
gcloud compute networks peerings request-delete PEERING_NAME \ --network=NETWORK替换以下内容:
PEERING_NAME:要删除的对等互连连接的名称。NETWORK:您的项目中对等互连的网络的名称。
查看删除请求的状态:
gcloud compute networks describe NETWORK
将
NETWORK替换为您的项目中对等互连的网络的名称。在输出中,
deleteStatus字段必须显示以下状态:- 在本地网络的配置中,
LOCAL_DELETE_REQUESTED - 在对等互连网络的对应配置中,
PEER_DELETE_REQUESTED
- 在本地网络的配置中,
为连接的对等互连端运行第 1 步中的命令,以接受删除请求。
此步骤通常由对等网络的网络管理员执行。在连接双方都提交删除请求后,两个配置的
deleteStatus字段的状态都会更改为DELETE_ACKNOWLEDGED。删除对等互连连接:
gcloud compute networks peerings delete PEERING_NAME \ --network=NETWORK替换以下内容:
PEERING_NAME:要删除的对等互连配置的名称。NETWORK:您的项目中对等互连的网络的名称。
对等网络连接的状态更改为
INACTIVE。 如需移除非活跃配置,对等网络的网络管理员需要针对连接的对等方执行此步骤。
问题排查
以下部分介绍如何排查 VPC 网络对等互连的问题。
对等虚拟机无法访问
在对等互连连接转为 ACTIVE 状态后,可能需要一分钟时间才能在对等互连的网络之间建立起所有流量流。具体所需时间取决于对等互连网络的规模。如果您最近设置了对等互连连接,请等待一分钟之后再试。此外,请确保没有防火墙规则禁止与对等互连 VPC 网络子网 CIDR 之间的访问。
缺少自定义路由
本部分介绍如何排查缺失的自定义路由问题。
检查对等互连连接状态
如需检查对等互连连接的状态,请执行以下操作:
- 列出对等互连连接。
- 确定要排查问题的对等互连连接,并查看其对等互连状态。
- 如果状态为
ACTIVE,请按照下一部分中的步骤操作。 - 如果对等互连状态为
INACTIVE,则另一个网络的网络管理员需要创建针对您的 VPC 网络的对等互连配置。
- 如果状态为
排查 ACTIVE 连接问题
如需排查 ACTIVE 对等互连连接中缺少自定义路由的问题,请执行以下操作:
在您的 VPC 网络中列出对等互连路由。在有效路由标签页中,执行以下操作:
请注意,在其中对动态路由进行编程的区域取决于导出自定义路由的 VPC 网络的动态路由模式。如需了解详情,请参阅动态路由模式的影响。在全球动态路由模式下,只有排名最高的动态路由在与下一个跃点的区域不匹配的区域中进行编程。
点击 Show suppressed routes 切换开关以切换到开启位置,然后检查您的路由。如需查看路由被抑制的原因,请将光标指向状态列中的图标。 Google Cloud 在使用 VPC 网络对等互连导入路由的 VPC 网络中,按区域提供路由冲突解析。
查找一条警告,指示您的 VPC 网络已达到每对等互连组每区域的动态路由配额限制。如果您的 VPC 网络已达到此配额的限制,则表示一个或多个对等互连动态路由未编程。由于无法准确显示哪些对等互连动态路由未编程,因此请申请提高每对等互连组每区域的动态路由配额限制。
如果您仍然没有看到预期的路由,请执行以下操作:
查看对等互连配置,并根据需要更新对等互连配置,以便它导入自定义路由。
确保该路由不是以下无法使用 VPC 网络对等互连交换的路由类型之一:
对等互连 VPC 网络中从其他对等网络接收的对等互连子网、对等互连静态路由和对等互连动态路由无法使用 VPC 网络对等互连与您的 VPC 网络交换。
使用默认互联网网关下一个跃点的静态路由和带有网络标记的静态路由无法使用 VPC 网络对等互连进行交换。
如需了解详情,请参阅路由交换选项。
请对等互连 VPC 网络的网络管理员执行以下操作:
列出其 VPC 网络中的路由,查找您预期的路由。
查看其对等互连配置,并根据需要更新对等互连配置,以便它导出自定义路由。
目标位置为对等网络的流量被丢弃
您可以使用 Connectivity Tests 来帮助确定流向对等网络的流量被丢弃的原因。如果流量应使用自定义路由发送,请参阅缺少自定义路由。
流量正在发送到非预期的下一个跃点
您可以使用 Connectivity Tests 来帮助确定流量发送到非预期的下一个跃点的原因。如果应使用自定义路由发送流量,请参阅缺少自定义路由。
无法与特定 VPC 网络建立对等互连
如果您无法创建针对某些 VPC 网络的对等互连配置,可能有某项组织政策正在限制您的网络可以与之建立对等互连的 VPC 网络。在组织政策中,将该网络添加到允许的对等互连方列表中或与组织管理员联系。如需了解详情,请参阅 constraints/compute.restrictVpcPeering 限制条件。
IPv6 路由不交换
首先,验证您的对等连接和对等互连 VPC 网络的对等互连连接的堆栈类型均已设置为 IPV4_IPV6。如有必要,请执行以下操作:
- 更新对等互连连接,将其栈类型设置为
IPV4_IPV6。 - 请让对等互连 VPC 网络的网络管理员更新其对等互连连接,将其堆栈类型设置为
IPV4_IPV6。
在两个对等互连连接将其栈类型设置为 IPV4_IPV6 后,系统会交换 IPv6 子网路由(内部和外部)。IPv6 子网路由在所有 Google Cloud VPC 网络中都是唯一的。
如需交换 IPv6 自定义路由,请执行以下操作:
- 更新对等互连连接,以导入和导出自定义路由。
- 请让对等互连 VPC 网络的网络管理员更新其对等互连连接,以导入和导出自定义路由。
后续步骤
- 如需详细了解 VPC 路由,请参阅路由。
- 如需了解 VPC 网络对等互连的限制,请参阅 VPC 网络对等互连限制。
- 如需了解如何将内部直通式网络负载均衡器用作自定义静态路由的下一个跃点,请参阅使用内部直通网络负载均衡器作为下一个跃点。