使用公共 IP 地址的内部直通式网络负载均衡器转发规则

内部直通式网络负载均衡器是区域级负载均衡器,可让您通过只能由内部虚拟机 (VM) 实例访问的内部 IP 地址来运行和扩缩服务。

本页面讨论了具有相同 IP 地址的多个转发规则。 如需了解有关内部直通式网络负载均衡器的一般信息,请参阅内部直通式网络负载均衡器概览

通过内部转发规则,您最多可以在 10 条转发规则中使用一个共享的内部 IP 地址。您可以将 TCPUDP 用于转发规则协议,并为转发规则分配最多五个端口,或者指定 --ports=ALL 以使用所有端口。如果要使用 L3_DEFAULT 协议,则必须使用 --ports=ALL 选项的所有端口。

通过唯一的协议和端口组合,您可以执行以下操作:

  • 使用 TCP 协议为每个转发规则创建 50 个唯一的 TCP 端口。

    如果转发规则配置为使用 TCP 协议和所有端口,则使用 TCP 协议的其他转发规则都不能使用相同的共享 IP 地址。

  • 使用 UDP 协议为每个转发规则创建 50 个唯一的 UDP 端口。

    如果转发规则配置为使用 UDP 协议和所有端口,则使用 UDP 协议的其他转发规则都不能使用相同的共享 IP 地址。

  • 创建 50 个唯一的 TCP 和 UDP 端口组合,每个转发规则使用 TCPUDP 协议。

  • 引用共同后端服务(单个负载均衡器)或多个后端服务(共用同一 IP 地址的多个负载均衡器)

  • 使用 L3_DEFAULT 协议配置转发规则时,请使用所有端口。一个 IP 地址只能有一个 L3_DEFAULT 转发规则,如有必要,可以与其他 TCP 和 UDP 转发规则共享该规则。

当您的转发规则具有不同的协议时,您还必须拥有两个不同的后端服务。一个内部直通式网络负载均衡器可用于 TCP 或 UDP 流量,但不能同时用于两者,因为它只有一个后端服务,而该服务仅使用其中一个协议。

转发规则的决策矩阵

请使用下表来设计部署。

单个内部直通式网络负载均衡器

单个后端服务仅支持 TCP 或 UDP。

如果您需要多个转发规则,请使用公式 ⌈total number of ports / 5⌉ 计算所需的转发规则数量,其中 ⌈⌉ 是 ceiling(最小整数)函数,表示向上取整

例如,假设您需要负载均衡器一个 IP 地址的 26 个 TCP 端口。如果您不想使用 --ports=ALL 创建单个转发规则,则必须创建六条转发规则,因为 26 / 5 = 5 with a remainder of 1

预期的前端配置 所需的转发规则数量 IP 地址需要的 --purpose=SHARED_LOADBALANCER_VIP 标志 转发规则端口规范
一个 IP 地址,所有端口上的流量 一条转发规则 --ports=ALL
一个 IP 地址,特定端口上的流量

对于五个或更少端口:
一条转发规则

对于六个或更多端口:
多个转发规则

对于五个或更少端口:否

对于六个或更多端口:是

--ports 设置为一组最多五个连续端口号或非连续端口号。
多个 IP 地址,所有端口上的流量 每个 IP 地址一条转发规则 --ports=ALL
多个 IP 地址,特定端口上的流量 每个 IP 地址至少有一个转发规则

如果每个 IP 地址使用五个或更少端口:否

如果每个 IP 地址使用六个或更多端口:是

--ports 设置为一组最多五个连续端口号或非连续端口号。

两个内部直通式网络负载均衡器

如果您有两个内部直通式网络负载均衡器,则可以有两个后端服务,一个用于 TCP 流量,另一个用于 UDP 流量。

如果您需要多个转发规则,请使用以下公式计算所需的转发规则数量,其中 ⌈⌉ 是 ceiling(最小整数)函数,表示向上取整:

 ⌈total number of TCP ports / 5⌉

 ⌈total number of UDP ports / 5⌉

例如,假设您需要 26 个 TCP 端口和 12 个 UDP 端口。您必须创建九个转发规则:

  • 26 / 5 = 5 with a remainder of 1,因此 TCP 端口需要六条转发规则。
  • 12 / 5 = 2 with a remainder of 2,因此您需要 UDP 端口的三条转发规则。
预期的前端配置 所需的转发规则数量 IP 地址需要的 --purpose=SHARED_LOADBALANCER_VIP 标志 转发规则端口规范
一个 IP 地址,所有端口上的流量 两条转发规则(一条用于 TCP,另一条用于 UDP) 因为 TCP 转发规则和 UDP 转发规则必须共用一个 IP 地址:是 --ports=ALL
一个 IP 地址,特定端口上的流量

对于五个或更少 TCP 端口和五个或更少 UDP 端口:两条转发规则(一条用于 TCP,另一条用于 UDP)

对于六个或更多 TCP 端口或 UDP 端口:多条转发规则,其中每条转发规则支持一个协议以及五个或更少端口

--ports 设置为一组最多五个连续端口号或非连续端口号。
多个 IP 地址,所有端口上的流量(TCP 或 UDP)

至少两条转发规则(一条用于 TCP,使用一个 IP 地址;另一条用于 UDP,使用其他 IP 地址)

如果您需要三个或更多 IP 地址,则需要三条或更多转发规则

--ports=ALL
多个 IP 地址,特定端口上的流量(TCP 或 UDP)

至少两条转发规则(一条用于 TCP,使用一个 IP 地址;另一条用于 UDP,使用其他 IP 地址)

两条以上转发规则(如果您需要以下项之一):

  • 超过两个 IP 地址
  • 五个以上端口用于 IP 地址上的 TCP 流量,或五个以上端口用于 IP 地址上的 UDP 流量

对于一个具有五个或更少 TCP 端口的 IP 地址以及一个具有五个或更少 UDP 端口的 IP 地址:否

对于六个或更多 TCP 端口或 UDP 端口:是

--ports 设置为一组最多五个连续端口号或非连续端口号。

限制

  • 具有相同 IP 地址和协议的两条或更多条转发规则不能有重叠的端口。例如:
    • 配置使用协议 TCP 和端口 80 的转发规则时,无法再配置其他转发规则来处理该协议和端口。例如,您无法创建另一个转发规则来提供 TCP 端口 808190
    • 为 TCP 和端口 80808090 配置转发规则时,不能为 TCP 配置另一个将使用所有端口的转发规则。
  • 当两条或更多转发规则使用 --purpose=SHARED_LOADBALANCER_VIP 标志共享同一 IP 地址时,最多只能有一条转发规则将协议设置为 L3_DEFAULT

使用场景

有很多不同类型的部署。以下示例使用一个 IP 地址,该 IP 地址接受两个负载均衡器特定端口上的流量。

示例 1

此示例使用参数如下的不同转发规则:

  • 相同的 IP 地址 (10.1.1.1)
  • 不同的协议
  • 每条转发规则指向的不同后端服务
  • 匹配的协议:每个后端服务的协议与相应转发规则的协议匹配
不同的转发规则、相同的 IP 地址、不同的协议和端口。
不同的转发规则、相同的 IP 地址、不同的协议和端口(点击可放大)。

示例 2

此示例使用参数如下的不同转发规则:

  • 相同的 IPv4 地址 (10.1.1.1)
  • 相同的协议
  • 每条转发规则上使用一组不同的编号端口
不同的转发规则、相同的 IP 地址、相同的协议、五个以上的端口。
不同的转发规则、相同的 IP 地址、相同的协议、五个以上的编号端口(点击可放大)。

配置步骤

如果您同时执行以下两项操作,则可以创建具有相同 IP 地址的多个内部转发规则:

  1. 创建转发规则要使用的静态(预留)内部 IP 地址
  2. 将共享内部 IP 地址上的 --purpose 标志设置为 SHARED_LOADBALANCER_VIP 值。

如需查看示例设置,请参阅使用两条转发规则接受多个端口上的流量