使用 VPC 网络对等互连
Google Cloud VPC 网络对等互连允许跨两个 Virtual Private Cloud (VPC) 网络的内部 IP 地址连接(无论它们是否属于同一个项目或组织)。对等互连支持具有双栈子网的网络之间的连接。
如需了解详情,请参阅 VPC 网络对等互连。
创建对等互连配置
在开始之前,您必须知道要与之建立对等互连的 VPC 网络的名称。如果该网络位于另一个项目中,则您还必须知道该项目的项目 ID。
对等互连配置可确立连接到另一个 VPC 网络的意图。在您的网络和另一个网络没有针对对方的对等互连配置之前,它们不会连接。在另一个网络设立与您的网络建立对等互连的相应配置之后,这两个网络中的对等互连状态都将更改为 ACTIVE
,并且相互连接。如果另一个网络中没有匹配的对等互连配置,则对等互连状态保持为 INACTIVE
,这表示您的网络未连接到另一个网络。
连接后,这两个网络将始终交换子网路由。如果一个对等互连网络配置为导出静态和动态 IPv4 自定义路由和动态 IPv6 自定义路由,则可以选择从该网络导入这些路由。如需了解详情,请参阅导入和导出自定义路由。
控制台
- 在 Google Cloud Console 中,转到 VPC 网络对等互连页面。
转到 VPC 网络对等互连 - 点击创建连接。
- 点击继续。
- 在名称字段中,输入对等互连配置的名称。
- 在您的 VPC 网络下方,选择您要建立对等互连的网络。
选择要与之建立对等互连的网络。
- 如果您要与之建立对等互连的网络位于同一项目中,请选择在项目 [NAME-OF-YOUR-PROJECT] 中 (In project [NAME-OF-YOUR-PROJECT]),然后选择要与之建立对等互连的网络。
- 如果您要与之建立对等互连的网络位于其他项目中,请选择在另一个项目中。指定包含您要与之建立对等互连的网络的项目 ID 以及 VPC 网络的名称。
在 IP 栈类型下,指定应在对等互连网络之间交换的子网路由:
- IPv4(单栈):仅交换 IPv4 路由。
- IPv4 和 IPv6(双栈):同时交换 IPv4 和 IPv6 路由。
如需导入或导出 IPv4 和 IPv6 自定义路由,请选择以下一个或两个选项:
- 导入自定义路由:从对等网络导入自定义路由。 对等网络必须为要导入的路由启用自定义路由导出。
- 导出自定义路由:将自定义路由导出到对等网络。对等网络必须为要导出的路由启用自定义路由导入。
如果您的网络或对等网络在其子网中使用专用公共 IPv4 范围,则这些路由默认导出,但不会默认导入。如需导入专用公共 IPv4 子网路由,请选择:
- 导入包含公共 IP 的子网路由,以导入由其他网络导出的专用公共 IP 子网路由
点击创建。
gcloud
创建 VPC 网络对等互连连接。
gcloud compute networks peerings create PEERING_NAME \ --network=NETWORK \ --peer-project=PEER_PROJECT_ID \ --peer-network=PEER_NETWORK_NAME \ [--stack-type=STACK_TYPE] \ [--import-custom-routes] \ [--export-custom-routes] \ [--import-subnet-routes-with-public-ip] \ [--export-subnet-routes-with-public-ip]
替换以下内容:
PEERING_NAME
:对等互连配置的名称。NETWORK
:项目中您想要对等互连的网络的名称PEER_PROJECT_ID
:包含您要与之建立对等互连的网络的项目的 ID。PEER_NETWORK_NAME
:您要与之建立对等互连的网络的名称。STACK_TYPE
:对等互连连接的堆栈类型。指定IPV4_ONLY
以仅交换 IPv4 路由。或者,指定IPV4_IPV6
以同时交换 IPv4 和 IPv6 路由。IPV4_ONLY
为默认值。- --import-custom-routes 指示网络接受来自对等互连网络的自定义路由。对等互连网络必须先导出路由。
- --export-custom-routes 指示网络将自定义路由导出到对等互连网络。必须将对等互连网络设置为导入路由。
- --import-subnet-routes-with-public-ip 指示网络在对等互连网络在其子网中使用专用公共 IPv4 地址的情况下接受该网络的子网路由。对等互连网络必须先导出路由。
- --export-subnet-routes-with-public-ip 指示网络导出包含专用公共 IP 地址的子网路由。必须将对等互连网络设置为导入路由。
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 网络导出或导入自定义路由还是专用公共 IPv4 子网路由。
- 更新现有对等互连连接,以启用或停用对等互连网络之间的 IPv6 路由交换。
仅当对等互连网络也导出路由时,您的网络才会导入路由,并且仅当对等互连网络导入路由时,才会接收路由。
控制台
- 在 Google Cloud Console 中,转到 VPC 网络对等互连页面。
转到 VPC 网络对等互连 - 选择要更新的对等互连连接。
- 点击修改。
- 更新 IP 栈类型选项,以指定应在对等互连网络之间交换的子网路由:
- IPv4(单栈):停止通过对等互连进行的现有 IPv6 路由交换,并继续仅交换 IPv4 路由。
- IPv4 和 IPv6(双栈):开始交换 IPv4 和 IPv6 路由,前提是匹配的对等互连连接也将 IP 栈类型设置为 IPv4 和 IPv6(双栈)。
- 如需导入或导出 IPv4 和 IPv6 自定义路由,请选择以下一个或两个选项:
- 导入自定义路由:导入其他网络导出的自定义路由
- 导出自定义路由:将自定义路由导出到另一个网络。其他网络必须导入路由才能看到它们。
- 如果您的网络或对等网络在其子网中使用专用公共 IPv4 范围,则这些路由默认导出,但不会默认导入。如需导入专用公共 IPv4 子网路由,请选择:
- 导入包含公共 IP 的子网路由,以导入由其他网络导出的专用公共 IP 子网路由
- 点击保存。
gcloud
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]
更新以下内容:
PEERING_NAME
:现有对等互连连接的名称。NETWORK
:您的项目中对等互连的网络的名称。STACK_TYPE
:对等互连连接的堆栈类型。- 指定
IPV4_ONLY
以停止通过对等互连进行现有的 IPv6 路由交换,并继续仅交换 IPv4 路由。 - 指定
IPV4_IPV6
以开始交换 IPv4 和 IPv6 路由,前提是匹配的对等互连连接也将stack_type
设置为IPV4_IPV6
。
- 指定
- --import-custom-routes 指示网络接受来自对等互连网络的自定义路由。对等互连网络必须先导出路由。
- --export-custom-routes 指示网络将自定义路由导出到对等互连网络。必须将对等互连网络设置为导入路由。
- --import-subnet-routes-with-public-ip 指示网络在对等互连网络在其子网中使用专用公共 IPv4 地址的情况下接受该网络的子网路由。对等互连网络必须先导出路由。
- --export-subnet-routes-with-public-ip 指示网络导出包含专用公共 IP 地址的子网路由。必须将对等互连网络设置为导入路由。
列出对等互连连接
列出现有对等互连连接,以查看其状态及其是导入还是导出自定义路由。
控制台
- 在 Google Cloud Console 中,转到 VPC 网络对等互连页面。
转到 VPC 网络对等互连 - 选择对等互连连接以查看其详细信息。
gcloud
gcloud compute networks peerings list
列出来自对等互连连接的路由
您可以列出您的 VPC 网络从对等互连的 VPC 网络导入或向对等互连的 VPC 网络导出的动态路由。对于导出的路由,您可以检查对等互连网络是接受还是拒绝您的自定义路由。对于导入的路由,您可以检查您的网络是接受还是拒绝来自对等互连网络的自定义路由。
对于每个区域,您看到的路由数量可能不会相同。如需了解详情,请参阅问题排查。
控制台
- 在 Google Cloud Console 中,转到 VPC 网络对等互连页面。
转到 VPC 网络对等互连 - 选择对等互连连接以查看其详细信息。
查看您的网络正在导入或导出的自定义路由。使用区域选择器查看特定区域中的动态路由。子网和静态路由都是全球性的,并且针对所有区域显示。
- 要查看导入的自定义路由,请选择导入的路由标签。
- 如需查看导出的自定义路由,请选择导出的路由标签。
gcloud
gcloud compute networks peerings list-routes PEERING_NAME \ --network=NETWORK \ --region=REGION \ --direction=DIRECTION
更新以下内容:
PEERING_NAME
:现有对等互连连接的名称。NETWORK
:您的项目中对等互连的网络的名称。REGION
:您要列出所有动态路由的区域。子网和静态路由都是全球性的,并且针对所有区域显示。DIRECTION
:指定要列出导入的 (incoming
) 还是导出的 (outgoing
) 路由。
删除 VPC 网络对等互连连接
您或对等互连 VPC 网络的网络管理员可以删除对等互连配置。删除对等互连配置后,对等互连连接在另一个网络中会切换为 INACTIVE
,并且在这两个网络之间共享的所有路由都会被移除。
控制台
- 转到 Google Cloud Console 中的“VPC 网络对等互连”页面。
转到 VPC 网络对等互连 - 选中要移除的对等互连旁边的复选框。
- 点击删除。
gcloud
gcloud compute networks peerings delete PEERING_NAME \ --network=NETWORK
更新以下内容:
PEERING_NAME
:要删除的对等互连连接的名称。NETWORK
:您的项目中对等互连的网络的名称。
示例 VPC 网络对等互连设置
请考虑以下情况:组织 organization-a
需要在 project-a
的 network-a
与 project-b
的 network-b
之间建立 VPC 网络对等互连。为了成功建立 VPC 网络对等互连,network-a
和 network-b
的管理员必须分别配置对等互连关联。
步骤 1:网络 a 与网络 b 对等互连
project-a
中具有适当 IAM 权限的用户将 network-a
配置为与 network-b
对等互连。例如,具有 roles/editor 或 roles/compute.networkAdmin 角色的用户可以配置对等互连。
在开始之前,您需要希望与之对等互连的网络的项目 ID 和网络名称。
控制台
- 转到 Google Cloud Console 中的“VPC 网络对等互连”页面。
转到 VPC 网络对等互连 - 点击创建连接。
- 点击继续。
- 输入
peer-ab
作为连接这一端的名称。 - 在您的 VPC 网络下,选择想要对等互连的网络。
- 除非您希望在同一项目内建立对等互连,否则请将对等互连 VPC 网络单选按钮设置为
In another project
。 - 指定另一个项目的项目 ID。
- 指定另一个网络的 VPC 网络名称。
- 选择导入自定义路由和导出自定义路由
- 点击创建。
gcloud
gcloud compute networks peerings create peer-ab \ --network=network-a \ --peer-project=project-b \ --peer-network=network-b \ --import-custom-routes \ --export-custom-routes
此时,由于 project-b
的 network-b
中缺少匹配的配置,因此对等互连状态保持为 INACTIVE
。
当对等互连状态变为 ACTIVE
时,VPC 网络对等互连会自动交换子网路由。Google Cloud 还会通过对等互连连接导入或导出自定义路由(静态路由和动态路由),从而交换这些路由。必须将这两个网络配置为在共享自定义路由之前交换这些路由。如需了解详情,请参阅导入和导出自定义路由。
如需查看当前对等互连状态,请查看对等互连连接:
控制台
- 转到 Google Cloud Console 中的“VPC 网络对等互连”页面。
转到 VPC 网络对等互连 - 状态显示“正在等待对等互连网络连接”。
gcloud
gcloud compute networks peerings list --network network-a
步骤 2:网络 b 与网络 a 对等互连
在 project-b
中,必须由一名 NetworkAdmin 或具有适当 IAM 权限的用户将匹配的配置设置为从 network-b
到 network-a
,使对等互连的状态在两端均变为 ACTIVE
。
控制台
- 转到 Google Cloud Console 中的“VPC 网络对等互连”页面。
转到 VPC 网络对等互连 - 点击创建连接。
- 点击继续。
- 输入
peer-ba
作为连接这一端的名称。 - 在您的 VPC 网络下,选择想要对等互连的网络。
- 除非您希望在同一项目内建立对等互连,否则请将对等互连 VPC 网络单选按钮设置为
In another project
。 - 指定另一个项目的项目 ID。
- 指定另一个网络的 VPC 网络名称。
- 选择导入自定义路由和导出自定义路由
- 点击创建。
gcloud
gcloud 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
状态,子网路由和自定义路由便会进行交换。以下流量流已设置完成:
- 在对等互连网络中的虚拟机实例之间:全网状连接。
- 从一个网络中的虚拟机实例到对等互连网络中的内部直通式网络负载均衡器端点
控制台
- 转到 Google Cloud Console 中的“VPC 网络对等互连”页面。
转到 VPC 网络对等互连 - 状态显示“已连接”。
- 转到另一个项目的“VPC 网络对等互连”页面,确定它同样显示“已连接”。
gcloud
gcloud compute networks peerings list --network network-a
到对等互连网络 CIDR 前缀的路由现可在 VPC 网络对等互连之间可见。这些路由是为活跃对等互连连接生成的隐式路由。它们没有对应的路由资源。以下过程显示了 project-a
所有 VPC 网络的路由。
控制台
- 转到 Google Cloud Console 中的“路由”页面。
转到“路由”
gcloud
gcloud compute routes list --project project-a
创建多个对等互连连接
请考虑以下情景:network-a
中的虚拟机实例需要访问两个不同的外部组织 SaaS1
和 SaaS2
的服务。如需仅使用内部 IP 地址来访问这两个服务,需要两个对等互连连接:
network-a
与SaaS1
中的network-b
对等互连network-a
与SaaS2
中的network-c
对等互连
使用 VPC 网络对等互连时,network-b
和 network-c
位于不同项目和不同组织无关紧要。
如需创建此设置,请创建两个不同的对等互连会话。
限制
对等互连 VPC 网络之间不存在子网 IP 范围重叠
子网 IP 范围不能与对等互连 VPC 网络中的另一个子网 IP 范围重叠。 在对等互连时,Google Cloud 会检查是否存在具有重叠 IP 地址范围的子网;如果存在,则对等互连将失败。对于对等互连网络,如果您尝试创建 VPC 子网或扩展子网 IP 范围,Google Cloud 会执行检查,以确保新子网范围与现有子网范围不重叠。
如需详细了解重叠情况检查,请参阅以下内容:
VPC 网络对等互连不支持旧式网络
旧版网络是没有子网的网络。旧式网络无法与任何其他网络建立对等互连,VPC 网络对等互连也不支持旧式网络。
多个项目之间无 Compute Engine DNS
在一个网络内创建的 Compute Engine 内部 DNS 名称不能通过对等互连的网络访问。应使用虚拟机的 IP 地址访问对等互联网络中的虚拟机实例。
标记和服务账号在对等互连的网络之间不可用
您不能在一个对等互连网络的防火墙规则中引用另一个对等互连网络中与某个虚拟机相关的标记或服务账号。例如,如果一个对等互连网络中的入站规则根据标记过滤其来源,它将仅允许源自该网络(而非其对等互连网络)的虚拟机流量,即使某个对等互连网络中的虚拟机具有该标记也是如此。服务账号的情况与此类似。
GKE 与 VPC 网络对等互连配合使用
当与 IP 别名或自定义路由一起使用时,支持 VPC 网络与 GKE 之间的对等互连。可以跨 VPC 网络访问 Kubernetes 服务(如果使用内部直通网络负载均衡器公开)和 Pod IP。
Cloud Load Balancing 与 VPC 网络对等互连
Cloud Load Balancing 不支持将负载均衡器的前端和后端置于不同的 VPC 网络中,即使与 VPC 网络对等互连处于对等互连状态也是如此。
内部直通式网络负载均衡器和内部应用负载均衡器仅支持从对等互连的 VPC 网络进行客户端访问的 VPC 网络对等互连。
限制
请参阅 VPC 网络对等互连限制。
问题排查
问:我已经设置好了对等互连连接,但无法访问对等互连虚拟机或内部负载均衡器。
在对等互连连接转为 ACTIVE 状态后,可能需要一分钟时间才能在对等互连的网络之间建立起所有流量流。具体所需时间取决于对等互连网络的规模。如果您最近设置了对等互连连接,请等待一分钟之后再试。此外,请确保没有防火墙规则禁止与对等互连 VPC 网络子网 CIDR 之间的访问。
问:在我尝试设置对等互连连接时,我收到了一条错误,告诉我正在进行另一项对等互连操作。
为了避免与路由更新等操作发生争用,在对等互连网络中,Google Cloud 每次仅允许执行一项与对等互连相关的操作。例如,如果您与一个网络设置了对等互连,随后立即尝试设置另一个网络,则第一个对等互连中可能仍有任务尚未完成。完成所有任务可能需要一分钟时间。 此外,您现有的网络对等方可能正在添加内部负载平衡器或虚拟机,这两者都会影响网络之间的可访问性。大多数情况下,您应该等待一两分钟时间,然后重试对等互连操作。
问:在我尝试删除具有 ACTIVE
对等互连的 VPC 网络时,收到了一条错误。
如需删除 VPC 网络,您必须先删除该网络中的所有对等互连配置。请参阅删除 VPC 网络对等互连连接。
问:能否将其子网具有重叠的主要或次要 IP 范围的 VPC 网络进行对等互连?
不能。只能将其子网具有唯一主要和次要子网 IP 范围的 VPC 网络进行对等互连。
问:如何确保我在 VPC 网络中创建的新子网的子网 IP 范围不会与对等互连网络中的子网或路由冲突?
在创建新子网之前,您可以列出来自对等互连连接的路由。确保在 VPC 网络中创建新子网时,不使用其任何目标位置作为主要或次要 IP 范围。
问:我有一个 VPC 网络与另一个 VPC 网络建立了对等互连。我想在我的网络中创建子网。我该如何创建这个子网,使其不与我的对等方的对等互连子网重叠?
目前不存在可以帮助您解决此问题的命令。请询问对等互连网络的管理员,以了解其网络中已有哪些子网路由。
问:VPC 网络对等互连是否存在任何安全或隐私问题?
在建立对等互连之后,每个 VPC 网络都了解另一个网络的子网范围。此外,每个对等互连 VPC 网络都能够与另一个网络的所有虚拟机之间发送和接收流量 - 只要没有相应的防火墙规则禁止此类操作。除此之外,对等互连的网络彼此不可见。
问:如何验证流量是否在对等互连的 VPC 网络之间传递?
您可以使用 VPC 流日志来查看虚拟机实例发送和接收的网络流。您还可以使用防火墙规则日志记录来验证流量是否在网络之间传递。创建允许(或拒绝)对等互连网络之间流量的 VPC 防火墙规则,并为这些规则启用防火墙规则日志记录。之后,您便可以使用 Cloud Logging 查看有哪些防火墙规则命中。
问:如何确定是否存在来自其他 VPC 网络的请求,这些请求使用 VPC 网络对等互连连接到我的 VPC 网络?
您无法列出对您的 VPC 网络的任何对等互连请求。您只能看到您已创建的对等互连配置。
VPC 网络对等互连要求您的网络和另一个网络在建立连接之前创建针对对方的对等互连配置。即使另一个 VPC 网络的网络管理员为您的网络创建了对等互连配置,也不会有对等互连中转,除非您创建对等互连配置,否则系统不会创建该网络。
问:如何使用 Cloud VPN 或 Cloud Interconnect 使对等互连网络中的路由可用于连接到我的 VPC 网络的本地网络?
VPC 网络对等互连不支持传递性路由;也就是说,您的 VPC 网络中的 Cloud Router 不会自动通告从其他网络导入的路由。但是,您可以使用您的 VPC 网络中的 Cloud Router 路由器的自定义 IP 范围通告来共享通往对等网络中的目的地的路由。
对于使用静态路由的传统 VPN 隧道,您必须在本地网络中配置通往对等网络的目的地范围的静态路由。请注意,传统 VPN 隧道的某些用例已被弃用。
问:为什么对等互连的网络之间没有交换自定义路由?
首先,列出来自对等互连连接的路由。如果您没有看到去往预期目标的路由,请执行以下检查:
列出对等互连连接。找到具有所需目标范围的网络,并确保其对等互连状态为
ACTIVE
。如果对等互连连接状态为INACTIVE
,则另一个网络中不存在您的网络的对等互连配置。如果另一个网络不由您管理,则需要与该网络的管理员协调。更新您的网络中的对等互连配置,将其配置为从另一个网络导入自定义路由。确保已将另一个网络配置为导出其自定义路由。
问:为什么流向对等网络的流量被丢弃?
首先,列出对等互连连接,确保您的网络仍然连接到另一个网络。如果对等互连状态为 INACTIVE
,则另一个网络中不存在您的网络的对等互连配置。如果另一个网络不由您管理,则需要联系该网络的管理员。
然后,列出来自对等互连连接的路由。您只能导入 VPC 网络对等互连限制允许的路由数。
问:为什么流量会发送到非预期的下一个跃点?
检查路由顺序,查看是否选择了其他路由。
问:为什么我的 VPC 网络无法与特定 VPC 网络建立对等互连?
如果您无法创建针对某些 VPC 网络的对等互连配置,可能有某项组织政策正在限制您的网络可以与之建立对等互连的 VPC 网络。在组织政策中,将该网络添加到允许的对等互连方列表中或与组织管理员联系。如需了解详情,请参阅 constraints/compute.restrictVpcPeering
限制条件。
问:我有一个 VPC 网络与另一个 VPC 网络建立了对等互连。我已将对等互连的 stack_type
值更改为 IPV4_IPV6
。但是,我没有看到通过对等互连进行的 IPv6 子网路由交换。
确保匹配的对等互连连接的 stack_type
值也设置为 IPV4_IPV6
。对等互连连接的两端必须将 stack_type
设置为 IPV4_IPV6
,然后才能交换 IPv6 路由和流量。
问:我有一个 VPC 网络与另一个 VPC 网络建立了对等互连。我已将对等互连的 stack_type
值更改为 IPV4_IPV6
。但是,动态 IPv6 路由不会导出。
如需导出动态和静态 IPv6 路由,您必须在匹配的对等互连连接上启用 –export-custom-route
和 –import-custom-route
标志。
问:我已启用自定义路由的导入和导出功能, 但是,IPv6 静态和动态路由不会交换。
确保两个对等互连的 stack_type
设置为 IPV4_IPV6
。
问:由于配额限制,我用于将 stack_type
切换为 IPV4_IPV6
的对等互连更新操作失败。
如果在对等互连上启用 IPv6,则其中一个网络导入的路由数量可能会导致超出该网络每个对等互连组的配额。请提交申请来提高每个对等互连组的配额,或从其中一个网络中移除部分路由以保持在配额范围内。如需详细了解限制,请参阅 VPC 网络对等互连限制。
请考虑以下事项:
对于每个区域,您看到的路由数量可能不会相同。如果具有相同 IP 地址范围的多个路由跨区域交换,则仅导入优先级最高的路由。如果这些路由在同一区域中交换,则导入所有路由。
当网络达到每个对等互连组的动态路由限制时,不会再导入更多路由。但是,无法确定省略了哪些路由。
问:–import-subnet-routes-with-public-ip
和 –export-subnet-routes-with-public-ip
标志是否会影响 IPv6 子网路由的交换?
不会。这些标志仅影响 IPv4 子网路由的交换。
后续步骤
- 如需详细了解 VPC 路由,请参阅路由。
- 如需了解 VPC 网络对等互连的限制,请参阅 VPC 网络对等互连限制。
- 如需了解如何将内部直通式网络负载均衡器用作自定义静态路由的下一个跃点,请参阅使用内部直通网络负载均衡器作为下一个跃点。