流量负载均衡器
流量负载均衡器概述
流量负载均衡支持摘要
表 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 |
|
5 秒内每个安全服务每个 PIC/NPU 的最大 # 个 HC |
4,000 |
1,250 – 19.3R2 10,000 – 20.1R1 |
|
支持的运行状况检查协议 |
ICMP、TCP、UDP、HTTP、SSL、自定义 |
ICMP、TCP、UDP、HTTP、SSL、TLS 您好,自定义 |
|
流量负载均衡器应用说明
具有多服务模块化端口集中器 (MS-MPC)、多服务模块化接口卡 (MS-MIC) 或 MX 安全性服务处理卡 (MX-SPC3) 的 MX 系列路由器支持流量负载均衡器 (TLB),以及 MX 系列路由器上支持的模块化端口集中器 (MPC) 线卡,如 表 2 所述。
您不能同时运行确定性 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 地址的转换,以及负载平衡期间的静态目标端口转换。
流量负载均衡器的作模式
Traffic Load Balancer 提供三种作模式,用于分配传出流量和处理返回流量。
表 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 拓扑。
的 TLB 拓扑
转换模式
与透明模式第 2 层 DSR 相比,转换模式提供了更大的灵活性。当您选择转换模式时:
MS-MPC 负责执行网络监控探测。
PFE 可执行无状态负载平衡:
定向到虚拟 IP 地址的数据流量会将虚拟 IP 地址转换为真实服务器 IP 地址,并将虚拟端口转换为服务器侦听端口。返回流量进行反向转换。
将客户端流量转换为虚拟 IP 流量;流量经过路由以到达其目标。
使用隐式过滤器捕获服务器到客户端的流量,并定向到适当的负载平衡下一跃点进行反向处理。转换后,流量将路由回客户端。
有两种负载平衡方法可用:随机和哈希。随机方法仅适用于 UDP 流量,并提供 quavms 随机分布。虽然不是字面上的随机,但此模式可将流量公平地分配到一组可用的服务器。散列方法根据源 IP 地址、目标 IP 地址和协议的任意组合提供散列密钥。
注意:转换模式处理仅适用于 IPv4 到 IPv4 和 IPv6 到 IPv6 的流量。
图 2 显示了转换模式的 TLB 拓扑。
的 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 地址到实际 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相关联。服务器的状态是根据两次运行状况检查探测的结果声明的。用户最多可以为每个服务器组配置两个运行状况检查配置文件。如果服务器组配置为双重运行状况检查,则仅当两个运行状况检查探测同时启动时,才会将实际服务声明为启动;否则,将宣布实服务为 DOWN。
以下限制适用于用于服务器运行状况监控的 AMS 接口:
-
在 TLB 实例下配置的 AMS 接口专门使用其配置的成员接口对配置的多台真实服务器进行健康检查。
-
对于单个 VRF 情况,成员接口使用单元 0,但对于多个 VRF 情况,可以使用单元 1 以外的单元。
-
TLB 使用为 AMS 成员接口配置的 IP 地址作为运行状况检查的源 IP 地址。
-
成员接口必须与用于访问实际服务器的接口位于同一路由实例中。这对于 TLB 服务器运行状况检查过程是必需的。
从 Junos OS 24.2R1 版开始,当 TLS 和 SSL 配置在同一组中时,现在使用 OR 机制而不是 AND 来确定真实服务器的状态。也就是说,如果其中任何一个探测正在工作,则真实服务器将标记为“启动”。以前,只有当两个探测都成功时,才会将真实服务器标记为 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 应用程序可为使用直接服务器返回或转换模式的虚拟服务提供 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 运行状况检查。 |
也可以看看
配置 TLB
以下主题介绍如何配置 TLB。要创建完整的应用,还必须定义接口和路由信息。您可以选择性地定义防火墙过滤器和策略选项,以区分 TLB 流量。
加载 TLB 服务包
在要运行 TLB 的每个服务 PIC 上加载 TLB 服务包。
对于新一代服务和 MX-SPC3 服务卡,您无需加载此软件包。
要在服务 PIC 上加载 TLB 服务包:
装入
jservices-traffic-dird包裹。[edit chassis fpc slot-number pic pic-number adaptive-services service-package extension-provider] user@host# set package jservices-traffic-dird
例如:
[edit chassis fpc 3 pic 0 adaptive-services service-package extension-provider] user@host# set package jservices-traffic-dird
配置 TLB 实例名称
system processes sdk-service enable 来启用 sdk 服务进程。
要为 TLB 实例配置名称:
-
在层次结构级别,
[edit services traffic-load-balance]标识 TLB 实例名称。[edit services traffic-load-balance] user@host# set instance instance-name
例如:
[edit services traffic-load-balance] user@host# set instance tlb-instance1
配置接口和路由信息
要配置接口和路由信息:
配置服务器
要为 TLB 实例配置服务器:
[edit services traffic-load-balance instance instance-name] user@host# set real-service real-service-name address server-ip-address
例如:
[edit services traffic-load-balance instance tlb-instance1] user@host# set real-service rs138 address 172.26.99.138 user@host# set real-service rs139 address 172.26.99.139 user@host# set real-service rs140 address 172.26.99.140
配置网络监控配置文件
网络监控配置文件可配置一个运行状况检查探测,您可以将其分配给将会话流量分发到的服务器组。
要配置网络监控配置文件:
配置服务器组
服务器组由通过无状态、基于散列的会话分发和服务器运行状况监控将流量分发到的服务器组成。
要配置服务器组:
配置虚拟服务
虚拟服务提供与流量定向到的服务器组相关联的地址,该地址由基于散列或随机的会话分布以及服务器运行状况监控确定。您可以选择性地指定过滤器和路由实例来引导 TLB 的流量。
要配置虚拟服务:
配置健康检查监控功能的跟踪
要配置健康检查监控功能的跟踪选项:
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。