内部 HTTP(S) 负载平衡和连接的网络

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

使用 VPC 网络对等互连

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

  • 对于内部 TCP/UDP 负载平衡器,您必须创建入站防火墙规则,以允许来自对等网络中的客户端虚拟机的流量。使用 VPC 网络对等互连时,网络之间不共享 Google Cloud 防火墙规则
  • 对等网络中的客户端虚拟机 (VM) 实例与您的内部负载平衡器位于同一区域。

您不能使用 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 网关和隧道必须与负载平衡器位于同一区域。

  • 路由必须提供来自代理系统的响应路径,使其返回客户端所在的本地网络或对等网络。如果您使用的是采用动态路由的 Cloud VPN 隧道,请考虑使用负载平衡器 Cloud VPN 网络的动态路由模式。动态路由模式决定了代理专用子网中的代理可以使用哪些自定义动态路由。

在对等网络中

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

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

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

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

  • 确保本地网络或对等网络防火墙允许发送到负载平衡器转发规则的 IP 地址的数据包。确保本地网络或对等网络防火墙允许从负载平衡器的转发规则的 IP 地址接收响应数据包。

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

该图显示了内部 TCP/UDP 负载平衡器的设置。对于内部 HTTP(S) 负载平衡器,Cloud VPN 和 Cloud Router 相同,但负载平衡资源不同。例如,设置内部 HTTP(S) 负载平衡器需要不同类型的转发规则、目标代理和网址映射。
内部 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 网络的本地对等网络访问内部负载平衡器:

  • Cloud Interconnect 互连 (VLAN) 和 Cloud Router 路由器都必须与负载平衡器位于同一区域。

  • 本地路由器必须提供从代理系统到本地网络的响应路径。专用互连和合作伙伴互连的互连连接 (VLAN) 必须使用 Cloud Router;因此,自定义动态路由提供响应路径。它们知悉的一组自定义动态路由取决于负载平衡器网络的动态路由模式。

  • 确保本地防火墙允许发送到负载平衡器转发规则的 IP 地址的数据包。确保本地防火墙允许从负载平衡器转发规则的 IP 地址接收响应数据包。

多个出站路径

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

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

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

您必须将每个隧道或每个 Cloud Interconnect 连接 (VLAN) 配置为与内部负载平衡器位于同一区域。

多个隧道或 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 会话重置。

后续步骤