google-cloud-platform - 在 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
解决方案
我终于明白了 - 我无法重现您的问题,因为我缺少防火墙规则(我假设 GCP 会创建它们,但是当您创建自定义网络时,默认情况下不会创建任何规则)。我必须手动允许 SSH(允许 TCP 端口 22 和 ICMP 协议)流量,然后一切都开始按照您的描述工作。
网络之间的通信是可能的,因为虚拟机(默认情况下)获得公共 IP 并且可以被连接到互联网的每台机器访问。您没有提供该信息,因此我假设您在创建测试虚拟机时没有更改任何网络设置 - 因此创建了具有公共 IP 的虚拟机。
但是,如果您创建仅具有内部 IP 的虚拟机 - 他们将无法在没有VPC 对等互连的情况下从不同的 VPC 与虚拟机通信。在这种情况下,网络之间的任何通信(无论它们位于哪个区域)都是不可能的。
推荐阅读
- c - 在C中全局初始化互斥锁
- c# - 出于某种原因,我的僵尸试图去 0 0 0 而不是玩家,我不知道为什么
- aws-iot - 如何有效地配置 AWS IoT 规则以将数据写入设备特定的 Timestream 数据库?
- azure-devops - 是否可以重命名发行版?
- swift - 为什么 UICollectionView SafeArea.Top 约束被 UIView/ScrollView 撞倒?
- c# - 如何在运行时更新中仅在需要时更新列表?
- python - 访问嵌套列
- python-3.x - 删除使用 Conda Develop 添加的路径/代码
- wso2 - 呼叫调解器超时后继续序列调解
- https - 使用 wget 访问 url 时如何添加正确的链证书?