我们将 Google Cloud 基础架构划分为多个项目,每个项目都有自己的 VPC。我们有一个中央 VPC,我们称之为vpcA
,我们通过 pritunl VPN 和站点到站点隧道从外部连接到它。
我们还使用 VPC 对等连接vpcA
到多个不同的其他项目 B 和vpcB
C。vpcC
这非常有效,因为所有内容都可以看到 的内容vpcA
,并且可以看到和vpcA
的内容。所有内容都有唯一的 10.0.0.0 IP。每个 vpc 都有自己独特的 CIDR 范围(例如 的 10.96.0.0/16 、 的 10.97.0.0/16等)。所有子网都位于同一区域。vpcB
vpcC
vpcA
vpcB
我们现在的问题是vpcB
中看不到任何内容vpcC
。 VPC 对等仅在本地 vpc 网络之间路由,而不路由该 vpc 的对等网络(例如,从 到vpcB
仅vpcA
路由 10.96.0.0/16 范围)。 似乎没有办法修改它以路由所有其他流量。
虽然我们可以直接互连vpcB
并vpcC
使用单独的对等连接,但随着 vpc 数量的增加,这很快就会变得复杂。此外,这确实是现在的突破点,当我们vpcA
使用 Google Cloud VPN 网关/隧道连接我们的内部基础设施时,它也只能看到vpcA
的内容。为每个 VPC 创建直接 VPN 隧道会产生大量开销和大量额外成本(10 个 VPC 每月需要 360 美元,没有任何流量,只是对等连接)。
现在的问题是,我们遗漏了什么吗?有没有办法在 Google Cloud 上使用 VPC 创建部分连接的网格拓扑?
谢谢,沃尔克
答案1
根据GCP 文档vpcB
,和无法vpcC
进行沟通:
只有直接对等网络才能通信。不支持传递对等。换句话说,如果 VPC 网络 N1 与 N2 和 N3 对等,但 N2 和 N3 并非直接连接,则 VPC 网络 N2 无法通过对等与 VPC 网络 N3 通信。
此外,VPN 连接不会导出到对等 VPC:
以下类型的端点/资源不会传播到直接对等网络:静态路由、VPN
答案2
当您使用 VPC 对等连接时,GCP 将在每个 VPC 中创建路由以将它们连接起来。由于 VPCb 和 VPCc 不是对等连接的,因此它们之间没有路由,因此它不起作用。
有几种解决方法:
手动创建路由,将流量从 VPCb 发送到 VPCc 并发送到 VPCa,反之亦然(路由数量仍有限制)
使用单个共享 VPC而不是多个对等的独立 VPC。共享 VPC 的扩展性比多个对等 VPC 更好
关于云 VPN,请确保你的网络配置为使用全局路由模式这样 VPN 就可以与全球每个区域和子网进行通信。同样,使用共享 VPC 意味着单个 VPN 网关
编辑
这些年来情况发生了变化。传递对等仍然不起作用,因此完整的网络网格将是未来的发展方向。请记住,您在项目中可以配置的网络对等数量是有限的,这将限制对等,从而限制您可以使用的 VPC 数量。
至于路由,这仅在“中心” VPC 中存在可路由到的路由器时才有效。部署 nginx、HA 代理或 128T 之类的东西可以通过所有对等点处理正确的路由。