本文档是 Cross-Cloud Network 设计指南系列文章中的一篇。
该系列包含以下部分:
- 适用于分布式应用的 Cross-Cloud Network
- Cross-Cloud Network 中分布式应用的网络分段和连接(本文档)
- 跨云网络中分布式应用的服务网络
- Cross-Cloud Network 中分布式应用的网络安全
本部分探讨了网络分段结构和连接,这是设计的基础。本文档介绍进行以下选择的各个阶段:
- 整体网络分段和项目结构。
- 部署工作负载的位置。
- 您的项目如何连接到外部本地和其他云服务商网络,包括连接、路由和加密设计。
- 您的 VPC 网络在内部的相互连接方式。
- 您的 Google Cloud VPC 子网如何相互连接以及与其他网络连接,包括您如何设置服务可达性和 DNS。
网络分段和项目结构
在规划阶段,您必须在以下两种项目结构之间做出选择:
- 整合的基础架构宿主项目,您可以在其中使用单个基础设施宿主项目管理所有应用的所有网络资源
- 分段的宿主项目,其中,您可以将基础设施宿主项目与每个应用的不同宿主项目结合使用
在规划阶段,我们还建议您为工作负载环境确定管理网域。根据最小权限原则确定基础设施管理员和开发者的权限范围,并将应用资源的范围限定到不同的应用项目中。由于基础设施管理员需要设置连接以共享资源,因此可以在基础设施项目中处理基础设施资源。例如,如需设置与共享基础设施资源的连接,基础设施管理员可以使用基础设施项目来处理这些共享资源。同时,开发团队可能会在一个项目中管理其工作负载,而生产团队可能会在另一个项目中管理其工作负载。然后,开发者将使用基础架构项目中的基础架构资源为其工作负载创建和管理资源、服务、负载均衡和 DNS 路由政策。
此外,您还必须决定最初要实现的 VPC 网络数量以及这些网络在资源层次结构中的组织方式。如需详细了解如何选择资源层次结构,请参阅确定 Google Cloud 着陆可用区的资源层次结构。如需详细了解如何选择 VPC 网络的数量,请参阅决定是否创建多个 VPC 网络。
对于 Cross-Cloud Network,我们建议使用以下 VPC:
- 用于托管不同应用的资源的一个或多个应用 VPC。
- 中转 VPC,在其中处理所有外部连接。
- 可选的服务 VPC,可用于将专用访问通道的部署整合到已发布服务。
下图直观呈现了刚刚描述的建议 VPC 结构。您可以将图中显示的 VPC 结构与合并或分段项目结构结合使用,如后续部分所述。此处显示的图表未显示 VPC 网络之间的连接。
整合的基础设施宿主项目
您可以使用整合式基础设施宿主项目来管理所有网络资源,例如子网、对等互连和负载均衡器。
可以在基础设施宿主项目中创建多个应用共享 VPC 及其对应的应用服务项目,以与组织结构匹配。使用多个应用服务项目来委派资源管理。所有应用 VPC 中的所有网络均计入整合基础设施宿主项目中。
对于此项目结构,许多应用服务项目可以共享较少数量的应用 VPC。
下图直观呈现了整合的基础设施宿主项目以及刚刚描述的多个应用服务项目。该图并未显示所有项目之间的连接。
分段的宿主项目
在此模式中,每组应用都有自己的应用宿主项目和 VPC。一个宿主项目可以关联多个应用服务项目。网络服务的结算费用在基础设施宿主项目和应用宿主项目之间分摊。基础设施费用计入基础设施宿主项目中,应用的网络费用会计入每个应用宿主项目中。
下图直观呈现了刚刚描述的多个宿主项目和多个应用服务项目。该图并未显示所有项目之间的连接。
工作负载的部署位置
许多连接选项取决于工作负载的区域位置。如需了解如何部署工作负载,请参阅 Compute Engine 区域选择最佳做法。您应该先确定工作负载的位置,然后再选择连接位置。
外部和混合连接
本部分介绍了以下连接路径的要求和建议:
- 与其他云服务提供商的专用连接
- 与本地数据中心的专用连接
- 工作负载的互联网连接,尤其是出站连接
Cross-Cloud Network 涉及多个云网络或本地网络的互连。外部网络可以由不同的组织拥有和管理。这些网络通过一个或多个网络到网络接口 (NNI) 相互进行物理连接。必须设计、预配和配置 NNI 的组合,以获得性能、弹性、隐私性和安全性。
为了实现模块化、可重用性和插入安全 NVA 的能力,请将外部连接和路由放置在中转 VPC 中,然后将中转 VPC 作为其他 VPC 的共享连接服务。不同网域之间的弹性、故障切换和路径偏好设置路由政策可以在中转 VPC 中配置一次,并可供许多其他 VPC 网络利用。
NNI 和外部连接的设计稍后用于内部连接和 VPC 网络。
下图展示了中转 VPC 用作其他 VPC 的共享连接服务,这些 VPC 使用 VPC 网络对等互连、Network Connectivity Center 或高可用性 VPN 进行连接:
与其他云服务提供商的专用连接
如果您希望将在其他云服务提供商 (CSP) 网络中运行的服务连接到 Google Cloud 网络,则可以通过互联网或专用连接来连接它们。我们建议您使用专用连接。
选择选项时,请考虑吞吐量、隐私性、费用和运营可行性。
为了最大限度地提高吞吐量,同时增强隐私保护,请在云网络之间使用直接高速连接。直接连接可省去中间物理网络设备。我们建议您使用 Cross-Cloud Interconnect,它可提供这些直接连接、MACsec 加密,并且每个链接的吞吐量速率最高可达 100 Gbps。
如果您无法使用 Cross-Cloud Interconnect,则可以通过对接网点使用专用互连或合作伙伴互连。
根据位置与目标区域之间的邻近性,选择要连接到其他 CSP 的位置。对于位置选择,请考虑以下事项:
- 查看位置列表:
- 评估给定入网点 (POP) 边缘与每个 CSP 中的相关区域之间的延迟时间。
为了最大限度地提高跨云连接的可靠性,我们建议对生产工作负载采用支持 99.99% 正常运行时间 SLA 的配置。如需了解详情,请参阅 Cross-Cloud Interconnect 高可用性、为专用互连建立 99.99% 可用性配置和为合作伙伴互连建立 99.99% 可用性配置。
如果您在不同 CSP 之间不需要高带宽,则可以使用 VPN 隧道。此方法可以帮助您入手,并在分布式应用使用更多带宽时升级到 Cross-Cloud Interconnect。VPN 隧道还可以实现 SLA 承诺的 99.99% 可用性。如需了解详情,请参阅高可用性 VPN 拓扑。
与本地数据中心的专用连接
对于与私有数据中心的连接,您可以使用以下混合连接选项之一:
- 专用互连
- 合作伙伴互连
- 高可用性 VPN
这些连接的路由注意事项与与其他云服务提供商的专用连接类似。
下图展示了与本地网络的连接以及本地路由器如何通过对等互连政策连接到 Cloud Router 路由器:
与外部网络的域间路由
如需提高网络之间的弹性和吞吐量,请使用多条路径连接网络。
在网络网域之间传输流量时,必须通过有状态安全设备对其进行检查。因此,需要在网域之间的边界处实现流对称性。
对于在多个区域之间传输数据的网络,各网络的费用和服务质量水平可能存在显著差异。您可能会根据这些差异决定使用某些网络,而不是其他网络。
设置网域间路由政策,以满足您对区域间传输、流量对称、吞吐量和弹性的要求。
网域间路由政策的配置取决于每个网域边缘的可用功能。从自治系统和不同区域的 IP 寻址(子网划分)角度来看,配置还取决于相邻网域的结构。如需在不超出边缘设备的前缀限制的情况下提高可伸缩性,我们建议您的 IP 寻址方案会减少每个区域和网域组合的聚合前缀。
设计区域间路由时,请考虑以下事项:
- Google Cloud VPC 网络和 Cloud Router 都支持全球跨区域路由。其他 CSP 可能具有区域级 VPC 和边界网关协议 (BGP) 范围。如需了解详情,请参阅其他 CSP 的文档。
- Cloud Router 会根据区域邻近性自动通告具有预定路径偏好设置的路由。此路由行为取决于 VPC 的已配置动态路由模式。根据所需的路由行为,您可能需要替换这些偏好设置。
- 不同的 CSP 支持不同的 BGP 和双向转发检测 (BFD) 功能,并且 Google 的 Cloud Router 还具有特定的路由政策功能,如建立 BGP 会话中所述。
- 不同的 CSP 可能使用不同的 BGP 平局决胜属性来决定路由的偏好。如需了解详情,请参阅 CSP 的文档。
单区域域间路由
我们建议您从单区域网域间路由开始,以此为基础创建使用网域间路由的多个区域连接。
使用 Cloud Interconnect 的设计至少需要两个连接位置,位于同一区域但边缘可用性网域不同。
确定是采用主动/主动设计还是主动/被动设计配置这些重复连接:
- 主动/主动使用等价多路径 (ECMP) 路由来汇总两个路径的带宽,并将其同时用于域间流量。Cloud Interconnect 还支持使用 LACP 汇总链接实现每条路径高达 200 Gbps 的汇总带宽。
- 主动/被动强制将一个链接更改为就绪备用状态,仅在主动链接中断时才承担流量。
我们建议对区域内链接采用主动/主动设计。但是,某些本地网络拓扑加上有状态安全功能的使用可能需要主动/被动设计。
Cloud Router 可跨多个区域进行实例化,从而提供比单个元素更高的弹性。下图显示了所有弹性连接如何在一个区域内的单个 Cloud Router 路由器上收敛。按照为专用互连建立 99.9% 可用性的指南操作时,此设计可支持单个都市区域内的 99.9% 可用性 SLA。
下图显示了以冗余方式连接到单个区域中的托管式 Cloud Router 服务的两个本地路由器:
多区域域间路由
为了提供备份连接,网络可以在多个地理区域对等互连。通过连接多个区域中的网络,可用性服务等级协议 (SLA) 承诺的可用性可提高到 99.99%。
下图显示了 SLA 承诺 99.99% 可用性的架构。图中展示了两个不同位置的本地路由器以冗余方式连接到两个不同区域中的托管式 Cloud Router 服务。
除了弹性之外,多区域路由设计还应实现流对称性。该设计还应指明区域间通信的首选网络,您可以使用“热土豆”式和“冷土豆”式路由来做到这一点。将一个网域中的“冷土豆”式路由与对等网域中的“热土豆”式路由配对。对于冷土豆网域,我们建议使用 Google Cloud 网域,它可提供全局 VPC 路由功能。
流对称并非总是强制性的,但流不对称可能会导致有状态安全功能出现问题。
下图展示了如何使用“热土豆”式和“冷土豆”式路由来指定您偏好的区域间传输网络。在这种情况下,来自前缀 X 和 Y 的流量会保留在原始网络中,直到到达最靠近目标的区域(“冷土豆”式路由)为止。来自前缀 A 和 B 的流量会切换到源区域中的另一个网络,然后经由另一个网络传输到目标(“热土豆”式路由)。
域间流量加密
除非另有说明,否则流量不会在不同 CSP 之间的 Cloud Interconnect 连接上或 Google Cloud 与本地数据中心之间的 Cloud Interconnect 连接上加密。如果您的组织要求为此流量加密,您可以使用以下功能:
- MACsec for Cloud Interconnect:加密路由器与 Google 边缘路由器之间通过 Cloud Interconnect 连接的流量。如需了解详情,请参阅 MACsec for Cloud Interconnect 概览。
- 通过 Cloud Interconnect 实现的高可用性 VPN:使用多个高可用性 VPN 隧道能够为底层 Cloud Interconnect 连接提供全带宽。高可用性 VPN 隧道经过 IPsec 加密,并通过可能也经过 MACsec 加密的 Cloud Interconnect 连接进行部署。在此配置中,Cloud Interconnect 连接配置为仅允许高可用性 VPN 流量。如需了解详情,请参阅通过 Cloud Interconnect 实现的高可用性 VPN 概览。
工作负载的互联网连接
对于入站和出站互联网连接,假定回复流量以有状态方式遵循原始请求方向的反方向。
一般来说,提供入站互联网连接的功能与出站互联网功能是分开的,但外部 IP 地址除外,它们同时提供两个方向。
入站互联网连接
入站互联网连接主要用于为云端托管的服务提供公共端点。例如,与 Google Cloud 上托管的 Web 应用服务器和游戏服务器之间的互联网连接。
提供入站互联网连接的主要功能是 Google 的 Cloud Load Balancing 产品。 VPC 网络的设计独立于其提供入站互联网连接的能力:
- 外部直通式网络负载均衡器的路由路径可在客户端和后端虚拟机之间提供连接。
- Google Front End (GFE) 和后端之间的路由路径可为全球外部应用负载均衡器或全球外部代理网络负载均衡器和后端虚拟机之间的 GFE 代理提供连接。
- 代理专用子网在区域级外部应用负载均衡器或区域级外部代理网络负载均衡器和后端虚拟机的 Envoy 代理之间提供连接。
出站互联网连接
出站互联网连接(其中初始请求从工作负载发送至互联网目的地)的示例包括访问第三方 API、下载软件包和更新以及向互联网上的 Webhook 端点发送推送通知的工作负载。
对于出站连接,您可以使用 Google Cloud 内置选项,如为专用虚拟机构建互联网连接中所述。或者,您也可以使用中央 NGFW NVA,如网络安全中所述。
提供出站互联网连接的主要路径是 VPC 路由表中的默认互联网网关目的地,它通常是 Google VPC 中的默认路由。外部 IP 和 Cloud NAT(Google Cloud 的托管式 NAT 服务)都需要指向 VPC 的默认互联网网关的路由。因此,替换默认路由的 VPC 路由设计必须通过其他方式提供出站连接。如需了解详情,请参阅 Cloud Router 概览。
为了保护出站连接,Google Cloud 同时提供 Cloud 新一代防火墙强制执行措施和安全 Web 代理,以便对 HTTP 和 HTTPS 网址提供更深入的过滤。但是,在所有情况下,流量都会遵循流向默认互联网网关的默认路由,或通过 VPC 路由表中的自定义默认路由。
使用您自己的 IP
您可以使用 Google 拥有的 IPv4 地址进行互联网连接,也可以通过自备 IP 地址 (BYOIP) 使用组织拥有的 IPv4 空间。大多数需要可通过互联网路由的 IP 地址的 Google Cloud 产品都支持改用 BYOIP 范围代替。
您还可以通过专用 IP 空间来控制 IP 空间的声誉。BYOIP 有助于连接可移植性,并可以节省 IP 地址费用。
内部连接和 VPC 网络
配置外部和混合连接服务后,中转 VPC 中的资源可以访问外部网络。下一步是使此连接可用于托管在其他 VPC 中的资源。
下图展示了 VPC 的常规结构(无论您如何启用外部连接)。它显示了一个中转 VPC,该 VPC 终结外部连接并在每个区域中托管一个 Cloud Router 路由器。每个 Cloud Router 路由器通过每个区域的 NNI 接收来自其外部对等项的路由。应用 VPC 连接到中转 VPC,因此可以共享外部连接。此外,中转 VPC 充当 spoke VPC 的 hub。spoke VPC 可以托管应用、服务或两者的组合。
此外,在中转 VPC 中配置 DNS 转发和对等互连。如需了解详情,请参阅 DNS 基础设施设计部分。
为了获得更好的性能和内置的云网络服务,我们建议使用 Cross-Cloud Network 或 VPC 网络对等互连来与 VPC 互连,而不是高可用性 VPN。
无法跨 VPC 网络对等互连或 Cross-Cloud Network 访问 Private Service Connect 端点和专用服务访问通道前端。我们建议使用高可用性 VPN 进行 VPC 间的连接,以克服这些限制。由于使用高可用性 VPN 进行 VPC 间连接可能会降低吞吐量并增加运营开销,因此集中式服务设计可减少高可用性 VPN 部署的跨度。
或者,您可以将内部代理网络负载均衡器放置在服务端点前面,从而实现与已发布服务端点之间的 VPC 间传递性连接。此方法需要考虑一些限制,这些限制在使用负载均衡与 Network Connectivity Center spoke 进行连接部分中进行了讨论。
以下部分讨论了支持基础 IP 连接和 API 端点部署的混合连接的可能设计。
共享服务访问的 VPC 间连接
当已发布的服务端点部署在服务 VPC 中时,我们建议应用 VPC 通过 VPC 网络对等互连连接到 hub(中转 VPC),并且服务 VPC 通过高可用性 VPN 连接到 hub。
在此设计中,中转 VPC 是 hub,您可以在服务 VPC 中部署专用服务端点的使用方接入点。
该设计是以下两种连接类型的组合:
- VPC 网络对等互连:在 hub VPC 和应用 VPC 之间提供连接。
- 高可用性 VPN VPC 间连接:为服务 VPC 提供到 hub 的传递性连接。
如需查看用于部署这些连接类型的详细指导和配置蓝图,请参阅中心辐射型网络架构。
结合使用这些架构时,请针对以下注意事项进行规划:
- 将 VPC 对等子网重新分配到动态路由(分配到高可用性 VPN 和混合路由)
- 多区域路由注意事项
- 将动态路由传播到 VPC 对等互连(从高可用性 VPN 和从混合连接传播)
下图展示了使用高可用性 VPN 连接到中转 VPC 的服务 VPC,以及使用 VPC 网络对等互连连接到中转 VPC 的应用 VPC:
上图中显示的结构包含以下组成部分:
- 客户位置:您拥有网络设备的数据中心或远程办公室。此示例假定这些位置使用外部网络连接在一起。
- 都市圈:包含一个或多个 Cloud Interconnect 边缘可用性网域的都市区域。Cloud Interconnect 连接到此类都市区域中的其他网络。
- Hub 项目:托管至少一个 VPC 网络的项目,该项目作为其他 VPC 网络的 hub。
- 中转 VPC:hub 项目中的 VPC 网络,连接来自本地和其他 CSP,然后充当从其他 VPC 到本地和 CSP 网络的中转路径。
- 应用宿主项目和 VPC:托管各种应用的项目和 VPC 网络。
- 服务 VPC:托管对应用 VPC 网络中应用所需的服务的集中访问权限的 VPC 网络。
- 托管式服务 VPC:由其他实体提供和管理,但可供 VPC 网络中运行的应用访问的服务。
对于中心辐射型设计,当应用 VPC 需要相互通信时,您可以将应用 VPC 作为 spoke 连接到 Network Connectivity Center hub。此方法可在 Network Connectivity Center hub 的所有 VPC 之间提供连接。您可以使用多个 Network Connectivity Center hub 来创建通信子群组。特定 hub 内的端点之间所需的任何通信限制都可以使用防火墙政策来实现。
使用负载均衡与 Network Connectivity Center spoke VPC 进行连接
此模式包括 Network Connectivity Center hub 中的所有 VPC 即 spoke,最多可容纳 250 个互连 VPC。Network Connectivity Center hub 是一种管理平面构造,用于在已注册为 Network Connectivity Center hub 的 spoke 的任何 VPC 网络之间创建全网状数据平面连接。该模式提供“任意对任意”连接,并支持在任何 VPC 中部署托管式服务的接入点。
为了克服传递性限制,托管式服务和混合连接的接入点可通过内部代理网络负载均衡器进行访问。东-西连接的工作负载安全可以使用 Cloud 新一代防火墙。您还可以将 Inter-VPC NAT 与此模式搭配使用。
此模式存在一些限制,因此在采用此模式之前必须考虑以下事项:
- 您不能将 NVA 用于采用此模式的边界防火墙。边界防火墙必须保留在外部网络上。
- 仅支持进出外部网络的 TCP 流量。发生此限制是因为与外部网络的连接通过内部代理网络负载均衡器运行。
- 已发布的服务将在代理负载均衡器中有一个额外的前端。这一额外的前端使 DNS 中额外的记录数量激增,并且需要进行拆分 DNS 查找内容。
- 第 4 层服务需要为每项新服务添加新的内部代理网络负载均衡器。您可能需要不同的负载均衡器,具体取决于连接所需的协议。
- 每个 VPC 网络的负载均衡配额都有限制。这是一项重要的考虑因素,因为第 4 层服务需要为每个目标服务添加新的内部代理网络负载均衡器。
- 选择的高可用性和跨区域故障切换设计选项取决于您的要求。
- 跨混合边界的加密流量会影响证书管理协调。
如果上述注意事项是易于管理的折衷方案或与您的环境无关,我们建议将此模式作为首选方案。
下图展示了 Network Connectivity Center 混合 hub,作为 Cloud Interconnect 连接的管理平面。它还显示了连接应用和服务 VPC Spoke 的 Network Connectivity Center VPC hub:
实现传递性的代理负载均衡
无法跨 Network Connectivity Center spoke VPC 访问以下各项:
- Private Service Connect 服务端点和托管式服务前端。
- 混合连接(Cloud Interconnect 或高可用性 VPN)后面的网络,因为动态路由不会通过 Cross-Cloud Network 传播。
可以通过部署内部代理网络负载均衡器并将非传递资源作为混合网络端点组 (NEG) 处理来克服这些传递性限制。您可以在服务前端和可通过混合连接访问的端点前面部署内部代理网络负载均衡器。内部代理网络负载均衡器前端部署在 VPC 子网中,这些子网传播到 Cross-Cloud Network spoke VPC。内部代理网络负载均衡器可实现非传递资源的 Cross-Cloud Network 可达性。对于外部主机和服务、Private Service Connect 端点和专用服务访问通道网络,后端必须配置为混合 NEG。Private Service Connect 后端是 NEG 不需要混合的唯一一种模型。
DNS 基础设施设计
在混合环境中,Cloud DNS 或外部(本地或 CSP)提供商可以处理 DNS 查找。外部 DNS 服务器对外部 DNS 区域具有权威性,Cloud DNS 对 Google Cloud 区域具有权威性。在 Google Cloud 和外部网络之间必须双向启用 DNS 转发,并且防火墙必须设置为允许 DNS 解析流量。
如果您为中央服务 VPC 使用共享 VPC(其中不同应用服务项目的管理员可以实例化他们自己的服务),请使用 DNS 区域的跨项目绑定。跨项目绑定可以将 DNS 命名空间分段并将其委派给服务项目管理员。
在传输情况下,当外部网络通过 Google Cloud 与其他外部网络通信时,应将外部 DNS 区域配置为直接将请求转发到彼此。Google Cross-Cloud Network 将提供连接以完成 DNS 请求和回复,但 Google Cloud DNS 会参与在外部网络中的区域之间转发任何 DNS 解析流量。在 Cross-Cloud Network 中强制执行的任何防火墙规则都必须允许外部网络之间的 DNS 解析流量。
下图展示了 DNS 设计可与本设计指南中建议的任何中心辐射型 VPC 连接配置搭配使用:
上图显示了设计流程中的以下步骤:
- 本地 DNS
将本地 DNS 服务器配置为对本地 DNS 区域具有权威性。通过将 Cloud DNS 入站转发 IP 地址作为目标(通过 hub VPC 中的入站服务器政策配置创建)来配置 DNS 转发(针对 Google Cloud DNS 名称)。通过此配置,本地网络可解析 Google Cloud DNS 名称。 - 中转 VPC - DNS 出站流量代理
使用 Cloud Router 向本地网络通告 Google DNS 出站流量代理范围35.199.192.0/19
。从 Google 到本地的出站 DNS 请求来自此 IP 地址范围。 - 中转 VPC - Cloud DNS
- 服务 VPC - Cloud DNS
- 应用宿主项目 - Cloud DNS
- 为本地 DNS 名称配置应用 DNS 对等互连区域,并将 hub VPC 设置为对等互连网络。本地主机的 DNS 解析通过 hub VPC。
- 在应用宿主项目中配置应用 DNS 专用区域,并将应用 VPC、服务共享 VPC 和 hub VPC 连接到该区域。通过此配置,所有主机(本地和所有服务项目中)都可以解析应用 DNS 名称。
如需了解详情,请参阅使用 hub VPC 网络连接到 spoke VPC 网络的混合架构。
后续步骤
贡献者
作者:
- Victor Morno | Cloud 网络产品经理
- Ghaleb Al-habian | 网络专家
- Deepak Michael | 网络专家客户工程师
- Osvaldo Costa | 网络专家客户工程师
- Jonathan Almaleh | 员工技术解决方案顾问
其他贡献者:
- Zach Seils | 网络专家
- Christopher Abraham | 网络专家客户工程师
- Emanuele Mazza | 网络产品专家
- Aurélien Legrand | 战略云工程师
- Eric Yu | 网络专家客户工程师
- Kumar Dhanagopal | 跨产品解决方案开发者
- Mark Schlagenhauf | 网络技术文档工程师
- Marwan Al Shawi | 合作伙伴客户工程师
- Ammett Williams | 开发者关系工程师