03-服务器负载均衡配置
本章节下载: 03-服务器负载均衡配置 (1.25 MB)
目 录
1.7.20 开启X-Forwarded-For字段源IP地址插入功能
1.11.14 重写HTTP应答报文Location首部的URI
1.13.11 配置TCP连接TIME-WAIT状态的超时时间
1.13.12 配置TCP连接FIN-WAIT-1状态的超时时间
1.13.13 配置TCP连接FIN-WAIT-2状态的超时时间
1.15.4 配置TCP zero-window类型负载均衡探测模板
1.15.5 配置HTTP passive类型负载均衡探测模板
在企业或大型数据中心场景下,需要多台服务器同时对外提供服务。服务器负载均衡技术能将用户流量在多台服务器间进行合理分配,从而提高服务器资源利用率,提升用户访问体验。
如图1-1所示,通过服务器负载均衡技术,管理员可将多台真实服务器配置成一台虚拟服务器,对外发布虚拟服务器的IP地址。当用户流量访问虚拟服务器时,SLB(Server Load Balancing,服务器负载均衡)设备跟据预先配置的调度算法、调度策略等为用户流量分配最优的服务器资源。
服务器负载均衡功能包含以下基本概念:
· 虚服务器:SLB设备对外提供服务的逻辑载体,由协议类型、IP地址和端口唯一标识。当客户端的访问请求到达SLB设备后,只有匹配虚服务器的流量才能进入SLB处理流程。
· 业务主机:负责响应和处理用户请求的物理服务器。
· 服务池:由多台业务主机组成的集合,它们提供相同的服务。
服务器负载均衡的工作流程如图1-2所示。
(2) 客户端向SLB设备发送访问请求,此时的源IP地址为客户端IP地址,目的IP地址为虚服务器IP地址(图中简写为VSIP,即Virtual sever's IP)。
(3) SLB设备根据健康检测方法、会话保持、调度策略、调度算法等,综合计算出将访问请求分发给哪台业务主机,并将报文的目的IP地址转换为选中的业务主机的IP地址。
(4) 设备将访问请求转发给业务主机,此时的源IP地址为客户端IP,目的IP地址为业务主机的IP地址。
(5) 业务主机接收并处理请求报文,返回响应报文,此时的源IP地址为业务主机的IP地址,目的IP地址为客户端IP地址。
(6) 设备收到响应报文后,将其源IP地址转换为虚服务器IP地址。
(7) 设备向客户端转发响应报文,此时的源IP地址为虚服务器IP地址,目的IP地址为客户端IP地址。
想要达到理想的服务器负载均衡效果,管理员需要选择合适的调度策略和调度算法,调度策略负责将符合特定规则的用户流量分配到指定的服务池中,调度算法则在服务池内选择最优的业务主机。
通过配置调度策略能够细化服务器负载均衡的粒度,SLB设备根据调度策略中配置的匹配规则,为命中匹配规则的用户流量执行指定的动作。
管理员可以在一个调度策略中指定多条匹配规则,设备会按照配置顺序进行匹配。
· 当匹配方式为匹配任意一条规则时,与某条匹配规则匹配成功就执行调度动作,否则继续匹配下一条匹配规则,若所有匹配规则均未匹配成功,则不执行调度动作。
· 当匹配方式为匹配所有规则时,仅当所有规则都匹配成功时,才会执行调度动作,否则不执行调度动作。
对于规则匹配成功的报文,设备会为其执行指定的调度动作。设备支持以下动作:
· 转发到服务池:规则匹配成功后,将流量转发至指定的服务池。
· 关闭TCP连接:规则匹配成功后,直接关闭TCP连接,设备支持通过发送FIN报文或RST报文关闭TCP连接。
· 代答:规则匹配成功后,用管理员配置的指定内容对HTTP请求报文进行应答。
· 转发:规则匹配成功后,跳过服务器负载均衡业务处理,直接对报文进行转发。
管理员通过配置不同的调度算法,可依据用户信息、业务类型或业务主机性能等不同的分配原则,将用户流量均衡地分配到各个业务主机进行处理。服务器负载均衡技术支持以下调度算法:
随机算法是将用户请求随机分发给服务池内的某台业务主机。经过一段时间后,各个业务主机的连接数大致相同。
随机算法适用于业务主机性能相近,每条流的业务负载大致相同的场景(如普通DNS、HTTP等)。
管理员可为每台参与调度的业务主机配置权值。加权轮转算法根据业务主机权值的大小,将用户请求依次分发给服务池内的每台业务主机,权值越大,分配的请求越多。
加权轮转算法适用于业务主机性能不同,但每条流的业务负载大致相同的场景。
根据识别报文信息不同,服务器负载均衡支持的哈希算法分为源IP地址哈希算法、源IP地址+端口哈希算法、目的IP地址哈希算法和HTTP载荷哈希算法。
· 源IP地址哈希算法:设备将具有相同源IP地址的用户请求分配给相同的业务主机。适用于同一源IP地址发起的请求必须要调度到同一台业务主机的场景,多用于业务本身对请求源IP地址有要求的场景。
· 源IP地址+端口哈希算法:设备将具有相同源IP地址和端口的用户请求分配给相同的业务主机。适用于同一源IP地址和端口发起的请求必须要调度到同一台业务主机的场景,多用于业务本身对请求源IP地址和端口有要求的场景。
· 目的IP地址哈希算法:设备将具有相同目的IP地址的用户请求分配给相同的业务主机。当客户端有一系列业务需要处理且必须和一台业务主机反复通信时需要用到该算法,该算法保证发送到相同目的IP地址的流量能够一直在同一台业务主机上进行处理。
· HTTP载荷哈希算法:设备将具有相同HTTP载荷的用户请求分配给相同的业务主机。
根据算法实现不同,服务器负载均衡技术支持的哈希算法分为普通哈希算法和CARP(Cache Array Routing Protocol,缓存阵列路由协议)哈希算法。
CARP哈希算法是在普通哈希算法的基础上进行了改进。在业务主机故障和服务池扩容的场景下,相比于普通哈希算法,采用CARP源哈希算法,能使当前所有可用业务主机负载分担变动最小,更好地保持流量调度的持续性。
若服务池内的某台业务主机由于故障等原因无法提供服务。则原来发送至该故障业务主机的请求,将被分配至服务池内其他可用的业务主机上;
· 采用普通哈希算法,原来发送至无故障的业务主机的请求流量,将根据源IP地址、源IP地址+端口、目的IP地址或HTTP载荷,在服务池内所有业务主机上进行重新分配。所有访问流量均需要重新分配,影响用户体验。
· 采用CRAP哈希算法,原来发送至无故障业务主机的请求,将继续被分配到原来的业务主机上。采用该算法,仅故障业务主机的访问流量会被重新分配,而不影响服务池内无故障业务主机的访问流量。
若因为服务池扩容需求,在服务池内增加了新的业务主机。
· 采用普通哈希算法,将根据源IP地址、源IP地址+端口、目的IP地址或HTTP载荷,在服务池内所有业务主机上进行重新分配,包括新增业务主机和已有业务主机。所有访问流量均需要重新分配,影响用户体验。
· 采用CRAP哈希算法,只将一部分发送至原有业务主机的流量,分配至新增业务主机;大部分流量仍然分配到已有业务主机。采用该算法,能最大程度保证用户的访问体验。
动态反馈算法根据业务主机的内存使用率、CPU使用率和磁盘使用率等信息,计算出业务主机的当前负载能力权值。负载越小,权值越大,分配到的请求越多。
该算法需要与SNMP-DCA(SNMP Data Collection Agent,SNMP数据收集代理)类型的NQA探测模板配合使用。SNMP-DCA类型的NQA探测模板向业务主机发送资源(如CPU/内存/硬盘)查询报文来获取业务主机资源的使用情况,动态反馈算法根据NQA探测模板获取的资源使用情况,综合计算出业务主机的负载能力权值。有关NQA模板的配置请参见“网络管理与监控配置指导”中的“NQA”。
动态反馈算法适用于业务主机性能不同,且每条流的业务负载和处理时间无特定规律的场景。
管理员可为每台参与调度的业务主机配置权值。加权最小连接算法总是将用户请求分发给加权活动连接数(当前业务主机的活动连接总数/权值)最小的业务主机。
加权最小连接算法适用于业务主机性能相近,但每条流的业务负载和处理时间不同的场景(如FTP等)。
最快响应算法根据业务主机的响应时间计算出当前负载能力的权值。响应时间越短,权值越大,分配到的新连接越多。
最快响应算法适用于业务主机性能相近,但每条流的业务负载较大、处理时间较长的场景。
健康检测功能可以对业务主机的状态进行周期性探测,保证其能够提供有效的服务。SLB设备主动向业务主机发送探测报文,实时探测业务主机的状态,避免将流量分配给故障的业务主机,导致服务中断。
如所示,当探测到服务器状态均为正常时,SLB设备根据调度算法将客户端的流量依次分配给每台业务主机(以业务主机权值相同的加权轮转算法为例)。
图1-3 健康检测示意图(正常状态)
如所示,当探测到某台业务主机发生故障时,SLB设备立即停止向其分配流量,并将流量调度给其他处于正常状态的业务主机。
图1-4 健康检测示意图(故障状态)
一段时间后,若故障的业务主机状态恢复正常,设备会修改该业务主机的健康检测状态,使其重新参与调度。
健康检测功能通过负载均衡探测模板或NQA探测模板实现。有关负载均衡探测模板的详细介绍,请参见“1.15 配置负载均衡探测模板”。有关NQA探测模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
会话保持是将一段时间内具有相同特征的访问流量分配给同一台业务主机进行处理。在保证用户访问连续性的同时,也减少了调度算法的重复运算,提升了转发效率。
一种典型的应用场景是:对于某些特定业务,为方便用户使用,在用户首次请求完成后,业务主机上会保存用户的相关信息,以缩短后续用户业务的响应时间,对于此种场景,建议管理员配置会话保持功能,始终将相同用户的请求分配给同一台业务主机处理。
会话保持的详细处理流程如下:
(1) 当设备首次收到具有某种特征的用户请求时,会根据调度算法将请求分发给某台业务主机。同时根据管理员配置的会话保持方法生成会话保持表项。
(2) 在会话保持表项老化之前,若设备再次收到具有相同特征的用户请求,不会再根据调度算法进行计算,而是根据已生成的会话保持表项,选择对应的业务主机进行转发。
服务器负载均衡功能常用的会话保持方法如下:
· IP地址会话保持方法:设备根据源IP地址、源端口、目的IP地址或目的端口生成会话保持表项,匹配请求报文的IP地址和端口。此方法可将源/目的IP地址属于同一网段的用户流量分配给同一台业务主机进行处理。
· HTTP Cookie会话保持方法:设备根据HTTP请求报文中的Cookie字段生成会话保持表项,匹配HTTP请求中的Cookie字段,此方法可将携带相同Cookie的HTTP请求转发至同一业务主机。由于Cookie的作用是用来区分用户以及跟踪用户访问特征,此方法可将同一用户在不同时间内的流量分配给同一台业务主机。
· 报文特定字段会话保持方法:设备根据报文的某些特定字段生成会话保持表项,比如可根据HTTP首部、HTTP实体等生成会话保持表项,此方法可将具有相同访问特征的用户分配给同一台业务主机。
根据识别信息的层级不同,服务器负载均衡可分为以下两种:
· 四层服务器负载均衡:可识别网络层和传输层信息,是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。由于四层服务器负载均衡对七层业务无法按内容分发,从而限制了其适用范围。
· 七层服务器负载均衡:除了可识别网络层和传输层信息之外,还可识别应用层信息,是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的服务器负载均衡。
如图1-5所示,在网关部署模式中,SLB设备串连部署在业务主机前端,客户端的请求和响应流量均会经过SLB设备处理。当客户端的请求流量经过SLB设备时,SLB设备根据健康检测方法、会话保持、调度策略、调度算法等选出最优的业务主机,并将客户端请求的虚IP地址转换为选中的业务主机的IP地址;在业务主机的响应流量经过SLB设备时,SLB设备会将其源IP地址还原为虚服务器IP地址。
在网关部署模式中,管理员需要在业务主机上配置缺省网关或静态路由,将发往客户端的报文发送到SLB设备上。
网关部署模式将SLB设备串接在原有组网中,会改变已有的网络拓扑,仅适用于组网较为简单的部署场景。
如图1-6所示,在旁挂部署模式中,SLB设备旁挂部署在核心交换机上,客户端的请求和响应流量均会经过SLB设备处理。
当客户端的请求流量经过SLB设备时,SLB设备根据健康检测方法、会话保持、调度策略、调度算法等选出最优的业务主机,并将客户端请求的虚IP地址转换为选中的业务主机的IP地址;在业务主机的响应流量经过SLB设备时,SLB设备会将其源IP地址还原为虚服务器IP地址。
在旁挂部署模式中,管理员需要在业务主机上配置缺省网关或静态路由,将发往客户端的报文发送到旁挂SLB设备的核心交换机上。
相比于网关部署模式,旁挂部署模式不改变原有网络拓扑,部署更为灵活。
如图1-7所示,三角传输部署模式与旁挂部署模式的网络拓扑相同,SLB设备旁挂部署在核心交换机上,但不同的是,SLB设备与业务主机之间通过二层传输,且只有客户端的请求流量会经过SLB设备处理,业务主机的响应流量不会经过SLB设备处理。当客户端的请求流量经过SLB设备时,SLB设备根据健康检测方法、会话保持、调度策略、调度算法等选出最优的业务主机,并向选中的业务主机发送访问请求,此时请求报文的源IP地址为客户端的IP地址,目的IP地址仍为虚服务器的IP地址,目的MAC地址为业务主机的MAC地址。业务主机接收并处理请求报文,并直接向客户端返回响应报文,响应报文不再经过SLB设备处理。此时的源IP地址为虚服务器的IP地址,目的IP地址为客户端IP地址。
在三角传输部署模式中,管理员需要在业务主机上配置缺省网关或静态路由,将发往客户端的报文发送到出口网关上。并且,管理员还需要在业务主机的Loopback地址配置为虚服务器IP地址。
相比于网关部署模式,三角传输部署模式不改变原有网络拓扑,部署更为灵活;相比于旁挂部署模式,三角传输部署模式的回程流量不经过SLB设备,更适用于诸如视频等业务流量较大的场景。
在单台SLB设备的组网中,一旦发生单点故障,客户端将无法访问业务主机。采用高可靠性组网可以很好的避免单点故障,保证业务的连续性。高可靠性功能支持主备、双主和集群几种工作模式。有关高可靠性的详细介绍,请参见“可靠性配置指导”中的“高可靠性”。
如图1-8所示,主备模式(A/S即Active/Standby)由两台SLB设备在一个内网(或数据中心)中组建成双机热备环境。正常情况下,仅由主设备处理业务,备设备处于待命状态;当主设备的接口、链路或整机故障时,备设备立即接替主设备处理业务,保证业务不中断。
如图1-9所示,双主模式(A/A即Dual-Active)由两台SLB设备在一个内网(或数据中心)中组建成双机热备环境。两台设备同时处理业务,充分利用设备资源,提高系统负载能力。并且当其中一台设备发生故障时,另外一台设备会立即承担其业务,保证业务不中断。
集群模式(Cluster)由多台SLB设备组建成一个可靠性系统,多台SLB设备之间不仅可以在一个内网(或数据中心)中组建成一个集群;还可以跨内网(或数据中心)组建成一个集群。集群中的多台SLB设备不仅可以形成主备或双主组网,还可以形成多主组网,进一步提高了系统的处理能力和扩容能力。
如图1-10所示,正常情况下,数据中心的不同设备可以对外发布不同的业务,这样每台设备可以集中高效地处理某一种业务,同时设备之间又可以相互备份配置信息和业务信息。
如图1-11所示,当其中一台设备故障时,其他设备可以立即接手这些流量,保证用户业务不中断。
如图1-12所示,正常情况下,多个数据中心同时对外提供服务,充分利用现有的网络资源和应用服务资源等,不同数据中心SLB设备之间的配置信息和业务信息可以相互备份。
如图1-13所示,当其中一个数据中心的某台SLB设备故障不能对外提供服务时,首先让同一数据中心的其他SLB设备立即接手这些流量,保证用户业务不中断;同理,当整个数据中心故障不能对外提供服务时,再由其他数据中心的SLB设备立即接手这些流量,保证用户业务不中断。
服务器负载均衡需要购买并正确安装License后才能使用,有关License的详细介绍,请参见“基础配置指导”中的“License管理”。
非缺省vSystem对具体命令的支持情况,请见本特性的命令参考。有关vSystem的详细介绍请参见“虚拟化技术配置指导”中的“vSystem”。
服务器负载均衡配置任务如下:
(1) 配置虚服务器
(2) 配置业务主机
(3) 配置服务池
(4) (可选)配置负载均衡策略
a. 配置调度策略
b. 配置改写策略
(5) (可选)配置会话保持
(6) (可选)配置模板及策略
¡ 配置参数模板
¡ 配置防护策略
(7) (可选)配置负载均衡ALG功能
(8) (可选)配置重新加载代答文件
(9) (可选)配置HTTP内容
(10) (可选)配置负载均衡告警、日志及报表功能
虚服务器是SLB设备上面向用户业务的虚拟载体,是为了判断是否需要对进入SLB设备的报文进行服务器负载均衡处理而引入的概念。只有与虚服务器类型、IP地址和端口均匹配的报文才会被进行服务器负载均衡处理。
服务器负载均衡支持的虚服务器类型为IP、TCP、UDP、HTTP、HTTPS、TCP代理、SSL、RADIUS、基于TCP的SIP和基于UDP的SIP。除IP类型之外,其他类型的虚服务器需要安装License才能使用,有关License的详细介绍,请参见“基础配置指导”中的“License管理”。
如果同时引用服务池和调度策略,报文会被优先交给调度策略处理,当调度策略无法处理时再交给服务池处理。
虚服务器(四层)配置任务如下:
(1) 配置虚服务器基本功能
a. 创建虚服务器
b. 配置VSIP和端口号
(2) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 引用服务池
¡ 引用调度策略
(3) (可选)引用会话保持
(4) (可选)配置SNAT地址转换方式
(5) (可选)配置连接数限制规则
(6) (可选)配置虚服务器的带宽和连接速率
(7) (可选)配置虚服务器高级功能
(8) (可选)指定发送免费ARP报文或ND报文的接口
(9) (可选)配置服务器负载均衡支持高可靠性
(10) 开启虚服务器
虚服务器(七层)配置任务如下:
(1) 配置虚服务器基本功能
a. 创建虚服务器
b. 配置VSIP和端口号
(2) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 引用服务池
¡ 引用调度策略
¡ 引用改写策略
(3) (可选)引用对象及策略
¡ 引用会话保持
¡ 引用参数模板
¡ 引用SSL策略
(4) (可选)配置SNAT地址转换方式
(5) (可选)配置连接数限制规则
(6) (可选)配置虚服务器的带宽和连接速率
(7) (可选)配置虚服务器高级功能
¡ 开启X-Forwarded-For字段源IP地址插入功能
(8) (可选)指定发送免费ARP报文或ND报文的接口
(9) (可选)配置快速日志输出内容
(10) 开启虚服务器
四层服务器负载均衡的虚服务器包括IP、TCP和UDP三种类型。
七层服务器负载均衡的虚服务器包括HTTP、HTTPS、RADIUS、基于TCP的SIP、基于UDP的SIP类型、SSL和TCP代理。
(1) 进入系统视图。
system-view
(2) 创建IP、TCP或UDP类型的虚服务器,并进入虚服务器视图。
loadbalance virtual-server virtual-server-name type { ip | tcp | udp }
创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置虚服务器的描述信息。
description text
缺省情况下,未配置虚服务器的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP、HTTPS、RADIUS、基于TCP的SIP、基于UDP的SIP类型、SSL或TCP代理类型的虚服务器,并进入虚服务器视图。
loadbalance virtual-server virtual-server-name type { http | https | radius | sip-tcp | sip-udp | ssl | tcp-proxy }
创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置虚服务器的描述信息。
description text
缺省情况下,未配置虚服务器的描述信息。
HTTP、HTTPS、RADIUS、基于TCP的SIP、SSL、TCP和TCP代理类型虚服务器的VSIP和端口号不能都相同。
UDP类型和基于UDP的SIP类型虚服务器的VSIP和端口号不能都相同。
(1) 进入系统视图。
system-view
(2) 进入IP、TCP或UDP类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置虚服务器的IP地址。
(IPv4网络)
virtual ip address ipv4-address [ mask-length | mask ]
(IPv6网络)
virtual ipv6 address ipv6-address [ prefix-length ]
缺省情况下,未配置虚服务器的IP地址。
(4) 配置虚服务器的端口号。
port { port-number [ to port-number ] } &<1-n>
缺省情况下,IP、TCP和UDP类型虚服务器的端口号为0(表示任意端口号)。
(1) 进入系统视图。
system-view
(2) 进入HTTP、HTTPS、RADIUS、基于TCP的SIP、基于UDP的SIP类型、SSL或TCP代理类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置虚服务器的IP地址。
(IPv4网络)
virtual ip address ipv4-address
(IPv6网络)
virtual ipv6 address ipv6-address
缺省情况下,未配置虚服务器的IP地址。
(4) 配置虚服务器的端口号。
port { port-number [ to port-number ] } &<1-n>
缺省情况下,HTTP类型虚服务器的端口号为80;HTTPS和SSL类型虚服务的端口号为443;RADIUS类型虚服务器的端口号为0(表示任意端口号);SIP类型虚服务器的端口号为5060;TCP代理类型的虚服务器无缺省端口号。
对于TCP代理类型的虚服务器,必须为其配置一个非缺省端口号(通常配置为80)。
本功能用来为指定虚服务器引用的服务池。当服务池可用(该服务池存在且有可用的服务池成员)时,匹配当前虚服务器的流量通过指定的服务池进行服务器负载均衡处理。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的服务池。
default service-pool service-pool-name
缺省情况下,虚服务器未引用服务池。
虚服务器引用调度策略,能够细化负载均衡的粒度。根据调度策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
设备支持在同一虚服务器中引用多个调度策略。用户流量按照调度策略的顺序依次进行匹配。管理员可以在初次引用调度策略时,指定其插入的位置;也可以通过重新引用调度策略调整其匹配顺序。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的调度策略。
schedule-policy policy-name [ insert-after policy-name-2 | insert-before policy-name-2 | bottom | top ]
缺省情况下,虚服务器未引用调度策略。
虚服务器只能引用与自身类型相同的调度策略,如:HTTP类型的虚服务器只能引用HTTP类型的调度策略;IP类型的虚服务器只能引用IP类型的调度策略;RADIUS类型的虚服务器只能引用RADIUS类型的调度策略。
虚服务器引用改写策略,能够根据改写策略中的匹配规则,对命中虚服务器的报文根据不同的报文内容进行不同的改写操作。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的改写策略。
modify-policy policy-name
缺省情况下,虚服务器未引用改写策略。
会话保持的作用是根据某种会话保持方法将具有一定相关性的会话都分配给同一个业务主机处理。
如果用户既配置了主用会话保持,也配置了备用会话保持,则会根据两个会话保持同时生成主用会话保持表项和备用会话保持表项。当有新的流量进行会话保持表项匹配时,如果未能匹配到主用会话保持表项,则进行备用会话保持表项匹配。
若配置主用会话保持为HTTP Cookie会话保持,则备用会话保持只能配置为地址端口会话保持或HTTP passive会话保持;若配置主用会话保持为RADIUS属性会话保持,则备用会话保持只能配置为地址端口会话保持;若配置主用会话保持不是HTTP Cookie或RADIUS属性会话保持,则不支持配置备用会话保持。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的会话保持。
persistence persistence-name [ backup backup-persistence-name ]
缺省情况下,虚服务器未引用会话保持。
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
通过在虚服务器中引用HTTP或HTTP2.0类型的参数模板,可实现对不同协议版本的HTTP报文进行优化和处理:
· 引用HTTP类型的参数模板,仅能对协议版本为1.0和1.1的HTTP报文进行优化和处理。
· 引用HTTP2.0类型的参数模板,可以对协议版本为2.0及以下版本的HTTP报文进行优化和处理。
HTTP、HTTP压缩、HTTP2.0和OneConnect类型的参数模板只能被HTTP和HTTPS类型的虚服务器引用;TCP代理类型的参数模板可以被HTTP、HTTPS、SSL或七层TCP类型的虚服务器引用。
(1) 进入系统视图。
system-view
(2) 进入HTTP、HTTPS、SSL或TCP代理类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的参数模板。
parameter { http | http-compression | http2 client-side | oneconnect | tcp-proxy [ client-side | server-side ] } profile-name
缺省情况下,虚服务器未引用参数模板。
通过在HTTP类型的虚服务器视图下引用HTTP防护策略,可以对防护策略中指定的URI进行防护,从而保护负载均衡设备和内网服务器的安全。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的防护策略。
protection-policy http policy-name
缺省情况下,虚服务器未引用防护策略。
通过在虚服务器引用的SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。设备仅支持在同一虚服务视图下引用一个SSL客户端策略。
通过在虚服务器中引用的SSL服务器端策略,可以对负载均衡设备(作为SSL服务器)与SSL客户端之间传输的流量进行加密传输。设备支持在同一虚服务器中引用多个SSL服务器端策略,流量会优先匹配排序更靠前的SSL服务器端策略。缺省情况下,SSL服务器端策略按照配置的先后顺序排序,管理员可通过执行move ssl-server-policy命令调整SSL服务器端策略的排序。
(1) 进入系统视图。
system-view
(2) 进入HTTP、HTTPS和SSL类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的SSL客户端策略。
ssl-client-policy policy-name
缺省情况下,虚服务器未引用SSL客户端策略。
(4) 指定虚服务器引用的SSL服务器端策略。
ssl-server-policy policy-name
缺省情况下,虚服务器未引用SSL服务器策略。
仅HTTPS和SSL类型的虚服务器支持引用SSL服务器端策略。
(5) (可选)调整SSL服务器端策略的排序。
move ssl-server-policy policy-name1 { after policy-name2 | before policy-name2 | bottom | top }
缺省情况下,SSL服务器端策略按照配置的先后顺序排序。
待移动的SSL服务器端策略和用于参照的SSL服务器端策略必须已被当前虚服务器引用,本命令才能生效。
管理员在虚服务器中配置了SNAT转换方式后,负载均衡设备将把收到报文的源IP地址按照对应的方式转换后再转发出去。设备支持配置两种源地址转换方式:
· 自动映射:采用设备与业务主机通信的接口IP地址进行源地址转换。
· SNAT地址池:根据配置的SNAT地址池进行源地址转换。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置SNAT地址转换方式。
snat-mode { auto-map | snat-pool pool-name }
缺省情况下,未配置SNAT地址转换方式。
通过配置连接数限制规则,对源IP地址匹配指定IP地址段的报文进行连接数的统计和限制。当指定IP地址段的连接数超过配置的上限时,停止新建连接并等待连接数下降到配置的下限时,才允许建立新的连接。
每个虚服务器中可以配置多条连接数限制规则,设备将按照管理员的配置顺序依次匹配该虚服务器中的所有连接数限制规则,直到匹配成功或者匹配完全部规则为止。
管理员可以通过配置调整连接数限制规则的排序。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置连接数限制规则。
connection-limit-rule rule-name { any | per-source { ip { subnet ipv4-address { mask-length | mask } | range start-ipv4-address end-ipv4-address } | ipv6 { subnet ipv6-address prefix-length | range start-ipv6-address end-ipv6-address } } amount max-amount min-amount
缺省情况下,未配置虚服服器的连接数限制规则。
(4) 调整连接数限制规则的排序。
move connection-limit rule-name1 { after rule-name2 | before rule-name2 | bottom | top }
通过本配置可以调整虚服务器所允许的最大带宽和最大连接速率。当用户流量超过配置的最大带宽或最大连接速率,SLB设备就会判断虚服务器进入繁忙状态,停止新建连接。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置虚服务器所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value
缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置虚服务器所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,虚服务器所允许的最大连接速率为0,即不受限制。
通过配置ToS字段值,可以设置发往业务主机的报文优先级。当报文流量较大时,业务主机可以优先处理优先级高的报文。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置发往业务主机的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往业务主机的IP报文中的ToS字段。
当UDP强制负载均衡功能关闭时,匹配虚服务器的流量按照数据流来进行负载均衡,即一个应用的流量会被负载均衡到同一个业务主机上;而当UDP强制负载均衡功能开启后,匹配虚服务器的流量不再按照流来进行负载均衡,而是按照每报文来进行负载均衡。
(1) 进入系统视图。
system-view
(2) 进入RADIUS、基于UDP的SIP或UDP类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 开启虚服务器的UDP强制负载均衡功能。
udp per-packet
缺省情况下,虚服务器的UDP强制负载均衡功能处于关闭状态。
缺省情况下,设备仅对HTTP连接的首个请求报文进行负载均衡,后续请求报文沿用其负载均衡结果。通过配置对HTTP请求进行逐包负载均衡,可对收到的每个HTTP请求报文都进行处理。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置对HTTP请求进行逐包负载均衡。
rebalance per-request
缺省情况下,仅对HTTP连接的首个请求报文进行负载均衡,后续请求报文沿用其负载均衡结果。
开启本功能后,当设备收到客户端的请求报文后,会在HTTP报文拓展头的X-Forwarded-For字段插入客户端的源IP地址。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 开启X-Forwarded-For字段源IP地址插入功能。
insert-xff enable
缺省情况下,X-Forwarded-For字段源IP地址插入功能处于关闭状态。
iShell脚本文件基于Lua脚本语言,是一种可扩展的脚本编程接口。通过在服务器负载均衡业务处理过程中嵌入该接口,可以更加灵活地对业务处理进行控制。通过在虚服务器视图中引用iShell脚本文件,可对匹配虚服务器流量按照脚本的定义进行个性化的处理。
设备已经预置了部分事件和接口可供参考和引用,管理员可以在设备Web页面下载并查阅“iShell帮助文档”,以便于更好的理解与编写iShell脚本文件。
在通过执行本命令引用iShell脚本文件之前,需要先使用FTP或TFTP方式将脚本文件下载到任一文件系统的目录下。FTP、TFTP和文件系统管理的具体介绍请参见“基础配置指导”中的“FTP和TFTP”和“文件系统管理”。
(1) 进入系统视图。
system-view
(2) 进入UDP或TCP代理类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置虚服务器引用的iShell脚本文件。
ishell filename
缺省情况下,虚服务器未引用iShell脚本文件。
在多数据中心的容灾备份组网中,通过在各数据中心的负载均衡设备上开启虚服务器IP地址发布功能,可以实现多数据中心之间的全局负载均衡。
开启虚服务器IP地址发布功能后,设备会将虚服务器的IP地址发布给OSPF模块参与路由计算,当数据中心进行切换的时候,保证访问虚服务器的流量也可以自动切换,从而提高负载均衡服务的可靠性。有关OSPF的配置请参见“三层技术-IP路由”中的“OSPF”。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 开启虚服务器IP地址发布功能。
route-advertisement enable
缺省情况下,虚服务器IP地址发布功能处于关闭状态。
通过本配置可从设备的指定接口发送免费ARP报文和ND报文。有关免费ARP的详细介绍,请参见“三层技术-IP业务配置指导”中的“ARP”。有关ND报文的详细介绍,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
若管理员配置虚服务器IP地址与设备出接口IP地址同网段,则需要将设备出接口指定为发送免费ARP报文或ND报文的接口。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定发送免费ARP报文或者ND报文的接口。
arp-nd interface { all | interface-type interface-number }
缺省情况下,未指定发送免费ARP报文或者ND报文的接口。
在高可靠性双机热备组网中,在远端备份组的主管理设备上配置服务器负载均衡功能时,需要通过配置本功能,将虚服务器与VRRP备份组绑定,以保证正反向报文在同一台Master设备上处理。关于远端备份组的详细介绍,请参见“可靠性配置指导”中的“高可靠性”。
对于绑定了不同VRRP备份组的多个虚服务器,不允许引用同一个SNAT地址池。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置虚服务器绑定的VRRP备份组。
vrrp vrid virtual-router-id
缺省情况下,未绑定任何VRRP备份组。
在服务器负载均衡的高可靠性集群组网环境中,集群通过RBM(Remote Backup Management,远端备份管理)协议将多台SLB设备组建成高可靠性系统,并通过专用通道进行集群成员之间配置信息和业务表项信息的同步。当其中一台SLB设备故障时,其他SLB设备可以立即接手这些流量,保证服务器负载均衡业务不中断。有关高可靠性集群的详细介绍,请参见“可靠性配置指导”中的“高可靠性”。
在高可靠性集群组网中,流量组是集群中处理业务的基本逻辑单元。管理员必须在虚服务器中引用指定的集群流量组,才能保证以唯一的MAC地址应答目标IP地址为虚服务器的IP地址的ARP请求。
缺省情况下,若SLB设备接收到的ARP报文请求的目标IP地址为虚服务器的IP地址,其与接口的IP地址在同一网段,则SLB设备使用设备接口的物理MAC地址应答此ARP请求报文。
如图1-14所示,在集群组网环境中配置SLB功能后,没有在虚服务器中引用集群流量组,报文处理的流程如下:
(1) 若虚服务器IP地址与SLB device A的上行接口VRRP备份组1的虚拟IP地址在同一网段,则当外网用户的请求流量到达Router后,因为目的IP地址是直连路由所以Router会广播ARP报文请求虚服务器IP地址对应的MAC地址,而不是请求集群流量组中VRRP备份组1虚拟IP地址对应的MAC地址。
(2) 当SLB device A、SLB device B和SLB device C接收到此ARP请求报文后,因为多台SLB device上有相同的虚服务器配置,所以多台SLB device都会将自身上行接口的物理MAC地址应答给Router。
(3) 在这种情况下,Router就会时而以SLB device A上行接口的MAC地址来封装报文,将报文送到SLB device A;时而以SLB device B或SLB device C上行接口的MAC地址来封装报文,将报文送到SLB device B或SLB device C,从而影响业务的正常运行。
当在虚服务器中引用集群流量组后,若SLB设备接收到的ARP报文请求的目标IP地址与设备接口的IP地址在同一网段,则只能由集群流量组中的主设备使用VRRP备份组虚拟IP地址对应的MAC地址响应此ARP请求。
如图1-15所示,在集群组网环境中配置SLB功能后,虚服务器中引用了集群流量组的情况下,报文处理的流程如下:
(4) 若虚服务器IP地址与SLB device A的上行接口VRRP备份组1的虚拟IP地址在同一网段,则当外网用户的请求流量到达Router后,因为目的IP地址是直连路由所以Router会广播ARP报文请求虚服务器IP地址对应的MAC地址,而不是请求集群流量组中VRRP备份组1虚拟IP地址对应的MAC地址。
(5) 当SLB device A、SLB device B和SLB device C接收到此ARP请求报文后,因为在虚服务器中引用了集群流量组,所以只有集群流量组主设备(SLB device A)使用VRRP备份组1的虚拟MAC地址响应此ARP请求给Router。
(6) 在这种情况下,Router只会收到集群流量组主设备(SLB device A)响应的ARP报文,Router就会以VRRP备份组1的虚拟MAC地址来封装报文,将报文送到SLB device A,从而可以保证业务的正常运行。
对于绑定了不同流量组的多个虚服务器,不允许引用同一个SNAT地址池。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 指定虚服务器引用的集群流量组。
traffic-group traffic-group-id
缺省情况下,未指定虚服务器引用的集群流量组。
通过配置本功能,可以根据用户需求指定负载均衡快速日志的输出内容。设备将把指定内容的日志信息采用快速日志方式发往日志主机。若管理员配置了快速日志输出的ACL过滤规则,则设备仅对符合ACL过滤规则的流量输出快速日志。
配置本功能前,请确保负载均衡模块的快速日志输出功能已开启(custom format)且已配置了快速日志输出参数(custom host)。有关快速日志的详细介绍,请参见“设备管理配置指导”中的“快速日志输出”。
快速日志输出内容支持配置变量,具体支持的变量请参见命令手册。
设备仅支持匹配ACL过滤规则中的源IP地址、源端口、目的IP地址和目的端口,对于ACL过滤规则中的其他匹配条件,设备会自动忽略,不会进行匹配。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 配置快速日志输出的内容。
log content content-value
缺省情况下,无快速日志输出。
(4) (可选)配置快速日志输出的ACL过滤规则。
log acl { ip | ipv6 } acl-number
缺省情况下,未配置快速日志输出的ACL过滤规则。
通过本命令引用的ACL必须已存在,且ACL中必须已配置了ACL规则。否则,可能会导致流量不能成功匹配ACL,无法输出快速日志。
配置完虚服务器后,需要将其开启后才能进入工作状态。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
loadbalance virtual-server virtual-server-name
(3) 开启虚服务器。
service enable
缺省情况下,虚服务器处于关闭状态。
业务主机是负载均衡设备上处理用户业务的实体。一个业务主机可以属于多个服务池,一个服务池也可以包含多个业务主机。
四层和七层服务器负载均衡的业务主机配置完全相同。
业务主机配置任务如下:
(1) 创建业务主机
(2) 配置业务主机的IP地址和端口号
(3) (可选)配置业务主机的权值
(4) (可选)配置业务主机的连接参数
(5) (可选)配置业务主机的健康检测功能
(6) (可选)配置业务主机的工作状态
(1) 进入系统视图。
system-view
(2) 创建业务主机,并进入业务主机视图。
loadbalance service-host service-host-name
(3) (可选)配置业务主机的描述信息。
description text
缺省情况下,未配置业务主机的描述信息。
(1) 进入系统视图。
system-view
(2) 进入业务主机视图。
loadbalance service-host service-host-name
(3) 配置业务主机的IP地址。
(IPv4网络)
ip address ipv4-address
(IPv6网络)
ipv6 address ipv6-address
缺省情况下,未配置业务主机的IP地址。
(4) 配置业务主机的端口号。
port port-number
缺省情况下,业务主机的端口号为0(表示继续使用原报文携带的端口号)。
通过本配置可以调整最小连接算法(基于业务主机)、最快响应算法(基于业务主机)和加权轮转算法所使用的业务主机的权值。
(1) 进入系统视图。
system-view
(2) 进入业务主机视图。
loadbalance service-host service-host-name
(3) 配置业务主机的权值。
weight weight-value
缺省情况下,业务主机的权值为100。
通过本配置可以调整业务主机所允许的最大连接数、最大连接速率和最大HTTP请求速率。这些参数值都是判断业务主机是否繁忙的依据。只要访问业务主机的连接数、每秒连接数或每秒HTTP请求数三者之一超过配置的数值,则业务主机进入繁忙状态。SLB设备不再将用户请求分配给处于繁忙状态的业务主机,直到判断繁忙状态的三个连接参数全部小于配置的值为止。
(1) 进入系统视图。
system-view
(2) 进入业务主机视图。
loadbalance service-host service-host-name
(3) 配置业务主机所允许的最大连接数。
connection-limit max max-number
缺省情况下,业务主机所允许的最大连接数为0,即不受限制。
(4) 配置业务主机所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,业务主机所允许的最大连接速率为0,即不受限制。
(5) 业务主机所允许的最大HTTP请求速率。
rate-limit http-request request-number
缺省情况下,业务主机所允许的最大HTTP请求速率为0,即不受限制。
通过在业务主机视图下配置健康检测方法,可以对业务主机进行探测,保证其能够提供有效的服务。
管理员可以配置健康检测方法所使用的模板为负载均衡探测模板或NQA探测模板。有关负载均衡探测模板的详细介绍,请参见“配置负载均衡探测模板”。有关NQA探测模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
若管理员为同一业务主机指定多个健康检测方法,SLB设备依据管理员配置的健康检测成功条件,判断健康检测结果。设备支持以下两种健康检测的成功条件:
· 只有全部方法都通过检测,设备才认为健康检测成功
· 只要指定数量的方法通过检测,设备就认为健康成功。当管理员指定的最少方法数大于设备上实际存在的方法数量时,只要全部方法都通过检测,设备也将认为健康检测成功
用户可在服务池视图下配置对池中所有成员进行健康检测,也可在服务池成员视图下配置只对当前成员进行健康检测,或者在业务主机视图下配置只对当前业务主机进行健康检测,后两者的配置优先级相同,且高于服务池视图下的健康检测配置。建议优先在服务池视图下配置健康检测。
若将某业务主机添加为服务池成员,且同时配置对业务主机和服务池成员进行健康检测。则业务主机的健康检测结果会影响服务池成员健康检测结果;但是,服务池成员的健康检测结果不会影响业务主机健康检测结果。
(1) 进入系统视图。
system-view
(2) 进入业务主机视图。
loadbalance service-host service-host-name
(3) 指定业务主机的健康检测方法。
probe template-name
缺省情况下,未指定业务主机的健康检测方法。
(4) 配置业务主机健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过配置本功能,可以指定业务主机的工作状态。
· 当业务主机处于开启状态时,业务主机可正常参与调度。
· 当业务主机处于关闭状态时,设备会立即中断业务主机已有的非活动连接,维持现有活动连接,并且不再接收新的连接请求。在此状态下,会话保持表项立即老化。
· 当业务主机处于平滑退出状态时,不会立即中断业务主机的已有连接,而是让其自然老化,并且不再建立新的连接。在此状态下,会话保持表项自然老化。
(1) 进入系统视图。
system-view
(2) 进入业务主机视图。
loadbalance service-host service-host-name
(3) 配置业务主机的工作状态
service { offline | online | slow-offline }
缺省情况下,业务主机处于开启状态。
为了便于对多台业务主机进行统一管理,可将具有相同或相似功能的业务主机划分到相同的服务池。比如,可按不同的业务内容划分为歌曲服务池、视频服务池和图片服务池等。
四层和七层服务器负载均衡的服务池配置完全相同。
服务池配置任务如下:
(1) 创建服务池
(2) 添加并配置服务池成员
a. 添加服务池成员
b. (可选)配置服务池成员的权值
c. (可选)配置服务池成员的调用优先级
d. (可选)配置服务池成员的连接参数
e. (可选)配置服务池成员的健康检测功能
f. (可选)配置服务池成员的工作状态
(3) 配置服务池的调度算法
(4) 配置NAT功能
请至少选择其中一项进行配置:
¡ 配置NAT模式
(5) (可选)配置温暖上线功能
(6) (可选)配置服务池的健康检测功能
(7) (可选)配置服务池繁忙处理方式
(8) (可选)配置服务池的故障处理方式
(1) 进入系统视图。
system-view
(2) 创建服务池,并进入服务池视图。
loadbalance service-pool service-pool-name
(3) (可选)配置服务池的描述信息。
description text
缺省情况下,未配置服务池的描述信息。
服务池成员是一个抽象的概念,它表示业务主机在服务池中承载当前服务池业务的部分。而业务主机是一个整体,是该业务主机在所有服务池中的成员总和。管理员可在不同服务池视图中,将同一业务主机添加为各自的服务池成员,这样就可以分别对每个服务池成员的权值、调用优先级和连接参数等进行管理。
当管理员向服务池中添加业务主机时,若业务主机已存在,通过配置本功能可将业务主机添加为服务池成员;若业务主机不存在,设备会自动关联创建相同名称的业务主机。
管理员可将同一业务主机添加为多个服务池的成员,也可将同一业务主机添加为同一服务池的多个成员,它们的端口号必须不同。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 将指定业务主机添加为服务池成员,并进入服务池成员视图。
service-host service-host-name port port-number
缺省情况下,不存在服务池成员。
(4) (可选)配置服务池成员的描述信息。
description text
缺省情况下,未配置服务池成员的描述信息。
通过本配置可以调整最小连接算法(基于服务池成员)和最快响应算法(基于服务池成员)所使用的服务池成员的权值。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 进入服务池成员视图。
service-host service-host-name port port-number
(4) 配置服务池成员的权值。
weight weight-value
缺省情况下,服务池成员的权值为100。
管理员可通过配置本功能指定服务池成员的调用优先级,取值越大,越被优先调用。
缺省情况下,仅优先级最高的服务池成员参与调度,如果可用服务池成员数量未到达预设的最低门限,则将次高优先级的服务池成员均加入调度,依次类推,直至达到预设的最小参与调度个数或没有可用服务池成员为止。若将某一个优先级的服务池成员均加入调度后,超出了预设的最大参与调度个数,则只加入部分此优先级的服务池成员,此时最终参与调度的可用服务池成员个数将为预设的最大参与调度个数。
最大参与调度个数和最小参与调度个数的配置请参见“配置服务池的调度算法”。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 进入服务池成员视图。
service-host service-host-name port port-number
(4) 配置服务池成员的调用优先级。
priority priority
缺省情况下,服务池成员的调度优先级为4。
通过本配置可以调整服务池成员所允许的最大连接数、最大连接速率和最大HTTP请求速率。这些参数值都是判断服务池成员是否繁忙的依据。若服务池成员的连接数、每秒连接数或每秒HTTP请求数超过配置的数值,则服务池成员进入繁忙状态。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 进入服务池成员视图。
service-host service-host-name port port-number
(4) 配置服务池成员所允许的最大连接数。
connection-limit max max-number
缺省情况下,服务池成员所允许的最大连接数为0,即不受限制。
(5) 配置服务池成员所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,服务池成员所允许的最大连接速率为0,即不受限制。
(6) 服务池成员所允许的最大HTTP请求速率。
rate-limit http-request request-number
缺省情况下,服务池成员所允许的最大HTTP请求速率为0,即不受限制。
通过在服务池成员视图下配置健康检测方法,可以对服务池成员进行探测,保证其能够提供有效的服务。
管理员可以配置健康检测方法所使用的模板为负载均衡探测模板或NQA探测模板。有关负载均衡探测模板的详细介绍,请参见“配置负载均衡探测模板”。有关NQA探测模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
用户既可在服务池视图下配置对池中的所有成员进行健康检测,也可在服务池成员视图下配置只对当前成员进行配置,后者的配置优先级较高。
若将某业务主机添加为服务池成员,且同时配置对业务主机和服务池成员进行健康检测。则业务主机的健康检测结果会影响服务池成员健康检测结果;服务池成员的健康检测结果不会影响业务主机健康检测结果。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 进入服务池成员视图。
service-host service-host-name port port-number
(4) 指定服务池成员的健康检测方法。
probe template-name
缺省情况下,未指定服务池成员的健康检测方法。
当配置健康检测方法使用的模板为SNMP-DCA类型的NQA探测模板时,健康检测使用NQA探测模板视图下的destination port命令配置的端口号(缺省值为161)作为探测的目的端口号,service-host命令中指定的port参数不生效。
(5) 配置服务池成员健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过配置本功能,可以指定服务池成员的工作状态。
· 当服务池成员处于开启状态时,业务主机可正常参与调度。
· 当服务池成员处于关闭状态时,设备会立即中断服务池成员已有的非活动连接,维持现有活动连接,并且不再接收新的连接请求。在此状态下,会话保持表项立即老化。
· 当服务池成员处于平滑退出状态时,不会立即中断服务池成员的已有连接,而是让其自然老化,并且不再建立新的连接。在此状态下,会话保持表项自然老化。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 进入服务池成员视图。
service-host service-host-name port port-number
(4) 配置服务池成员的工作状态
service { offline | online | slow-offline }
缺省情况下,服务池成员处于开启状态。
设备根据服务池中配置的调度算法,计算出处理用户请求的业务主机。对于调度算法的详细介绍,请参见“调度算法”。
加权最小连接算法和最快响应算法根据计算范围不同,可分为:
· 基于业务主机的调度算法:算法所使用的参数为业务主机的整体性能参数,使用的权值为业务主机视图下配置的权值。
· 基于服务池成员的调度算法:算法所使用的参数为服务池成员在当前服务池中的性能参数,使用的权值为服务池成员视图下配置的权值。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 配置服务池的调度算法。
¡ 基于业务主机:
predictor { dync-round-robin | least-connection | least-time | { bandwidth | max-bandwidth } [ inbound | outbound ] }
¡ 基于服务池成员:
predictor hash [ carp ] address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ]
predictor hash [ carp ] http [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
predictor { least-connection member | least-time member | random | round-robin }
缺省情况下,服务池的调度算法为加权轮转算法。
(4) 配置服务池中可被调度算法调用的成员数量限制。
selected-host min min-number max max-number
缺省情况下,服务池中调用优先级最高的成员全部被调度算法调用。
在三角传输模式下,需要在服务池中关闭DNAT功能。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
service-pool service-pool-name
(3) 在服务池中关闭DNAT功能。
undo dnat enable
缺省情况下,服务池中的DNAT功能处于开启状态。
服务池被HTTP类型的虚服务器引用时,即使关闭了DNAT功能也将仍按照DNAT模式处理。
NAT模式又分为DNAT、SNAT和DNAT+SNAT这三种实现方式。对于DNAT方式,只需在服务池中开启NAT功能即可;而对于SNAT和DNAT+SNAT这两种方式,还需在虚服务器中,配置SNAT地址转换方式。负载均衡设备将把收到报文的源IP地址按照对应的方式转换后再转发出去。有关SNAT转换方式的配置,请参见“配置SNAT地址转换方式”。
一个SNAT地址池由多个地址成员组成,每个地址成员最多包含256个IPv4地址或65536个IPv6地址,且不同SNAT地址成员中的IPv4或IPv6地址不允许重叠,同一SNAT地址池的不同地址成员中,也不允许包含相同的IPv4地址。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 开启服务池的DNAT功能。
dnat enable
缺省情况下,服务池的DNAT功能处于开启状态。
服务池被HTTP类型的虚服务器引用时,即使关闭了DNAT功能也将仍按照DNAT模式处理。
(1) 进入系统视图。
system-view
(2) 创建SNAT地址池,并进入SNAT地址池视图。
loadbalance snat-pool pool-name
(3) (可选)配置SNAT地址池的描述信息。
description text
缺省情况下,未配置SNAT地址池的描述信息。
(4) 添加SNAT地址池的IP地址成员。
(IPv4网络)
ip range start start-ipv4-address end end-ipv4-address
(IPv6网络)
ipv6 range start start-ipv6-address end end-ipv6-address
缺省情况下,未配置SNAT地址池的IP地址成员。
(5) 退回系统视图。
quit
(6) (可选)指定发送免费ARP报文或者ND报文的接口。
arp-nd interface interface-type interface-number
缺省情况下,未指定发送免费ARP报文或者ND报文的接口。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 开启服务池的SNAT功能。
snat enable
缺省情况下,服务池的SNAT功能处于开启状态。
当向服务池中添加业务主机时,某些新增的业务主机无法立即承担大量业务,此时可以开启温暖上线功能。这样,当业务主机上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 在服务池中开启业务主机的温暖上线功能。
slow-online [ standby-time standby-time ramp-up-time ramp-up-time ]
缺省情况下,服务池中业务主机的温暖上线功能处于关闭状态。
通过在服务池视图下配置健康检测方法,可以对服务池内所有成员进行探测,保证其能够提供有效的服务。
管理员可以配置健康检测方法所使用的模板为负载均衡探测模板或NQA探测模板。有关负载均衡探测模板的详细介绍,请参见“配置负载均衡探测模板”。有关NQA探测模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
用户可在服务池视图下配置对池中所有成员进行健康检测,也可在服务池成员视图下配置只对当前成员进行健康检测,或者在业务主机视图下配置只对当前业务主机进行健康检测,后两者的配置优先级相同,且高于服务池视图下的健康检测配置。建议优先在服务池视图下配置健康检测。
若将某业务主机添加为服务池成员,且同时配置对业务主机和服务池成员进行健康检测。则业务主机的健康检测结果会影响服务池成员健康检测结果;服务池成员的健康检测结果不会影响业务主机健康检测结果。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 指定服务池的健康检测方法。
probe template-name
缺省情况下,未指定服务池的健康检测方法。
(4) 配置服务池健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
只有当服务池中所有成员均处于繁忙状态时,服务池才处于繁忙状态。通过本配置可以指定服务池处于繁忙状态的处理方式。设备支持以下三种繁忙处理方式:
· 调度失败:设备停止向处于繁忙状态的服务池分发流量,若配置继续匹配下一条调度策略/改写策略,则继续进行匹配,否则直接丢弃请求报文。
· 排队等待:设备停止向处于繁忙状态的服务池分发流量,并且将新的请求报文加入等待队列。若等待队列的长度超过配置的队列长度,后续的请求报文将会被丢弃;若请求报文加入队列后的等待时间超过配置的老化时间,请求报文将会被丢弃。
· 强制调度:服务池中的所有成员均参与调度。
系统判断服务池成员是否处于繁忙状态的依据包括:服务池成员所允许的最大连接数、服务池成员所允许的最大连接速率、服务池成员所允许的最大HTTP请求速率和SNMP-DCA探测模板返回的探测状态。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 配置服务池的繁忙处理方式。
busy-action { drop | enqueue length length timeout timeout-value | force }
缺省情况下,服务池的繁忙处理方式为调度失败。
通过本功能可以指定服务池成员发生故障时的处理方式:
· 保持已有连接:不主动断开与故障服务池成员的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到服务池中其它可用的成员上。
· 断开已有连接:主动断开与故障服务池成员的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
(1) 进入系统视图。
system-view
(2) 进入服务池视图。
loadbalance service-pool service-pool-name
(3) 配置服务池的故障处理方式。
fail-action { keep | reschedule | reset }
缺省情况下,服务池的故障处理方式为保持已有连接。
调度策略是指导报文转发的一种方式,用户可以为匹配特定匹配规则的报文指定执行的调度动作。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何调度动作。
用户可以在一个调度策略中指定多个匹配规则,转发报文时会按照配置顺序来进行匹配,匹配成功则执行相应的动作,不会继续匹配下一条匹配规则,否则继续匹配下一条匹配规则。因此,当匹配规则之间存在包含关系时,建议将更精细的匹配规则放在前面,宽泛的匹配规则放在后面。如果所有匹配规则均未匹配,则认为当前调度策略匹配失败。
调度策略需要在虚服务器页面引用后才能生效,虚服务器通过引用调度策略,能够细化虚服务器的负载均衡粒度,根据调度策略中配置的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理。
调度策略配置任务如下:
(1) 创建调度策略
(2) 配置调度策略的匹配方式
(3) 创建匹配规则
请至少选择其中一项进行配置:
仅HTTP和HTTPS类型的调度策略支持配置。
仅HTTP和HTTPS类型的调度策略支持配置。
仅HTTP和HTTPS类型的调度策略支持配置。
仅HTTP和HTTPS类型的调度策略支持配置。
仅HTTP和HTTPS类型的调度策略支持配置。
仅HTTP和HTTPS类型的调度策略支持配置。
仅RADIUS类型的调度策略支持配置。
仅SSL和TCP代理类型的调度策略支持配置。
(4) 配置调度动作
¡ 配置动作为转发
¡ 配置动作为代答
(5) (可选)配置调度失败的动作
(6) (可选)引用SSL客户端策略
· 对于四层服务器负载均衡,配置动作为转发和配置动作为转发到服务池互斥。
· 对于七层服务器负载均衡,配置动作为转发到服务池和配置动作为代答互斥。
· 对于七层服务器负载均衡,配置调度失败的动作为继续匹配下一个调度策略和配置调度失败的动作为代答互斥。
(1) 进入系统视图。
system-view
(2) 创建IP、TCP或UDP类型的调度策略,并进入调度策略视图。
loadbalance schedule-policy policy-name [ type { ip | tcp | udp } ]
创建调度策略时必须为其指定类型;而在进入已创建的调度策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置调度策略的描述信息。
description text
缺省情况下,未配置调度策略的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP、HTTPS、RADIUS、基于TCP的SIP、基于UDP的SIP类型、SSL或TCP代理类型的调度策略,并进入调度策略视图。
loadbalance schedule-policy policy-name [ type { http | https | radius | sip-tcp | sip-udp | ssl | tcp-proxy } ]
创建调度策略时必须为其指定类型;而在进入已创建的调度策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置调度策略的描述信息。
description text
缺省情况下,未配置调度策略的描述信息。
管理员可以在一个调度策略中指定多条匹配规则,并为其指定匹配方式。
· 若配置匹配方式为匹配任意一条规则,则当访问流量与某条匹配规则匹配成功时。就执行配置的动作,否则继续匹配下一条匹配规则;若所有匹配规则均未匹配成功,则不执行动作。
· 若配置匹配方式为匹配所有规则,仅当访问流量与所有规则都匹配成功时,才会执行配置的动作。
(1) 进入系统视图。
system-view
(2) 进入调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置调度策略的匹配方式。
match-mode { all-rules | any-rule }
缺省情况下,调度策略的匹配方式为匹配任一规则。
管理员可配置匹配用户源IP地址的IP地址范围或子网。若用户流量的源IP地址属于指定的地址范围或子网,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建源IP地址匹配规则。
match match-name source { ip { subnet ipv4-address{ mask-length | mask } | range start-ipv4-address end-ipv4-address } | ipv6 { subnet ipv6-address prefix-length | range start-ipv6-address end-ipv6-address } }
管理员可通过本配置指定流量的入接口。若用户流量从指定接口进入设备,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建入接口匹配规则。
match [ match-name ] interface interface-type interface-number
管理员可配置匹配HTTP报文实体的正则表达式。若HTTP报文实体能够匹配指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建HTTP实体匹配规则。
match match-name body regex body [ offset offset ]
管理员可通过配置指定HTTP Cookie名称和HTTP Cookie值的正则表达式。若HTTP报文中携带指定名称的Cookie,且Cookie值匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建HTTP Cookie匹配规则。
match match-name cookie cookie-name pattern [ case-sensitive ] regex pattern
管理员可通过配置指定HTTP首部名称和首部值的正则表达式。若HTTP报文中携带有指定名称的首部,且首部值匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建HTTP首部匹配规则。
match match-name header header-name pattern [ case-sensitive ] regex pattern
管理员可通过配置指定匹配URI的正则表达式。若HTTP报文中携带的URI匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建HTTP URI匹配规则。
match match-name uri [ case-sensitive ] regex uri
管理员可通过配置指定匹配的HTTP方法,可指定RFC预定义的HTTP方法GET、CONNECT、DELETE、HEAD、OPTIONS、POST、PUT或TRACE,也可指定自定义的HTTP方法。若HTTP报文中携带的方法匹配了指定方法,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建HTTP方法匹配规则。
match match-name method { ext ext-type | rfc rfc-type }
管理员可通过配置指定匹配的HTTP版本。若HTTP报文中携带的协议版本号匹配了指定版本号,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建HTTP版本匹配规则。
match match-name version { 1.0 | 1.1 }
管理员可通过配置指定RADIUS属性编号和RADIUS属性值的正则表达式。若RADIUS报文中携带有指定编号的属性字段,且属性值匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入RADIUS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建RADIUS属性匹配规则。
match match-name radius-attribute { code attribute-code | user-name } pattern regex attribute-pattern
管理员可通过配置指定匹配TCP载荷的正则表达式。若TCP流量匹配上指定的正则表达式,则认为成功匹配该规则;当指定了not参数时,则在TCP流量未匹配指定的正则表达式时,才认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入SSL或TCP代理类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 创建TCP载荷匹配规则。
match match-name payload [ case-insensitive ] regex payload [ not ]
规则匹配成功后,将流量转发至指定的服务池。该服务池必须存在且有可用的业务主机。
(1) 进入系统视图。
system-view
(2) 进入调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置报文转发的服务池。
service-pool service-pool-name
缺省情况下,未配置报文转发的服务池
规则匹配成功后,对流量进行转发。
(1) 进入系统视图。
system-view
(2) 进入IP、RADIUS、基于UDP的SIP、TCP或UDP类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置报文的处理方式为转发。
forward all
缺省情况下,报文的处理方式为丢弃。
规则匹配成功后,直接关闭TCP连接,设备支持通过以下两种方式关闭TCP连接:
· FIN关闭:通过发送FIN报文关闭TCP连接
· RST关闭:通过发送RST报文关闭TCP连接
(1) 进入系统视图。
system-view
(2) 进入HTTP、HTTPS、SSL或TCP代理类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置TCP连接的关闭方式。
close { fin | rst }
缺省情况下,TCP连接的关闭方式为发送TCP FIN报文。
通过配置本功能,在规则匹配成功后,可用指定文件对HTTP请求进行代答:
· 可使用配置的非压缩文件内容作为代答内容。
· 使用ZIP压缩包内的文件进行代答。
· 使用预定义的HTTP内容进行代答。
在配置代答文件之前,需要先使用FTP或TFTP方式将代答文件下载到任一文件系统的目录下。FTP、TFTP和文件系统管理的具体介绍请参见“基础配置指导”中的“FTP和TFTP”和“文件系统管理”。
管理员可通过执行display loadbalance http-content命令查看设备预定义的HTTP内容。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置对HTTP请求进行代答。
response { file filename | workpath workpath zip-file zip-filename | predefined-content content-name }
缺省情况下,未配置对HTTP请求进行代答。
若在转发中设备判断当前策略查找可用业务主机失败时,继续匹配下一个调度策略。
(1) 进入系统视图。
system-view
(2) 进入调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置查找业务主机失败时继续匹配下一个调度策略。
fallback-action continue
缺省情况下,查找可用业务主机失败时直接丢弃报文。
若在转发中设备判断当前策略查找可用业务主机失败时,系统向客户端直接发送FIN报文或RST报文关闭TCP连接。
(1) 进入系统视图。
system-view
(2) 进入HTTP、HTTPS、SSL或TCP代理类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置查找可用业务主机失败时关闭TCP连接。
fallback-action close { fin | rst }
缺省情况下,查找可用业务主机失败时直接丢弃报文。
通过配置负载均衡处理失败时的代答文件,可在以下两种情况下使用指定文件对客户端请求进行应答:
· 查找可用业务主机失败。
· 配置了对HTTP请求进行代答后,查找代答文件失败。
在配置代答文件之前,需要先使用FTP或TFTP方式将代答文件下载到任一文件系统的目录下。FTP、TFTP和文件系统管理的具体介绍请参见“基础配置指导”中的“FTP和TFTP”和“文件系统管理”。
管理员可通过执行display loadbalance http-content命令查看设备预定义的HTTP内容。
代答文件必须是一个完整的HTTP报文,不能只是HTTP报文体的内容。
(1) 进入系统视图。
system-view
(2) 进入HTTP或HTTPS类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 配置负载均衡处理失败时的代答文件。
fallback-action response { raw-file raw-filename | predefined-content content-name }
缺省情况下,负载均衡处理失败时直接丢弃报文。
通过在调度策略中引用的SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。
(1) 进入系统视图。
system-view
(2) 进入HTTP、HTTPS或SSL类型的调度策略视图。
loadbalance schedule-policy policy-name
(3) 引用SSL客户端策略。
ssl-client-policy policy-name
缺省情况下,未引用SSL客户端策略。
将匹配规则和改写动作关联起来就构成了改写策略。当用户流量与匹配规则匹配成功后,执行相应的改写动作。
用户可以在一个改写策略中指定多个匹配规则,转发报文时会按照配置顺序来进行匹配,匹配成功则执行相应的动作,不会继续匹配下一条匹配规则,否则继续匹配下一条匹配规则。因此,当匹配规则之间存在包含关系时,建议将更精细的匹配规则放在前面,宽泛的匹配规则放在后面。如果所有匹配规则均未匹配,则认为当前改写策略匹配失败。
改写策略需要在虚服务器页面引用后才能生效,虚服务器通过引用改写策略,可对匹配虚服务器的报文进行改写。仅HTTP类型的虚服务器支持引用改写策略。
改写动作对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
四层和七层服务器负载均衡的改写策略配置基本相同。
改写策略配置任务如下:
(1) 创建改写策略
(2) 配置改写策略的匹配方式
(3) 创建匹配规则
请至少选择其中一项进行配置:
(4) 配置改写动作
请至少选择其中一项进行配置:
¡ 操作HTTP首部
(1) 进入系统视图。
system-view
(2) 创建HTTP或TCP代理类型的改写策略,并进入改写策略视图。
loadbalance modify-policy policy-name [ type http ]
创建改写策略时必须为其指定类型;而在进入已创建的改写策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置改写策略的描述信息。
description text
缺省情况下,未配置改写策略的描述信息。
管理员可以在一个改写策略中指定多条匹配规则,并为其指定匹配方式。
· 若配置匹配方式为匹配任意一条规则,则当访问流量与某条匹配规则匹配成功时。就执行配置的动作,否则继续匹配下一条匹配规则;若所有匹配规则均未匹配成功,则不执行动作。
· 若配置匹配方式为匹配所有规则,仅当访问流量与所有规则都匹配成功时,才会执行配置的动作。
(1) 进入系统视图。
system-view
(2) 进入改写策略视图。
loadbalance modify-policy policy-name
(3) 配置改写策略的匹配方式。
match-mode { all-rules | any-rule }
缺省情况下,改写策略的匹配方式为匹配任一规则。
管理员可配置匹配用户源IP地址的IP地址范围或子网。若用户流量的源IP地址属于指定的地址范围或子网,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入改写策略视图。
loadbalance modify-policy policy-name
(3) 创建源IP地址匹配规则。
match match-name source { ip { subnet ipv4-address{ mask-length | mask } | range start-ipv4-address end-ipv4-address } | ipv6 { subnet ipv6-address prefix-length | range start-ipv6-address end-ipv6-address } }
管理员可通过本配置指定流量的入接口。若用户流量从指定接口进入设备,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入改写策略视图。
loadbalance modify-policy policy-name
(3) 创建入接口匹配规则。
match [ match-name ] interface interface-type interface-number
管理员可配置匹配HTTP报文实体的正则表达式。若HTTP报文实体能够匹配指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 创建HTTP实体匹配规则。
match match-name body regex body [ offset offset ]
管理员可通过配置指定HTTP Cookie名称和HTTP Cookie值的正则表达式。若HTTP报文中携带指定名称的Cookie,且Cookie值匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 创建HTTP Cookie匹配规则。
match match-name cookie cookie-name pattern [ case-sensitive ] regex pattern
管理员可通过配置指定HTTP首部名称和首部值的正则表达式。若HTTP报文中携带有指定名称的首部,且首部值匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 创建HTTP首部匹配规则。
match match-name header header-name pattern [ case-sensitive ] regex pattern
管理员可通过配置指定匹配URI的正则表达式。若HTTP报文中携带的URI匹配了指定的正则表达式,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 创建HTTP URI匹配规则。
match match-name uri [ case-sensitive ] regex uri
管理员可通过配置指定匹配的HTTP方法,可指定RFC预定义的HTTP方法GET、CONNECT、DELETE、HEAD、OPTIONS、POST、PUT或TRACE,也可指定自定义的HTTP方法。若HTTP报文中携带的方法匹配了指定方法,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 创建HTTP方法匹配规则。
match match-name method { ext ext-type | rfc rfc-type }
管理员可通过配置指定匹配的HTTP版本。若HTTP报文中携带的协议版本号匹配了指定版本号,则认为成功匹配该规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 创建HTTP版本匹配规则。
match match-name version { 1.0 | 1.1 }
通过配置本功能,可以对成功匹配规则的HTTP报文首部执行一些修改行为,包括:
· 删除HTTP首部:如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部从报文中删除。
· 插入HTTP首部:系统将在指定方向的HTTP报文中插入指定名称和内容的首部。
· 重写HTTP首部:如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部中的指定内容重写为新的内容。
· 重写URI:系统将HTTP请求首部中包含指定内容的URI重写为新的URI。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 删除HTTP首部。
header delete { both | request | response } name header-name
缺省情况下,未配置删除HTTP首部。
(4) 插入HTTP首部。
header insert { both | request | response } name header-name pattern header-pattern [ encode { base64 | uri } ]
缺省情况下,未配置插入HTTP首部。
(5) 重写HTTP首部。
header rewrite { both | request | response } name header-name pattern [ case-sensitive ] regex header-pattern replace replace [ encode { base64 | uri } ]
缺省情况下,未配置重写HTTP首部。
(6) 重写HTTP请求首部中的URI。
header rewrite request uri pattern [ case-sensitive ] regex pattern replace replace [ encode { base64 | uri } ]
缺省情况下,未配置重写HTTP请求首部中的URI。
如果HTTP应答报文Location首部匹配了指定的URI和HTTP端口号,系统会将Location首部的URI由HTTP重写为HTTPS,并将原HTTP端口号重写为新的SSL端口号。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 重写HTTP应答报文Location首部的URI。
ssl uri rewrite location [ case-sensitive ] regex location [ clearport clear-port ] [ sslport ssl-port ]
缺省情况下,未配置重写HTTP应答报文Location首部的URI。
系统会将HTTP应答报文体的指定内容重写为新的内容。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的改写策略视图。
loadbalance modify-policy policy-name
(3) 重写HTTP应答报文体的指定内容。
body rewrite pattern regex body-pattern replace replace-string
缺省情况下,未配置重写HTTP应答报文体的指定内容。
会话保持的作用是根据某会话保持方法将具有一定相关性的会话都分配给同一个业务主机处理,这个分配规则称为会话保持表项。在一个会话中,当其首包通过会话保持方法选择了业务主机之后,后续包都会沿用这个选择结果。
会话保持(四层)配置任务如下:
(1) 配置会话保持
请至少选择其中一项进行配置。
(2) (可选)配置会话保持表项的生效范围
(3) (可选)配置会话保持表项的老化时间
(4) (可选)开启会话保持处理优先于繁忙功能
(5) (可选)配置会话保持的描述信息
会话保持(七层)配置任务如下:
(1) 配置会话保持
请至少选择其中一项进行配置。
(2) (可选)配置会话保持表项的生效范围
(3) (可选)配置会话保持表项的老化时间
(4) (可选)开启会话保持处理优先于繁忙功能
(5) (可选)配置会话保持的描述信息
设备根据源IP网段、源端口、目的IP网段或目的端口生成会话保持表项,匹配请求报文的IP地址和端口,地址端口会话保持方法包括:
· 源IP地址:设备根据源IP网段生成会话保持表项,将源IP网段相同的流量转发至同一业务主机。
· 源IP地址+源端口:设备根据源IP网段和源端口生成会话保持表项,将源IP网段、源端口均相同的流量转发至同一业务主机。
· 目的IP地址:设备根据目的IP网段生成会话保持表项,将目的IP网段相同的流量转发至同一业务主机。
· 目的IP地址+目的端口:设备根据目的IP网段和目的端口生成会话保持表项,将目的IP网段、目的端口均相同的流量转发至同一业务主机。
· 源IP地址+目的IP地址:设备根据源IP网段和目的IP网段生成会话保持表项,将源IP网段、目的IP网段均相同的流量转发至同一业务主机。
· 源IP地址+源端口+目的IP地址+目的端口:设备根据源IP网段、源端口、目的IP网段和目的端口生成会话保持表项,将源IP网段、源端口、目的IP网段、目的端口均相同的流量转发至同一业务主机。
(1) 进入系统视图。
system-view
(2) 创建地址端口类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type address-port ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置地址端口会话保持方法。
address [ port ] { both | destination | source } [ mask mask-length | prefix prefix-length ]
缺省情况下,会话保持方法为源IP地址。
设备根据HTTP请求报文中的实体内容生成会话保持表项,匹配HTTP请求报文实体的指定范围,可将具有相同报文实体的HTTP请求转发至同一业务主机。
HTTP报文实体是指HTTP报文中不包含HTTP首部的部分。HTTP实体会话保持方法可根据管理员配置的偏移量、实体长度、实体开始标记和实体结束标记获取生成会话保持表项的HTTP实体信息。其中,实体开始标记和实体结束标记不计入会话保持表项信息中。
(1) 进入系统视图。
system-view
(2) 创建HTTP 实体类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type http-body ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置HTTP实体会话保持方法。
body [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
缺省情况下,根据完整的HTTP报文生成会话保持表项。
设备根据HTTP请求报文中的Cookie字段生成会话保持表项,匹配HTTP请求中的Cookie字段,可将携带相同Cookie的HTTP请求转发至同一业务主机,HTTP Cookie会话保持方法包括:
· Cookie截取:在业务主机发送的HTTP应答报文中截取Set-Cookie字段用于会话保持处理。Cookie截取会话保持方法根据管理员配置的偏移量、Cookie长度、Cookie开始标记和Cookie结束标记获取生成会话保持表项的HTTPCookie信息。其中,Cookie开始标记和Cookie结束标记不计入会话保持表项信息中。
· Cookie插入:在业务主机发送的HTTP应答报文中插入Set-Cookie字段用于会话保持处理。
· Cookie重写:改写业务主机发送的HTTP应答报文所携带的Set-Cookie字段用于会话保持处理。
(1) 进入系统视图。
system-view
(2) 创建HTTP Cookie类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type http-cookie ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置HTTP Cookie截取会话保持方法。
cookie get name cookie-name [ offset offset ] [ length length | [ case-sensitive ] regex { start start-string [ end end-string | length length ] | end end-string } ]
缺省情况下,会话保持方法为Cookie插入。
(4) 配置HTTP Cookie插入会话保持方法。
cookie insert [ name cookie-name ] [ domain domain-name ] [ path path ] [ httponly ] [ secure ]
缺省情况下,未配置会话保持方法。
(5) 配置HTTP Cookie重写会话保持方法。
cookie rewrite [ name cookie-name ] [ httponly ] [ secure ]
缺省情况下,未配置会话保持方法。
(6) (可选)配置检查所有报文。
check all-packet
缺省情况下,只检查首个报文。
设备根据HTTP请求报文首部生成会话保持表项,匹配HTTP请求首部中的指定字段,可将HTTP请求首部具有相同特征的流量转发至同一业务主机,HTTP首部会话保持方法包括:
· 基于HTTP主机的会话保持方法
· 基于HTTP URI的会话保持方法
· 基于指定HTTP首部的会话保持方法
· 基于HTTP Request-Method的会话保持方法
· 基于HTTP版本的会话保持方法
基于HTTP主机、URI和指定HTTP首部的会话保持方法可根据管理员配置的偏移量、长度、开始标记和结束标记获取生成会话保持表项的信息。其中,开始标记和结束标记不计入会话保持表项信息中。
(1) 进入系统视图。
system-view
(2) 创建HTTP首部类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type http-header ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置HTTP首部会话保持方法。
header { { host | name header-name | uri } [ offset offset ] [ length length | [ case-sensitive ] regex { start start-string [ end end-string | length length ] | end end-string } ] | request-method | version }
缺省情况下,会话保持方法为基于HTTP主机的会话保持方法。
设备根据HTTP请求报文内容生成会话保持表项,匹配HTTP请求报文的指定范围,可将具有相同报文内容的HTTP请求转发至同一业务主机。
HTTP内容会话保持方法可根据管理员配置的偏移量、内容长度、内容开始标记和内容结束标记获取生成会话保持表项的HTTP内容信息。其中,内容开始标记和内容结束标记不计入会话保持表项信息中。
(1) 进入系统视图。
system-view
(2) 创建HTTP内容类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type http-content ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置HTTP内容会话保持方法。
content [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
缺省情况下,根据完整的HTTP报文生成会话保持表项。
HTTP passive类型会话保持包括HTTP首部被动会话保持和HTTP实体被动会话保持。
配置HTTP passive类型的会话保持方法后,设备会根据header get或body get命令获取HTTP应答报文首部或实体中的指定字符串,生成会话保持表项。对于后续收到的所有HTTP请求报文,根据header match或body match命令获取HTTP请求报文首部或实体中的指定字段,若该字段匹配上会话保持表项,则按照会话保持表项转发。
HTTP首部被动会话保持方法和HTTP实体被动会话保持方法都包括get和match命令,其配置遵循以下原则:
· n条get命令获取到的n个字符串,其中任意1~n个字符串又可以按照ID顺序组合成2n-1个字符串,若match命令获取到的字符串匹配上任意一个组合后的字符串,则认为匹配成功。
· n条match命令获取到的n个字符串按照ID顺序结合成一个字符串进行匹配。
假设,用户配置了规则名称为1、2、3的三条get命令,使得设备可以获取到HTTP应答报文首部中的字符串a、b、c,组合成七个匹配字符串a、b、c、ab、ac、bc、abc,并生成七条会话保持表项。同时用户配置了规则名称为2、3、4的三条match命令,当设备收到HTTP请求报文后,若基于这三条规则获取到了字符串a、b、c,且它们组合成的字符串abc能够与通过get命令获取到的字符串abc匹配成功,则认为HTTP请求报文与会话保持表项匹配成功,按照会话保持表项转发。
HTTP首部被动会话保持方法和实体被动会话保持方法需要get和match命令的配合才能生成。
同一HTTP passive类型的会话保持视图下,最多允许通过配置4条get命令在HTTP应答报文中获取4个指定字符串,最多允许通过配置4条match命令在HTTP请求报文中获取4个指定字符串。
(1) 进入系统视图。
system-view
(2) 创建HTTP passive类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type http-passive ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置HTTP passive会话保持方法。请至少选择其中一项进行配置。
¡ 配置HTTP首部被动会话保持方法。
header get rule-name name header-name [ case-sensitive ] regex start start-string { end end-string | length length }
header match rule-name { name header-name | uri } [ case-sensitive ] regex start start-string { end end-string | length length }
¡ 配置HTTP实体被动会话保持方法。
body get rule-name regex start start-string { end end-string | length length }
body match rule-name regex start start-string { end end-string | length length }
缺省情况下,未配置会话保持方法。
(4) (可选)配置检查所有报文。
check all-packet
缺省情况下,不检查所有报文。
设备根据TCP载荷生成会话保持表项,匹配TCP报文的指定范围,可将具有相同内容的TCP报文转发至同一业务主机。
TCP载荷会话保持方法可根据管理员配置的偏移量、TCP载荷长度、TCP载荷开始标记和TCP载荷结束标记获取生成会话保持表项的TCP载荷信息。其中,TCP载荷开始标记和TCP载荷结束标记不计入会话保持表项信息中。
(1) 进入系统视图。
system-view
(2) 创建TCP载荷类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type tcp-payload ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置TCP载荷会话保持方法。
tcp-payload [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
缺省情况下,根据完整的TCP报文生成会话保持表项。
设备根据UDP载荷生成会话保持表项,匹配UDP报文的指定范围,可将具有相同内容的UDP报文转发至同一业务主机.
UDP载荷会话保持方法可根据管理员配置的偏移量、UDP载荷长度、UDP载荷开始标记和UDP载荷结束标记获取生成会话保持表项的UDP载荷信息。其中,UDP载荷开始标记和UDP载荷结束标记不计入会话保持表项信息中。
(1) 进入系统视图。
system-view
(2) 创建UDP载荷类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type udp-payload ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置UDP载荷会话保持方法。
udp-payload [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
缺省情况下,根据完整的UDP报文生成会话保持表项。
配置UDP passive会话保持方法后,当设备收到UDP应答方向报文后,根据udp-payload get命令的配置获取到的UDP应答报文的载荷信息生成会话保持表项。对于后续收到的UDP请求报文,根据udp-payload match命令的配置获取到指定请求报文的载荷信息,若该载荷信息匹配上会话保持表项,则按照会话保持表项转发。
UDP载荷被动会话保持方法需要udp-payload get和udp-payload match命令的配合才能生成。
(1) 进入系统视图。
system-view
(2) 创建UDP passive类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type udp-passive ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置UDP passive类型会话保持方法。
udp-payload get [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
udp-payload match [ offset offset ] [ length length | regex { start start-string [ end end-string | length length ] | end end-string } ]
缺省情况下,根据完整的UDP报文生成和匹配会话保持表项。
设备根据RADIUS属性生成会话保持表项,匹配RADIUS报文中的指定属性字段,可将具有相同RADIUS属性值的流量转发至同一业务主机。
(1) 进入系统视图。
system-view
(2) 创建RADIUS类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type radius ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) 配置RADIUS属性会话保持方法。
radius-attribute { code attribute-code | framed-ip-address | user-name }
缺省情况下,根据RADIUS属性User-Name生成会话保持表项。
缺省情况下,设备会根据SIP信令报文首部的Call-ID字段生成会话保持表项,将具有相同Call ID的SIP报文都分配给同一台业务主机处理。
(1) 进入系统视图。
system-view
(2) 创建SIP类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type sip ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
缺省情况下,设备根据SSL Session-ID生成会话保持表项,匹配HTTPS报文中的Session-ID字段,可将具有相同Session-ID的流量转发至同一业务主机。该类型的会话保持仅对HTTPS请求报文有效,并且需要在虚服务器页面引用SSL服务器端策略。
(1) 进入系统视图。
system-view
(2) 创建SSL类型的会话保持,并进入会话保持视图。
loadbalance persistence persistence-name [ type ssl ]
创建会话保持时必须为其指定类型;而在进入已创建的会话保持视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
通过配置本功能可以指定会话保持表项的生效范围,包括:
· 全局:会话保持表项全局生效,即所有虚服务器都可以共享会话保持表项。
· 跨服务池:会话保持表项跨服务池生效,即同一虚服务器引用的服务池都可以共享会话保持表项。
· IP地址相同的虚服务器:会话保持表项仅对IP地址相同的虚服务器生效,即所有IP地址相同的虚服务器都可以共享会话保持表项。
(1) 进入系统视图。
system-view
(2) 进入地址端口或RADIUS类型的会话保持视图。
loadbalance persistence persistence-name
(3) 配置会话保持表项的老化时间。
effective-scope { global | per-virtual-ip | per-virtual-server }
缺省情况下,会话保持表项的生效范围为当前服务池。
(1) 进入系统视图。
system-view
(2) 进入会话保持视图。
loadbalance persistence persistence-name
(3) 配置会话保持表项的老化时间。
timeout { indefinite | timeout-value }
缺省情况下,对于HTTP Cookie、HTTP passive和UDP passive类型的会话保持,会话保持表项的老化时间为86400秒;对于其它类型的会话保持,会话保持表项的老化时间为60秒。
开启会话保持处理优先于繁忙功能后,在会话保持表项老化之前,无论业务主机是否处于繁忙状态,设备都会依据会话保持表项为其分配流量。
若会话保持处理优先于繁忙功能处于关闭状态,则在会话保持表项老化之前,设备会依据会话保持表项仅为处于正常状态的业务主机分配流量。
(1) 进入系统视图。
system-view
(2) 进入会话保持视图。
loadbalance persistence persistence-name
(3) 开启会话保持处理优先于繁忙功能。
persistence-over-busyness enable
缺省情况下,会话保持处理优先于繁忙功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入会话保持视图。
loadbalance persistence persistence-name
(3) 配置会话保持的描述信息。
description text
缺省情况下,未配置会话保持的描述信息。
参数模板配置任务如下:
(1) 创建参数模板
(2) 配置参数
请至少选择其中一项进行配置。
¡ 配置连接复用功能
(1) 创建参数模板
(2) 配置HTTP压缩功能
(1) 创建参数模板
(2) 配置连接复用功能
(1) 创建参数模板
(2) 配置参数
请至少选择其中一项进行配置。
(1) 进入系统视图。
system-view
(2) 创建HTTP、HTTP压缩、HTTP2.0、TCP或TCP代理类型的参数模板,并进入参数模板视图。
loadbalance parameter-profile profile-name [ type { http | http-compression | http2 | oneconnect | tcp-proxy } ]
创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置参数模板的描述信息。
description text
缺省情况下,未配置参数模板的描述信息。
若管理员通过配置指定了HTTP首部或HTTP实体的最大解析长度,则在调度策略和改写策略中,匹配HTTP首部或HTTP实体匹配规则时,仅允许匹配最大解析长度以内的首部或实体数据;在HTTP首部或HTTP实体类型的会话保持中,仅允许根据最大解析长度以内的首部或实体生成会话保持表项。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置HTTP首部的最大解析长度。
header maxparse-length length
缺省情况下,HTTP首部的最大解析长度为4096。
(4) 配置HTTP实体的最大解析长度。
body maxparse-length length
缺省情况下,HTTP实体的最大解析长度为4096。
本功能用来指定当HTTP请求或应答报文首部超出最大解析长度时的处理方式,包括:
· 继续执行负载均衡操作
· 停止执行负载均衡操作,丢弃报文并关闭连接。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置HTTP首部超出最大解析长度时的处理方式。
header exceed-length { continue | drop }
缺省情况下,HTTP报文首部超出最大解析长度时,继续进行负载均衡处理。
配置本功能后,设备会将业务主机发送的HTTP应答报文中Set-Cookie字段加密后发往客户端,以防止保存在Cookie中的用户关键信息泄露。客户端携带加密后的Cookie值访问业务主机时,设备会将Cookie字段解密后再发往业务主机。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置需要加密的Cookie名称
encrypt-cookie name cookie-name
缺省情况下,不对任何Cookie进行加密。
(4) 配置Cookie加密密钥。
encrypt-cookie key { cipher | simple } string
缺省情况下,未配置Cookie加密密钥。
通过在HTTP类型的参数模板中开启负载均衡设备与业务主机的连接复用功能,可在负载均衡设备与业务主机之间建立一条长时间不会老化的连接,使多个客户端复用同一条与业务主机的TCP连接。
开启了负载均衡设备与业务主机的连接复用功能后,可通过在OneConnect类型的参数模板中配置以下参数对TCP连接的复用时间、复用次数以及复用范围进行限制:
· 空闲超时时间:当负载均衡设备与业务主机之间TCP连接的空闲时间达到配置的空闲超时时间时,此连接将会被删除,后续客户端发起的连接请求将触发建立新的TCP连接。
· 最大复用次数:当负载均衡设备与业务主机TCP连接的复用次数达到配置的最大复用次数时,此连接将会被删除,后续客户端发起的连接请求将触发建立新的TCP连接。
· IPv4网络掩码/IPv6前缀:通过配置连接复用的IPv4网络掩码或IPv6前缀,可对负载均衡设备与业务主机之间连接复用的客户端网段进行限制。当负载均衡设备收到客户端的连接请求时,若客户端网段与已建立的TCP空闲连接的网段相同,则复用已建立的空闲连接。否则,触发建立新的TCP连接。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 开启负载均衡设备与业务主机的连接复用功能。
server-connection reuse
缺省情况下,负载均衡设备与业务主机的连接复用功能处于关闭状态。
(1) 进入OneConnect类型的参数模板视图。
loadbalance parameter-profile profile-name
(2) 配置TCP连接的空闲超时时间。
idle-time idle-time
缺省情况下,TCP连接的空闲超时时间为86400秒。
(3) 配置TCP连接的最大复用次数。
max-reuse reuse-number
缺省情况下,TCP连接的最大复用次数为1000。
(4) 配置连接复用的IPv4网络掩码。
ip source mask { mask-length | mask }
缺省情况下,连接复用的IPv4网络掩码为自然掩码。
(5) 配置连接复用的IPv6前缀长度。
ipv6 source prefix prefix-length
缺省情况下,连接复用的IPv6前缀长度为0。
通过配置HTTP压缩功能,可将业务主机返回的HTTP应答报文进行压缩。并且可对压缩规则、压缩算法以及压缩级别等参数进行设置。
(1) 进入系统视图。
system-view
(2) 进入HTTP压缩类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置压缩规则。
rule rule-name { deny | permit } { content-type | uri } regex pattern
缺省情况下,未配置压缩规则,即对所有HTTP流量进行压缩。
(4) 调整压缩规则的排序。
move compress-rule rule-name1 { after rule-name2 | before rule-name2 | bottom | top }
(5) 配置应答报文首选的压缩算法。
prefer-method { deflate | gzip }
缺省情况下,首选压缩算法为gzip。
(6) 配置应答报文的压缩级别。
compression level level
缺省情况下,应答报文的压缩级别为1。
(7) 配置进行压缩的应答报文体最小长度。
body length-threshold length
缺省情况下,压缩的应答报文体最小长度为1024字节。
(8) 配置应答报文压缩所占用的内存大小。
memory-size size
缺省情况下,应答报文压缩所占用的内存大小为8KB。
(9) 配置对HTTP 1.0版本的应答报文进行压缩。
request-version all
缺省情况下,不对HTTP1.0版本的应答报文进行压缩。
(10) 配置删除请求报文中的Accept-Encoding首部。
header delete request accept-encoding
缺省情况下,删除请求中的Accept-Encoding首部。
(11) 配置在应答报文中插入Vary首部,内容为Accept-Encoding 。
header insert response vary
缺省情况下,在应答报文中插入Vary首部,内容为Accept-Encoding。
(12) 配置压缩使用的窗口大小。
window-size size
缺省情况下,压缩窗口大小为16KB。
通过本配置可以自定义负载均衡设备与客户端以及业务主机建立的TCP连接的空闲超时时间。若在TCP连接的空闲超时时间内没有应用数据传输,负载均衡设备会主动断开与客户端或业务主机的TCP连接。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接的空闲超时时间。
tcp connection idle-timeout value
缺省情况下,TCP连接的空闲超时时间为0,即不超时。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接保活定时器的空闲超时时间。
keepalive idle-timeout timeout-value
缺省情况下,TCP连接保活定时器的空闲超时时间为1800秒。
(4) 配置TCP保活报文的重传时间间隔与重传次数。
keepalive retransmission interval interval count count
缺省情况下,TCP保活报文的重传时间间隔为10秒,重传次数为3次。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接SYN报文的重传超时时间。
syn retransmission-timeout timeout-value
缺省情况下,TCP连接SYN报文的重传超时时间为10秒。
缺省情况下,TCP协议的TIME-WAIT状态超时时间为报文段在被丢弃之前在因特网上能够存在的最大时间(MSL)的两倍。
TCP连接断开时,由于TCP协议的TIME-WAIT状态超时时间较长,导致TCP连接释放过慢,影响负载均衡业务处理效率。通过本配置可灵活设置TIME-WAIT状态的超时时间。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接TIME-WAIT状态的超时时间。
time-wait timeout value
缺省情况下,TCP连接TIME-WAIT状态的超时时间为2秒。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接FIN-WAIT-1状态的超时时间。
fin-wait1 timeout timeout-value
缺省情况下,TCP连接FIN-WAIT-1状态的超时时间为5秒。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接FIN-WAIT-2状态的超时时间。
fin-wait2 timeout timeout-value
缺省情况下,TCP连接FIN-WAIT-2状态的超时时间为5秒。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接中的本地最大窗口值。
tcp window-size size
缺省情况下,TCP连接中的本地最大窗口值为65535。
在客户端与负载均衡设备建立TCP连接时,客户端将MSS值通告给负载均衡设备,负载均衡设备会记录下这个MSS值,并将配置的MSS值发送给客户端,客户端与负载均衡设备将使用较小的MSS值作为双方通信的最大分段长度。
在负载均衡设备与业务主机建立TCP连接时,负载均衡设备将配置的MSS值通告给业务主机,业务主机会记录下这个MSS值,并将自身的MSS值发送给负载均衡设备,负载均衡设备与业务主机将使用较小的MSS值作为双方通信的最大分段长度。
(1) 进入系统视图。
system-view
(2) 进入TCP代理类型的参数模板视图。
loadbalance parameter-profile profile-name
(3) 配置TCP连接的MSS值。
tcp mss value
缺省情况下,未配置TCP连接的MSS值。
防护策略可以对负载均衡设备和业务主机进行保护,防止攻击者在短时间内发送大量的虚假请求,致使业务主机疲于应付无用信息,无法处理正常的业务。
设备支持在防护策略中指定防护规则,并为在防护周期内匹配防护规则的流量指定防护动作。
防护策略配置任务如下:
(1) 创建防护策略
(2) 配置防护规则
(3) 配置防护动作
(1) 进入系统视图。
system-view
(2) 创建HTTP类型的防护策略,并进入防护策略视图。
loadbalance protection-policy policy-name [ type http ]
创建防护策略时必须为其指定类型;而在进入已创建的防护策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置防护策略的描述信息。
description text
缺省情况下,未配置防护策略的描述信息。
防护规则定义了需要保护的URI和防护的阈值(一段时间内用户最多可以访问的次数),在防护周期内,若同一用户访问指定URI的次数超过请求报文数阈值,则执行防护动作。设备支持基于源IP地址或Cookie来判断请求报文是否来自同一用户。
· 基于源IP地址:设备将来自相同源IP地址的请求报文判断为来自同一用户。
· 基于Cookie:若请求报文中对应于指定Cookie名称的Cookie值相同,则认为请求报文来自同一用户。
设备支持在防护策略中配置多条防护规则,转发报文时会按照配置顺序匹配防护规则。若匹配成功且访问指定URI的次数超过请求报文数阈值,则执行相应的防护动作,否则继续匹配下一条防护规则。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的防护策略视图。
loadbalance protection-policy policy-name
(3) 创建防护规则,并进入防护规则视图。
rule rule-name
(4) 配置防护URI。
protected-uri [ case-sensitive ] regex uri
缺省情况下,不存在防护URI。
(5) 配置防护阈值。请至少选择其中一项进行配置。
¡ 配置基于源IP地址的防护阈值。
source-ip request-threshold threshold
¡ 配置基于Cookie的防护阈值。
cookie cookie-name request-threshold threshold
缺省情况下,未配置防护阈值。
若同时配置基于源IP地址的防护阈值和基于Cookie的防护阈值,则当携带相同源IP或者相同Cookie值的报文达到配置的阈值时,执行相应的动作。
(6) 配置防护周期。
protection-period period
缺省情况下,防护周期为120秒。
设备支持为匹配防护规则的流量配置以下防护动作:
· 丢弃报文:丢弃请求报文。
· Cookie验证:设备检测到请求报文个数达到阈值限制时,向客户端返回携带指定Cookie的响应报文。若客户端后续请求报文中携带的Cookie值与设备返回的Cookie值相同,则认为客户端请求报文通过验证。若请求报文中未携带Cookie值或携带的Cookie值与设备返回值不同,则认为客户端请求报文未通过验证,直接丢弃报文。设备支持通过插入HTTP首部和响应JS脚本的方式向客户端返回Cookie值。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的防护策略视图。
loadbalance protection-policy policy-name
(3) 配置防护动作。
protection-action { drop | verify { insert-header | js } }
缺省情况下,未配置防护动作。
服务器负载均衡支持配置TCP RST、TCP zero-window、HTTP passive和自定义监控类型的负载均衡探测模板。负载均衡探测模板可以对业务主机的健康状态进行周期性探测,并及时隔离故障主机,保证其能够提供有效的服务。
当TCP RST、TCP zero-window或HTTP passive类型的负载均衡探测模板被服务池引用后,在负载均衡探测模板的监控周期内,设备可以统计出服务池中每个成员发送的RST报文的个数和zero-window(零窗口)报文的个数以及HTTP响应报文中的异常URI次数,以此来判断业务主机的健康状态,并执行相应的保护动作。设备支持配置以下两种保护动作:
· 设置业务主机为繁忙状态:当业务主机发送的RST报文或零窗口报文达到配置的阈值时,系统会将业务主机的状态标记为繁忙,然后以繁忙保护时间为间隔再次对业务主机进行检查。若业务主机在繁忙保护时间内发送的RST报文或零窗口报文未达到配置的阈值,则业务主机恢复正常状态,否则继续以繁忙保护时间为间隔检查业务主机,直到达到业务主机的繁忙保护次数为止。达到繁忙保护次数后,系统会自动关闭业务主机,此时业务主机的状态为Auto shutdown。
· 关闭业务主机:当业务主机发送的RST报文、零窗口报文或异常URI次数达到配置的阈值时,系统会自动关闭业务主机,此时业务主机的状态为Auto shutdown。
当自定义监控类型的负载均衡探测模板被服务池、服务池成员或业务主机引用后,在负载均衡探测模板的监控周期内,设备通过调用用户配置的监控脚本文件,完成对业务主机状态的监控。
HTTP passive类型的负载均衡探测模板的保护动作只有Auto shutdown且不可配置。
(1) 进入系统视图。
system-view
(2) 创建RST类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template tcp-rst template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置TCP RST类型负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,TCP RST类型负载均衡探测模板的监控周期为10秒。
(5) 配置RST报文的上限阈值。
rst threshold number
缺省情况下,RST报文的上限阈值为1000000。
(6) 配置负载均衡探测模板的保护动作。
protect-action { auto-shutdown | busy [ probe-interval interval ] [ probe-times times ] }
缺省情况下,负载均衡探测模板的保护动作为设置业务主机为繁忙状态。
(1) 进入系统视图。
system-view
(2) 创建TCP zero-window类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template tcp-zero-window template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置TCP zero-window类型负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,TCP zero-window类型负载均衡探测模板的监控周期为10秒。
(5) 配置零窗口报文的上限阈值。
zero-window threshold percentage
缺省情况下,零窗口报文的上限阈值为40%。
(6) 配置负载均衡探测模板的保护动作。
protect-action { auto-shutdown | busy [ probe-interval interval ] [ probe-times times ] }
缺省情况下,负载均衡探测模板的保护动作为设置业务主机为繁忙状态。
(1) 进入系统视图。
system-view
(2) 创建HTTP passive类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template http-passive template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置HTTP passive类型负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,HTTP passive类型负载均衡探测模板的监控周期为1秒。
(5) 配置异常URI次数的上限阈值。
abnormal-uri threshold number
缺省情况下,异常URI次数的上限阈值为10000。
(6) 配置负载均衡探测模板所要检查的URI。
check-uri regex uri
缺省情况下,未配置HTTP passive类型探测模板所要检查的URI。
每个探测模板最多允许配置10个URI的正则表达式。
(7) 配置负载均衡探测模板所要检查的响应状态码。
status-code code
缺省情况下,未配置HTTP passive类型探测模板所要检查的响应状态码。
每个探测模板最多允许配置10个响应状态码。
(8) 配置HTTP passive类型探测模板的响应超时时间。
timeout timeout
缺省情况下,HTTP passive类型探测模板的响应超时时间为5秒。
(1) 进入系统视图。
system-view
(2) 创建自定义监控类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template custom-monitor template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置自定义监控类型负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,自定义监控类型负载均衡探测模板的监控周期为5秒。
(5) 配置自定义监控类型负载均衡探测模板引用的脚本文件。
external-script file-name
缺省情况下,未配置自定义监控类型负载均衡探测模板引用的脚本文件。
(6) 配置自定义监控的环境变量。
env-variables variable-name value variable-value
缺省情况下,未配置自定义监控的环境变量。
(7) 配置自定义监控的用户自定义信息。
argument text
缺省情况下,未配置自定义监控的用户自定义信息。
(8) 配置自定义监控类型负载均衡探测模板的响应超时时间。
timeout timeout
缺省情况下,自定义监控类型负载均衡探测模板的响应超时时间为3秒。
(9) 退回系统视图。
quit
(10) 配置设备允许启动的自定义监控进程个数。
loadbalance process-limit number
设备允许启动的自定义监控进程个数为1个。
如果智能监控功能将实服务器的状态置为Auto shutdown,则可以通过配置实服务器的智能监控自动恢复时间使得实服务器自动恢复为正常状态。
(1) 进入系统视图。
system-view
(2) 创建负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template { custom-monitor | http-passive | tcp-rst | tcp-zero-window } template-name
(3) (可选)配置业务主机的智能监控自动恢复时间。
auto-shutdown recovery-time recovery-time
缺省情况下,业务主机的智能监控自动恢复时间为0,0表示不自动恢复。
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
(1) 进入系统视图。
system-view
(2) 开启指定协议的负载均衡ALG功能。
loadbalance alg { dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }
缺省情况下,ftp、dns、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
(3) 开启所有协议的负载均衡ALG功能。
loadbalance alg all-enable
缺省情况下,ftp、dns、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
(4) 关闭所有协议的负载均衡ALG功能。
loadbalance alg all-disable
缺省情况下,ftp、dns、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
若配置了对指定的HTTP请求进行代答或配置了负载均衡处理失败时的代答文件,当指定的代答文件发生变化后,需要通过本配置重新加载代答文件,否则代答文件的变更无法生效。
(1) 进入系统视图。
system-view
(2) 配置重新加载代答文件。
loadbalance reload file [ filename ]
HTTP内容是一个完整的HTTP报文,包括HTTP首部和HTTP实体。管理员可通过配置自定义HTTP首部以及加载自定义的HTTP实体文件。
通过配置本功能加载HTTP报文实体文件之前,需要先使用FTP或TFTP方式将HTTP报文实体文件下载到任一文件系统的根目录下。FTP、TFTP和文件系统管理的具体介绍请参见“基础配置指导”中的“FTP和TFTP”和“文件系统管理”。
若HTTP内容视图下,指定的实体文件发生变化,则需要通过执行loadbalance reload file命令重新加载,否则实体文件的变更无法生效。
(1) 进入系统视图。
system-view
(2) 创建并进入HTTP内容视图
loadbalance http-content content-name
(3) 配置HTTP报文的首部
header string string
(4) 加载HTTP报文的实体文件
body file body-file-name
(5) 退回系统视图。
quit
(6) (可选)配置重新加载HTTP内容的实体文件。
loabalance reload file [ filename ]
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
四层和七层服务器负载均衡的负载均衡告警功能配置完全相同。
(1) 进入系统视图。
system-view
(2) 开启负载均衡的告警功能。
snmp-agent trap enable loadbalance
缺省情况下,负载均衡的告警功能处于开启状态。
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括负载均衡基本日志和负载均衡NAT日志。
通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:
· 业务主机或服务池的状态变化。
· 业务主机的健康检测结果发生变化。
· 业务主机或虚服务器的连接数达到上限或者恢复到正常范围内。
· 业务主机或虚服务器的连接速率达到上限或者恢复到正常范围内。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
(1) 进入系统视图。
system-view
(2) 开启负载均衡基本日志功能。
loadbalance log enable base
缺省情况下,负载均衡基本日志功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡NAT日志功能。
loadbalance log enable nat
缺省情况下,负载均衡NAT日志功能处于关闭状态。
负载均衡报表导出功能用于周期性或立即导出负载均衡统计报表,支持如下导出方式:
· 自动导出:设备将根据配置的导出周期,周期性地向用户指定的地址导出报表。报表中包含的统计内容可以通过报表模板配置。
· 手动导出:设备将根据用户配置的统计内容和统计时间范围立即生成报表。手动导出报表功能仅在Web界面支持。
若要导出负载均衡业务报表,需要管理员正确配置数据分析中心报表导出模板、负载均衡报表内容模板和数据中心报表导出参数。在创建负载均衡报表内容模板之前,需要先创建报表导出模板。有关报表导出功能的详细介绍,请参见“DPI深度安全配置指导”的“数据分析中心”。
管理员可以通过配置负载均衡报表内容模板,指定服务器负载均衡业务的统计对象和统计内容。设备支持统计的服务器负载均衡业务包括:虚服务器、业务主机、服务池和服务池成员。若管理员希望将多个业务类型的统计报表导出到同一PDF文件中,只需进入名称相同的负载均衡报表内容模板视图进行配置。
管理员需要开启业务日志采集功能,负载均衡报表才能生成统计数据。有关业务日志采集功能的详细介绍,请参见“DPI深度安全配置指导”的“数据分析中心”。
负载均衡报表内容模板应与数据中心报表导出模板名称相同。
(1) 进入系统视图。
system-view
(2) 创建报表导出模板,并进入报表导出模板视图。
dac report export template template-name
(3) 配置报表导出模板中统计的业务类型。
report service service-type
缺省情况下,未配置报表导出模板中统计的业务类型。
(4) (可选)配置报表标题。
report title title
缺省情况下,报表标题为Report Exported from DAC。
(5) (可选)配置报表导出语言。
language { chinese | english }
缺省情况下,报表导出语言为中文。
(6) (可选)配置报表文件格式。
report file-type { html | pdf } *
缺省情况下,报表文件格式为PDF。
通过配置虚服务器的负载均衡报表内容模板,将会根据虚服务器的统计内容对指定虚服务器的相关信息进行统计。在配置负载均衡虚服务器统计业务时,必须配置统计内容和统计对象。如果不配置,则不会对负载均衡虚服务器进行统计。
(1) 进入系统视图。
system-view
(2) 创建虚服务器的负载均衡报表内容模板,并进入虚服务器的报表导出模板视图。
dac report export service lb-virtual-server template template-name
(3) 配置虚服务器的统计内容。
statistics content { cache-policy { hit | traffic } *| class-hit | compression | http-status-code | stability } *
缺省情况下,未配置虚服务器的统计内容。
(4) 指定虚服务器统计对象。
statistics virtual-server virtual-server-name
缺省情况下,未指定虚服务器统计对象。
通过配置业务主机的负载均衡报表内容模板,将会根据业务主机的统计内容对指定业务主机的相关信息进行统计。在配置负载均衡业务主机统计业务时,必须配置统计内容和统计对象。如果不配置,则不会对负载均衡业务主机进行统计。
(1) 进入系统视图。
system-view
(2) 创建业务主机的负载均衡报表内容模板,并进入业务主机的报表导出模板视图。
dac report export service lb-service-host template template-name
(3) 配置业务主机的统计内容。
statistics content { http-delay | stability } *
缺省情况下,未配置业务主机的统计内容。
(4) 指定业务主机统计对象。
statistics service-host service-host-name
缺省情况下,未指定业务主机统计对象。
通过配置服务池的负载均衡报表内容模板,将会根据服务池的统计内容对指定服务池的相关信息进行统计。在配置负载均衡服务池统计业务时,必须配置统计内容和统计对象。如果不配置,则不会对负载均衡服务池进行统计。
(1) 进入系统视图。
system-view
(2) 创建服务池的负载均衡报表内容模板,并进入服务池的报表导出模板视图。
dac report export service lb-service-pool template template-name
(3) 配置服务池的统计内容。
statistics content stability
缺省情况下,未配置服务池的统计内容。
(4) 指定服务池统计对象。
statistics service-pool service-pool-name
缺省情况下,未指定服务池统计对象。
通过配置服务池成员的负载均衡报表内容模板,将会根据服务池成员的统计内容对指定服务池的相关信息进行统计。在配置负载均衡服务池成员统计业务时,必须配置统计内容和统计对象。如果不配置,则不会对负载均衡服务池进行统计。
(1) 进入系统视图。
system-view
(2) 创建服务池成员的负载均衡报表内容模板,并进入服务池成员的报表导出模板视图。
dac report export service lb-service-pool-member template template-name
(3) 配置服务池成员的统计内容。
statistics content { http-delay | stability } *
缺省情况下,未配置服务池成员的统计内容。
(4) 指定服务池成员统计对象。
statistics service-pool service-pool-name service-host service-host-name port port-number
缺省情况下,未指定服务池成员统计对象。
管理员可以在报表导出参数中配置报表导出的周期、引用的报表导出模板以及报表导出的地址。
(1) 进入系统视图。
system-view
(2) 配置报表导出参数。
dac report export period { day | hour | month | quarter | week | year } template template-name { local | mail-server server-name [ mail-recipients mail-recipients ] }
缺省情况下,未配置报表导出参数。
在完成上述配置后,在任意视图下执行display命令可以显示配置后服务器负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除服务器负载均衡的统计信息。
可在任意视图下执行以下命令:
· 测试IPv4负载均衡的效果。
loadbalance schedule-test ip { application http { message-file file-name | method { get | post } uri uri [ header header ]&<1-10> [ body body-pattern ] } | protocol { protocol-number | icmp | tcp | udp } } destination destination-address destination-port destination-port source source-address source-port source-port [ slot slot-number ]
· 测试IPv6负载均衡的效果
loadbalance schedule-test ipv6{ application http { message-file file-name | method { get | post } uri uri [ header header ]&<1-10> [ body body-pattern ] } | protocol { protocol-number | icmpv6 | tcp | udp } } destination destination-address destination-port destination-port source source-address source-port source-port [ slot slot-number ]
· 测试PCRE正则表达式的匹配效果,并显示匹配结果。
loadbalance test pcre pattern regex [ case-sensitive ] pattern { string string | file file-name } [ offset offset ]
· 测试根据正则表达式重写的效果,并显示重写结果。
loadbalance test rewrite pattern regex [ case-insensitive ] pattern replace replace-string { string string | file file-name } [ offset offset ]
可在任意视图下执行以下命令,显示虚服务器的统计信息。
· 显示虚服务器的统计信息。
display loadbalance virtual-server statistics [ name virtual-server-name ] [ slot slot-number ]
· 显示所有虚服务器的累加统计信息。
display loadbalance virtual-server total-statistics [ slot slot-number ]
请在用户视图下执行以下命令,清除虚服务器的统计信息。
reset loadbalance virtual-server statistics [ virtual-server-name ]
可在任意视图下执行以下命令,显示业务主机的统计信息。
display loadbalance service-host statistics [ name service-host-name ] [ slot slot-number ]
请在用户视图下执行以下命令,清除业务主机的统计信息。
reset loadbalance service-host statistics [ service-host-name ]
可在任意视图下执行以下命令,显示服务池成员的统计信息。
display loadbalance service-host statistics [ name service-host-name ] [ slot slot-number ]
请在用户视图下执行以下命令,清除服务池成员的统计信息。
reset loadbalance service-host statistics service-pool service-pool-name [ name service-host-name port port-number ]
可在任意视图下执行以下命令,显示会话保持的统计信息。
display loadbalance persistence statistics virtual-server
display loadbalance persistence statistics virtual-server [ slot slot-number ]
display loadbalance persistence statistics virtual-server [ chassis chassis-number slot slot-number ]
可在任意视图下执行以下命令:
· 显示所有协议的负载均衡ALG状态。
display loadbalance alg
· 显示七层负载均衡的TCP连接信息。
display loadbalance connections [ client-side{ ipv4 | ipv6 } [ cs-client-ip ip-address [ cs-client-port port-number ] ] [ cs-server-ip ip-address [ cs-server-port port-number ] ] [ state { closed | close_wait | closing | established | fin_wait_1 | fin_wait_2 | last_ack | listening | syn_received | syn_sent | time_wait } ] ] [ server-side { ipv4 | ipv6 } [ ss-client-ip ip-address [ ss-client-port port-number ] ] [ ss-server-ip ip-address [ ss-server-port port-number ] ] [ state { closed | close_wait | closing | established | fin_wait_1 | fin_wait_2 | last_ack | listening | syn_received | syn_sent | time_wait } ] ] [ slot slot-number ] [ verbose ]
· 显示自定义监控的日志信息。
display loadbalance external-monitor log
· 显示HTTP内容。
display loadbalance http-content { brief | name content-name }
· 显示改写策略的信息。
display loadbalance modify-policy [ name policy-name ]
· 显示参数模板的信息。
display loadbalance parameter-profile [ name parameter-name ]
· 显示会话保持的信息。
display loadbalance persistence [ name persistence-name ]
· 显示虚服务器的会话保持表项信息。
display loadbalance persistence virtual-server [ virtual-server-name virtual-server-name ] [ [ service-host-addr { ipv4-address | ipv6-address } | service-host-port port-number | service-pool service-pool-name | text text ] * ] [ client-addr { ipv4-address | ipv6-address } | persistence-type { address-port | http-body | http-content | http-cookie | http-header | http-passive | udp-payload | radius | sip | ssl | tcp-payload | udp-passive } [ key key ] ] * [ traffic-group traffic-group-id ] [ brief ] [ slot slot-number ]
· 显示设备允许启动的自定义监控进程个数。
display loadbalance process-limit
· 显示负载均衡探测模板的信息。
display loadbalance probe-template [ name template-name ]
· 显示防护策略的配置信息。
display loadbalance protection-policy [ name policy-name ]
· 显示调度策略的信息。
display loadbalance schedule-policy [ name policy-name ]
· 显示业务主机的信息。
display loadbalance service-host [ brief | name service-host-name ]
· 显示服务池成员的信息。
display loadbalance service-host service-pool service-pool-name [ name service-host-name port port-number ]
· 显示服务池的信息。
display loadbalance service-pool [ brief | name service-pool-name ]
· 显示SNAT地址池的信息。
display loadbalance snat-pool [ name pool-name ]
· 显示虚服务器的信息。
display loadbalance virtual-server [ brief | name virtual-server-name ]
· 显示负载均衡报表内容模板的配置信息。
display dac report export lb-template [ template-name ]
请在用户视图下执行以下命令,清除虚服务器的会话保持表项信息。
reset loadbalance persistence virtual-server [ virtual-server-name virtual-server-name ] [ [ service-host-addr { ipv4-address | ipv6-address } | service-host-port port-number | service-pool service-pool-name | text text ] * ] [ client-addr { ipv4-address | ipv6-address } | persistence-type { address-port | http-content | http-cookie | http-header | http-passive | payload | radius | sip | ssl | tcp-payload | udp-passive } [ key key ] ] * [ traffic-group traffic-group-id ] [ slot slot-number ]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!