内部 TCP/UDP 负载平衡和连接的网络

本页面介绍通过连接的网络访问 Virtual Private Cloud (VPC) 网络中的内部负载平衡器的场景。在查看本页信息之前,您应该已熟悉以下指南中的概念:

使用 VPC 网络对等互连

在使用 VPC 网络对等互连将 VPC 网络连接到另一个网络时,Google Cloud 会在网络之间共享子网路由。子网路由允许来自对等网络的流量到达您的网络中的内部 TCP/UDP 负载平衡器。可在以下情况访问:

  • 对于内部 TCP/UDP 负载平衡器及内部 HTTP(S) 负载平衡器,您必须创建入站防火墙规则,允许来自对等网络中的客户端虚拟机的流量。使用 VPC 网络对等互连时,网络之间不共享 Google Cloud 防火墙规则
  • 对等网络中的客户端虚拟机实例与您的内部负载平衡器位于同一区域 - 除非配置了全球访问权限(仅针对内部 TCP/UDP 负载平衡器)。配置了全球访问权限后,来自对等 VPC 网络任意区域的客户端虚拟机实例都可以访问您的内部 TCP/UDP 负载平衡器。内部 HTTP(S) 负载平衡不支持全球访问。

您不能使用 VPC 网络对等互连选择性地仅共享一些内部 TCP/UDP 负载平衡器或内部 HTTP(S) 负载平衡器。所有内部负载平衡器均自动共享。您可通过以下方式限制对负载平衡器后端的访问:

  • 对于内部 TCP/UDP 负载平衡器,您可以使用适用于后端虚拟机实例的入站防火墙规则

  • 对于内部 HTTP(S) 负载平衡器,您可配置后端虚拟机或端点以使用 HTTP 标头(例如 X-Forwarded-For)控制访问权限。

使用 Cloud VPN 和 Cloud Interconnect

您可以通过对等网络访问内部负载平衡器,其中该对等网络通过专用互连连接或合作伙伴互连Cloud VPN 隧道或互连连接 (VLAN) 进行连接。对等网络可以是本地网络、另一个 Google Cloud VPC 网络,或者由其他云服务提供商托管的虚拟网络。

通过 Cloud VPN 隧道进行访问

当满足以下所有条件时,您可以通过 Cloud VPN 隧道访问内部负载平衡器:

在内部负载平衡器的网络中

  • Cloud VPN 网关和隧道与内部负载平衡器组件位于同一区域中(除非仅对内部 TCP/UDP 负载平衡器配置了全球访问权限)。

  • 路由为返回对等(客户端)网络的出站流量提供了路径。如果您使用的是采用动态路由的 Cloud VPN 隧道,请考虑使用负载平衡器 Cloud VPN 网络的动态路由模式。动态路由模式决定了哪些自定义动态路由可用于后端。

  • 对于内部 TCP/UDP 负载平衡器,您已配置防火墙规则,以便本地客户端可与负载平衡器的后端虚拟机通信。

在对等网络中

对等网络必须至少有一个 Cloud VPN 隧道,该隧道的路由指向定义了内部负载平衡器的子网。

如果对等网络也是一个 Google Cloud VPC 网络:

  • 对等网络的 Cloud VPN 网关可位于任何区域。

  • 对于使用动态路由的 Cloud VPN 隧道,VPC 网络的动态路由模式可决定每个区域的客户端提供哪些路由。如需为所有区域的客户端提供一组一致的自定义动态路由,请使用全球动态路由模式。

下图突出显示了通过 Cloud VPN 网关及其关联隧道访问内部负载平衡器时的关键概念。Cloud VPN 使用 Cloud VPN 隧道将您的本地网络安全地连接到 Google Cloud VPC 网络。

内部 TCP/UDP 负载平衡和 Cloud VPN(点击放大)
内部负载平衡和 Cloud VPN(点击放大)

请注意与此示例关联的以下配置元素:

  • lb-network 中,已配置使用动态路由的 Cloud VPN 隧道。VPN 隧道、网关和 Cloud Router 路由器均位于 us-west1,内部负载平衡器的组件也在此区域。
  • 入站允许防火墙规则已配置为应用到实例组 ig-aig-c 中的后端虚拟机,因此它们可以接收来自 VPC 中的 IP 地址的和来自本地网络 10.1.2.0/24192.168.1.0/24 的流量。未创建出站拒绝防火墙规则,因此应用隐式允许出站规则
  • 根据已配置的会话亲和性,从本地网络(包括 192.168.1.0/24)中的客户端发送到内部负载平衡器的 IP 地址 10.1.2.99 的数据包将直接传送到 vm-a2 等正常运行的后端虚拟机。
  • 从后端虚拟机(例如 vm-a2)发送的回复通过 VPN 隧道传送到本地客户端。

如需排查 Cloud VPN 问题,请参阅 Cloud VPN 问题排查

通过 Cloud Interconnect 进行访问

在内部负载平衡器的网络满足以下所有条件时,您可以通过连接到负载平衡器的 VPC 网络的本地对等网络访问内部负载平衡器:

  • 互连连接 (VLAN) 及其 Cloud Router 路由器与负载平衡器的组件位于同一区域(除非仅对内部 TCP/UDP 负载平衡器配置了全球访问权限)。

  • 本地路由器共享合适的路由,这些路由为从后端虚拟机到本地客户端的响应提供返回路径。专用互连和合作伙伴互连的互连连接 (VLAN) 均使用 Cloud Router 路由器。它们知悉的一组自定义动态路由取决于负载平衡器网络的动态路由模式。

  • 对于内部 TCP/UDP 负载平衡器,您已配置防火墙规则,以便本地客户端可与负载平衡器的后端虚拟机通信。

在本地网络中,必须至少存在一个具有适当路由的互连连接 (VLAN),其路由的目标包含定义了内部负载平衡器的子网。出站防火墙规则也必须进行相应的配置。

内部 TCP/UDP 负载平衡的全球访问权限

为 TCP/UDP 负载平衡配置全球访问权限时,以下资源可位于任意区域:

  • Cloud Router 路由器
  • Cloud VPN 网关和隧道
  • Cloud Interconnect 互连连接 (VLAN)

在图中:

  • Cloud Router 路由器位于 europe-west1 区域。
  • 内部 TCP/UDP 负载平衡器的前端和后端都位于 us-east1 区域。
  • Cloud Router 路由器与本地 VPN 路由器对等互连。
  • 边界网关协议 (BGP) 对等互连会话可使用直接对等互连或合作伙伴互连通过 Cloud VPN 或 Cloud Interconnect 完成。
具有全球访问权限的内部 TCP/UDP 负载平衡(点击放大)
具有全球访问权限的内部 TCP/UDP 负载平衡(点击放大)

VPC 网络的动态路由模式设置为 global,使 europe-west1 中的 Cloud Router 路由器能够为内部 TCP/UDP 负载平衡器 VPC 网络的任何区域中的子网通告子网路由。

多个出站路径

在生产环境中,您应使用多个 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 以实现冗余。本部分讨论使用多个隧道或 VLAN 时的要求。

在下图中,两个 Cloud VPN 隧道将 lb-network 连接到本地网络。尽管此处使用的是 Cloud VPN 隧道,但这些原则同样适用于 Cloud Interconnect。

内部 TCP/UDP 负载平衡和多个 Cloud VPN 隧道(点击放大)
内部负载平衡和多个 Cloud VPN 隧道(点击放大)

您必须将每个隧道或每个 Cloud Interconnect 互连连接 (VLAN) 配置为与内部负载平衡器位于同一区域(除非您已对内部 TCP/UDP 负载平衡启用全球访问权限)。多个隧道或 VLAN 可以提供额外的带宽,也可以用作冗余的备用路径。

请注意以下几点:

  • 如果本地网络有两条优先级相同的路由,每条路由的目标均为 10.1.2.0/24,并且下一个跃点与内部负载平衡器所在区域的不同 VPN 隧道相对应,则可以使用等价多路径 (ECMP) 将流量从本地网络 (192.168.1.0/24) 发送到负载平衡器。
  • 当数据包传送到 VPC 网络后,内部负载平衡器会根据已配置的会话亲和性将其分布到后端虚拟机。
  • 如果 lb-network 有两条路由,每条路由的目标均为 192.168.1.0/24,并且下一个跃点对应于不同的 VPN 隧道,则来自后端虚拟机的响应可以根据网络中路由的优先级在每个隧道上传送。如果使用不同的路由优先级,则其中一个隧道可以用作另一个隧道的备用隧道。如果使用相同的优先级,则使用 ECMP 传送响应。
  • 从后端虚拟机(例如 vm-a2)发送的回复将通过合适的隧道直接传送到本地客户端。从 lb-network 的角度来看,如果路由或 VPN 隧道发生更改,流量可能会使用其他隧道出站。如果正在进行的连接中断,这可能导致 TCP 会话重置。

后续步骤