流量负载均衡器概述
流量负载平衡支持摘要
表 1 负载平衡汇总了 MS-MPC 和 MS-MIC 卡对自适应服务的支持与 MX-SPC3 安全服务卡对下一代服务的支持。
MS-MPC |
MX-SPC3 |
||
---|---|---|---|
Junos 版本 |
< 16.1R6 和 18.2.R1 |
≥ 16.1R6 和 18.2R1 |
19.3R2 |
每个机箱的最大 # 个实例数 |
32 |
2,000 / 32 在 L2 DSR 模式下 |
2,000 |
每个实例的最大 # 个虚拟服务 |
32 |
32 |
32 |
每个虚拟服务的最大 # 个虚拟 IP 地址 |
|
1 |
1 |
每个实例的最大 # 组数 |
32 |
32 |
32 |
每个组最多 # 个实际服务(服务器) |
255 |
255 |
255 |
每个虚拟服务的最大 # 组数 |
|
1 |
1 |
每个组的最大 # 个网络监视器配置文件 |
|
2 |
2 |
每个 PIC/NPU 的每个安全服务的最大 # 个 HC,只需 5 秒 |
|
4,000 |
1,250 – 19.3R2 10,000 – 20.1R1 |
支持的运行状况检查协议 |
ICMP、TCP、UDP、HTTP、SSL、自定义 |
ICMP、TCP、UDP、HTTP、SSL、TLS 您好, 自定义 |
流量负载均衡器应用程序说明
MX 系列路由器具有多服务模块化端口集中器 (MS-MPC)、多服务模块化接口卡 (MS-MIC) 或 MX 安全服务处理卡 (MX-SPC3),并结合 MX 系列路由器上支持的模块化端口集中器 (MPC) 线卡,如 表 2 所示,支持流量负载平衡器 (TLB)。
您不能同时运行确定性 NAT 和 TLB。
TLB 模式 |
MX 平台覆盖范围 |
---|---|
多服务模块化端口集中器 (MS-MPC) |
MX240、MX2480、MX960、MX2008、MX2010、MX2020 |
MX 安全服务处理卡 (MX-SPC3) |
MX240、MX480、MX960 |
TLB 允许您在多个服务器之间分配流量。
TLB 使用基于 MS-MPC 的控制平面和一个使用 MX 系列路由器转发引擎的数据平面。
TLB 使用等价多路径 (ECMP) 的增强版本。增强型 ECMP 有助于在服务器组之间分配流量。对本机 ECMP 的增强功能可确保当服务器发生故障时,只有与这些服务器关联的流受到影响,从而最大程度地减少服务和会话对整体网络的改动。
TLB为每组多达255台服务器提供基于应用的运行状况监控,基于服务器可用性信息的运行状况检查提供智能流量引导。您可以配置聚合多服务 (AMS) 接口,为用于服务器运行状况监控的 MS-MPC 或下一代服务 MX-SPC3 卡提供一对一冗余。
TLB 将其流分布处理应用于入口流量。
TLB 支持多个虚拟路由实例,以更好地支持大规模负载平衡要求。
TLB 支持静态虚拟 IP 地址到真实 IP 地址的转换,以及负载平衡期间的静态目标端口转换。
流量负载均衡器操作模式
流量负载均衡器提供三种操作模式,用于分配传出流量和处理返回流量。
表 3 汇总了 TLB 支持以及支持它的卡。
安全服务卡 |
MS-MPC |
MX-SPC3 |
---|---|---|
翻译 |
是的 |
是的 |
透明的第 3 层直接服务器返回 |
是的 |
是的 |
透明的第 2 层直接服务器返回 |
是的 |
不支持 |
透明模式第 2 层直接服务器返回
使用透明模式时 第 2 层直接服务器返回 (DSR) 时:
PFE 处理数据。
负载平衡的工作原理是更改数据包的第 2 层 MAC。
MS-MPC 执行网络监视探测。
真实服务器必须可从 MX 系列路由器直接(第 2 层)访问。
TLB 安装一个路由,该路由上的所有流量都是负载均衡的。
TLB 从不修改第 3 层及更高级别的标头。
图 1 显示了透明模式第 2 层 DSR 的 TLB 拓扑。
转换模式
转换模式比透明模式第 2 层 DSR 提供更大的灵活性。选择翻译模式时:
MS-MPC 执行网络监视探测。
PFE 执行无状态负载平衡:
定向到虚拟 IP 地址的数据流量会经历虚拟 IP 地址向真实服务器 IP 地址的转换,并将虚拟端口转换为服务器侦听端口。返回流量进行反向转换。
将客户端到虚拟 IP 流量进行转换;流量将被路由以到达其目的地。
使用隐式过滤器捕获服务器到客户端的流量,并将其定向到适当的负载均衡下一跃点进行反向处理。转换后,流量将路由回客户端。
有两种负载平衡方法:随机和哈希。random 方法仅适用于 UDP 流量,并提供 quavms 随机分布。虽然不是字面上的随机,但此模式为一组可用的服务器提供了公平的流量分配。散列方法基于源 IP 地址、目标 IP 地址和协议的任意组合提供散列密钥。
注意:转换模式处理仅适用于 IPv4 到 IPv4 和 IPv6 到 IPv6 的流量。
图 2 显示了转换模式的 TLB 拓扑。
透明模式第 3 层直接服务器返回
透明模式 第 3 层 DSR 负载平衡将会话分发到可以隔开第 3 层跃点的服务器。流量从真实服务器直接返回给客户端。
流量负载均衡器功能
TLB 提供以下功能:
TLB 始终分发任何流的 请求 。指定 DSR 模式时,响应将直接返回到源。指定转换模式时,反向流量将通过面向服务器的接口上的隐式过滤器进行引导。
TLB 支持基于哈希的负载平衡或随机负载平衡。
TLB 使您能够脱机配置服务器,以防止所有现有流的重新散列可能导致的性能影响。您可以将服务器添加到管理关闭状态,并通过禁用管理关闭状态将其用于流量分配。脱机配置服务器有助于防止流量影响到其他服务器。
当运行状况检查确定服务器已关闭时,只会对受影响的流进行重新散列。
当之前关闭的服务器恢复服务时,基于哈希属于该服务器的所有流都会返回到该服务器,从而影响返回的流的性能。因此,您可以禁用服务器自动重新加入活动组。您可以通过发出
request services traffic-load-balance real-service rejoin
操作命令使服务器恢复服务。注意:NAT 不适用于分布式流。
运行状况检查监控应用程序在 MS-MPC/NPU 上运行。此网络处理器单元 (NPU) 不用于处理数据流量。
TLB 支持静态虚拟 IP 地址地址转换,以及负载平衡期间的静态目标端口转换。
TLB 提供多个 VRF 支持。
流量负载均衡器应用程序组件
服务器和服务器组
TLB 支持配置最多 255 个服务器的组(在配置语句中称为 实际服务),以用作无状态会话分发的备用目标。在分配给组之前,必须单独配置服务器组中使用的所有服务器。负载平衡使用散列或随机化进行会话分配。用户可以在 TLB 服务器分布表中添加和删除服务器,还可以更改服务器的管理状态。
TLB 使用会话分布下一跃点 API 更新服务器分布表并检索统计信息。 应用程序对服务器分布表管理没有直接控制权。它们只能通过 TLB API 的添加和删除服务间接影响更改。
服务器运行状况监控 — 单次运行状况检查和双重运行状况检查
TLB 支持 TCP、HTTP、SSL Hello、TLS Hello 和自定义运行状况检查探测,以监控组中服务器的运行状况。您可以对服务器组使用单一探测类型,也可以对包含两种探测类型的双运行状况检查配置使用。可配置的运行状况监控功能驻留在 MX-SPC3 或 MS-MPC 上。默认情况下,探测请求每 5 秒发送一次。此外,默认情况下,只有在连续五次探测失败后才会宣布实际服务器关闭,并且仅在连续五次探测成功后才宣布启动。
使用自定义运行状况检查探测指定以下内容:
-
探测响应中的预期字符串
-
随探针一起发送的字符串
-
探测超时(向上或向下)时要分配的服务器状态
-
收到对探针的预期响应(正常或故障)时要分配的服务器状态
-
协议 — UDP 或 TCP
TLB 提供 应用粘性,这意味着服务器故障或更改不会影响流向其他活动服务器的流量。将服务器的管理状态从上更改为下不会影响到服务器分布表中其余服务器的任何活动流。添加服务器或从组中删除服务器会在一段时间内对流量产生一定影响,具体取决于您在监控配置文件中对间隔和重试参数的配置。
TLB 提供两级服务器运行状况监控:
-
单一运行状况检查 — 通过
network-monitoring-profile
配置语句将一种探针类型连接到服务器组。 -
TLB 双重运行状况检查 (TLB-DHC) — 两种探测类型通过
network-monitoring-profile
配置语句与服务器组相关联。服务器的状态是根据两次运行状况检查探测的结果来声明的。每个服务器组最多可以配置两个运行状况检查配置文件。如果配置了双运行状况检查服务器组,则只有当两个运行状况检查探针同时处于 UP 状态时,才会将实际服务声明为 UP;否则,实际服务将被声明为 DOWN。
以下限制适用于用于服务器运行状况监控的 AMS 接口:
-
在TLB实例下配置的AMS接口,仅使用其配置的成员接口对配置的多个真实服务器进行运行状况检查。
-
成员接口将单元 0 用于单个 VRF 案例,但可以将单元 1 以外的单元用于多个 VRF 案例。
-
TLB 使用为 AMS 成员接口配置的 IP 地址作为运行状况检查的源 IP 地址。
-
成员接口必须与用于访问实际服务器的接口位于同一路由实例中。这对于 TLB 服务器运行状况检查过程是必需的。
从 Junos OS 24.2R1 版开始,当在同一组中配置 TLS 和 SSL 时,现在使用 OR 机制而不是 AND 来确定实际服务器的状态。也就是说,如果任何一个探测正在工作,则真实服务器将被标记为 UP。以前,只有当两个探测都成功时,真实服务器才会被标记为 UP。
当提供 SSL 探测版本时,它将使用该版本进行探测。如果未指定 SSL 版本,则行为将更改为从版本 v3 到 v2 的回退。探测从 SSLv3 开始。如果 SSLv3 探测失败,系统将探测 SSLv2。 以前,当未显式提供 version 属性时,将使用默认版本 v3 进行探测。
仅当在同一运行状况检查组中配置 TLS 和 SSL 探测时,此运行状况检查行为增强功能才适用。
show services traffic-load-balance statistics instance <inst> extensive 的输出已更改。
user@host# show services traffic-load-balance statistics instance <inst-name>
Traffic load balance instance name : <inst-name> Multi services interface name : vms-3/0/0 Interface state : UP Interface type : Multi services Route hold timer : 180 Active real service count : 0 Total real service count : 8 Traffic load balance virtual svc name : vs1 IP address : 60.0.0.1 Virtual service mode : Translate mode Routing instance name : fwd_instance_1 Traffic load balance group name : group1 Traffic load balance group warmup time: 15 Traffic load balance group auto-rejoin: TRUE Health check interface subunit : 0 Traffic load balance group down count : 5 Protocol : tcp Port number : 443 Server Listening Port Number : 443 Route metric : 1 Virtual service down count : 5 Traffic load balance hash method : source Network monitoring profile count : 2 Active real service count : 0 Total real service count : 8 Demux Nexthop index : 673 Nexthop index : 674 Down time : 6d 00:01 Total packet sent count : 361749 Total byte sent count : 55165331 Total packet received count : 542636 Total byte received count : 28940680 Network monitoring profile index : 1 Network monitoring profile name : nm_prof_ssl Probe type : SSL-HELLO Probe interval : 2 Probe failure retry count : 5 Probe recovery retry count : 3 Port number : 443 Network monitoring profile index : 2 Network monitoring profile name : nm_prof_tls Probe type : TLS-HELLO Probe interval : 5 Probe failure retry count : 5 Probe recovery retry count : 5 Port number : 443 Traffic load balance real svc name : rs_1 Routing instance name : server_vrf_1 IP address : 40.1.1.2 Traffic load balance group name : group1 Admin state : UP Oper state : UP Network monitoring probe up count : 1 Network monitoring probe down count : 1 Total rejoin event count : 8 Total up event count : 9 Total down event count : 9 Real Service packet sent count : 69804 Real Service byte sent count : 10644724 Real Service packet received count : 104706 Real Service byte received count : 5584336 Total probe sent : 358307 Total probe success : 76 Total probe fail : 358231 Total probe sent failed : 0 Network monitoring profile index : 1 Network monitoring profile name : nm_prof_sslv3 Probe type : SSL-HELLO Probe state : UP SSL probe version : 3 Probe sent : 255933 Probe success : 255879 Probe fail : 54 Probe sent failed : 0 Probe consecutive success : 254635 Probe consecutive fail : 0 Network monitoring profile index : 2 Network monitoring profile name : nm_prof_tls Probe type : TLS-HELLO Probe state : DOWN TLS probe version : 1.2 Probe sent : 102374 Probe success : 22 Probe fail : 102352 Probe sent failed : 0 Probe consecutive success : 0 Probe consecutive fail : 101854
当运行状况检查配置文件下未指定 SSL 版本时,将在真实服务器统计信息下从虚拟服务中移动 SSL-hello 探测版本。
虚拟服务
虚拟服务提供虚拟 IP 地址 (VIP),该地址与流量定向到的服务器组相关联,由基于哈希或随机会话的分发和服务器运行状况监视确定。对于 L2 DSR 和 L3 DSR,特殊地址 0.0.0.0 会导致流向转发实例的所有流量均衡。
虚拟服务配置包括:
-
模式 - 指示如何处理流量(转换或透明)。
-
将会话分发到的服务器组。
-
负载平衡方法。
-
路由实例和路由指标。
尽管您可以分配虚拟地址 0.0.0.0 以使用默认路由,但我们建议使用可分配给专门为 TLB 设置的路由实例的虚拟地址。
流量负载均衡器配置限制
表 4 描述了流量负载均衡器配置限制。
配置组件 |
配置限制 |
---|---|
最大实例数 |
从 Junos OS 16.1R6 版和 Junos OS 18.2R1 版开始,TLB 应用程序支持使用 direct-server-return 或转换模式的虚拟服务的 2000 个 TLB 实例。在早期版本中,最大实例数为 32。 如果多个虚拟服务使用同一服务器组,则所有这些虚拟服务都必须使用相同的负载平衡方法来支持 2000 个 TLB 实例。 对于使用 layer2-direct-server-return 模式的虚拟服务,TLB 仅支持 32 个 TLB 实例。要执行与 layer2-direct-server-return 模式相同的功能并支持 2000 个 TLB 实例,可以使用 direct-server-return 模式并使用带有跳过操作的服务过滤器。 |
每个组的最大服务器数 |
255 |
每个服务的最大虚拟服务数 PIC |
32 |
每个服务 PIC 在 5 秒间隔内的最大运行状况检查次数 |
对于 MS-MPC 服务卡:2000 对于新一代服务模式和 MX-SPC3 服务卡:1250 |
每个虚拟服务的最大组数 |
1 |
每个虚拟服务的最大虚拟 IP 地址数 |
1 |
支持的运行状况检查协议 |
ICMP、TCP、HTTP、SSL、TLS-Hello、自定义
注意:
ICMP 运行状况检查仅在 MS-MPC 服务卡上受支持。 从 Junos OS 22.4R1 版开始,TLB 经过增强,可支持 TLS-Hello 运行状况检查类型。对于通过 TCP 的 TLS-Hello,支持 TLS v1.2 和 v1.3 运行状况检查。 |
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。