作者:MeshCloud脉时云公有云架构师 严大淇
引言
Google Cloud VPC 网络对等互连允许跨两个 Virtual Private Cloud (VPC) 网络的内部 IP 地址连接,无论它们是否属于同一个项目或同一个组织。VPC 网络对等互连可与 Compute Engine、GKE 和 App Engine 柔性环境配合使用。对等连接有以下优点:
网络延迟:使用内部地址的连接比使用外部地址的连接具有更低的延迟。
网络安全:服务所有者不需要将他们的服务暴露在公共互联网上,也不需要处理相关的风险。
网络成本:Google Cloud会对使用外部IP地址通信的网络收取出口带宽费用,即使流量在同一区域内。但是,如果网络是对等的,它们可以使用内部IP地址通信,从而节省出口费用。普通的网络定价仍然适用于所有流量。
整体架构
准备工作
实现network-A与network-B对等互联
1,两个需要做对等的VPC及子网(对等 VPC 网络中的子网 IP 范围不能重叠)
2,在两个vpc下分别准备一台实例
实施步骤
- 在 Google Cloud Console 中,转到 VPC 网络对等互连页面。
- 点击创建连接。
- 点击继续。
- 输入对等互连连接的名称。
- 在您的 VPC 网络下方,选择您要建立对等互连的网络。
- 选择要与之建立对等互连的网络。如果您要与之建立对等互连的网络位于同一项目中,请选择在项目 [NAME-OF-YOUR-PROJECT] 中 (In project [NAME-OF-YOUR-PROJECT]),然后选择要与之建立对等互连的网络。如果您要与之建立对等互连的网络位于其他项目中,请选择在另一个项目中。指定包含您要与之建立对等互连的网络的项目 ID 以及 VPC 网络的名称。
- 如需导入或导出自定义路由,请选择以下一个或两个选项:导入自定义路由:导入其他网络导出的自定义路由导出自定义路由:将自定义路由导出到另一个网络。其他网络必须导入路由才能看到它们。
- 如果您的网络或对等网络在其子网中使用专用公共 IP 范围,则这些路由默认导出,但不会默认导入。如需导入专用公共 IP 子网路由,请选择:导入包含公共 IP 的子网路由,以导入由其他网络导出的专用公共 IP 子网路由
- 点击创建。
此时,我们查看刚才创建的peering,状态是inactive
是因为如果另一个网络中没有匹配的对等互连配置,则对等互连状态保持为 INACTIVE,这表示您的网络未连接到另一个网络。因此我们要以同样的方式在另一个网络设立与您的网络建立对等互连的相应配置。
配置后,发现这两个网络中的对等互连状态都将更改为 ACTIVE,至此配置完成。
验证
用network a下的10.0.0.2 ping network b下的10.8.0.2,可以看到配置peering后内网互通。
补充
1.对等连接不具有传递性,假设network a与network b做peering,network b与network c做peering,此时network a于network c内网是不互通的,如果要实现network-a 中的虚拟机实例需要访问两个不同的外部组织 SaaS1 和 SaaS2 的服务。如需仅使用内部 IP 地址来访问这两个服务,需要两个对等互连连接:
network-a 与 SaaS1 中的 network-b 对等互连
network-a 与 SaaS2 中的 network-c 对等互连
如图:
2.在对等互连时,Google Cloud 会检查两个 VPC 网络或任何对等互连网络之间是否存在任何 IP 范围重叠的子网。如果存在重叠,则不会建立对等互连。因为虚拟机实例之间创建了全网状连接,所以对等互连 VPC 网络中的子网不能有重叠的 IP 范围,否则就会导致路由问题。
3.关于导入和导出自定义路由
不使用以非公开方式使用的公共 IP 地址的子网路由始终在对等互连的网络之间进行交换。如果两个网络中的网络管理员都具有相应的对等互连配置,则您还可以交换自定义路由(包括静态和动态路由)以及使用以非公开方式使用的公共 IP 地址的子网路由。
如果您导入自定义路由,则仅当对等网络导出自定义路由时,您的 VPC 网络才能接收这些路由。同样,如果您导出自定义路由,则仅当对等网络导入自定义路由时,该网络才能接收这些路由。
导入或导出自定义路由时,网络仅与直接对等方交换自定义路由。例如,如果您的 VPC 网络与多个网络对等互连,则您的网络从一个对等互连的网络导入的路由不会导出到其他对等互连的网络。
创建或修改对等互连配置时,您可以选择导入路由和/或导出路由。对等互连网络管理员在交换路由之前必须对其对等互连配置进行类似配置。此过程可确保在交换自定义路由之前这两个网络管理员明确同意交换自定义路由。