06-负载均衡配置
本章节下载: 06-负载均衡配置 (1.07 MB)
LB(Load Balance,负载均衡)是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。
负载均衡技术具有以下优势:
· 高性能:通过将业务较均衡地分配到多台设备或多条链路上,提高了系统的整体性能。
· 可扩展性:可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。
· 高可靠性:单个甚至多个设备或链路发生故障也不会导致业务中断,提高了系统的整体可靠性。
· 可管理性:大量的管理工作都集中在应用了负载均衡技术的设备上,集群中的设备或链路只需要进行普通的配置和维护。
· 透明性:对用户而言,集群等同于一个可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构。增减集群中的设备或链路不会影响正常业务。
负载均衡技术可分为以下几种类型:
· 服务器负载均衡:在数据中心等组网中,通过此技术可将网络服务分担给多台服务器或防火墙进行处理,从而提高服务器或防火墙的处理能力。
· 链路负载均衡:当存在多条运营商链路时,通过此技术可实现链路的动态选择,从而充分利用多条链路。链路负载均衡支持IPv4与IPv6,但不支持IPv4报文与IPv6报文的互相转换。根据数据的连接请求方向不同,链路负载均衡又分为以下三种:
¡ 出方向链路负载均衡:当内网用户访问外部互联网存在多条链路时,可在多条链路上分担内网用户访问外部互联网的流量。
¡ DNS透明代理:当内网用户访问外网DNS服务器存在多条链路时,可在多条链路上分担内网用户访问外部DNS服务器的流量。
¡ 入方向链路负载均衡:当外网用户访问内网服务器存在多条链路时,可在多条链路上分担外网用户访问内网服务器的流量。
设备各款型对于本节所描述的特性支持情况有所不同,详细差异信息如下:
型号 |
特性 |
描述 |
F1000-E-G2/F1000-A-G2/F1000-S-G2/F1000-C-G2 |
服务器负载均衡 |
支持 |
F100-E-G2/F100-A-G2/F100-M-G2/F100-S-G2/F100-C-G2 |
· F100-E-G2/F100-A-G2:支持 · F100-M-G2/F100-S-G2/F100-C-G2:不支持 |
|
F1000-C-EI/F100-E-EI/F100-A-EI/F100-C-EI/F100-A-SI |
· F1000-C-EI/F100-E-EI/F100-A-EI/F100-A-SI:支持 · F100-C-EI:不支持 |
|
F100-C-HI/F100-S-HI/F100-A-HI/F1000-C-HI |
· F100-A-HI/F1000-C-HI:支持 · F100-C-HI/F100-S-HI:不支持 |
|
F1000-C8180/F1000-C8170/F1000-C8160/F1000-C8150/F1000-C8130/F1000-C8120 |
· F1000-C8180/F1000-C8170/F1000-C8160:支持 · F1000-C8150/F1000-C8130/F1000-C8120:不支持 |
|
F100-C80-WiNet/F100-C60-WiNet |
不支持 |
根据识别信息的层级不同,服务器负载均衡又分为以下两种:
· 四层服务器负载均衡:可识别网络层和传输层信息,是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。由于四层服务器负载均衡对七层业务无法按内容分发,从而限制了其适用范围。
· 七层服务器负载均衡:除了可识别网络层和传输层信息之外,还可识别应用层信息,是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的服务器负载均衡。
服务器负载均衡支持IPv4与IPv6,但四层服务器负载均衡不支持IPv4报文与IPv6报文的互相转换。
服务器负载均衡在网络中的部署模式有NAT(Network Address Translation,网络地址转换)模式和旁路模式两种,以下分别进行介绍。
图2-1 NAT模式组网图
如图2-1所示,NAT模式服务器负载均衡包含以下要素:
· Cluster(集群):对外提供特定服务的集合,包括负载均衡设备和服务器。
· LB device(负载均衡设备):负责将各种服务请求分发到多台服务器。
· Server(服务器):负责响应和处理各种服务请求。
· VSIP(Virtual Service IP,虚服务IP):集群对外提供服务的IP地址,供用户请求服务时使用。
· Server IP(服务器IP):供负载均衡设备分发服务请求时使用。
NAT模式服务器负载均衡有以下三种实现方式:
· DNAT(Destination Network Address Translation,目的网络地址转换)方式
· SNAT(Source Network Address Translation,源网络地址转换)方式
· DNAT+SNAT方式
在DNAT方式下,服务器需要通过更改缺省网关或配置静态路由,将发往主机的数据包发送到负载均衡设备上。DNAT方式的工作流程如图2-2所示。
图2-2 DNAT方式工作流程图
DNAT方式的工作流程简述如表2-1所示。
表2-1 DNAT方式工作流程简述
步骤 |
描述 |
源IP地址 |
目的IP地址 |
(1) |
主机发送服务请求报文 |
Host IP |
VSIP |
(2) |
负载均衡设备收到请求报文后,借助调度算法算出应将此请求分发给哪台服务器 |
- |
- |
(3) |
负载均衡设备使用DNAT技术分发请求报文,把报文的目的IP地址修改为服务器的IP地址 |
Host IP |
Server IP |
(4) |
服务器接收并处理请求报文,返回响应报文 |
Server IP |
Host IP |
(5) |
负载均衡设备收到响应报文后,将其源IP地址修改为VSIP后转发给主机 |
VSIP |
Host IP |
SNAT方式除了要求在服务器一侧在所有服务器上配置与VSIP相同的LoopBack接口地址外,还要求配置SNAT地址池所分配IP地址的路由。由于此方式的使用场景十分有限,因此并不推荐用户使用,本文也不对其进行详细介绍。
DNAT+SNAT方式的工作流程如图2-3所示。
图2-3 DNAT+SNAT方式工作流程图
表2-2 DNAT+SNAT方式工作流程简述
步骤 |
描述 |
源IP地址 |
目的IP地址 |
(1) |
主机发送服务请求报文 |
Host IP |
VSIP |
(2) |
负载均衡设备收到请求报文后,借助调度算法算出应将此请求分发给哪台服务器 |
- |
- |
(3) |
负载均衡设备使用DNAT+SNAT技术分发请求报文,把报文的目的IP地址修改为服务器的IP地址、源IP地址修改为SNAT地址池中的IP地址 |
SNAT IP |
Server IP |
(4) |
服务器接收并处理请求报文,返回响应报文 |
Server IP |
SNAT IP |
(5) |
负载均衡设备收到响应报文后,将其源IP地址修改为VSIP、目的IP地址修改为主机的IP地址后转发给主机 |
VSIP |
Host IP |
如图2-4所示,旁路模式服务器负载均衡包含以下要素:
· Cluster:对外提供特定服务的集合,包括负载均衡设备、普通设备和服务器。
· LB device:负责将各种服务请求分发到多台服务器。
· General device:按照正常的转发规则转发数据。
· Server:负责响应和处理各种服务请求。
· VSIP:集群对外提供服务的IP地址,供用户请求服务时使用。
· Server IP:供负载均衡设备分发服务请求时使用。
旁路模式又称单臂模式。在此模式下,需在负载均衡设备和服务器上都配置VSIP(要求服务器不能通过VSIP发送和响应ARP请求,比如可将VSIP配置在服务器的LoopBack接口上)。旁路模式服务器负载均衡的工作流程如图2-5所示。
旁路模式服务器负载均衡的工作流程简述如表2-3所示。由于此模式下服务器发出的报文不会经过负载均衡设备,因此其应用有一定局限性。
步骤 |
描述 |
源IP地址 |
目的IP地址 |
(1) |
主机发送服务请求报文 |
Host IP |
VSIP |
(2) |
普通设备收到请求报文后,转发给负载均衡设备(由于服务器不能通过VSIP发送和响应ARP请求,因此不会转发给服务器) |
Host IP |
VSIP |
(3) |
负载均衡设备收到请求报文后,借助调度算法算出应将此请求分发给哪台服务器 |
- |
- |
(4) |
负载均衡设备分发请求报文。与NAT模式相比,本模式下报文的源IP地址和目的IP地址均未被改变 |
Host IP |
VSIP |
(5) |
服务器接收并处理请求报文,返回响应报文 |
VSIP |
Host IP |
(6) |
普通设备收到响应报文后,直接转发给主机 |
VSIP |
Host IP |
配置任务 |
说明 |
详细配置 |
配置实服务组 |
必选 |
|
配置实服务器 |
必选 |
|
配置虚服务器 |
必选 |
|
配置负载均衡类 |
可选 |
|
配置负载均衡动作 |
可选 |
|
配置负载均衡策略 |
可选 |
|
配置持续性组 |
可选 |
|
配置参数模板 |
可选 |
|
配置负载均衡连接数限制策略 |
可选 |
|
配置负载均衡ALG功能 |
可选 |
|
测试负载均衡效果 |
可选 |
|
配置负载均衡告警功能 |
可选 |
|
配置负载均衡日志功能 |
可选 |
· 实服务组:将具有相同或相似功能的实服务器抽象成一个实服务组。实服务组可被虚服务器或负载均衡动作引用。
· 实服务器:负载均衡设备上处理用户业务的实体。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· 负载均衡动作:制订丢弃、转发或修改报文的具体行为。
· 负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。
· 持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理。持续性组可被虚服务器或负载均衡动作引用。
· 参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。
为了便于对实服务器进行统一管理,可将具有相同或相似功能的实服务器抽象成一个组,称为实服务组。比如,可按存储内容的不同划分为歌曲服务器组、视频服务器组和图片服务器组等。
当设备支持服务器负载均衡License功能但尚未安装License时,不允许配置实服务组;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置。
四层和七层服务器负载均衡的实服务组配置完全相同。
表2-5 配置任务简介(四/七层)
配置任务 |
说明 |
详细配置 |
创建实服务组 |
必选 |
|
调度实服务器 |
必选 |
|
配置NAT功能 |
必选 |
|
配置可用条件 |
必选 |
|
配置温暖上线功能 |
可选 |
|
配置健康检测功能 |
可选 |
|
配置故障处理方式 |
可选 |
表2-6 创建实服务组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建实服务组,并进入实服务组视图 |
server-farm server-farm-name |
缺省情况下,不存在任何实服务组 |
(可选)配置实服务组的描述信息 |
description text |
缺省情况下,实服务组没有描述信息 |
负载均衡设备根据实服务组中配置的调度算法,计算出处理用户请求的实服务器。
表2-7 调度实服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
配置实服务组的调度算法 |
predictor hash address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ] predictor { least-connection | random | round-robin { bandwidth | max-bandwidth } } |
缺省情况下,实服务组的调度算法为加权轮转算法 |
配置实服务组中可被调度算法调用的实服务器数量限制 |
selected-server min min-number max max-number |
缺省情况下,实服务组中调用优先级最高的实服务器全部被调度算法调用 |
服务器负载均衡在网络中的部署模式有NAT模式和旁路模式两种,这两种模式下的NAT功能配置有所区别,以下分别进行介绍。
在旁路模式下,需要在实服务组中关闭NAT功能。
表2-8 配置旁路模式的NAT功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
在实服务组中关闭NAT功能 |
transparent enable |
缺省情况下,实服务组中的NAT功能处于开启状态 实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理 |
NAT模式又分为DNAT、SNAT和DNAT+SNAT这三种实现方式,对于DNAT方式,只需在实服务组中开启NAT功能即可;而对于SNAT和DNAT+SNAT这两种方式,还需创建SNAT地址池并在实服务组中引用。
SNAT地址池是一个IP地址范围,它被实服务组引用之后,负载均衡设备将把收到报文的源IP地址修改为SNAT地址池中的IP地址后再转发出去。
一个SNAT地址池中最多允许有256个IPv4地址和65536个IPv6地址,且不同SNAT地址池中的IPv4或IPv6地址不允许重叠。
表2-9 配置NAT模式的NAT功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建SNAT地址池,并进入SNAT地址池视图 |
loadbalance snat-pool pool-name |
缺省情况下,不存在任何SNAT地址池 DNAT方式请跳过本步骤 |
(可选)配置SNAT地址池的描述信息 |
description text |
缺省情况下,SNAT地址池没有描述信息 DNAT方式请跳过本步骤 |
配置SNAT地址池的IPv4地址范围 |
ip range start start-ipv4-address end end-ipv4-address |
二者选其一 缺省情况下,没有配置SNAT地址池的IP地址范围 DNAT方式请跳过本步骤 |
配置SNAT地址池的IPv6地址范围 |
ipv6 range start start-ipv6-address end end-ipv6-address |
|
退回系统视图 |
quit |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
在实服务组中开启NAT功能 |
undo transparent enable |
缺省情况下,实服务组中的NAT功能处于开启状态 实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理 |
指定实服务组引用的SNAT地址池 |
snat-pool pool-name |
缺省情况下,实服务组没有引用任何SNAT地址池 DNAT方式请跳过本步骤 |
通过配置实服务组的可用条件,可将流量在主用实服务组和备用实服务组之间进行切换:当主用实服务组中的实服务器可用率低于下限时,将流量切换到备用实服务组上,以防止服务器受到大流量的冲击;待主用实服务组中的实服务器可用率恢复到上限时,再将流量切换回来。
表2-10 配置可用条件
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
配置实服务组的可用条件 |
activate lower lower-percentage upper upper-percentage |
缺省情况下,实服务组中只要有一个实服务器可用,该实服务组就被认为可用 |
当向实服务组中添加实服务器时,某些新增的实服务器无法立即承担大量业务,此时可以开启温暖上线功能。这样,当实服务器上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。
表2-11 配置温暖上线功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
在实服务组中开启实服务器温暖上线功能 |
slow-online [ standby-time standby-time ramp-up-time ramp-up-time ] |
缺省情况下,实服务组中的实服务器温暖上线功能处于关闭状态 |
通过健康检测可以对实服务器进行检测,保证其能够提供有效的服务。
用户既可在实服务组视图下对组内的所有实服务器进行配置,也可在实服务器视图下只对当前实服务器进行配置,后者的配置优先级较高。
表2-12 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
指定实服务组的健康检测方法 |
probe template-name |
缺省情况下,没有指定实服务组的健康检测方法 |
配置实服务组健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过本配置可以选择实服务组的故障处理方式:
· 保持已有连接:不主动断开与故障实服务器的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到实服务组中其它可用的实服务器上。
· 断开已有连接:主动断开与故障实服务器的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
表2-13 配置故障处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务组视图 |
server-farm server-farm-name |
- |
配置实服务组的故障处理方式 |
fail-action { keep | reschedule | reset } |
缺省情况下,实服务组的故障处理方式为保持已有连接 |
实服务器是负载均衡设备上处理用户业务的实体。一个实服务器只能属于一个实服务组,而一个实服务组可以包含多个实服务器。
当设备支持服务器负载均衡License功能但尚未安装License时,不允许配置实服务器;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置。
四层和七层服务器负载均衡的实服务器配置完全相同。
表2-14 配置任务简介(四/七层)
配置任务 |
说明 |
详细配置 |
创建实服务器并指定其所属实服务组 |
必选 |
|
配置IP地址和端口号 |
必选 |
|
配置权值和调用优先级 |
必选 |
|
配置带宽和连接参数 |
可选 |
|
配置健康检测功能 |
可选 |
|
慢宕实服务器 |
可选 |
|
配置实服务器的带宽繁忙比与最大期望带宽 |
可选 |
|
指定实服务器所属的VPN实例 |
可选 |
|
关闭实服务器所属VPN实例的继承功能 |
可选 |
表2-15 创建实服务器并指定其所属实服务组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建实服务器,并进入实服务器视图 |
real-server real-server-name |
缺省情况下,不存在任何实服务器 |
(可选)配置实服务器的描述信息 |
description text |
缺省情况下,实服务器没有描述信息 |
指定实服务器所属的实服务组 |
server-farm server-farm-name |
缺省情况下,实服务器不属于任何实服务组 |
通过本配置可以指定实服务器的IPv4或IPv6地址,以及实服务器的端口号。
表2-16 配置IP地址和端口号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
配置实服务器的IPv4地址 |
ip address ipv4-address |
二者选其一 缺省情况下,实服务器没有IP地址 |
配置实服务器的IPv6地址 |
ipv6 address ipv6-address |
|
配置实服务器的端口号 |
port port-number |
缺省情况下,实服务器的端口号为0(表示继续使用原报文携带的端口号) |
通过本配置可以调整实服务器的加权轮转和加权最小连接这两种调度算法所使用的权值,以及实服务器在实服务组中的调用优先级。
表2-17 配置权值和调用优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
配置实服务器的权值 |
weight weight-value |
缺省情况下,实服务器的权值为100 |
配置实服务器的调用优先级 |
priority priority |
缺省情况下,实服务器的调用优先级为4 |
通过本配置可以调整实服务器所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表2-18 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
配置实服务器所允许的最大带宽 |
rate-limit bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,实服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0千字节/秒,即不受限制 |
配置实服务器所允许的最大连接数 |
connection-limit max max-number |
缺省情况下,实服务器所允许的最大连接数为0,即不受限制 |
配置实服务器所允许的每秒最大连接数 |
rate-limit connection connection-number |
缺省情况下,实服务器所允许的每秒最大连接数为0,即不受限制 |
通过健康检测可以对实服务器进行检测,保证其能够提供有效的服务。
用户既可在实服务组视图下对组内的所有实服务器进行配置,也可在实服务器视图下只对当前实服务器进行配置,后者的配置优先级较高。
表2-19 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
指定实服务器的健康检测方法 |
probe template-name |
缺省情况下,没有指定实服务器的健康检测方法 |
配置实服务器健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过shutdown命令可以立即中断实服务器的已有连接,而慢宕则不会立即中断实服务器的已有连接,而是让其自然老化,并且不再建立新的连接。慢宕功能需要与shutdown命令配合使用,即在开启了慢宕功能之后再关闭实服务器,该实服务器才会开始慢宕。
表2-20 慢宕实服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
开启实服务器的慢宕功能 |
slow-shutdown enable |
缺省情况下,实服务器的慢宕功能处于关闭状态 |
关闭实服务器 |
shutdown |
缺省情况下,实服务器处于开启状态 |
通过本配置可以调整实服务器的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当访问某个实服务器的链路流量超过该实服务器的带宽繁忙比与最大期望带宽的乘积后,实服务器进入繁忙状态,设备将停止向该实服务器分发新建流量,但已有流量仍由该实服务器处理;当该链路流量低于该实服务器的带宽繁忙恢复比与最大期望带宽的乘积后,实服务器解除繁忙状态,重新参与调度。
实服务器的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
表2-21 配置实服务器的带宽繁忙比与最大期望带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
配置实服务器的带宽繁忙比 |
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ] |
缺省情况下,实服务器的总带宽繁忙比为70 |
配置实服务器的最大期望带宽 |
max-bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,实服务器所允许的最大总期望带宽、最大上行期望带宽和最大下行期望带宽均为0千字节/秒,即不限制 |
通过指定实服务器所属的VPN实例可使实服务器服务于特定的VPN实例。
表2-22 指定实服务器所属的VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
指定实服务器所属的VPN实例 |
vpn-instance vpn-instance-name |
缺省情况下,当实服务器所属VPN实例的继承功能处于开启状态时,实服务器所属的VPN实例与虚服务器所属的VPN实例一致;当实服务器所属VPN实例的继承功能处于关闭状态时,实服务器服务于公网 |
实服务器所属VPN实例的继承功能是指实服务器所属的VPN实例继承对应虚服务器所属的VPN实例。若在实服务器视图下执行vpn-instance命令指定了实服务器所属的VPN实例,则实服务器属于该VPN实例。若未指定实服务器所属的VPN实例,当实服务器所属VPN实例的继承功能处于开启状态时,实服务器所属的VPN实例与虚服务器所属的VPN实例一致;当该功能处于关闭状态时,实服务器服务于公网。
表2-23 关闭实服务器所属VPN实例的继承功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入实服务器视图 |
real-server real-server-name |
- |
关闭实服务器所属VPN实例的继承功能 |
inherit vpn-instance disable |
缺省情况下,实服务器所属VPN实例的继承功能处于开启状态 |
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
服务器负载均衡支持的虚服务器类型为快速HTTP、HTTP、IP、RADIUS、TCP和UDP。需要注意的是,请避免配置VSIP和端口号都相同的快速HTTP、HTTP、IP、RADIUS和TCP类型的虚服务器,且快速HTTP类型的虚服务器需避免与TCP客户端验证功能(该功能的介绍请参见“安全配置指导”中的“攻击检测与防范”)同时使用。否则导致无法预知负载均衡设备处理报文的方法。
四层和七层服务器负载均衡的虚服务器配置有所区别,下面分别进行介绍。
表2-24 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
创建虚服务器 |
必选 |
|
配置VSIP和端口号 |
必选 |
|
指定虚服务器所属的VPN |
可选 |
|
指定缺省实服务组 |
至少选其一 如果同时配置,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给缺省实服务组处理 |
|
引用负载均衡策略 |
||
引用参数模板 |
可选 |
|
配置带宽和连接参数 |
可选 |
|
配置UDP强制负载均衡功能 |
可选 |
|
配置热备份功能 |
可选 |
|
引用负载均衡连接数限制策略 |
可选 |
|
开启虚服务器 |
必选 |
|
开启虚服务器IP地址下发功能 |
可选 |
表2-25 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
创建虚服务器 |
必选 |
|
配置VSIP和端口号 |
必选 |
|
指定虚服务器所属的VPN |
可选 |
|
指定缺省实服务组 |
至少选其一 如果同时配置,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给缺省实服务组处理 |
|
引用负载均衡策略 |
||
引用参数模板 |
可选 |
|
配置带宽和连接参数 |
可选 |
|
配置重定向功能 |
可选 |
|
引用SSL策略 |
可选 |
|
配置热备份功能 |
可选 |
|
引用负载均衡连接数限制策略 |
可选 |
|
开启虚服务器 |
必选 |
|
开启虚服务器IP地址下发功能 |
可选 |
当设备支持服务器负载均衡License功能但尚未安装License时,不允许配置快速HTTP、HTTP、RADIUS、TCP和UDP类型的虚服务器;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置快速HTTP、HTTP、RADIUS、TCP和UDP类型的虚服务器。
四层服务器负载均衡的虚服务器包括IP、TCP和UDP三种类型。
表2-26 创建虚服务器(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IP、TCP或UDP类型的虚服务器,并进入虚服务器视图 |
virtual-server virtual-server-name type { ip | tcp | udp } |
缺省情况下,不存在任何虚服务器 创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置虚服务器的描述信息 |
description text |
缺省情况下,虚服务器没有描述信息 |
七层服务器负载均衡的虚服务器包括快速HTTP、HTTP和RADIUS类型。
表2-27 创建并开启虚服务器(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建快速HTTP、HTTP或RADIUS类型的虚服务器,并进入虚服务器视图 |
virtual-server virtual-server-name type { fast-http | http | radius } |
缺省情况下,不存在任何虚服务器 创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置虚服务器的描述信息 |
description text |
缺省情况下,虚服务器没有描述信息 |
通过本配置可以指定虚服务器的IPv4或IPv6地址(即VSIP),以及虚服务器的端口号。
表2-28 配置VSIP和端口号(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IP、TCP或UDP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
配置虚服务器的IPv4地址 |
virtual ip address ipv4-address [ mask-length | mask ] |
二者选其一 缺省情况下,虚服务器没有IP地址 |
配置虚服务器的IPv6地址 |
virtual ipv6 address ipv6-address [ prefix-length ] |
|
配置虚服务器的端口号 |
port { port-number [ to port-number ] } &<1-n> |
缺省情况下,IP/TCP/UDP类型虚服务器的端口号为0(表示任意端口号) |
表2-29 配置VSIP和端口号(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入快速HTTP、HTTP或RADIUS类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
配置虚服务器的IPv4地址 |
virtual ip address ipv4-address |
二者选其一 缺省情况下,虚服务器没有IP地址 |
配置虚服务器的IPv6地址 |
virtual ipv6 address ipv6-address |
|
配置虚服务器的端口号 |
port { port-number [ to port-number ] } &<1-n> |
缺省情况下,快速HTTP/HTTP类型虚服务器的端口号为80;RADIUS类型虚服务器的端口号为0(表示任意端口号) 如果虚服务器引用了SSL策略,则必须为其配置一个非缺省端口号(通常用443) |
虚服务器缺省服务于公网,通过本配置可使虚服务器服务于特定的VPN。
表2-30 指定虚服务器所属的VPN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器所属的VPN |
vpn-instance vpn-instance-name |
缺省情况下,虚服务器属于公网 |
当主用实服务组可用(该实服务组存在且有可用的实服务器)时,虚服务器通过主用实服务组进行转发;当主用实服务组不可用而备用实服务组可用时,虚服务器通过备用实服务组进行转发。
表2-31 指定缺省实服务组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定缺省实服务组 |
default server-farm server-farm-name [ backup backup-server-farm-name ] [ sticky sticky-name ] |
缺省情况下,没有指定缺省实服务组 |
虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
表2-32 引用负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的负载均衡策略 |
lb-policy policy-name |
缺省情况下,虚服务器没有引用任何负载均衡策略 虚服务器只能引用与自身类型相关的策略模板,如:快速HTTP和HTTP类型的虚服务器,可以引用通用或HTTP类型的策略模板;IP、TCP和UDP类型的虚服务器,只能引用通用类型的策略模板;RADIUS类型的虚服务器,可以引用通用或RADIUS类型的策略模板 |
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
表2-33 引用参数模板(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IP、TCP或UDP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的参数模板 |
parameter { ip | tcp } profile-name |
缺省情况下,虚服务器没有引用任何参数模板 只有TCP类型的虚服务器可以引用TCP类型的参数模板,其他类型的虚服务器只能引用IP类型的参数模板 |
表2-34 引用参数模板(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入快速HTTP、HTTP类型或RADIUS的虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的参数模板 |
parameter { http | http-compression | ip | tcp } profile-name |
缺省情况下,虚服务器没有引用任何参数模板 |
通过本配置可以调整虚服务器所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表2-35 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
配置虚服务器所允许的最大带宽 |
rate-limit bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0千字节/秒,即不受限制 |
配置虚服务器所允许的最大连接数 |
connection-limit max max-number |
缺省情况下,虚服务器所允许的最大连接数为0,即不受限制 |
配置虚服务器所允许的每秒最大连接数 |
rate-limit connection connection-number |
缺省情况下,虚服务器所允许的每秒最大连接数为0,即不受限制 |
当UDP强制负载均衡功能关闭时,匹配虚服务器的流量按照数据流来进行负载均衡,即一个应用的流量会被负载均衡到同一个实服务器上;而当UDP强制负载均衡功能开启后,匹配虚服务器的流量不再按照流来进行负载均衡,而是按照每报文来进行负载均衡。
表2-36 配置UDP强制负载均衡功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入UDP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的UDP强制负载均衡功能 |
udp per-packet |
缺省情况下,虚服务器的UDP强制负载均衡功能处于关闭状态 |
在HTTP类型的虚服务器视图下开启了重定向功能后,所有匹配该虚服务器的HTTP请求报文都将被重定向到指定URL。
表2-37 配置重定向功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的重定向功能并指定重定向URL |
redirect relocation relocation |
缺省情况下,虚服务器的重定向功能处于关闭状态 |
配置负载均衡设备返回给客户端的重定向报文中的状态码 |
redirect return-code { 301 | 302 } |
缺省情况下,负载均衡设备返回给客户端的重定向报文中的状态码为302 本命令只有在开启了虚服务器的重定向功能后才会生效 |
通过指定虚服务器引用的SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。
通过指定虚服务器引用的SSL服务器端策略,可以对负载均衡设备(作为SSL服务器)与SSL客户端之间传输的流量进行加密传输。
如需修改已被虚服务器引用的SSL客户端/服务器端策略,在策略修改完成后,需在虚服务器视图下,先通过配置undo service enable命令关闭虚服务器,再通过配置service enable命令开启虚服务器,新的策略才能生效。
表2-38 引用SSL策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP或HTTP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的SSL客户端策略 |
ssl-client-policy policy-name |
缺省情况下,虚服务器没有引用任何SSL客户端策略 TCP和快速HTTP类型的虚服务器不支持本功能 |
指定虚服务器引用的SSL服务器端策略 |
ssl-server-policy policy-name |
缺省情况下,虚服务器没有引用任何SSL服务器端策略 快速HTTP类型的虚服务器不支持本功能 |
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
表2-39 配置热备份功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的会话扩展信息备份功能 |
connection-sync enable |
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态 HTTP类型的虚服务器不支持本功能 |
开启虚服务器的持续性表项备份功能 |
sticky-sync enable |
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态 |
引用负载均衡连接数限制策略后,访问虚服务器的连接数将会受到连接数限制策略的限制。
表2-40 引用负载均衡连接数限制策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
引用负载均衡连接数限制策略 |
lb-limit-policy policy-name |
缺省情况下,虚服服器中没有引用任何负载均衡连接数限制策略 |
配置完虚服务器后,需要将其开启后才能进入工作状态。
表2-41 开启虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器 |
service enable |
缺省情况下,虚服务器处于关闭状态 |
在多数据中心的容灾备份组网中,通过在各数据中心的负载均衡设备上开启虚服务器IP地址下发功能,可以实现多数据中心之间的全局负载均衡。
开启虚服务器IP地址下发功能后,设备会将虚服务器的IP地址发布给OSPF模块参与路由计算,
当数据中心进行切换的时候,保证访问虚服务器的流量也可以自动切换,从而提高负载均衡服务的可靠性。有关OSPF的配置请参见“三层技术-IP路由”中的“OSPF”。
表2-42 开启虚服务器IP地址下发功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器IP地址下发功能 |
route-advertisement enable |
缺省情况下,虚服务器IP地址下发功能处于关闭状态 |
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
四层和七层服务器负载均衡的负载均衡类配置有所区别,下面分别进行介绍。
表2-43 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
表2-44 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
|||
创建HTTP实体类型的匹配规则 |
|||
创建HTTP Cookie类型的匹配规则 |
|||
创建HTTP首部类型的匹配规则 |
|||
创建HTTP URL类型的匹配规则 |
|||
创建匹配报文方法类型的匹配规则 |
|||
创建RADIUS属性的匹配规则 |
当设备支持服务器负载均衡License功能但尚未安装License时,不允许配置Generic、HTTP和RADIUS类型的负载均衡类;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置Generic、HTTP和RADIUS类型的负载均衡类。
表2-45 创建负载均衡类(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建通用类型的负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name type generic [ match-all | match-any ] |
缺省情况下,不存在任何负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类没有描述信息 |
表2-46 创建负载均衡类(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP或RADIUS类型的负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name type { http | radius } [ match-all | match-any ] |
缺省情况下,不存在任何负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类没有描述信息 |
表2-47 创建嵌套类的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建嵌套类的匹配规则 |
match [ match-id ] class class-name |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-48 创建源IP地址类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建源IP地址类型的匹配规则 |
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-49 创建ACL类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建ACL类型的匹配规则 |
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-50 创建HTTP实体类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP实体类型的匹配规则 |
match [ match-id ] content content [ offset offset ] |
缺省情况下,负载均衡类中不存在任何匹配规则 快速HTTP类型虚服务器不支持本功能 |
表2-51 创建HTTP Cookie类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP Cookie类型的匹配规则 |
match [ match-id ] cookie cookie-name value value |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-52 创建HTTP首部类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP首部类型的匹配规则 |
match [ match-id ] header header-name value value |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-53 创建HTTP URL类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP URL类型的匹配规则 |
match [ match-id ] url url |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-54 创建匹配报文方法类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建匹配报文方法类型的匹配规则 |
match [ match-id ] method { ext ext-type | rfc rfc-type } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-55 创建RADIUS属性的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RADIUS类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建RADIUS属性的匹配规则 |
match [ match-id ] radius-attribute { code attribute-code | user-name } value attribute-value |
缺省情况下,负载均衡类中不存在RADIUS属性的匹配规则 |
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
四层和七层服务器负载均衡的负载均衡动作配置有所区别,下面分别进行介绍。
表2-56 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
配置报文的转发模式为转发 |
可选其一 这两条命令互斥,当配置了其中一条后,另一条的配置将被自动取消 |
|
指定指导转发的实服务组 |
|||
配置查找可用实服务器失败时继续匹配下一条引用规则 |
可选 |
||
配置修改类动作 |
配置发往服务器的IP报文中的ToS字段 |
可选 |
表2-57 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
指定指导转发的实服务组 |
可选 重定向和实服务器组配置互斥,当配置了其中一个后,另外一个的配置将被自动取消 |
|
配置查找可用实服务器失败时继续匹配下一条引用规则 |
|||
配置修改类动作 |
配置发往服务器的IP报文中的ToS字段 |
可选其一 重定向和实服务器组配置互斥,当配置了其中一个后,另外一个的配置将被自动取消 |
|
操作HTTP首部 |
|||
重写服务器发送的HTTP应答报文Location首部的URL |
|||
引用SSL客户端策略 |
|||
修改HTTP应答报文体中的指定内容 |
|||
配置重定向功能 |
当设备支持服务器负载均衡License功能但尚未安装License时,不允许配置Generic、HTTP和RADIUS类型的负载均衡动作;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置Generic、HTTP和RADIUS类型的负载均衡动作。
表2-58 创建负载均衡动作(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建通用类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type generic |
缺省情况下,不存在任何负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作没有描述信息 |
表2-59 创建负载均衡动作(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP或RADIUS类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type { http | radius } |
缺省情况下,不存在任何负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作没有描述信息 |
表2-60 配置报文的转发模式为转发
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入通用类型的负载均衡动作视图 |
loadbalance action action-name |
- |
配置报文的转发模式为转发 |
forward all |
缺省情况下,报文转发模式为丢弃 |
当主用实服务组可用(该实服务组存在且有可用的实服务器)时,使用主用实服务组指导转发;当主用实服务组不可用而备用实服务组可用时,使用备用实服务组指导转发。
表2-61 指定指导转发的实服务组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
指定指导转发的实服务组 |
server-farm server-farm-name [ backup backup-server-farm-name ] [ sticky sticky-name ] |
缺省情况下,没有指定指导转发的实服务组 |
当配置该命令的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用实服务器失败时,可继续顺序匹配策略中的下一条引用规则。
表2-62 配置查找实服务器失败时继续匹配下一条引用规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置查找实服务器失败时继续匹配下一条引用规则 |
fallback-action continue |
缺省情况下,根据当前动作查找可用实服务器失败时,不再继续匹配下一条引用规则 |
表2-63 配置发往服务器的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置发往服务器的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往服务器的IP报文中的ToS字段 |
通过本配置可以对HTTP首部执行以下操作:
· 删除:如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部从报文中删除。
· 插入:系统将在指定方向的HTTP报文中插入指定名称和内容的首部。
· 重写:如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部中的指定内容重写为新的内容。
表2-64 操作HTTP首部
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
删除HTTP首部 |
header delete { both | request | response } name header-name |
缺省情况下,不删除HTTP首部 |
插入HTTP首部 |
header insert { both | request | response } name header-name value value |
缺省情况下,不插入HTTP首部 |
重写HTTP首部 |
header rewrite { both | request | response } name header-name value value replace replace |
缺省情况下,不重写HTTP首部 |
如果HTTP应答报文Location首部匹配了指定的URL和HTTP端口号,系统会将Location首部的URL由HTTP重写为HTTPS,并将原HTTP端口号重写为新的SSL端口号。
表2-65 重写服务器发送的HTTP应答报文Location首部的URL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
重写服务器发送的HTTP应答报文Location首部的URL |
ssl url rewrite location location [ clearport clear-port ] [ sslport ssl-port ] |
缺省情况下,不重写服务器发送的HTTP应答报文Location首部的URL |
通过引用SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。
如需修改已被负载均衡动作引用的SSL客户端策略,在策略修改完成后,需在虚服务器视图下,先通过配置undo service enable命令关闭虚服务器,再通过配置service enable命令开启虚服务器,新的策略才能生效。
表2-66 引用SSL客户端策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
指定引用的SSL客户端策略 |
ssl-client-policy policy-name |
缺省情况下,没有引用任何SSL客户端策略 |
通过本配置,可以修改HTTP应答报文体中指定内容。
表2-67 修改HTTP应答报文体中指定内容
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
修改HTTP应答报文体中指定内容 |
content rewrite value value replace replace |
缺省情况下,不修改HTTP应答报文体中指定内容 |
在HTTP类型的负载均衡动作视图下开启了重定向功能后,所有匹配对应负载均衡动作的HTTP请求报文都将被重定向到指定URL。
表2-68 配置重定向功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
开启动作的重定向功能并指定重定向URL |
redirect relocation relocation |
缺省情况下,动作的重定向功能处于关闭状态 |
配置负载均衡设备返回给客户端的重定向报文中的状态码 |
redirect return-code { 301 | 302 } |
缺省情况下,负载均衡设备返回给客户端的重定向报文中的状态码为302 本命令只有在开启了动作的重定向功能后才会生效 |
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
四层和七层服务器负载均衡的负载均衡策略配置有所区别,下面分别进行介绍。
表2-69 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
表2-70 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
当设备支持服务器负载均衡License功能但尚未安装License时,不允许配置Generic、HTTP和RADIUS类型的负载均衡策略;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置Generic、HTTP和RADIUS类型的负载均衡策略。
表2-71 创建负载均衡策略(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建通用类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type generic |
缺省情况下,不存在任何负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略没有描述信息 |
表2-72 创建负载均衡策略(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP或RADIUS类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type { http | radius } |
缺省情况下,不存在任何负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略没有描述信息 |
通用类型的负载均衡策略只能引用通用类型的负载均衡类和负载均衡动作;HTTP类型的负载均衡策略可以引用HTTP或通用类型的负载均衡类和负载均衡动作;RADIUS类型的负载均衡策略可以引用RAIDIUS或通用类型的负载均衡类和负载均衡动作。
表2-73 指定负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
为负载均衡类指定负载均衡动作 |
class class-name [ insert-before before-class-name ] action action-name |
缺省情况下,没有为任何负载均衡类指定负载均衡动作 不同的负载均衡类可以与同一负载均衡动作组成匹配规则 |
通用类型的负载均衡策略只能引用通用类型的负载均衡动作作为其缺省负载均衡动作,HTTP类型的负载均衡策略则无此限制。
表2-74 指定缺省负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
指定缺省负载均衡动作 |
default-class action action-name |
缺省情况下,未指定缺省负载均衡动作 |
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了实服务器之后,后续包都会沿用这个选择结果。
四层和七层服务器负载均衡的持续性组配置有所区别,下面分别进行介绍。
表2-75 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
|
创建持续性组 |
必选 |
||
配置持续性方法 |
配置IP持续性方法 |
必选 |
|
配置持续性表项超时时间 |
可选 |
||
开启匹配持续性表项的会话不受连接数限制影响功能 |
可选 |
||
表2-76 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建持续性组 |
必选 |
||
配置持续性方法 |
配置IP持续性方法 |
至少选其一 |
|
配置HTTP实体持续性方法 |
|||
配置HTTP Cookie持续性方法 |
|||
配置HTTP首部持续性方法 |
|||
配置HTTP载荷持续性方法 |
|||
配置RADIUS属性持续性方法 |
|||
配置SSL持续性方法 |
|||
配置持续性表项超时时间 |
可选 |
||
开启匹配持续性表项的会话不受连接数限制影响功能 |
可选 |
当设备支持服务器负载均衡License功能但尚未安装License时,仅允许配置address-port类型的持续性组;当设备不支持服务器负载均衡License功能,或支持服务器负载均衡License功能且安装有License时,才允许配置所有类型的持续性组。
表2-77 创建持续性组(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建地址端口类型的持续性组,并进入持续性组视图 |
sticky-group group-name type address-port |
缺省情况下,不存在任何持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组没有描述信息 |
表2-78 创建持续性组(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP实体、HTTP Cookie、HTTP首部、HTTP载荷、RADIUS或SSL类型的持续性组,并进入持续性组视图 |
sticky-group group-name type { http-content | http-cookie | http-header | payload | radius | ssl } |
缺省情况下,不存在任何持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组没有描述信息 |
表2-79 配置IP持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
配置IPv4持续性方法 |
ip [ port ] { both | destination | source } [ mask mask-length ] |
二者选其一 缺省情况下,不存在任何持续性方法 |
配置IPv6持续性方法 |
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ] |
表2-80 配置HTTP实体持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP实体类型的持续性组视图 |
sticky-group group-name |
- |
配置HTTP实体持续性方法 |
content [ offset offset ] [ start start-string ] [ end end-string | length length ] |
缺省情况下,不存在任何持续性方法 快速HTTP类型的虚服务器不支持本功能 |
表2-81 配置HTTP Cookie持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP Cookie类型的持续性组视图 |
sticky-group group-name |
- |
配置HTTP Cookie持续性方法 |
cookie { get name cookie-name [ offset offset ] [ start start-string] [ end end-string | length length ] | { insert | rewrite } [ name cookie-name ] } |
缺省情况下,不存在任何持续性方法 |
(可选)指定需在URI中查找的Secondary Cookie的名称 |
cookie secondary name value |
缺省情况下,未指定需在URI中查找的Secondary Cookie名称 |
(可选)配置检查所有报文 |
check all-packet |
缺省情况下,不检查所有报文 |
表2-82 配置HTTP首部持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP首部类型的持续性组视图 |
sticky-group group-name |
- |
配置HTTP首部持续性方法 |
header { { { host | name header-name | url } [ offset offset ] [ start start-string] [ end end-string | length length ] } | request-method | version } |
缺省情况下,不存在任何持续性方法 |
表2-83 配置HTTP载荷持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP载荷类型的持续性组视图 |
sticky-group group-name |
- |
配置HTTP载荷持续性方法 |
payload [ offset offset ] [ start start-string ] [ end end-string | length length ] |
缺省情况下,不存在任何持续性方法 快速HTTP类型的虚服务器不支持本功能 |
表2-84 配置RADIUS属性持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RADIUS类型的持续性组视图 |
sticky-group group-name |
- |
配置RADIUS属性持续性方法 |
radius-attribute { code attribute-code | framed-ip-address | user-name } |
缺省情况下,不存在RADIUS属性持续性方法 |
表2-85 配置SSL持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL类型的持续性组视图 |
sticky-group group-name |
- |
配置SSL持续性方法为基于SSL会话ID |
ssl session-id |
缺省情况下,不存在任何持续性方法 |
表2-86 配置持续性表项超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
配置持续性表项的超时时间 |
timeout timeout-value |
缺省情况下,对于HTTP Cookie类型的持续性组,持续性表项的超时时间为86400秒;对于其它类型的持续性组,持续性表项的超时时间为60秒 |
开启该功能后,如果该连接匹配了已有的持续性表项,将不受实服务器上带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
表2-87 开启匹配持续性表项的会话不受连接数限制影响功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
开启匹配持续性表项的会话不受连接数限制影响功能 |
override-limit enable |
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响 |
四层和七层服务器负载均衡的参数模板配置有所区别,下面分别进行介绍。
表2-88 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
创建参数模板 |
必选 |
|
配置发往客户端的IP报文中的ToS字段 |
必选 |
表2-89 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建参数模板 |
必选 |
||
配置具体参数 |
配置TCP连接中的本地最大窗口值 |
至少选其一 |
|
配置TCP连接的空闲超时时间 |
|||
配置TCP连接TIME-WAIT状态的超时时间 |
|||
配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式 |
|||
配置负载均衡设备与对端建立TCP连接时的MSS值 |
|||
配置对每个HTTP请求报文都进行负载均衡 |
|||
配置允许负载均衡设备与服务器的连接复用 |
|||
配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作 |
|||
配置匹配字符串时对大小写不敏感 |
|||
配置HTTP最大解析长度 |
|||
配置Secondary Cookie相关参数 |
|||
配置当HTTP请求或应答报文首部超出最大长度时的处理方式 |
|||
配置压缩功能 |
通过配置参数模板可以制订对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。
表2-90 创建参数模板(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IP类型的参数模板,并进入参数模板视图 |
parameter-profile profile-name type ip |
缺省情况下,不存在任何参数模板 创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置参数模板的描述信息 |
description text |
缺省情况下,参数模板没有描述信息 |
表2-91 创建参数模板(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP、HTTP压缩或TCP类型的参数模板,并进入参数模板视图 |
parameter-profile profile-name type { http | http-compression | tcp } |
缺省情况下,不存在任何参数模板 创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置参数模板的描述信息 |
description text |
缺省情况下,参数模板没有描述信息 |
表2-92 配置发往客户端的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置发往客户端的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往客户端的IP报文中的ToS字段 |
表2-93 配置TCP连接中的本地最大窗口值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置TCP连接中的本地最大窗口值 |
tcp window-size size |
缺省情况下,TCP连接中的本地最大窗口值为65535 |
通过本配置可以自定义负载均衡设备与客户端以及服务器建立的TCP连接的空闲超时时间。若在TCP连接的空闲超时时间内没有应用数据传输,负载均衡设备会主动断开与客户端或服务器的TCP连接。
表2-94 配置TCP连接的空闲超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置TCP连接的空闲超时时间 |
tcp connection idle-timeout value |
缺省情况下,TCP连接的空闲超时时间为0,即不超时 |
TCP连接断开时,由于TCP协议的TIME-WAIT状态超时时间较长,导致TCP连接释放过慢,影响负载均衡业务处理效率。通过本配置可灵活设置TIME-WAIT状态超时时间。
表2-95 配置TCP连接TIME-WAIT状态的超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置TCP连接TIME-WAIT状态的超时时间 |
tcp connection time-wait timeout value |
缺省情况下,TCP连接TIME-WAIT状态的超时时间为3秒 |
表2-96 配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式 |
exceed-mss { allow | drop } |
缺省情况下,对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式为允许超出MSS的数据段 |
在客户端与负载均衡设备建立TCP连接时,客户端将MSS值通告给负载均衡设备,负载均衡设备会记录下这个MSS值,并将配置的MSS值发送给客户端,客户端与负载均衡设备将使用较小的MSS值作为双方通信的最大分段长度。
在负载均衡设备与服务器建立TCP连接时,负载均衡设备将配置的MSS值通告给服务器,服务器会记录下这个MSS值,并将自身的MSS值发送给负载均衡设备,负载均衡设备与服务器将使用较小的MSS值作为双方通信的最大分段长度。
表2-97 配置负载均衡设备与对端建立TCP连接时的MSS值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置负载均衡设备与对端建立TCP连接时的MSS值 |
tcp mss value |
缺省情况下,未配置负载均衡设备与对端建立TCP连接时的MSS值 |
表2-98 配置对每个HTTP请求报文都进行负载均衡
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置对每个HTTP请求报文都进行负载均衡 |
rebalance per-request |
缺省情况下,只对一条连接的第一个HTTP请求报文进行负载均衡,其余请求的处理方式与第一个相同 |
表2-99 配置允许负载均衡设备与服务器的连接复用
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置允许负载均衡设备与服务器的连接复用 |
server-connection reuse |
缺省情况下,不允许负载均衡设备与服务器的连接复用 快速HTTP类型的虚服务器不支持本功能 |
表2-100 配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作 |
header modify per-request |
缺省情况下,只对每个连接的第一个HTTP请求或应答报文的首部执行插入、删除或修改操作 |
表2-101 配置匹配字符串时对大小写不敏感
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置匹配字符串时对大小写不敏感 |
case-insensitive |
缺省情况下,匹配字符串时对大小写敏感 |
表2-102 配置HTTP最大解析长度
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置HTTP实体的最大解析长度 |
content maxparse-length length |
缺省情况下,HTTP实体的最大解析长度为4096 快速HTTP类型的虚服务器不支持本功能 |
配置HTTP首部的最大解析长度 |
header maxparse-length length |
缺省情况下,HTTP首部的最大解析长度为4096 快速HTTP类型的虚服务器不支持本功能 |
表2-103 配置Secondary Cookie相关参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置URL中分隔Secondary Cookie的字符 |
secondary-cookie delimiters text |
缺省情况下,URL中分隔Secondary Cookie的字符为“/”、“&”、“#”或“+” |
配置URL中Secondary Cookie的起始位置标示字符 |
secondary-cookie start text |
缺省情况下,URL中Secondary Cookie的起始位置标示字符为“?” |
表2-104 配置当HTTP请求或应答报文首部超出最大长度时的处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置当HTTP请求或应答报文首部超出最大长度时的处理方式 |
header exceed-length { continue | drop } |
缺省情况下,当HTTP请求或应答报文首部超出最大长度时,继续进行负载均衡处理 快速HTTP类型的虚服务器不支持本功能 |
表2-105 配置HTTP压缩功能的具体参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP压缩类型的参数模板视图 |
parameter-profile profile-name |
- |
设置进行压缩的应答报文体最小长度 |
content length-threshold length |
缺省情况下,压缩的应答报文体最小长度为1024字节 |
设置应答报文的压缩级别 |
compression level level |
缺省情况下,应答报文的压缩级别为1 |
设置应答报文压缩所占用的内存大小 |
memory-size size |
缺省情况下,应答报文压缩所占用的内存大小为8KB |
配置对HTTP1.0的请求报文的应答进行压缩处理 |
request-version all |
缺省情况下,不对HTTP1.0的请求报文的应答进行压缩处理 |
配置应答报文首选的压缩算法 |
prefer-method { deflate | gzip } |
缺省情况下,首选压缩算法为gzip |
配置删除请求报文中的Accept-Encoding首部 |
header delete request accept-encoding |
缺省情况下,删除请求中的Accept-Encoding首部 |
设置在应答报文中插入Vary首部,内容为Accept-Encoding |
header insert response vary |
缺省情况下,在应答报文中插入Vary首部,内容为Accept-Encoding |
配置进行压缩的过滤条件 |
rule [ rule-id ] { permit | deny } { content | url } expression |
缺省情况下,未配置任何过滤条件 |
配置压缩使用的窗口大小 |
window-size size |
缺省情况下,压缩窗口大小为16KB |
一个连接数限制策略中可配置多条连接数限制规则,每条规则中指定一个连接数限制的用户范围,属于该范围的用户可建立的连接数将受到该规则中指定参数的限制。当某类型的连接数达到上限值(max-amount)时,设备将不接受该类型的新建连接请求,直到设备上已有连接因老化而删除,使得当前该类型的连接数低于连接数下限(min-amount)后,才允许新建连接。对于未匹配连接数限制规则的用户所建立的连接,设备不对其连接数进行限制。
目前,连接数限制支持根据ACL来限定用户范围,对匹配ACL规则的访问虚服务器的连接数进行统计和限制。
表2-106 配置负载均衡连接数限制策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建负载均衡连接数限制策略,并进入连接数限制策略视图 |
loadbalance limit-policy policy-name |
缺省情况下,不存在任何负载均衡连接数限制策略 |
配置负载均衡连接数限制规则 |
limit limit-id acl [ ipv6 ] { acl-number | name acl-name } [ per-destination | per-service | per-source ] * amount max-amount min-amount |
缺省情况下,负载均衡连接数限制策略中不存在任何限制规则。 |
(可选)配置描述信息 |
description text |
缺省情况下,未配置任何描述信息 |
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
表2-107 配置负载均衡ALG功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启指定协议的负载均衡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功能均处于开启状态 |
开启所有协议的负载均衡ALG功能 |
loadbalance alg all-enable |
用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。
表2-108 测试负载均衡效果
操作 |
命令 |
说明 |
测试IPv4负载均衡的效果 |
loadbalance schedule-test ip [ vpn-instance vpn-instance-name ] { application http { message-file file-name | method { get | post } url url [ header header ]&<1-10> [ content content-value ] } | 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 [ vpn-instance vpn-instance-name ] { application http { message-file file-name | method { get | post } url url [ header header ]&<1-10> [ content content-value ] } | protocol { protocol-number | icmpv6 | tcp | udp } } destination destination-address destination-port destination-port source source-address source-port source-port [ slot slot-number ] |
本命令可在任意视图下执行 |
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
四层和七层服务器负载均衡的负载均衡告警功能配置完全相同。
表2-109 配置负载均衡告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡的告警功能 |
snmp-agent trap enable loadbalance |
缺省情况下,负载均衡的告警功能处于开启状态 |
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括负载均衡基本日志和负载均衡NAT日志。
通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:
· 实服务器或实服务组的状态变化。
· 实服务器的健康检测结果发生变化。
· 实服务器或虚服务器的连接数达到上限或者恢复到正常范围内。
· 实服务器或虚服务器的连接速率达到上限或者恢复到正常范围内。
· 虚服务器引用的缺省实服务器组主备切换。
· 负载均衡动作引用的实服务器组主备切换。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
表2-110 配置负载均衡基本日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡基本日志功能 |
loadbalance log enable base |
缺省情况下,负载均衡基本日志功能处于开启状态 |
表2-111 配置负载均衡NAT日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡NAT日志功能 |
loadbalance log enable nat |
缺省情况下,负载均衡NAT日志功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后服务器负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除服务器负载均衡的统计信息。
表2-112 服务器负载均衡显示和维护
配置 |
命令 |
显示负载均衡动作的信息 |
display loadbalance action [ name action-name ] |
显示负载均衡类的信息 |
display loadbalance class [ name class-name ] |
显示负载均衡热备份的统计信息 |
display loadbalance hot-backup statistics [ slot slot-number ] |
显示负载均衡连接数限制策略配置信息 |
display loadbalance limit-policy [ name policy-name ] |
显示负载均衡策略的信息 |
display loadbalance policy [ name policy-name ] |
显示SNAT地址池的信息 |
display loadbalance snat-pool [ name pool-name ] |
显示参数模板的信息 |
display parameter-profile [ name parameter-name ] |
显示实服务器的信息 |
display real-server [ brief | name real-server-name ] |
显示实服务器的统计信息 |
display real-server statistics [ name real-server-name ] [ slot slot-number ] |
显示实服务组的信息 |
display server-farm [ brief | name server-farm-name ] |
显示持续性表项的信息 |
display sticky [ virtual-server virtual-server-name [ class class-name | default-class | default-server-farm ] ] [ slot slot-number ] |
显示持续性组的信息 |
display sticky-group [ name group-name ] |
显示虚服务器的信息 |
display virtual-server [ brief | name virtual-server-name ] |
显示虚服务器的统计信息 |
display virtual-server statistics [ name virtual-server-name ] [ slot slot-number ] |
显示所有协议的负载均衡ALG状态 |
display loadbalance alg |
测试PCRE正则表达式的匹配效果,并显示匹配结果 |
loadbalance test pcre value value { string string | file file-name } [ offset offset ] [ case-insensitive ] |
测试根据正则表达式重写的效果,并显示重写结果 |
loadbalance test rewrite value value replace replace-string { string string | file file-name } [ offset offset ] [ case-insensitive ] |
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
清除实服务器的统计信息 |
reset real-server statistics [ real-server-name ] |
清除虚服务器的统计信息 |
reset virtual-server statistics [ virtual-server-name ] |
出方向链路负载均衡功能可在多条链路上分担内网用户访问外部互联网的流量。
如图3-1所示,出方向链路负载均衡包含以下要素:
· Cluster(集群):对外提供特定服务的集合,包括运营商链路和负载均衡设备。
· LB device(负载均衡设备):负责将内网用户访问外部互联网的流量分发到多条链路。
· Link(链路):运营商提供的实体链路。
· VSIP(Virtual Service IP,虚服务IP):集群对外提供的虚服务IP地址,即内网用户发送报文的目的网段。
· Server IP(服务器IP):内网服务器IP地址。
出方向链路负载均衡的工作流程如图3-2所示。
出方向链路负载均衡工作流程简述如表3-1所示。
步骤 |
描述 |
(1) |
负载均衡设备接收来自内网服务器的流量 |
(2) |
负载均衡设备依次根据负载均衡策略、持续性方法、就近性算法、调度算法(通常使用带宽算法或最大带宽算法)来选择最佳链路 |
(3) |
负载均衡设备通过选定的最佳链路将流量转发给外网服务器 |
(4) |
负载均衡设备接收来自外网服务器的流量 |
(5) |
负载均衡设备将流量转发给内网服务器 |
配置任务 |
说明 |
详细配置 |
配置链路组 |
必选 |
|
配置链路 |
必选 |
|
配置虚服务器 |
必选 |
|
配置负载均衡类 |
可选 |
|
配置负载均衡动作 |
可选 |
|
配置负载均衡策略 |
可选 |
|
配置持续性组 |
可选 |
|
配置参数模板 |
可选 |
|
配置ISP信息 |
可选 |
|
配置负载均衡ALG功能 |
可选 |
|
测试负载均衡效果 |
可选 |
|
配置负载均衡告警功能 |
可选 |
|
配置负载均衡日志功能 |
可选 |
· 链路组:将具有相同或相似功能的链路抽象成一个链路组。链路组可被虚服务器或负载均衡动作引用。
· 链路:运营商提供的实体链路。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· 负载均衡动作:制订丢弃、转发或修改报文的具体行为。
· 负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。
· 持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一条链路处理。持续性组可被虚服务器或负载均衡动作引用。
· 参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。
为了便于对链路进行统一管理,可将具有相同或相似功能的链路抽象成一个组,称为链路组。比如,可按不同的运营商划分为ISP1链路组、ISP2链路组和ISP3链路组等。
表3-3 配置任务简介
配置任务 |
说明 |
详细配置 |
创建链路组 |
必选 |
|
调度链路 |
必选 |
|
配置可用条件 |
必选 |
|
配置NAT功能 |
必选 |
|
配置健康检测功能 |
可选 |
|
配置故障处理方式 |
可选 |
|
配置就近性功能 |
可选 |
表3-4 创建链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建链路组,并进入链路组视图 |
loadbalance link-group link-group-name |
缺省情况下,不存在任何链路组 |
(可选)配置链路组的描述信息 |
description text |
缺省情况下,链路组没有描述信息 |
负载均衡设备根据链路组中配置的调度算法,计算出处理用户请求的链路。
表3-5 调度链路
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
配置链路组的调度算法 |
predictor hash address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ] predictor { least-connection | random | round-robin | { bandwidth | max-bandwidth } [ inbound | outbound ] } |
缺省情况下,链路组的调度算法为加权轮转算法 |
配置链路组中可被调度算法调用的实链路数量限制 |
selected-link min min-number max max-number |
缺省情况下,链路组中调用优先级最高的链路全部被调度算法调用 |
通过配置链路组的可用条件,可将流量在主用链路组和备用链路组之间进行切换:当主用链路组中的链路可用率低于下限时,将流量切换到备用链路组上,以防止链路受到大流量的冲击;待主用链路组中的链路可用率恢复到上限时,再将流量切换回来。
表3-6 配置可用条件
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
配置链路组的可用条件 |
activate lower lower-percentage upper upper-percentage |
缺省情况下,链路组中只要有一个链路可用,该链路组就被认为可用 |
出方向链路负载均衡组网通常需要在链路组中关闭NAT功能。
表3-7 关闭的NAT功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
在链路组中关闭NAT功能 |
transparent enable |
缺省情况下,链路组中的NAT功能处于开启状态 |
SNAT地址池是一个IP地址范围,它被链路组引用之后,负载均衡设备将把收到报文的源IP地址修改为SNAT地址池中的IP地址后再转发出去。
· 一个SNAT地址池中最多允许有256个IPv4地址和65536个IPv6地址,且不同SNAT地址池中的IPv4或IPv6地址不允许重叠。
· 出方向链路负载均衡的SNAT功能使用场景有限,通常不建议使用。
表3-8 配置SNAT功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建SNAT地址池,并进入SNAT地址池视图 |
loadbalance snat-pool pool-name |
缺省情况下,不存在任何SNAT地址池 |
(可选)配置SNAT地址池的描述信息 |
description text |
缺省情况下,SNAT地址池没有描述信息 |
配置SNAT地址池的IPv4地址范围 |
ip range start start-ipv4-address end end-ipv4-address |
二者选其一 缺省情况下,没有配置SNAT地址池的IP地址范围 |
配置SNAT地址池的IPv6地址范围 |
ipv6 range start start-ipv6-address end end-ipv6-address |
|
退回系统视图 |
quit |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
指定链路引用的SNAT地址池 |
snat-pool pool-name |
缺省情况下,链路组没有引用任何SNAT地址池 |
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。
表3-9 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
指定链路组的健康检测方法 |
probe template-name |
缺省情况下,没有指定链路组的健康检测方法 |
配置链路组健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过本配置可以选择链路组的故障处理方式:
· 保持已有连接:不主动断开与故障链路的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到链路组中其它可用的链路上。
· 断开已有连接:主动断开与故障链路的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
表3-10 配置故障处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
配置链路组的故障处理方式 |
fail-action { keep | reschedule | reset } |
缺省情况下,链路组的故障处理方式为保持已有连接 |
就近性功能就是通过对链路进行探测,选出到达目的地的最优链路,从而引导后续流量。具体而言,就是当流量经过负载均衡模块时,如果没有与目的地址相关的就近性信息,则根据调度算法,为该流量选择一条链路,以保证业务的可用性,然后启动就近性探测来生成就近性表项,以引导后续流量。
配置就近性功能时,需要先在就近性视图下配置就近性参数,然后在链路组中开启就近性功能。
表3-11 配置就近性参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入就近性视图 |
loadbalance proximity [ vpn-instance vpn-instance-name ] |
- |
配置IPv4就近性表项的掩码长度 |
ip mask { mask-length | mask } |
缺省情况下,IPv4就近性表项的掩码长度为24 |
配置IPv6就近性表项的前缀长度 |
ipv6 prefix prefix-length |
缺省情况下,IPv6就近性表项的前缀长度为96 |
配置就近性计算的网络延迟权值 |
rtt weigt rtt-weight |
缺省情况下,就近性计算的网络延迟权值为100 |
配置就近性计算的路由器跳数权值 |
ttl weight ttl-weight |
缺省情况下,就近性计算的路由器跳数权值为100 |
配置就近性计算的带宽权值 |
bandwidth { inbound | outbound } weight bandwidth-weight |
缺省情况下,就近性计算的出、入方向带宽权值均为100 |
配置就近性计算的成本权值 |
cost weight cost-weight |
缺省情况下,就近性计算的成本权值为100 |
为不同类型的报文指定就近性探测方法 |
match [ match-id ] { tcp } probe template-name |
缺省情况下,没有指定就近性探测方法 |
指定缺省就近性探测方法 |
match default probe template-name |
缺省情况下,没有指定缺省就近性探测方法 |
配置就近性表项的老化时间 |
timeout timeout-value |
缺省情况下,就近性表项的老化时间为60秒 |
配置就近性表项的最大个数 |
max-number number |
缺省情况下,不限制就近性表项的最大个数 |
表3-12 开启就近性功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
开启就近性功能 |
proximity enable |
缺省情况下,链路组的就近性功能处于关闭状态 |
链路是运营商提供的实体链路。一条链路只能属于一个链路组,而一个链路组可以包含多条链路。
表3-13 配置任务简介
配置任务 |
说明 |
详细配置 |
创建链路并指定其所属链路组 |
必选 |
|
指定链路出口方向(外网方向)的下一跳IP地址 |
必选 |
|
配置权值和调用优先级 |
必选 |
|
配置带宽和连接参数 |
可选 |
|
配置健康检测功能 |
可选 |
|
配置就近性计算成本 |
可选 |
|
配置链路的带宽繁忙比与最大期望带宽 |
可选 |
|
关闭链路所属VPN实例的继承功能 |
可选 |
表3-14 创建链路并指定其所属链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建链路,并进入链路视图 |
loadbalance link link-name |
缺省情况下,不存在任何链路 |
(可选)配置链路的描述信息 |
description text |
缺省情况下,链路没有描述信息 |
指定链路所属的链路组 |
link-group link-group-name |
缺省情况下,链路不属于任何链路组 |
表3-15 指定链路出口方向(外网方向)的下一跳IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路出口方向(外网方向)的下一跳IP地址 |
router ip ipv4-address |
二者选其一 缺省情况下,未配置链路出口方向的下一跳IP地址 |
router ipv6 ipv6-address |
通过本配置可以调整链路的加权轮转和加权最小连接这两种调度算法所使用的权值,以及链路在链路组中的调用优先级。
表3-16 配置权值和调用优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路的权值 |
weight weight-value |
缺省情况下,链路的权值为100 |
配置链路的调用优先级 |
priority priority |
缺省情况下,链路的调用优先级为4 |
通过本配置可以调整链路所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表3-17 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路所允许的最大带宽 |
rate-limit bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路所允许的最大总带宽、最大入带宽和最大出带宽均为0千字节/秒,即不受限制 |
配置链路所允许的最大连接数 |
connection-limit max max-number |
缺省情况下,链路所允许的最大连接数为0,即不受限制 |
配置链路所允许的每秒最大连接数 |
rate-limit connection connection-number |
缺省情况下,链路所允许的每秒最大连接数为0,即不受限制 |
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。
表3-18 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路的健康检测方法 |
probe template-name |
缺省情况下,没有指定链路的健康检测方法 |
配置链路健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过本配置可以调整就近性计算的链路成本。
表3-19 配置就近性计算成本
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置就近性计算的链路成本 |
cost cost-value |
缺省情况下,就近性计算的链路成本为0 |
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的链路流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法、最大带宽算法和就近性中剩余带宽的计算。
表3-20 配置链路的带宽繁忙比与最大期望带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路的带宽繁忙比 |
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ] |
缺省情况下,链路的总带宽繁忙比为70 |
配置链路最大期望带宽 |
max-bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路所允许的最大总期望带宽、最大上行期望带宽和最大下行期望带宽均为0千字节/秒,即不限制 |
若在链路视图下执行vpn-instance命令指定了链路所属的VPN实例,则链路属于该VPN实例。若未指定链路所属的VPN实例,当链路所属VPN实例的继承功能处于开启状态时,链路所属的VPN实例与虚服务器所属的VPN实例一致;当该功能处于关闭状态时,链路属于公网。
表3-21 关闭链路所属VPN实例的继承功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
关闭链路所属VPN实例的继承功能 |
inherit vpn-instance disable |
缺省情况下,链路所属VPN实例的继承功能处于开启状态 |
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
链路负载均衡支持的虚服务器类型为LINK-IP。
表3-22 配置任务简介
配置任务 |
说明 |
详细配置 |
创建虚服务器 |
必选 |
|
配置VSIP和端口号 |
必选 |
|
指定虚服务器所属的VPN |
可选 |
|
指定缺省链路组 |
至少选其一 如果同时配置,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给缺省链路组处理 |
|
引用负载均衡策略 |
||
引用参数模板 |
可选 |
|
配置带宽和连接参数 |
可选 |
|
配置带宽繁忙保护功能 |
可选 |
|
开启链路的接口带宽统计功能 |
可选 |
|
配置热备份功能 |
可选 |
|
开启虚服务器 |
必选 |
表3-23 创建虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-IP类型的虚服务器,并进入虚服务器视图 |
virtual-server virtual-server-name type link-ip |
缺省情况下,不存在任何虚服务器 |
(可选)配置虚服务器的描述信息 |
description text |
缺省情况下,虚服务器没有描述信息 |
通过本配置可以指定虚服务器的IPv4或IPv6地址(即VSIP),以及虚服务器的端口号。
表3-24 配置VSIP和端口号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入LINK-IP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
配置虚服务器的IPv4地址 |
virtual ip address ipv4-address [ mask-length | mask ] |
二者选其一 缺省情况下,虚服务器没有IP地址 |
配置虚服务器的IPv6地址 |
virtual ipv6 address ipv6-address [ prefix-length ] |
|
配置虚服务器的端口号 |
port port-number |
缺省情况下,LINK-IP类型虚服务器的端口号为0(表示任意端口号) |
虚服务器缺省服务于公网,通过本配置可使虚服务器服务于特定的VPN。
表3-25 指定虚服务器所属的VPN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器所属的VPN |
vpn-instance vpn-instance-name |
缺省情况下,虚服务器属于公网 |
当主用链路组可用(该链路组存在且有可用的链路)时,虚服务器通过主用链路组进行转发;当主用链路组不可用而备用链路组可用时,虚服务器通过备用链路组进行转发。
表3-26 指定缺省链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定缺省链路组 |
default link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ] |
缺省情况下,没有指定缺省链路组 |
虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
表3-27 引用负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的负载均衡策略 |
lb-policy policy-name |
缺省情况下,虚服务器没有引用任何负载均衡策略 虚服务器只能引用与自身类型相关的策略模板,如: LINK-IP类型的虚服务器,只能引用Link-generic类型的策略模板 |
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
表3-28 引用参数模板
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的参数模板 |
parameter ip profile-name |
缺省情况下,虚服务器没有引用任何参数模板 |
通过本配置可以调整虚服务器所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表3-29 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
配置虚服务器所允许的最大带宽 |
rate-limit bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0千字节/秒,即不受限制 |
配置虚服务器所允许的最大连接数 |
connection-limit max max-number |
缺省情况下,虚服务器所允许的最大连接数为0,即不受限制 |
配置虚服务器所允许的每秒最大连接数 |
rate-limit connection connection-number |
缺省情况下,虚服务器所允许的每秒最大连接数为0,即不受限制 |
带宽繁忙保护功能就是对链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比后,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发。
需要注意的是,带宽繁忙保护功能仅在链路的接口带宽统计功能开启的情况下生效。
表3-30 配置带宽繁忙保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚链路的带宽繁忙保护功能 |
bandwidth busy-protection enable |
缺省情况下,链路的带宽繁忙保护功能处于关闭状态 |
链路的带宽缺省由负载均衡模块自行统计,通过本配置可以使链路的带宽由接口来统计。
表3-31 开启链路的接口带宽统计功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server vritual-server-name |
- |
开启链路的接口带宽统计功能 |
bandwidth interface statistics enable |
缺省情况下,未开启链路的接口带宽统计功能 |
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
表3-32 配置热备份功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的会话扩展信息备份功能 |
connection-sync enable |
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态 |
开启虚服务器的持续性表项备份功能 |
sticky-sync enable |
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态 |
配置完虚服务器后,需要将其开启后才能进入工作状态。
表3-33 开启虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器 |
service enable |
缺省情况下,虚服务器处于关闭状态 |
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
表3-34 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建目的IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
|||
创建ISP类型的匹配规则 |
|||
创建应用类型的匹配规则 |
|||
创建域名类型的匹配规则 |
表3-35 创建负载均衡类
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-generic负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name type link-generic [ match-all | match-any ] |
缺省情况下,不存在任何负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类没有描述信息 |
表3-36 创建嵌套类的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建嵌套类的匹配规则 |
match [ match-id ] class class-name |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表3-37 创建源IP地址类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建源IP地址类型的匹配规则 |
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表3-38 创建目的IP地址类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建目的IP地址类型的匹配规则 |
match [ match-id ] destination { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] } |
缺省情况下,负载均衡类中不存在匹配规则 |
表3-39 创建ACL类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建ACL类型的匹配规则 |
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表3-40 创建ISP类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建ISP类型的匹配规则 |
match [match-id ] isp isp-name |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表3-41 创建应用类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建应用类型的匹配规则 |
match [ match-id ] app-group group-name |
缺省情况下,负载均衡类中不存在任何匹配规则 |
负载均衡设备会将域名与IP地址的对应关系记录在DNS缓存表中,当业务流量匹配DNS缓存表中的IP地址时,查找出对应的域名。若查找出的域名与匹配规则中的域名一致,则根据匹配规则将匹配不同域名的报文在不同的负载均衡动作流程中处理。
表3-42 创建域名类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建域名类型的匹配规则 |
match [ match-id ] destination domain-name domain-name |
缺省情况下,负载均衡类中不存在匹配规则 |
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
表3-43 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
配置报文的转发模式为转发 |
可选其一 这两条命令互斥,当配置了其中一条后,另一条的配置将被自动取消 |
|
指定指导转发的链路组 |
|||
配置查找可用链路失败时继续匹配下一条引用规则 |
可选 |
||
配置修改类动作 |
配置发往服务器的IP报文中的ToS字段 |
可选 |
表3-44 创建负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-generic类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type link-generic |
缺省情况下,不存在任何负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作没有描述信息 |
表3-45 配置报文的转发模式为转发
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置报文的转发模式为转发 |
forward all |
缺省情况下,报文转发模式为丢弃 |
当主用链路组可用(该链路组存在且有可用的链路)时,使用主用链路组指导转发;当主用链路组不可用而备用链路组可用时,使用备用链路组指导转发。
表3-46 指定指导转发的链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
指定指导转发的链路组 |
link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ] |
缺省情况下,没有指定指导转发的链路组 |
当配置该命令的动作在策略中被引用时,在转发中根据该配置判断当前动作查找可用链路失败时,可继续顺序匹配策略中的下一条引用规则。
表3-47 配置查找链路失败时继续匹配下一条引用规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置查找链路失败时继续匹配下一条引用规则 |
fallback-action continue |
缺省情况下,根据当前动作查找可用链路失败时,不再继续匹配下一条引用规则 |
表3-48 配置发往服务器的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置发往服务器的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往服务器的IP报文中的ToS字段 |
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
表3-49 配置任务简介
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
表3-50 创建负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-generic类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type link-generic |
缺省情况下,不存在任何负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略没有描述信息 |
Link-generic类型的负载均衡策略只能引用Link-generic类型的负载均衡类和动作。
表3-51 指定负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
为负载均衡类指定负载均衡动作 |
class class-name [ insert-before before-class-name ] action action-name |
缺省情况下,没有为任何负载均衡类指定负载均衡动作 不同的负载均衡类可以与同一负载均衡动作组成匹配规则 |
Link-generic类型的负载均衡策略只能用Link-generic类型的负载均衡动作作为其缺省动作。
表3-52 指定缺省负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
指定缺省负载均衡动作 |
default-class action action-name |
缺省情况下,未指定缺省负载均衡动作 |
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一链路处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了同一链路之后,后续包都会沿用这个选择结果。
表3-53 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建持续性组 |
必选 |
||
配置持续性方法 |
配置IP持续性方法 |
必选 |
|
配置持续性表项超时时间 |
可选 |
||
开启匹配持续性表项的会话不受连接数限制影响功能 |
可选 |
||
表3-54 创建持续性组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建地址端口类型的持续性组,并进入持续性组视图 |
sticky-group group-name type address-port |
缺省情况下,不存在任何持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组没有描述信息 |
表3-55 配置IP持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
配置IPv4持续性方法 |
ip [ port ] { both | destination | source } [ mask mask-length ] |
二者选其一 缺省情况下,不存在任何持续性方法 |
配置IPv6持续性方法 |
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ] |
表3-56 配置持续性表项超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
配置持续性表项的超时时间 |
timeout timeout-value |
缺省情况下,对于HTTP Cookie类型的持续性组,持续性表项的超时时间为86400秒;对于其它类型的持续性组,持续性表项的超时时间为60秒 |
开启该功能后,如果该连接匹配了已有的持续性表项,将不受链路带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
表3-57 开启匹配持续性表项的会话不受连接数限制影响功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
开启匹配持续性表项的会话不受连接数限制影响功能 |
override-limit enable |
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响 |
表3-58 配置任务简介
配置任务 |
说明 |
详细配置 |
创建参数模板 |
必选 |
|
配置发往客户端的IP报文中的ToS字段 |
必选 |
通过配置参数模板可以制订对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。
表3-59 创建参数模板
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IP类型的参数模板,并进入参数模板视图 |
parameter-profile profile-name type ip |
缺省情况下,不存在任何参数模板 创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置参数模板的描述信息 |
description text |
缺省情况下,参数模板没有描述信息 |
表3-60 配置发往客户端的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置发往客户端的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往客户端的IP报文中的ToS字段 |
ISP是根据ICANN(Internet Corporation for Assigned Names and Numbers,互联网域名和地址分配公司)的地址分配结果进行静态分配。ISP作为一种分流策略,可以在负载均衡类的ISP类型匹配规则中进行引用。目的地址匹配ISP后,可根据相应的链路组选择合适的链路。
配置ISP信息分为手工配置ISP信息和导入ISP文件,二者既可单独使用,也可结合使用。
表3-61 配置任务简介
配置任务 |
说明 |
详细配置 |
手工配置ISP信息 |
至少选其一 |
|
导入ISP文件 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建ISP,并进入ISP视图 |
loadbalance isp name isp-name |
缺省情况下,不存在任何ISP |
为ISP配置IPv4地址信息 |
ip address ipv4-address { mask-length | mask } |
二者至少选其一 缺省情况下,ISP没有IPv4/IPv6地址信息 同一ISP中不允许配置完全相同的网段 |
为ISP配置IPv6地址信息 |
ipv6 address ipv6-address prefix-length |
|
(可选)配置ISP的描述信息 |
description text |
缺省情况下,ISP没有描述信息 |
表3-63 导入ISP文件
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
导入ISP文件 |
loadbalance isp file isp-file-name |
- |
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
表3-64 配置负载均衡ALG功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启指定协议的负载均衡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功能均处于开启状态 |
开启所有协议的负载均衡ALG功能 |
loadbalance alg all-enable |
用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。
表3-65 测试负载均衡效果
操作 |
命令 |
说明 |
测试IPv4负载均衡的效果 |
loadbalance schedule-test ip [ vpn-instance vpn-instance-name ] { application http { message-file file-name | method { get | post } url url [ header header ]&<1-10> [ content content-value ] } | 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 [ vpn-instance vpn-instance-name ] { application http { message-file file-name | method { get | post } url url [ header header ]&<1-10> [ content content-value ] } | protocol { protocol-number | icmpv6 | tcp | udp } } destination destination-address destination-port destination-port source source-address source-port source-port [ slot slot-number ] |
本命令可在任意视图下执行 |
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
表3-66 配置负载均衡告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡的告警功能 |
snmp-agent trap enable loadbalance |
缺省情况下,负载均衡的告警功能处于开启状态 |
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括基本日志、NAT日志和链路带宽繁忙日志。
通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:
· 链路或链路组的状态变化。
· 链路的健康检测结果发生变化。
· 虚服务器或链路的连接数达到上限或者恢复到正常范围内。
· 虚服务器或链路的连接速率达到上限或者恢复到正常范围内。
· 虚服务器引用的缺省链路组主备切换。
· 负载均衡动作引用的链路组主备切换。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
表3-67 配置负载均衡基本日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡基本日志功能 |
loadbalance log enable base |
缺省情况下,负载均衡基本日志功能处于开启状态 |
表3-68 配置负载均衡NAT日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡NAT日志功能 |
loadbalance log enable nat |
缺省情况下,负载均衡NAT日志功能处于关闭状态 |
表3-69 配置负载均衡链路带宽繁忙日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡链路带宽繁忙日志功能 |
loadbalance log enable bandwidth-busy |
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后出方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除出方向链路负载均衡的统计信息。
表3-70 链路负载均衡显示和维护
配置 |
命令 |
显示负载均衡动作的信息 |
display loadbalance action [ name action-name ] |
显示负载均衡类的信息 |
display loadbalance class [ name class-name ] |
显示负载均衡热备份的统计信息 |
display loadbalance hot-backup statistics [ slot slot-number ] |
显示ISP的信息 |
display loadbalance isp [ ip ipv4-address | ipv6 ipv6-address | name isp-name ] |
显示负载均衡策略的信息 |
display loadbalance policy [ name policy-name ] |
显示就近性表项的信息 |
display loadbalance proximity [ vpn-instance vpn-instance-name ] [ ip [ ipv4-address ] | ipv6 [ ipv6-address ] ] [ slot slot-number ] |
显示参数模板的信息 |
display parameter-profile [ name parameter-name ] |
显示链路的信息 |
display loadbalance link [ brief | name link-name ] |
显示链路的统计信息 |
display loadbalance link statistics [ name link-name ] [ slot slot-number ] |
显示链路出接口的统计信息 |
display loadbalance link out-interface statistics [ name link-name ] |
显示链路组的信息 |
display loadbalance link-group [ brief | name link-group-name ] |
显示持续性表项的信息 |
display sticky [ virtual-server virtual-server-name [ class class-name | default-class | default-link-group ] ] [ slot slot-number ] |
显示持续性组的信息 |
display sticky-group [ name group-name ] |
显示虚服务器的信息 |
display virtual-server [ brief | name virtual-server-name ] |
显示虚服务器的统计信息 |
display virtual-server statistics [ name virtual-server-name ] [ slot slot-number ] |
显示所有协议的负载均衡ALG状态 |
|
显示DNS缓存信息 |
display loadbalance dns-cache [ domain-name domain-name ] [ slot slot-number ] |
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
清除就近性表项的信息 |
reset loadbalance proximity [ vpn-instance vpn-instance-name ] [ ip [ ipv4-address ] | ipv6 [ ipv6-address ] ] |
清除负载均衡下的所有七层连接 |
reset loadbalance connections |
清除链路的统计信息 |
reset loadbalance link statistics [ link-name ] |
清除虚服务器的统计信息 |
reset virtual-server statistics [ virtual-server-name ] |
清除DNS缓存信息 |
reset loadbalance dns-cache [ domain-name domain-name ] |
如图4-1所示,企业内网用户可以通过运营商ISP 1的链路Link 1和ISP 2的链路Link 2分别访问提供相同网络服务的外网服务器External server A和External server B。企业内网用户通过域名访问外网服务器时,内网用户的所有DNS请求报文会发往同一DNS服务器。DNS服务器收到DNS请求报文后,将其解析为同一运营商网络内外网服务器的IP地址,这将使内网用户的所有流量都通过一条链路转发,导致一条链路拥塞,而其他链路闲置。
DNS透明代理功能可以有效解决由于客户端DNS服务器的配置导致流量分配不均的问题。通过DNS透明代理功能可以使DNS请求报文发往不同运营商网络内的DNS服务器,从而使内网用户访问外网服务器的流量较为均匀地分配到多条链路上,提高流量转发效率,提升服务质量;可以避免出现一条链路拥塞而其他链路闲置的情况;也可以在某条链路出现故障时,使用其他链路来访问外网服务器,避免因链路故障导致访问失败。
图4-1 DNS透明代理原理图
DNS透明代理功能是通过改变DNS请求报文的目的地址实现的。具体工作流程如图4-2所示。
图4-2 DNS透明代理工作流程图
DNS透明代理工作流程简述如表4-1所示。
表4-1 DNS透明代理工作流程简述
步骤 |
描述 |
源IP地址 |
目的IP地址 |
(1) |
内网用户向负载均衡设备发送DNS请求报文 |
Host IP |
DNS server A's IP |
(2) |
负载均衡设备收到DNS请求报文后根据调度算法选出应将此请求分发给哪台DNS服务器 |
- |
- |
(3) |
负载均衡设备将DNS请求报文的目的IP地址修改为选定的DNS服务器的IP地址 |
Host IP |
DNS server IP |
(4) |
DNS服务器接收并处理DNS请求报文,返回DNS应答报文 |
DNS server IP |
Host IP |
(5) |
负载均衡设备收到DNS应答报文后,将其源IP地址修改为DNS请求报文中的目的IP地址后转发给内网用户 |
DNS server A's IP |
Host IP |
(6) |
内网用户根据DNS应答报文中的IP地址访问外网服务器 |
Host IP |
External server |
(7) |
外网服务器应答内网用户 |
External server |
Host IP |
负载均衡设备通过改变DNS请求报文的目的地址控制访问流量在多条链路上的转发,为内网用户访问外网服务器选择最佳链路。
如图4-3所示,负载均衡设备上包括以下要素:
· DNS proxy:DNS透明代理。只有当DNS请求的端口号匹配DNS透明代理的端口号时,负载均衡设备才对收到的DNS请求报文进行DNS透明代理。
· DNS server pool:DNS服务器池。DNS服务器的集合。
· DNS server:DNS服务器。处理用户DNS请求报文的实体。
· Link:运营商提供的实体链路。
· LB class:负载均衡类。将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· LB action:负载均衡动作。制定丢弃、转发或修改报文的具体行为。
· LB policy:负载均衡策略。将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被DNS透明代理引用。
当收到DNS请求的目的地址和端口号均匹配DNS透明代理的IP地址和端口号时,负载均衡设备会对DNS请求报文进行DNS透明代理。首先在DNS透明代理中查找关联的DNS服务器池。再依据池中配置的调度算法选出应将DNS请求分发给哪台DNS服务器。负载均衡设备将选定DNS服务器的IP地址作为目的地址发送DNS请求报文,DNS服务器接收并处理DNS请求报文,将其解析为同网络内外网服务器的IP地址,并返回DNS应答报文。内网用户收到应答报文后,就可以访问该外网服务器了。
表4-2 DNS透明代理配置任务简介
配置任务 |
说明 |
详细配置 |
配置DNS透明代理 |
必选 |
|
配置DNS服务器池 |
必选 |
|
配置DNS服务器 |
必选 |
|
配置链路 |
必选 |
|
配置负载均衡类 |
可选 |
|
配置负载均衡动作 |
可选 |
|
配置负载均衡策略 |
可选 |
|
配置持续性组 |
可选 |
|
配置负载均衡日志功能 |
可选 |
通过配置DNS透明代理,负载均衡可以对匹配上DNS透明代理的DNS请求报文进行负载均衡处理。
表4-3 配置任务简介
配置任务 |
说明 |
详细配置 |
创建DNS透明代理 |
必选 |
|
配置DNS透明代理的IP地址和端口号 |
必选 |
|
指定DNS服务器池 |
至少选其一 如果同时配置,DNS报文会被优先交给负载均衡策略处理,当匹配负载均衡策略失败时才交给DNS服务器池处理 |
|
引用负载均衡策略 |
||
指定DNS透明代理所属的VPN实例 |
可选 |
|
开启带宽繁忙保护功能 |
可选 |
|
配置热备份功能 |
可选 |
|
开启DNS透明代理功能 |
必选 |
表4-4 创建DNS透明代理
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS透明代理,并进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name type udp |
缺省情况下,不存在DNS透明代理 |
在同时配置DNS透明代理功能和服务器负载均衡功能的情况下,为了使DNS透明代理功能正常使用,请避免将DNS透明代理的IP地址和端口号与UDP类型的虚服务器配置为同一IP地址和端口号。
建议将DNS透明代理的IP地址配置为全0地址,即对所有的DNS请求报文均进行DNS透明代理处理。
表4-5 配置DNS透明代理的IP地址和端口号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
配置DNS透明代理的IPv4地址 |
ip address ipv4-address [ mask-length | mask ] |
二者选其一 缺省情况下,未配置DNS透明代理的IP地址 |
配置DNS透明代理的IPv6地址 |
ipv6 address ipv6-address [ prefix-length ] |
|
配置DNS透明代理的端口号 |
port port-number |
缺省情况下,DNS透明代理的端口号为53 |
表4-6 指定DNS服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
指定DNS透明代理引用的缺省DNS服务器池 |
default dns-server-pool pool-name [ sticky sticky-name ] |
缺省情况下,未指定DNS透明代理引用的缺省DNS服务器池 |
通过在DNS透明代理视图下引用负载均衡策略,能够细化DNS请求的粒度。根据策略中的负载均衡类,对不同的报文内容进行不同的负载均衡动作处理,从而有效地丰富了DNS透明代理的负载功能,实现对链路带宽资源的合理利用。有关负载均衡策略的详细配置,请参见“4.9 配置负载均衡策略”。
表4-7 引用负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
指定DNS透明代理引用的负载均衡策略 |
lb-policy policy-name |
缺省情况下,DNS透明代理未引用负载均衡策略 |
通过本配置可使DNS透明代理服务于特定的VPN实例。
表4-8 指定DNS透明代理所属的VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
指定DNS透明代理所属的VPN实例 |
vpn-instance vpn-instance-name |
缺省情况下, DNS透明代理所属的VPN实例为公网 |
带宽繁忙保护功能就是对DNS服务器对应链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比(当前带宽与最大带宽的百分比)后,新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发。开启带宽繁忙保护功能后,DNS透明代理设备选择DNS服务器时,会检查DNS服务器使用的链路的带宽繁忙比是否超过配置的带宽繁忙比,如果超出则不选择该DNS服务器。
当DNS服务器池中的所有DNS服务器对应的链路都达到了带宽繁忙比例时,带宽繁忙保护功能自动失效;只要此DNS服务器池中有任何一个DNS服务器对应链路恢复到配置的带宽繁忙比例以下,则该DNS服务器重新参与调度,带宽繁忙保护功能自动生效。有关链路带宽繁忙比的详细配置,请参见“4.6.7 配置链路的带宽繁忙比与最大期望带宽”。
表4-9 配置带宽繁忙保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
开启DNS服务器对应链路的带宽繁忙保护功能 |
bandwidth busy-protection enable |
缺省情况下,DNS服务器对应的链路带宽繁忙保护功能处于关闭状态 |
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在DNS透明代理下开启会话扩展信息备份功能和持续性信息备份功能。会话扩展信息备份功能主要备份负载均衡业务的会话表项;持续性信息备份功能主要备份持续性表项。
表4-10 配置热备份功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
开启DNS透明代理的会话扩展信息备份功能 |
connection-sync enable |
缺省情况下,DNS透明代理的会话扩展信息备份功能处于关闭状态 |
开启DNS透明代理的持续性信息备份功能 |
sticky-sync enable |
缺省情况下,DNS透明代理的持续性信息备份功能处于关闭状态 |
配置完DNS透明代理后,需要将其开启后才能进入工作状态。
表4-11 开启DNS透明代理功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS透明代理视图 |
loadbalance dns-proxy dns-proxy-name |
- |
开启DNS透明代理功能 |
service enable |
缺省情况下,DNS透明代理功能处于关闭状态 |
通过配置DNS服务池,可对具有相同或相似功能的DNS服务器进行统一管理。
表4-12 创建DNS服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS服务器池,并进入DNS服务器池视图 |
loadbalance dns-server-pool pool-name |
缺省情况下,不存在DNS服务器池 |
(可选)配置DNS服务器池的描述信息 |
description text |
缺省情况下,DNS服务器池未配置描述信息 |
负载均衡设备根据DNS服务器池的调度算法,计算出处理用户DNS请求的DNS服务器。设备支持以下几种调度算法:
· 源IP哈希算法:对DNS请求的源IP地址进行哈希运算,依据生成的哈希值决定将DNS请求分发给哪台DNS服务器。该算法可实现将来自相同源IP地址的DNS请求发往同一台DNS服务器进行处理。
· 源IP及端口哈希算法:对DNS请求的源IP地址和端口号共同进行哈希运算,依据生成的哈希值决定将DNS请求发往哪台DNS服务器。该算法可实现将源IP地址和端口号均相同的DNS请求发往同一台DNS服务器进行处理。
· 目的IP哈希算法:对DNS请求的目的IP地址进行哈希运算,依据生成的哈希值决定将DNS请求发往哪台DNS服务器。该算法可实现将目的IP地址相同的DNS请求发往同一台DNS服务器进行处理。
· 随机算法:将DNS请求报文随机分发给某台DNS服务器。
· 加权轮转算法:用户可根据DNS服务器性能的不同,为其分配不同的权值。加权轮转算法根据权值的大小将DNS请求依次分发给每台DNS服务器。例如,DNS服务器Server A和Server B的权值为2和1,按照加权轮转调度算法,负载均衡设备会连续分配两条DNS请求给Server A,再分配DNS请求给Server B。该算法适用于服务器业务处理能力不同,而每一条会话对服务器的负载大致相同的场景。
· 带宽算法:根据DNS服务器的权值与剩余带宽的比例把DNS请求分发给每台DNS服务器。当剩余带宽相同时,该算法等价于加权轮转算法;当DNS服务器权值相同时,总是将用户请求分发给剩余带宽最大的链路所对应的DNS服务器;当DNS服务器权值和剩余带宽均不相同时,两者共同决定DNS服务器的调度。
· 最大带宽算法:总是将DNS请求分发给处于空闲状态且剩余带宽最大的链路所对应的DNS服务器。
表4-13 配置DNS服务器池的调度算法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS服务器池视图 |
loadbalance dns-server-pool pool-name |
- |
配置DNS服务池的调度算法 |
predictor { random | round-robin | { bandwidth | max-bandwidth } [ inbound | outbound ] } |
缺省情况下,DNS服务器池的调度算法为加权轮转算法 |
配置DNS服务器池可被调度算法调用的DNS服务器数量限制 |
缺省情况下,DNS服务器池中调用优先级最高的DNS服务器全部被调度算法调用 |
通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。
用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。
表4-14 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS服务器池视图 |
loadbalance dns-server-pool pool-name |
- |
指定DNS服务器池的健康检测方法 |
probe template-name |
缺省情况下,未指定DNS服务器池的健康检测方法 |
配置DNS服务器池健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过配置DNS服务器,指定负载均衡设备上处理和响应DNS请求报文的实体。此处配置的DNS服务器对应于运营商网络内的DNS服务器。一个DNS服务器只能属于一个DNS服务器池,而一个DNS服务器池可以包含多个DNS服务器。
表4-15 配置任务简介
配置任务 |
说明 |
详细配置 |
创建DNS服务器并指定其所属DNS服务器池 |
必选 |
|
配置DNS服务器的IP地址和端口 |
必选 |
|
指定与DNS服务器关联的链路 |
必选 |
|
配置权值和调用优先级 |
可选 |
|
配置健康检测功能 |
可选 |
表4-16 创建DNS服务器并指定其所属DNS服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS服务器,并进入DNS服务器视图 |
loadbalance dns-server dns-server-name |
缺省情况下,不存在DNS服务器 |
(可选)配置DNS服务器的描述信息 |
description text |
缺省情况下,DNS服务器未配置描述信息 |
指定DNS服务器所属的DNS服务器池 |
dns-server-pool pool-name |
缺省情况下,未指定DNS服务器所属的DNS服务器池 |
表4-17 配置DNS服务器的IP地址和端口号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS服务器视图 |
loadbalance dns-server dns-server-name |
- |
配置DNS服务器的IPv4地址 |
ip address ipv4-address |
二者选其一 缺省情况下,未配置DNS服务器IP地址 |
配置DNS服务器的IPv6地址 |
ipv6 address ipv6-address |
|
配置DNS服务器的端口号 |
port port-number |
缺省情况下,DNS服务器的端口号为0(表示继续使用原报文携带的端口号) |
每台DNS服务器仅支持与一条链路相关联,同一条链路可以关联多台DNS服务器。
表4-18 指定与DNS服务器关联的链路
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS服务器视图 |
loadbalance dns-server dns-server-name |
- |
指定与DNS服务器关联的链路 |
link link-name |
缺省情况下,未指定与DNS服务器关联的链路 |
通过在DNS服务器视图下配置权值和调用优先级,可以调整DNS服务器的加权轮转调度算法和带宽调度算法使用的权值,以及DNS服务器在DNS服务器池中的调用优先级。
表4-19 配置权值和调用优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS服务器视图 |
loadbalance dns-server dns-server-name |
- |
配置DNS服务器的权值 |
weight weight-value |
缺省情况下,DNS服务器的权值为100 |
配置DNS服务器的调用优先级 |
priority priority |
缺省情况下,DNS服务器的调用优先级为4 |
通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。
用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。
表4-20 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS服务器视图 |
loadbalance dns-server dns-server-name |
- |
指定DNS服务器的健康检测方法 |
probe template-name |
缺省情况下,未指定DNS服务器的健康检测方法 |
配置DNS服务器健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
链路是运营商提供的实体链路。通过在链路视图下配置通往外网方向的下一跳IP地址,实现对流量的引流。通过配置最大带宽、健康检测、带宽繁忙比和最大期望带宽等功能为链路性能提供一定的保障。
表4-21 配置任务简介
配置任务 |
说明 |
详细配置 |
创建链路 |
必选 |
|
指定链路通往外网方向的下一跳IP地址 |
必选 |
|
指定链路所属的VPN实例 |
可选 |
|
配置链路所允许的最大带宽 |
可选 |
|
配置健康检测功能 |
可选 |
|
配置链路的带宽繁忙比与最大期望带宽 |
可选 |
表4-22 创建链路
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建链路,并进入链路视图 |
loadbalance link link-name |
缺省情况下,不存在链路 |
(可选)配置链路的描述信息 |
description text |
缺省情况下,链路未配置描述信息 |
表4-23 指定链路通往外网方向的下一跳IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路通往外网方向的下一跳IP地址 |
router ip ipv4-address |
二者选其一 缺省情况下,未指定链路通往外网方向的下一跳IP地址 |
router ipv6 ipv6-address |
链路缺省服务于公网,通过本配置可使链路服务于特定的VPN。
表4-24 指定链路所属的VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路所属的VPN实例 |
vpn-instance vpn-instance-name |
缺省情况下,链路属于公网 |
表4-25 配置链路所允许的最大带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路所允许的最大带宽 |
rate-limit bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路所允许的最大带宽不受限制 |
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
表4-26 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路的健康检测方法 |
probe template-name |
缺省情况下,未指定链路的健康检测方法 |
配置链路健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过本配置可以调整链路的带宽繁忙比,即当前流量与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的流量超过两者的乘积后,链路进入繁忙状态,新建流量(不包括匹配持续性表项的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
表4-27 配置链路的带宽繁忙比与最大期望带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路的带宽繁忙比 |
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ] |
缺省情况下,链路的总带宽繁忙比为70 |
配置链路最大期望带宽 |
max-bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路最大期望带宽不受限制 |
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
表4-28 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建目的IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
|||
创建Domain类型的匹配规则 |
表4-29 创建负载均衡类
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS类型的负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name type dns [ match-all | match-any ] |
缺省情况下,不存在负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类未配置描述信息 |
表4-30 创建嵌套类的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建嵌套类的匹配规则 |
match [ match-id ] class class-name |
缺省情况下,负载均衡类中不存在匹配规则 |
表4-31 创建源IP地址类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建源IP地址类型的匹配规则 |
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] } |
缺省情况下,负载均衡类中不存在匹配规则 |
表4-32 创建目的IP地址类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建目的IP地址类型的匹配规则 |
match [ match-id ] destination { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] } |
缺省情况下,负载均衡类中不存在匹配规则 |
如果指定编号或名称的ACL不存在,此匹配规则将不参与匹配。
表4-33 创建ACL类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建ACL类型的匹配规则 |
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name } |
缺省情况下,负载均衡类中不存在匹配规则 |
表4-34 创建域名类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建域名类型的匹配规则 |
match [ match-id ] domain-name domain-name |
缺省情况下,负载均衡类中不存在匹配规则 |
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
表4-35 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
配置报文的转发模式为转发 |
可选其一 这三条命令互斥,当配置了其中一条后,其他的配置将被自动取消 |
|
指定指导转发的DNS服务器池 |
|||
配置跳过当前DNS透明代理 |
|||
配置查找可用DNS服务器失败时继续匹配下一条引用规则 |
可选 |
||
配置修改类动作 |
配置发往DNS服务器的IP报文中的ToS字段 |
可选 |
表4-36 创建负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type dns |
缺省情况下,不存在负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作未配置描述信息 |
表4-37 配置报文的转发模式为转发
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡动作视图 |
loadbalance action action-name |
- |
配置报文的转发模式为转发 |
forward all |
缺省情况下,报文转发模式为丢弃 |
表4-38 指定指导转发的DNS服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡动作视图 |
loadbalance action action-name |
- |
指定指导转发的DNS服务器池 |
dns-server-pool pool-name |
缺省情况下,未指定指导转发的DNS服务器池 |
配置报文的转发模式为跳过当前DNS透明代理,可使匹配了DNS透明代理的报文跳过当前DNS透明代理,并重新匹配DNS透明代理或虚服务器。
表4-39 配置跳过当前DNS透明代理
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡动作视图 |
loadbalance action action-name |
- |
配置报文的转发模式为跳过当前DNS透明代理 |
skip current-dns-proxy |
缺省情况下,报文的转发模式为丢弃 |
当配置该命令的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用DNS服务器失败时,可继续顺序匹配策略中的下一条引用规则。
表4-40 配置查找可用DNS服务器失败时继续匹配下一条引用规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡动作视图 |
loadbalance action action-name |
- |
配置查找DNS服务器失败时继续匹配下一条引用规则 |
fallback-action continue |
缺省情况下,当前动作查找可用DNS服务器失败时,不再继续匹配下一条引用规则,直接丢弃报文 |
表4-41 配置发往DNS服务器的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡动作视图 |
loadbalance action action-name |
- |
配置发往DNS服务器的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往DNS服务器的IP报文中的ToS字段 |
表4-42 配置任务简介
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
表4-43 创建负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type dns |
缺省情况下,不存在负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略未配置描述信息 |
DNS类型的负载均衡策略只能引用DNS类型的负载均衡类和负载均衡动作。
表4-44 指定负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡策略视图 |
loadbalance policy policy-name |
- |
为负载均衡类指定负载均衡动作 |
class class-name [ insert-before before-class-name ] action action-name |
缺省情况下,没有为负载均衡类指定负载均衡动作 |
通过指定缺省负载均衡动作,可以为未匹配任何负载均衡类的报文指定其执行的缺省动作。
DNS类型的负载均衡策略只能引用DNS类型的负载均衡动作作为其缺省负载均衡动作。
表4-45 指定缺省负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS类型的负载均衡策略视图 |
loadbalance policy policy-name |
- |
指定缺省负载均衡动作 |
default-class action action-name |
缺省情况下,未指定缺省负载均衡动作 |
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一台DNS服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了一台DNS服务器之后,后续包都会延用这个选择结果。
表4-46 配置任务简介
配置任务 |
说明 |
详细配置 |
创建持续性组 |
必选 |
|
配置IP持续性方法 |
必选 |
|
配置持续性表项的超时时间 |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建地址端口类型的持续性组,并进入持续性组视图 |
sticky-group group-name type address-port |
缺省情况下,不存在持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组未配置描述信息 |
表4-48 配置IP持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入地址端口类型的持续性组视图 |
sticky-group group-name |
- |
配置IPv4持续性方法 |
ip [ port ] { both | destination | source } [ mask mask-length ] |
二者选其一 缺省情况下,不存在IP持续性方法 |
配置IPv6持续性方法 |
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ] |
表4-49 配置持续性表项的超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入地址端口类型的持续性组视图 |
sticky-group group-name |
- |
配置持续性表项的超时时间 |
timeout timeout-value |
缺省情况下,持续性表项的超时时间为60秒 |
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括NAT日志和链路带宽繁忙日志。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过地址转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
表4-50 配置负载均衡NAT日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡NAT日志功能 |
loadbalance log enable nat |
缺省情况下,负载均衡NAT日志功能处于关闭状态 |
表4-51 配置负载均衡链路带宽繁忙日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡链路带宽繁忙日志功能 |
loadbalance log enable bandwidth-busy |
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后DNS透明代理的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DNS透明代理的统计信息。
表4-52 DNS透明代理显示和维护
配置 |
命令 |
|
显示DNS服务器池的信息 |
display loadbalance dns-server-pool [ brief | name pool-name ] |
|
显示DNS服务器的信息 |
display loadbalance dns-server [ brief | name dns-server-name ] |
|
显示DNS服务器的统计信息 |
display loadbalance dns-server statistics [ name dns-server-name ] [ slot slot-number ] |
|
显示DNS透明代理的信息 |
display loadbalance dns-proxy [ brief | name dns-proxy-name ] |
|
显示DNS透明代理的统计信息 |
display loadbalance dns-proxy statistics [ name dns-proxy-name ] [ slot slot-number ] |
|
显示链路的信息 |
display loadbalance link [ brief | name link-name ] |
|
显示链路的统计信息 |
display loadbalance link statistics [ name link-name ] [ slot slot-number ] |
|
显示负载均衡类的信息 |
display loadbalance class [ name class-name ] |
|
显示负载均衡动作的信息 |
display loadbalance action [ name action-name ] |
|
显示负载均衡策略的信息 |
display loadbalance policy [ name policy-name ] |
|
显示DNS透明代理的持续性表项信息 |
display sticky dns-proxy [ dns-proxy-name ] [ class class-name | default-class | default-dns-server-pool ] [ slot slot-number ] |
|
显示持续性组的信息 |
display sticky-group [ name group-name ] |
|
显示负载均衡热备份的统计信息 |
display loadbalance hot-backup statistics [ slot slot-number ] |
|
清除DNS服务器的统计信息 |
reset loadbalance dns-server statistics [ dns-server-name ] |
|
清除DNS透明代理的统计信息 |
reset loadbalance dns-proxy statistics [ dns-proxy-name ] |
|
清除链路的统计信息 |
reset loadbalance link statistics [ link-name ] |
|
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
|
入方向链路负载均衡功能可在多条链路上分担外网用户访问内网服务器的流量。
如图5-1所示,企业分别租用不同运营商ISP 1、ISP 2和ISP 3的三条链路Link 1、Link 2和Link 3为外网用户提供服务。通过配置入方向链路负载均衡,可以使外部互联网用户访问内网服务器的流量较为均匀地分配到多条链路上,从而提高流量转发效率,提升服务质量;可以避免出现一条链路拥塞而其他链路闲置的情况;可以在某条链路出现故障时,使外部互联网用户使用其它链路来访问内网服务器,避免因链路故障导致流量转发失败。
入方向链路负载均衡是基于DNS解析实现的。负载均衡设备作为权威DNS服务器负责解析外网用户访问内网服务器的DNS请求报文,并为外网用户访问内网服务器选择最佳链路。具体流程如图5-2所示。
入方向链路负载均衡工作流程简述如表5-1所示。
步骤 |
描述 |
(1) |
Client host向本地DNS服务器发起DNS请求 |
(2) |
本地DNS服务器向负载均衡设备发起DNS请求 |
(3) |
链路负载均衡设备根据调度算法、带宽限制、健康性检测等负载均衡调度方式来选择最佳链路对应的虚服务器 |
(4) |
负载均衡设备将选定的虚服务器地址通过DNS响应报文发送给发起请求的本地DNS服务器 |
(5) |
本地DNS服务器把获取的虚服务器地址发送给Client host |
(6) |
Client host向虚服务器地址发起连接请求(请求进入负载均衡设备) |
(7) |
负载均衡设备向内网服务器发起连接请求 |
(8) |
内网服务器应答负载均衡设备 |
(9) |
负载均衡设备应答Client host |
管理员需要联系运营商在Local DNS上配置委派域,指定负载均衡设备为处理DNS请求的权威DNS服务器。
入方向链路负载均衡是负载均衡设备通过接收DNS请求报文并返回携带虚服务器IP地址的DNS应答报文实现的。
如图5-3所示,负载均衡设备上包括以下要素:
· DNS listener:DNS监听器,用于监听DNS请求。只有当DNS请求的目的地址匹配DNS监听器的IP地址时,该DNS请求报文才会进入入方向链路负载均衡处理流程。
· DNS mapping:DNS映射,用于关联DNS域名与虚服务器池。负载均衡设备根据DNS映射查找DNS域名关联的虚服务器池。
· Link:链路,运营商提供的实体链路。
· Virtual server pool:虚服务器池,用于在虚服务器池下关联虚服务器与链路。链路和虚服务器的可用性共同决定虚服务器是否可参与调度。
· Virtual server:虚服务器,面向用户业务的虚拟载体。
当DNS监听器监听到负载均衡设备上收到了目的地址匹配DNS监听地址的DNS正向解析请求时,首先在DNS映射中查找域名所关联的虚服务器池。负载均衡设备依据虚服务器池中配置的调度算法选出最佳链路所对应的虚服务器,将选定的虚服务器IP地址通过DNS应答报文发送给用户,用户得到虚服务器IP地址后将其作为目的地址,通过该虚服务器关联的链路访问内网服务器。
配置任务 |
说明 |
详细配置 |
|
||
配置DNS监听器 |
必选 |
|
|||
配置DNS映射 |
必选 |
|
|||
配置虚服务器 |
必选 |
|
|||
配置虚服务器池 |
必选 |
|
|||
配置链路(Link) |
必选 |
|
|||
配置DNS正向区域 |
可选 |
||||
配置DNS反向区域 |
可选 |
||||
配置Topology |
可选 |
|
|||
配置Region |
可选 |
|
|||
配置ISP信息 |
可选 |
|
|||
配置负载均衡链路带宽繁忙日志功能 |
可选 |
|
|||
测试入方向链路负载均衡效果 |
可选 |
|
|||
配置可记录的解析失败的DNS请求报文的最大数目 |
可选 |
|
|||
配置可记录的解析失败的DNS请求报文的类型 |
可选 |
|
|||
入方向链路负载均衡显示和维护 |
可选 |
|
|||
通过配置DNS监听器,指定负载均衡设备提供DNS解析服务的IP地址和端口号,以及所属VPN等信息。
表5-2 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建DNS监听器 |
必选 |
|
|
指定DNS监听器的地址和端口 |
必选 |
|
|
指定DNS监听器所属的VPN实例 |
可选 |
||
开启DNS监听功能 |
必选 |
|
|
指定DNS监听器查找DNS请求资源记录失败时的处理方式 |
可选 |
|
表5-3 创建DNS监听器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS监听器,并进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
缺省情况下,不存在任何DNS监听器 |
通过配置DNS监听器的IPv4地址和端口,指定设备对外提供DNS解析服务的IPv4地址和端口。
表5-4 指定DNS监听器的IPv4地址和端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
指定DNS监听器的IPv4地址和端口 |
ip address ipv4-address [ port port-number ] |
缺省情况下,未指定DNS监听器的IPv4地址和端口 |
表5-5 指定DNS监听器的IPv6地址和端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
指定DNS监听器的IPv6地址和端口 |
ipv6 address ipv6-address [ port port-number ] |
缺省情况下,未指定DNS监听器的IPv6地址和端口 |
DNS监听器缺省服务于公网,通过本配置可使DNS监听器服务于特定的VPN。
表5-6 指定DNS监听器所属的VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
指定DNS监听器所属的VPN实例 |
vpn-instance vpn-instance-name |
缺省情况下,DNS监听器属于公网 |
表5-7 开启DNS监听功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
开启DNS监听功能 |
service enable |
缺省情况下,DNS监听功能处于关闭状态 |
表5-8 指定DNS监听器查找DNS请求资源记录失败时的处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
指定DNS监听器查找DNS请求资源记录失败时的处理方式 |
fallback { dns-proxy | no-response | reject } |
缺省情况下,DNS监听器查找DNS请求资源记录失败时的处理方式为回应DNS拒绝报文 |
通过配置DNS映射,可以将DNS域名和虚服务器池关联起来。
表5-9 配置任务简介
配置任务 |
说明 |
详细配置 |
创建DNS映射 |
必选 |
|
添加DNS映射的DNS域名 |
必选 |
|
指定DNS映射使用的虚服务器池 |
必选 |
|
配置缓存DNS域名解析记录的缓存时间 |
可选 |
|
开启DNS映射 |
必选 |
表5-10 创建DNS映射
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS映射,并进入DNS映射视图 |
loadbalance dns-map dns-map-name |
缺省情况下,不存在任何DNS映射 |
同一个DNS映射视图下,可以添加多个DNS映射的DNS域名。
表5-11 添加DNS映射的DNS域名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
添加DNS映射的DNS域名 |
domain-name domain-name |
缺省情况下,DNS映射中不存在任何域名 |
表5-12 指定DNS映射使用的虚服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
指定DNS映射使用的虚服务器池 |
virtual-server-pool pool-name |
缺省情况下,DNS映射未使用任何虚服务器池 |
配置的缓存DNS域名解析记录的缓存时间将会填充到DNS应答报文的域名解析记录中。例如,当负载均衡策略或虚服务器配置变化时,用户可以通过配置小一些的缓存时间,使DNS请求客户端尽快获得新的解析记录;而在网络稳定的环境下,用户可将缓存时间设置为更大的值,提高域名的解析稳定性及速度。
表5-13 配置缓存DNS域名解析记录的缓存时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
配置缓存DNS域名解析记录的缓存时间 |
ttl ttl-value |
缺省情况下,域名解析记录的缓存时间缺省值为3600秒 |
表5-14 开启DNS映射
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
开启DNS映射 |
service enable |
缺省情况下,DNS映射处于关闭状态 |
通过配置虚服务器,指定内网服务器对外提供服务的IP地址和端口等信息。此节的配置任务及相关配置,具体配置请参见2.5 配置虚服务器。
需要注意的是:
· 如果同时配置入方向链路负载均衡功能和服务器负载均衡功能,请配置虚服务器的IP地址与DNS监听器地址为不同的公网地址,以免影响入方向链路负载均衡功能的正常使用。关于DNS监听器IP地址的详细介绍,请参见5.3.3 指定DNS监听器的IP地址和端口。
· 配置入方向链路负载均衡使用的虚服务器的IPv4地址时,要求配置32位掩码且为非全0的单播地址。
· 配置入方向链路负载均衡使用的虚服务器的IPv6地址时,要求配置128位掩码且为非全0的单播地址。
通过配置虚服务器池,可将具有相同或相似功能的虚服务器进行统一管理。
表5-15 配置任务简介
配置任务 |
说明 |
详细配置 |
创建虚服务器池 |
必选 |
|
添加虚服务器 |
必选 |
|
配置虚服务器池的调度算法 |
可选 |
|
开启虚服务器池的繁忙保护功能 |
可选 |
表5-16 创建虚服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚服务器池,并进入虚服务器池视图 |
loadbalance virtual-server-pool name |
缺省情况下,不存在任何虚服务器池 |
表5-17 添加虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器池视图 |
loadbalance virtual-server-pool name |
- |
添加虚服务器 |
virtual-server virtual-server-name link link-name [ weight weigth-name ] |
缺省情况下,虚服务器池未添加任何虚服务器 |
设备支持以下虚服务器池的调度算法:
· 加权最小连接算法(least-connection):总是将DNS请求分发给加权活动连接数(当前活动连接数/权值)最小的虚服务器。
· 随机算法(random):将DNS请求随机分发给某个虚服务器。
· 加权轮转算法(round-robin):根据虚服务器权值的大小将DNS请求依次分发给每个虚服务器,权值越大,分配的DNS请求越多。
· 静态就近性算法(topology):根据静态就近性表项将DNS请求分发给虚服务器。
· 动态就近性算法(proximity):根据动态就近性表项把DNS请求分发给虚服务器。
· 带宽算法(bandwidth):根据虚服务器的权值与剩余带宽的比例把DNS请求分发给每个虚服务器。
· 最大带宽算法(max-bandwidth):总是将DNS请求分发给处于空闲状态且剩余带宽最大的链路所对应的虚服务器。
· 源IP哈希算法(hash address source):根据源IP地址哈希算法将DNS请求分发给虚服务器。
· 源IP及端口哈希算法(hash address source-ip-port):根据源IP地址和端口号哈希算法将DNS请求分发给虚服务器。
· 目的IP哈希算法(hash address destination):根据目的IP地址哈希算法将DNS请求分发给虚服务器。
配置虚服务器池的调度算法时,可以分别指定首选调度算法、备选调度算法和次选调度算法。其中,首选调度算法优先级最高,当采用首选算法不能选出可用的虚服务器时,采用备选调度算法,次选调度算法优先级最低。
表5-18 配置虚服务器池的调度算法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器池视图 |
loadbalance virtual-server-pool name |
- |
配置虚服务器池的调度算法 |
predictor { alternate | fallback | preferred } { least-connection | proximity | random | round-robin | topology | { bandwidth | max-bandwidth } [ inbound | outbound ] | hash address { source | source-ip-port | destination } [ mask mask-length | prefix prefix-length ] } |
缺省情况下,虚服务器池的首选调度算法为加权轮转算法,不存在次选和备选调度算法 |
开启繁忙保护功能后,虚服务器池根据用户配置的调度方式选择虚服务器成员时,会查看所选取的虚服务器成员对应的链路是否超过配置的繁忙比例,如果超出则不选择该虚服务器成员。关于配置链路的带宽繁忙比例,具体请参见5.7.5 配置链路的带宽繁忙比与最大期望带宽。
表5-19 开启虚服务器池的繁忙保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器池视图 |
loadbalance virtual-server-pool name |
- |
开启虚服务器池的繁忙保护功能 |
bandwidth busy-protection enable |
缺省情况下,虚服务器池繁忙保护功能处于关闭状态 |
由于虚服务器池中进行虚服务器调度时,链路可用性是决定虚服务器是否可参与调度的因素之一。可以根据实际需求,通过配置链路的健康检测,所允许的最大带宽及带宽繁忙比例等功能来影响链路的可用性。
表5-20 配置任务简介
配置任务 |
说明 |
详细配置 |
创建链路 |
必选 |
|
指定链路通往外网方向的下一跳 |
必选 |
|
配置链路的健康检测 |
可选 |
|
配置链路的带宽繁忙比与最大期望带宽 |
可选 |
表5-21 创建链路
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建链路,并进入链路视图 |
loadbalance link link-name |
缺省情况下,不存在任何链路 |
在入方向负载均衡中,链路通往外网方向的下一跳指的是链路对端设备的IP地址,管理员通过配置该地址来指定对哪一条链路进行健康检测和带宽限制。
表5-22 指定链路通往外网方向的下一跳
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路通往外网方向的下一跳 |
router ip ipv4-address |
缺省情况下,未配置链路通往外网方向的下一跳IP地址 |
通过为链路配置健康检测方法,可以对链路的质量、链路的状态等进行检测,保证其可用。链路的健康检测方法通过引用NQA模板来配置。NQA模板的相关配置,请参见“网络管理和监控配置指导”中的“NQA”。
同一个链路视图下,可以配置多个链路健康检测方法。缺省情况下,只有全部方法通过检测才认为健康检测成功。
表5-23 配置链路的健康检测
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路的健康检测方法 |
probe template-name |
缺省情况下,未指定任何链路检测方法 |
配置链路检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法通过检测才认为健康检测成功 |
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当某条链路流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
表5-24 配置链路的带宽繁忙与最大期望带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link name |
- |
配置链路的带宽繁忙比例 |
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ] |
缺省情况下,链路的总带宽繁忙比例为70 |
配置链路的最大期望带宽 |
max-bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路所允许的最大总期望带宽、最大上行期望带宽和最大下行期望带宽均为0千字节/秒,即不限制 |
在DNS正向解析过程中,负载均衡设备使用DNS正向区域中配置的资源记录来查找DNS域名对应的主机名。DNS资源记录是负载均衡设备用于解析DNS请求的数据记录表项,DNS正向区域中可以配置以下几种类型的资源记录:
· CNAME(Canonical Name,规范名称)资源记录允许将多个别名映射到同一正规主机名,即同一服务器。例如,企业内网有一台服务器主机名为host.aaa.com,它同时对外提供Web服务和邮件服务,为了便于用户的访问,可以为该服务器配置CNAME资源记录,分别配置别名为www.aaa.com和mail.aaa.com。当用户请求Web服务时,访问www.aaa.com,当用户请求邮件服务时,访问mail.aaa.com,而实际访问的均为host.aaa.com。
· MX(Mail Exchanger,邮件交换)资源记录用于指定该DNS正向区域的邮件服务器。
· NS(Name Server,权威名称服务器)资源记录用于指定为该DNS正向区域服务的权威名称服务器。
· SOA(Start of Authority,起始授权)资源记录用来配置一个DNS正向区域的主域名服务器、管理员邮箱等参数。
· SRV(Service,服务)资源记录用来配置DNS正向区域所提供的服务,以及提供该服务的服务器。
· TXT(Text,文本)资源记录用于为DNS正向区域设置说明。
如图5-5所示,配置DNS正向区域的负载均衡设备收到DNS请求后,首先查询在DNS正向区域中配置的资源记录得到主机域名,再依据该主机域名在DNS映射中查找域名所对应的虚服务器IP地址。
表5-25 配置任务简介
配置任务 |
说明 |
详细配置 |
创建DNS正向区域 |
必选 |
|
配置指定类型的资源记录 |
可选 支持配置CNAME、MX、NS、SRV和TXT资源记录 |
|
配置SOA资源记录 |
可选 |
|
配置资源记录的缓存时间 |
可选 |
表5-26 创建DNS正向区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS正向区域,并进入DNS正向区域视图 |
loadbalance zone domain-name |
缺省情况下,不存在DNS正向区域 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS正向区域视图 |
loadbalance zone domain-name |
- |
配置指定类型的资源记录 |
record { cname alias alias-name canonical canonical-name | mx [ host hostname ] exchanger exchanger-name preference preference | ns [ sub subname ] authority ns-name | srv [ service service-name ] host-offering-service hostname priority priority weight weight port port-number | txt [ sub subname ] describe-txt description } [ ttl ttl-value ] |
缺省情况下,DNS正向区域中不存在资源记录 |
表5-28 配置SOA资源记录
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS正向区域视图 |
loadbalance zone domain-name |
- |
创建SOA类型的资源记录,并进入SOA视图 |
soa |
缺省情况下,不存在SOA类型的资源记录 |
配置主域名服务器的主机名 |
primary-nameserver host-name |
缺省情况下,未配置主域名服务器的主机名 |
配置管理员的邮件地址 |
responsible-mail mail-address |
缺省情况下,未配置管理员的邮件地址 |
配置DNS正向区域的序列号 |
serial number |
缺省情况下,DNS正向区域的序列号为1 |
配置刷新间隔 |
refresh refresh-interval |
缺省情况下,刷新间隔为3600秒 |
配置重试时间 |
retry retry-interval |
缺省情况下,重试时间为600秒 |
配置过期时间 |
expire expire-time |
缺省情况下,过期时间为86400秒 |
配置最小生命周期 |
min-ttl ttl-value |
缺省情况下,最小生命周期为3600秒 |
表5-29 配置资源记录的缓存时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS正向区域视图 |
loadbalance zone domain-name |
- |
配置资源记录的缓存时间 |
ttl ttl-value |
缺省情况下,资源记录的缓存时间为3600秒 |
负载均衡设备根据DNS反向区域对收到的报文进行反向DNS解析,即根据IP地址查找对应的域名。DNS反向区域中设置的PTR(Pointer Record,指针记录)用来记录域名和IP地址的映射关系。
DNS反向地址解析通常用于解决网络中的垃圾邮件攻击,即对邮件发送方的合法性进行检查,来拒绝转发或接收非法邮件。例如,当邮件服务器收到来自外网用户的邮件时,向负载均衡设备发送反向解析请求,负载均衡设备收到来自邮件服务器的反向解析请求后,查找在DNS反向区域中配置的PTR资源记录,将邮件发送方的源IP地址解析为域名并将解析结果返回给邮件服务器。邮件服务器将收到的域名与邮件报文中的发送方域名进行比较,结果一致则接收该邮件,否则认为该邮件为垃圾邮件并将其丢弃。
表5-30 配置DNS反向区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS反向区域,并进入DNS反向区域视图 |
loadbalance reverse-zone { ip ipv4-address mask-length | ipv6 ipv6-address prefix-length } |
缺省情况下,不存在DNS反向区域 |
配置PTR资源记录 |
record ptr { ip ipv4-address | ipv6 ipv6-address } domain-name [ ttl ttl-value ] |
缺省情况下,未配置PTR资源记录 |
当虚服务器池中指定调度算法为静态就近性调度算法(topology)时,则需要配置Topology。关于虚服务器池的调度算法的具体配置,请参见5.6.4 配置虚服务器池的调度算法。
若DNS请求匹配多个Topology记录时,优先选择权重值高的记录。
表5-31 配置Topology
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置Topology |
topology region region-name { ip ipv4-address { mask-length | mask } | ipv6 ipv6-address prefix-length } [ weight weight-value ] |
缺省情况下,区域特征与IP网段的对应关系不存在 |
区域对象中包含根据不同ISP信息(运营商类别)划分的地址段。
表5-32 配置Region
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建区域对象,并进入区域对象视图 |
loadbalance region region-name |
缺省情况下,不存在任何区域对象 |
添加ISP信息 |
isp isp-name |
缺省情况下,区域中下不存在任何ISP信息 |
入方向链路负载均衡使用的ISP信息为出方向链路负载均衡下的ISP信息。此节的配置任务及相关配置,请参见3.11 配置ISP信息。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
表5-33 配置负载均衡链路带宽繁忙日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡链路带宽繁忙日志功能 |
loadbalance log enable bandwidth-busy |
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态 |
可以通过指定DNS请求报文的类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试入方向链路负载均衡的解析结果。
表5-34 测试入方向链路负载均衡效果
操作 |
命令 |
说明 |
测试IPv4入方向链路负载均衡的解析结果 |
loadbalance local-dns-server schedule-test ip [ vpn-instance vpn-instance-name ] destination destination-address [ destination-port destination-port ] source source-address source-port source-port type { { a | aaaa | cname | mx | ns | soa | srv | txt } domain domain-name | ptr ip address { ipv4-address | ipv6-address } } [ slot slot-number ] |
本命令可在任意视图下执行 |
测试IPv6入方向链路负载均衡的解析结果 |
loadbalance local-dns-server schedule-test ipv6 [ vpn-instance vpn-instance-name ] destination destination-address [ destination-port destination-port ] source source-address source-port source-port type { { a | aaaa | cname | mx | ns | soa | srv | txt } domain domain-name | ptr ip address ipv4-address } [ slot slot-number ] |
本命令可在任意视图下执行 |
表5-35 配置可记录的解析失败的DNS请求报文的最大数目
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置可记录的解析失败的DNS请求报文的最大数目 |
loadbalance local-dns-server parse-fail-record max-number max-number |
缺省情况下,可记录的解析失败的DNS请求报文的最大数目为10000条 |
表5-36 配置可记录的解析失败的DNS请求报文的类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置可记录的解析失败的DNS请求报文的类型 |
loadbalance local-dns-server parse-fail-record type { a | aaaa | all-disable | all-enable | cname | mx | ns | ptr | soa | srv | txt } |
缺省情况下,可记录的解析失败的DNS请求报文的类型为全部类型 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后入方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除链路负载均衡的统计信息。
表5-37 入方向链路负载均衡显示和维护
配置 |
命令 |
显示负载均衡DNS监听器的信息 |
display loadbalance dns-listener [ name listener-name ] |
显示负载均衡DNS监听器的统计信息 |
display loadbalance dns-listener statistics [ name dns-listener-name ] [ slot slot-number ] |
显示负载均衡DNS映射的信息 |
display loadbalance dns-map [ name dns-map-name ] |
显示负载均衡DNS映射的统计信息 |
display loadbalance dns-map statistics [ name dns-map-name ] [ slot slot-number ] |
显示虚服务器池的信息 |
display loadbalance virtual-server-pool [ brief | name pool-name ] |
显示链路的信息 |
display loadbalance link [ brief | name link-name ] |
显示负载均衡DNS正向区域的信息 |
display loadbalance zone [ name domain-name ] |
显示负载均衡DNS反向区域的信息 |
display loadbalance reverse-zone { ip [ ipv4-address mask-length ] | ipv6 [ ipv6-address prefix-length ] } |
显示ISP的信息 |
display loadbalance isp [ ip ipv4-address | ipv6 ipv6-address | name isp-name ] |
显示解析失败的DNS请求报文的信息 |
display loadbalance local-dns-server parse-fail-record [ type { a | aaaa | cname | mx | ns | soa | srv | txt } ] [ domain domain-name ] | ptr [ ip address { ipv4-address | ipv6-address } ] ] [ vpn-instance vpn-instance-name ] [ slot slot-number ] |
清除DNS监听器的统计信息 |
reset loadbalance dns-listener statistics [ dns-listener-name ] |
清除DNS映射的统计信息 |
reset loadbalance dns-map statistics [ dns-map-name ] |
清除当前记录的解析失败的DNS请求报文的信息 |
reset loadbalance local-dns-server parse-fail-record |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!