转发规则指定如何将网络流量路由到负载均衡器的后端服务。转发规则包括 IP 地址、IP 协议以及负载均衡器接受流量的一个或多个端口。某些 Google Cloud 负载均衡器仅允许您指定一组预定义端口,而其他 Google Cloud 负载均衡器允许您指定任意端口。
转发规则及其对应的 IP 地址构成 Google Cloud 负载均衡器的前端配置。
根据负载均衡器类型的不同,具体情况如下:
此外,区域级转发规则可以是在 App Hub(预览版)中指定为服务的资源。
内部转发规则
内部转发规则转发源自 Google Cloud 网络内的流量。客户端可以与后端位于同一个 Virtual Private Cloud (VPC) 网络中,客户端也可以位于连接的网络中。
以下 Google Cloud 负载平衡器使用内部转发规则:
- 内部应用负载均衡器
- 内部代理网络负载均衡器
- 内部直通式网络负载均衡器
内部应用负载均衡器
内部应用负载均衡器支持使用 HTTP、HTTPS 或 HTTP/2 协议的 IPv4 流量。
转发规则的范围取决于负载均衡器的类型:
- 每个区域级内部应用负载均衡器至少有一个区域级内部转发规则。区域级内部转发规则指向负载均衡器的区域级目标 HTTP 或 HTTPS 代理。转发规则与区域级内部 IP 地址相关联。
- 每个跨区域内部应用负载均衡器至少有一条全球内部转发规则。全球内部转发规则指向负载均衡器的全球目标 HTTP 或 HTTPS 代理。全球转发规则配置有区域级内部 IP 地址并与区域级子网关联;而全球外部应用负载均衡器具有使用全球任播 IP 地址的全球转发规则。
连接到目标 HTTP(S) 代理的内部代管式转发规则支持 1 到 65535 之间(含边界值)的任何端口号。
例如,下图展示了转发规则在区域级内部应用负载均衡器架构中的位置。
如需详细了解内部应用负载均衡器,请参阅以下页面:
内部代理网络负载均衡器
对于内部代理网络负载均衡器,受支持的流量类型为 IPv4,受支持的协议为 TCP。
转发规则的范围取决于负载均衡器的类型:
- 每个区域级内部代理网络负载均衡器至少有一条区域级内部转发规则。该转发规则会指定内部 IP 地址、端口和区域区目标 TCP 代理。客户端使用 IP 地址和端口连接到负载均衡器的 Envoy 代理,转发规则的 IP 地址是负载均衡器的 IP 地址(有时称为虚拟 IP 地址或 VIP)。
- 每个跨区域内部代理网络负载均衡器至少有一条全球内部转发规则。全球内部转发规则指向负载均衡器的全球目标 TCP 代理。全球转发规则使用区域级内部 IP 地址进行配置,并与区域级子网关联。
连接到目标 TCP 代理的内部代管式转发规则支持 1 到 65535 之间(含边界值)的任何端口号。
下图展示了转发规则在区域内部代理网络负载均衡器架构中的位置。
如需详细了解内部代理网络负载均衡器,请参阅以下页面:
内部直通式网络负载均衡器
对于内部直通式网络负载均衡器,受支持的流量类型为 IPv4 或 IPv6。如需了解支持的协议,请参阅转发规则协议。
每个内部直通式网络负载均衡器至少有一条区域级内部转发规则。区域级内部转发规则指向负载平衡器的区域级内部后端服务。下图展示了转发规则在内部直通式网络负载均衡器架构中的位置。
下图展示了负载平衡器组件在子网和区域中的位置。
内部转发规则必须在区域和子网中定义。而后端服务只需对应于该区域即可。
如需详细了解内部直通式网络负载均衡器,请参阅以下页面:
外部转发规则
外部转发规则接受来自具有互联网访问权限的客户端系统的流量,这些客户端系统包括:
- Google Cloud 外部的客户端
- 具有外部 IP 地址的 Google Cloud 虚拟机
- 使用 Cloud NAT 或基于实例的 NAT 系统但没有外部 IP 地址的 Google Cloud 虚拟机
以下 Google Cloud 负载均衡器类型使用外部转发规则:
- 外部应用负载均衡器
- 外部代理网络负载均衡器
- 外部直通式网络负载均衡器
外部应用负载均衡器
对于外部应用负载均衡器,转发规则和 IP 地址取决于负载均衡器模式,以及您为负载均衡器选择的网络服务层级。
在外部应用负载均衡器中,转发规则指向目标 HTTP(S) 代理。连接到目标 HTTP(S) 代理的外部转发规则支持 1 到 65535 之间(含边界值)的任何端口号。
- 全局外部应用负载均衡器仅支持高级层级。
- 每个传统应用负载均衡器均可处于高级层级或标准层级。
- 区域级外部应用负载均衡器同时支持高级层级和标准层级。
IP 地址和转发规则要求因网络服务层级而异:
在高级层级中,全球外部应用负载均衡器和传统应用负载均衡器使用全球外部 IP 地址(可以是 IPv4 地址或 IPv6 地址)和全球外部转发规则。您可以提供可在全球范围内访问的应用,将最终用户引导到最近区域中的后端,并在多个区域之间分发流量。由于全球级外部转发规则使用单个外部 IP 地址,因此您无需在不同区域维护单独的 DNS 记录,也不必等待 DNS 更改传播。
您可以将两个不同的全球级外部 IP 地址指向同一个全球外部应用负载均衡器。例如,在优质层级中,一条转发规则的全球级外部 IP 地址可以是 IPv4,另一条转发规则的全球级外部 IP 地址可以是 IPv6。这两条转发规则可以指向同一个目标代理。因此,您可以为同一个外部应用负载均衡器同时提供 IPv4 和 IPv6 地址。如需了解详情,请参阅 IPv6 终结文档。
在高级层级中,区域级外部应用负载均衡器使用区域级外部 IPv4 地址和区域级外部转发规则。
在标准层级中,区域级外部应用负载均衡器和传统版应用负载均衡器使用区域级外部 IPv4 地址和区域级外部转发规则。标准层级中的负载均衡器只能将流量分配到单个区域内的后端。
下图展示了全球级转发规则在全球外部应用负载均衡器的架构中的位置。同一架构也适用于高级层级中的传统应用负载均衡器。
如需详细了解外部应用负载均衡器,请参阅外部应用负载均衡器概览。
外部代理网络负载均衡器
外部代理网络负载均衡器提供 TCP 代理功能,并且提供可选的 SSL 分流。外部代理网络负载均衡器类似于外部应用负载均衡器,因为它可以终止 SSL (TLS) 会话。但是,这些负载均衡器不支持像外部应用负载均衡器那样的基于路径的重定向,因此更适合处理非 HTTPS 协议的 SSL,例如基于 SSL 的 IAMP 或 Websocket。 在外部代理网络负载均衡器中,转发规则指向 TCP 或 SSL 目标代理。
外部代理网络负载均衡器同时支持高级层级和标准层级。转发规则和 IP 地址取决于负载均衡器模式的类型以及您为负载均衡器选择的网络服务层级:
- 经典版代理网络负载均衡器可以处于高级层级或标准层级。
- 全球外部代理网络负载均衡器仅支持高级层级。
- 区域级外部代理网络负载均衡器同时支持高级层级和标准层级。
IP 地址和转发规则要求因网络服务层级而异:
在高级层级中,全球外部代理网络负载均衡器和传统代理网络负载均衡器使用全球外部 IP 地址(可以是 IPv4 地址或 IPv6 地址)和全球外部转发规则。您可以提供可在全球范围内访问的应用,将最终用户引导到最近区域中的后端,并在多个区域之间分发流量。由于全球级外部转发规则使用单个外部 IP 地址,因此您无需在不同区域维护单独的 DNS 记录,也不必等待 DNS 更改传播。
您可以将两个不同的全球级外部 IP 地址指向同一个外部代理网络负载均衡器。例如,在高级层级中,一条转发规则的全球级外部 IP 地址可以是 IPv4,另一条转发规则的全球级外部 IP 地址可以是 IPv6。这两条转发规则可以指向同一个目标代理。因此,您可以为同一个外部代理网络负载均衡器同时提供 IPv4 和 IPv6 地址。如需了解详情,请参阅 IPv6 终结文档。
在高级层级中,区域级外部代理网络负载均衡器使用区域级外部 IPv4 地址和区域级外部转发规则。
在标准层级中,区域级外部代理网络负载均衡器和经典版代理网络负载均衡器使用区域级外部 IPv4 地址和区域级外部转发规则。标准层级中的负载均衡器只能将流量分配到单个区域内的后端。
连接到目标 TCP 或 SSL 代理的外部转发规则支持 1 到 65535 之间(含边界值)的任何端口号。
下图展示了转发规则在全球外部代理网络负载均衡器架构中的位置。
如需详细了解外部代理网络负载均衡器,请参阅外部代理网络负载均衡器概览。 如需了解如何配置外部代理网络负载均衡器,请参阅设置外部代理网络负载均衡器。
外部直通式网络负载均衡器
外部直通式网络负载均衡器是一种直通式负载均衡器,可在单个区域中的后端实例之间分配流量。外部直通网络负载均衡器使用区域级外部转发规则和区域级外部 IP 地址。区域外部 IP 地址可通过互联网以及可访问互联网的 Google Cloud 虚拟机随时随地进行访问。
对于基于后端服务的外部直通网络负载均衡器,区域外部转发规则指向后端服务。基于后端服务的外部直通式网络负载均衡器支持 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量。如需了解详情,请参阅基于后端服务的外部直通式网络负载均衡器的转发规则协议。可以使用 IPv4 或 IPv6 地址配置基于后端服务的负载均衡器的转发规则。 基于后端服务的外部直通式网络负载均衡器的转发规则支持以下高级功能:
对于基于目标池的外部直通式网络负载均衡器,转发规则指向目标池。基于目标池的外部直通式网络负载均衡器仅支持 TCP 或 UDP 流量。基于目标池的外部直通式网络负载均衡器的转发规则仅支持 IPv4 地址。
对于区域级外部 IPv4 地址,外部直通式网络负载均衡器同时支持标准层级和高级层级。区域级外部 IPv6 地址仅在高级层级中提供。如需支持多个区域中的后端实例,您必须在每个区域中创建一个外部直通式网络负载均衡器。 无论负载均衡器的 IP 地址是处于高级层级还是标准层级,情况都是如此。
下图展示了外部直通式网络负载均衡器,该负载均衡器具有带 120.1.1.1
IP 地址的区域外部转发规则。负载均衡器正在处理来自 us-central1
区域中的后端的请求。
如需详细了解外部直通式网络负载均衡器,请参阅外部直通式网络负载均衡器概览。如需了解如何配置外部直通式网络负载均衡器,请参阅以下内容之一:
网络服务层级对负载平衡器的影响
在网络服务层级中,标准层级和优质层级之间的区别取决于通过公共互联网路由流量的距离:
标准层级:将流量尽可能分流到靠近数据中心的位置。这意味着与优质层级相比,通常通过公共互联网路由流量的距离更长。
优质层级:在离开 Google Cloud 到达最终用户之前,尽可能通过 Google Cloud 的生产网络路由流量。
负载均衡器 | 支持的 Network Service Tiers |
---|---|
|
这些负载均衡器始终处于高级层级。其后端服务、转发规则和 IP 地址为全球级。 |
|
这些负载平衡器可以处于优质层级或标准层级。 如果处于优质层级,这些负载均衡器为全球级。其转发规则、IP 地址和后端服务为全球级。 在标准层级中,这些负载均衡器实质上是区域性的, 其后端服务仍为全球级,但其转发规则和 IP 地址为区域级。 |
|
这些负载均衡器可以处于高级层级或标准层级。其后端服务、转发规则和 IP 地址始终为区域级。 |
|
这些负载平衡器支持 VPC 网络中的流量(包括连接到其中的网络)。流量是优质层级,因为它位于 VPC 网络中。 |
外部直通式网络负载均衡器 | 这些负载平衡器必须使用区域级外部 IPv4 或 IPv6 地址。 这些负载均衡器可以处于优质层级或标准层级。 IPv6 地址需要高级层级。 只有基于后端服务的外部直通式网络负载均衡器才能处理 IPv6 流量。 |
IP 协议规范
每条转发规则都有一个与该规则相关联的 IP 协议。默认协议值为 TCP
。
产品 | 负载均衡方案 | IP 协议选项 |
---|---|---|
全球外部应用负载均衡器 | EXTERNAL_MANAGED | TCP |
传统应用负载均衡器 | 外部 | TCP |
区域级外部应用负载均衡器 | EXTERNAL_MANAGED | TCP |
跨区域内部应用负载均衡器 | INTERNAL_MANAGED | TCP |
区域级内部应用负载均衡器 | INTERNAL_MANAGED | TCP |
全局外部代理网络负载均衡器 | EXTERNAL_MANAGED | TCP 或 SSL |
传统代理网络负载均衡器 | 外部 | TCP 或 SSL |
区域级外部代理网络负载均衡器 | EXTERNAL_MANAGED | TCP |
区域内部代理网络负载均衡器 | INTERNAL_MANAGED | TCP |
跨区域内部代理网络负载均衡器 | INTERNAL_MANAGED | TCP |
外部直通式网络负载均衡器 | 外部 | TCP、UDP 或 L3_DEFAULT |
内部直通式网络负载均衡器 | INTERNAL | TCP、UDP 或 L3_DEFAULT |
Cloud Service Mesh | INTERNAL_SELF_MANAGED | TCP |
IP 地址规范
转发规则必须具有您的客户用来访问负载均衡器的 IP 地址。该 IP 地址可以是静态地址,也可以是临时地址。
静态 IP 地址会提供一个预留 IP 地址,您可以将自己的网域指向该地址。如果您需要删除转发规则并重新添加,则可以继续使用同一预留 IP 地址。
当转发规则存在时,临时 IP 地址保持不变。当您选择临时 IP 地址时,Google Cloud 会为负载平衡器的转发规则关联一个 IP 地址。如果您需要删除转发规则并重新添加,则转发规则可能会收到新的 IP 地址。
根据负载均衡器类型,IP 地址可以具有不同属性。下表总结了基于负载平衡方案和转发规则目标的有效 IP 地址配置。
产品和方案 | 目标 | IP 地址类型 | IP 地址范围 | IP 地址层级 | 可预留的 IP 地址 | 备注 |
---|---|---|---|---|---|---|
全球外部应用负载均衡器 EXTERNAL_MANAGED |
目标 HTTP 代理 目标 HTTPS 代理 |
外部 | 全球 | 高级层级:全局外部 IP 地址和转发规则 | 是(可选) | IPv6 可用 |
传统应用负载平衡器 EXTERNAL* |
目标 HTTP 代理 目标 HTTPS 代理 |
外部 | 区域级或全球级,应符合转发规则 | 优质层级:全球级外部 IPv4 或 IPv6 地址和转发规则
标准层级:区域级外部 IPv4 地址和转发规则 |
是(可选) | IPv6 适用于全球级外部地址(优质层级) |
区域级外部应用负载均衡器 EXTERNAL_MANAGED |
目标 HTTP 代理 目标 HTTPS 代理 |
外部 | 区域 | 付费层级或标准层级 | 是(可选) | IPv6 不可用 |
跨区域内部应用负载均衡器 INTERNAL_MANAGED |
目标 HTTP 代理 目标 HTTPS 代理 |
内部 | 区域 | 优质层级 | 是(可选) | 全球转发规则配置有关联的区域级子网的主要 IPv4 地址范围内的区域级 IP 地址。这与全球外部应用负载均衡器不同,后者的全球转发规则具有全球任播 IP 地址。 |
区域级内部应用负载均衡器 INTERNAL_MANAGED |
目标 HTTP 代理 目标 HTTPS 代理 |
内部 | 区域 | 优质层级 | 是(可选) | 转发规则地址必须在关联子网的主要 IPv4 地址范围内。 |
全球外部代理网络负载均衡器 EXTERNAL_MANAGED |
目标 SSL 代理 目标 TCP 代理 |
外部 | 全球 | 优质层级 | 是(可选) | IPv6 可用 |
传统代理网络负载均衡器 EXTERNAL |
目标 SSL 代理 目标 TCP 代理 |
外部 | 区域级或全球级,应符合转发规则 | 优质层级:全球级外部 IPv4 或 IPv6 地址和转发规则
标准层级:区域级外部 IPv4 地址和转发规则 |
是(可选) | IPv6 适用于全球级外部地址(优质层级) |
区域级外部代理网络负载均衡器 EXTERNAL_MANAGED |
目标 TCP 代理 | 外部 | 区域 | 付费层级或标准层级 | 是(可选) | IPv6 不可用 |
区域级内部代理网络负载均衡器 INTERNAL_MANAGED |
目标 TCP 代理 | 内部 | 区域 | 优质层级 | 是(可选) | 转发规则地址必须在关联子网的主要 IPv4 地址范围内 |
跨区域内部代理网络负载均衡器 INTERNAL_MANAGED |
目标 TCP 代理 | 内部 | 区域 | 优质层级 | 是(可选) | 转发规则地址必须在关联子网的主要 IPv4 地址范围内 |
外部直通式网络负载均衡器 EXTERNAL |
后端服务 目标池 |
外部 | 区域 |
标准(IPv4 地址) 优质(IPv4 或 IPv6 地址) |
是(可选) | 支持 IPv6,需要基于后端服务的外部直通网络负载均衡器。 转发规则 IPv6 地址必须在子网的外部 IPv6 地址范围内。外部 IPv6 地址源自子网的外部 IPv6 地址范围,因此处于高级层级。 |
内部直通式网络负载均衡器 INTERNAL |
后端服务 | 内部 | 区域 | 优质层级 | 是(可选) | 转发规则地址必须在关联子网的主要 IPv4 地址范围内。 |
Cloud Service Mesh INTERNAL_SELF_MANAGED |
目标 HTTP 代理 目标 gRPC 代理 |
内部 | 全球 | 不适用 | 否 | 允许使用 0.0.0.0、127.0.0.1 或任何 RFC 1918 地址 |
传统 VPN EXTERNAL |
参阅传统 VPN 文档 | 外部 | 区域 | Cloud VPN 没有网络服务层级 | 是(必需) | 不支持 IPv6 |
EXTERNAL_MANAGED
后端服务附加到 EXTERNAL
转发规则。但是,EXTERNAL
后端服务无法附加到 EXTERNAL_MANAGED
转发规则。
如需使用仅适用于全球外部应用负载平衡器的新功能,我们建议您按照将资源从传统版应用负载平衡器迁移到全球外部应用负载平衡器中所述的迁移流程,将现有的 EXTERNAL
资源迁移到 EXTERNAL_MANAGED
。
采用相同 IP 地址的多条转发规则
如果满足以下条件,则具有 EXTERNAL
或 EXTERNAL_MANAGED
负载均衡方案的两条或两条以上转发规则可以共享同一个 IP 地址:
- 每条转发规则使用的端口不会重叠。
- 每条转发规则的网络服务层级与外部 IP 地址的网络服务层级相匹配。
示例:
- 接受 TCP 端口 79 上的流量的外部直通式网络负载均衡器和接受 TCP 端口 80 上的流量的其他外部直通式网络负载均衡器可以共享同一个区域级外部 IP 地址。
- 您可以为外部应用负载均衡器(HTTP 和 HTTPS)使用同一个全球级外部 IP 地址。
如果转发规则的负载均衡方案为 INTERNAL
或 INTERNAL_MANAGED
,则多条转发规则可以使用同一个 IP 地址。详情请参阅以下内容:
- 对于内部直通式网络负载均衡器,请参阅使用公共 IP 地址的内部直通式网络负载均衡器转发规则
- 对于内部应用负载均衡器,请参阅在多个内部转发规则中共用 IP 地址
- 对于内部代理网络负载均衡器,请参阅转发规则和 IP 地址
INTERNAL_SELF_MANAGED
,则该方案必须具有唯一的 IP 地址。
端口规范
下表总结了基于负载平衡方案和转发规则目标的有效端口配置。
产品 | 负载均衡方案 | 目标 | 端口要求 |
---|---|---|---|
全球外部应用负载均衡器 区域级外部应用负载均衡器 |
EXTERNAL_MANAGED | 目标 HTTP 代理 目标 HTTPS 代理 |
只能引用 1-65535 中的一个端口 |
传统应用负载均衡器 | 外部 | 目标 HTTP 代理 目标 HTTPS 代理 |
只能引用 1-65535 中的一个端口 |
跨区域内部应用负载均衡器 区域级内部应用负载均衡器 |
INTERNAL_MANAGED | 目标 HTTP 代理 目标 HTTPS 代理 |
只能引用 1-65535 中的一个端口 |
全局外部代理网络负载均衡器 | EXTERNAL_MANAGED | 目标 TCP 代理 目标 SSL 代理 |
只能引用 1-65535 中的一个端口 |
传统代理网络负载均衡器 | 外部 | 目标 TCP 代理 目标 SSL 代理 |
只能引用 1-65535 中的一个端口 |
区域级外部代理网络负载均衡器 | EXTERNAL_MANAGED | 目标 TCP 代理 | 只能引用 1-65535 中的一个端口 |
区域级内部代理网络负载均衡器 | INTERNAL_MANAGED | 目标 TCP 代理 | 只能引用 1-65535 中的一个端口 |
跨区域内部代理网络负载均衡器 | INTERNAL_MANAGED | 目标 TCP 代理 | 只能引用 1-65535 中的一个端口 |
外部直通式网络负载均衡器 | 外部 | 后端服务 | 如果转发规则协议是 TCP 或 UDP ,则您可以进行如下配置:
如果转发规则协议为 L3_DEFAULT ,则您必须配置所有端口。
|
目标池 | 必须是单个端口范围(连续) 对于与基于目标池的外部直通式网络负载均衡器一起使用的转发规则,指定端口是可选操作。如果未指定端口,则系统会转发来自所有端口 (1-65535) 的流量。 |
||
内部直通式网络负载均衡器 | INTERNAL | 后端服务 | 最多五个(连续或非连续)端口,您也可以使用以下方法之一配置所有端口: 使用 gcloud 命令行工具设置 --ports=ALL ,或者使用 API 将 allPorts 设置为 True 。
|
Cloud Service Mesh | INTERNAL_SELF_MANAGED | 目标 HTTP 代理 目标 HTTPS 代理 |
必须是单个值。 在 VPC 网络中,Cloud Service Mesh 的两条转发规则不能具有相同的 IP 地址和端口规范。 |
传统 VPN | 外部 | 单个目标 VPN 网关 | 只能引用以下端口之一:500、4500 |
IAM Conditions
借助身份和访问权限管理 (IAM) Conditions,您可以设置条件以控制向主账号授予的角色。使用此功能,您可以在满足配置的条件时向主账号授予权限。
IAM 条件会检查转发规则中的负载均衡方案(例如,INTERNAL
或 EXTERNAL
)并允许(或禁止)创建转发规则。如果主账号尝试在无权限的情况下创建转发规则,则会显示错误消息。
如需了解详情,请参阅 IAM Conditions。
使用转发规则
如果您使用 Google Cloud 控制台设置负载均衡器,则转发规则会作为前端配置的一部分进行隐式设置。如果您使用的是 Google Cloud CLI 或 API,则需要明确配置转发规则。
创建转发规则后,您可以进行有限的更改。例如,定义转发规则后,您将无法更改其 IP 地址、端口号或协议。但是,您可以通过修改转发规则所关联的负载均衡器的前端配置来更新转发规则的某些设置。请使用 gcloud CLI 或 API 进行任何其他更改。
更改转发规则的 IP 地址
现有转发规则的 IP 地址无法更改。如需更新转发规则的 IP 地址,您必须按如下所示删除并重新创建规则:
使用
gcloud compute forwarding-rules delete
命令或forwardingRules.delete
方法删除转发规则。使用
gcloud compute forwarding-rules create
命令或forwardingRules.insert
方法重新创建转发规则。
API
如需了解通过 REST API 处理转发规则时可用的属性 (Property) 和方法,请参阅以下内容:
- 区域级:forwardingRules
Google Cloud CLI
如需查看 gcloud CLI 参考文档,请参阅以下内容:
gcloud compute forwarding-rules
- 全球:
--global
- 区域级:
--region=[REGION]
后续步骤
- 如需详细了解协议转发,请参阅协议转发概览。