首页 > 解决方案 > 在 GCP 中实现 Vpc 对等互连

问题描述

我试图在 GCP 中演示 VPC 对等互连。我按照以下步骤操作;

设置1:

我登录了 GCP 管理员用户帐户,并在自定义模式下创建了 VPC,并在一个项目下的 us-central 区域中添加了一个子网。比我设置的防火墙规则允许 ssh 和 tcp。比我在同一us-central区域创建的 VM 实例还选择了此自定义 VPC 和网络选项中的子网。比我尝试 ssh 进入该虚拟机并尝试从云 shell ping 通。两者都工作正常。

设置2:

我登录了 GCP 用户帐户,该帐户由管理员(以前使用的管理员帐户)添加为服务帐户用户。我在自定义模式下创建了 VPC,并asia-east在另一个项目下的区域中添加了一个子网。比我在同一个亚洲东部地区创建的 VM 实例还选择了这个自定义 VPC 和网络中的子网。然后我将防火墙规则设置为允许 ssh 和 tcp。然后我尝试通过 ssh 进入该虚拟机并尝试从云 shell ping 通。两者都工作正常。

两个 VPC 的动态路由模式都设置为区域。

比我尝试从机器上pingus-central机器asia-east以及从机器asia-east上pingus-central机器。

我的期望是,它不会工作,因为它使用两个不同的 VPC,它们在两个不同的区域有子网。所以我可以实施 VPC 对等互连以使其成为可能。但不幸的是,它正在工作。我只是试图演示 VPC 对等概念。

谁能告诉我我错过了什么?

==================================================== ==============

更新

gcloud compute networks describe  vpc1
autoCreateSubnetworks: false
creationTimestamp: '2021-09-03T04:08:24.491-07:00'
description: ''
id: '8530504402595724487'
kind: compute#network
mtu: 1460
name: my-vpc
routingConfig:
  routingMode: REGIONAL
selfLink: https://www.googleapis.com/compute/v1/projects/project-name/global/networks/my-vpc
subnetworks:
- https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1/subnetworks/my-subnet
x_gcloud_bgp_routing_mode: REGIONAL
x_gcloud_subnet_mode: CUSTOM


gcloud compute networks describe  vpc2

autoCreateSubnetworks: false
creationTimestamp: '2021-09-03T04:56:02.154-07:00'
description: ''
id: '8965341541776208829'
kind: compute#network
mtu: 1460
name: my-project2-vpc
routingConfig:
  routingMode: REGIONAL
selfLink: https://www.googleapis.com/compute/v1/projects/project-name/global/networks/my-project2-vpc
subnetworks:
- https://www.googleapis.com/compute/v1/projects/project-name/regions/asia-east1/subnetworks/asia-subnet
x_gcloud_bgp_routing_mode: REGIONAL
x_gcloud_subnet_mode: CUSTOM

标签: google-cloud-platformgoogle-vpc

解决方案


我终于明白了 - 我无法重现您的问题,因为我缺少防火墙规则(我假设 GCP 会创建它们,但是当您创建自定义网络时,默认情况下不会创建任何规则)。我必须手动允许 SSH(允许 TCP 端口 22 和 ICMP 协议)流量,然后一切都开始按照您的描述工作。

网络之间的通信是可能的,因为虚拟机(默认情况下)获得公共 IP 并且可以被连接到互联网的每台机器访问。您没有提供该信息,因此我假设您在创建测试虚拟机时没有更改任何网络设置 - 因此创建了具有公共 IP 的虚拟机。

但是,如果您创建仅具有内部 IP 的虚拟机 - 他们将无法在没有VPC 对等互连的情况下从不同的 VPC 与虚拟机通信。在这种情况下,网络之间的任何通信(无论它们位于哪个区域)都是不可能的。


推荐阅读