01-负载均衡配置
本章节下载 (1006.36 KB)
LB(Load Balance,负载均衡)是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。
负载均衡技术具有以下优势:
· 高性能:通过将业务较均衡地分配到多台设备或多条链路上,提高了系统的整体性能。
· 可扩展性:可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。
· 高可靠性:单个甚至多个设备或链路发生故障也不会导致业务中断,提高了系统的整体可靠性。
· 可管理性:大量的管理工作都集中在应用了负载均衡技术的设备上,集群中的设备或链路只需要进行普通的配置和维护。
· 透明性:对用户而言,集群等同于一个可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构。增减集群中的设备或链路不会影响正常业务。
负载均衡技术可分为以下几种类型:
· 服务器负载均衡:在数据中心等组网中,通过此技术可将网络服务分担给多台服务器或防火墙进行处理,从而提高服务器或防火墙的处理能力。
· 链路负载均衡:当存在多条运营商链路时,通过此技术可实现链路的动态选择,从而充分利用多条链路。链路负载均衡支持IPv4与IPv6,但不支持IPv4报文与IPv6报文的互相转换。根据数据的连接请求方向不同,链路负载均衡又分为以下两种:
¡ 出方向链路负载均衡:当内网用户访问外部互联网存在多条链路时,可在多条链路上分担内网用户访问外部互联网的流量。
¡ 入方向链路负载均衡:当外网用户访问内网服务器存在多条链路时,可在多条链路上分担外网用户访问内网服务器的流量。
下面将对上述几种负载均衡技术分别进行介绍。
根据识别信息的层级不同,服务器负载均衡又分为以下两种:
· 四层服务器负载均衡:可识别网络层和传输层信息,是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。由于四层服务器负载均衡对七层业务无法按内容分发,从而限制了其适用范围。
· 七层服务器负载均衡:除了可识别网络层和传输层信息之外,还可识别应用层信息,是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的服务器负载均衡。
服务器负载均衡支持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功能 |
可选 |
|
测试负载均衡效果 |
可选 |
· 实服务组:将具有相同或相似功能的实服务器抽象成一个实服务组。实服务组可被虚服务器或负载均衡动作引用。
· 实服务器:负载均衡设备上处理用户业务的实体。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· 负载均衡动作:制订丢弃、转发或修改报文的具体行为。
· 负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。
· 持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理。持续性组可被虚服务器或负载均衡动作引用。
· 参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。
为了便于对实服务器进行统一管理,可将具有相同或相似功能的实服务器抽象成一个组,称为实服务组。比如,可按存储内容的不同划分为歌曲服务器组、视频服务器组和图片服务器组等。
四层和七层服务器负载均衡的实服务组配置完全相同。
表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 } |
缺省情况下,实服务组的调度算法为加权轮转算法 |
配置实服务组中可被调度算法调用的实服务器数量限制 |
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或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或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 } |
缺省情况下,实服务组的故障处理方式为保持已有连接 |
实服务器是负载均衡设备上处理用户业务的实体。一个实服务器只能属于一个实服务组,而一个实服务组可以包含多个实服务器。
四层和七层服务器负载均衡的实服务器配置完全相同。
表2-14 配置任务简介(四/七层)
配置任务 |
说明 |
详细配置 |
创建实服务器并指定其所属实服务组 |
必选 |
|
配置IP地址和端口号 |
必选 |
|
配置权值和调用优先级 |
必选 |
|
配置带宽和连接参数 |
可选 |
|
配置健康检测功能 |
可选 |
|
慢宕实服务器 |
可选 |
表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 |
缺省情况下,实服务器处于开启状态 |
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
服务器负载均衡支持的虚服务器类型为快速HTTP、HTTP、IP、TCP和UDP。需要注意的是,请避免配置VSIP和端口号都相同的快速HTTP、HTTP、IP和TCP类型的虚服务器,且快速HTTP类型的虚服务器需避免与TCP客户端验证功能(该功能的介绍请参见“安全配置指导”中的“攻击检测与防范”)同时使用。否则导致无法预知负载均衡设备处理报文的方法。
四层和七层服务器负载均衡的虚服务器配置有所区别,下面分别进行介绍。
表2-21 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
创建虚服务器 |
必选 |
|
配置VSIP和端口号 |
必选 |
|
指定虚服务器所属的VPN |
可选 |
|
指定缺省实服务组 |
至少选其一 如果同时配置,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给缺省实服务组处理 |
|
引用负载均衡策略 |
||
引用参数模板 |
可选 |
|
配置带宽和连接参数 |
可选 |
|
配置UDP强制负载均衡功能 |
可选 |
|
配置热备份功能 |
可选 |
|
引用负载均衡连接数限制策略 |
可选 |
|
开启虚服务器 |
必选 |
表2-22 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
创建虚服务器 |
必选 |
|
配置VSIP和端口号 |
必选 |
|
指定虚服务器所属的VPN |
可选 |
|
指定缺省实服务组 |
至少选其一 如果同时配置,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给缺省实服务组处理 |
|
引用负载均衡策略 |
||
引用参数模板 |
可选 |
|
配置带宽和连接参数 |
可选 |
|
配置重定向功能 |
可选 |
|
引用SSL策略 |
可选 |
|
配置热备份功能 |
可选 |
|
引用负载均衡连接数限制策略 |
可选 |
|
开启虚服务器 |
必选 |
四层服务器负载均衡的虚服务器包括IP、TCP和UDP三种类型。
表2-23 创建虚服务器(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IP、TCP或UDP类型的虚服务器,并进入虚服务器视图 |
virtual-server virtual-server-name type { ip | tcp | udp } |
缺省情况下,不存在任何虚服务器 创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置虚服务器的描述信息 |
description text |
缺省情况下,虚服务器没有描述信息 |
七层服务器负载均衡的虚服务器包括快速HTTP和HTTP两种类型。
表2-24 创建并开启虚服务器(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建快速HTTP或HTTP类型的虚服务器,并进入虚服务器视图 |
virtual-server virtual-server-name type { fast-http | http } |
缺省情况下,不存在任何虚服务器 创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置虚服务器的描述信息 |
description text |
缺省情况下,虚服务器没有描述信息 |
通过本配置可以指定虚服务器的IPv4或IPv6地址(即VSIP),以及虚服务器的端口号。
表2-25 配置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 |
缺省情况下,IP/TCP/UDP类型虚服务器的端口号为0(表示任意端口号) |
表2-26 配置VSIP和端口号(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入快速HTTP或HTTP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
配置虚服务器的IPv4地址 |
virtual ip address ipv4-address |
二者选其一 缺省情况下,虚服务器没有IP地址 |
配置虚服务器的IPv6地址 |
virtual ipv6 address ipv6-address |
|
配置虚服务器的端口号 |
port port-number |
缺省情况下,快速HTTP/HTTP类型虚服务器的端口号为80 如果虚服务器引用了SSL策略,则必须为其配置一个非缺省端口号(通常用443) |
虚服务器缺省服务于公网,通过本配置可使虚服务器服务于特定的VPN。
表2-27 指定虚服务器所属的VPN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器所属的VPN |
vpn-instance vpn-instance-name |
缺省情况下,虚服务器属于公网 |
当主用实服务组可用(该实服务组存在且有可用的实服务器)时,虚服务器通过主用实服务组进行转发;当主用实服务组不可用而备用实服务组可用时,虚服务器通过备用实服务组进行转发。
表2-28 指定缺省实服务组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定缺省实服务组 |
default server-farm server-farm-name [ backup backup-server-farm-name ] [ sticky sticky-name ] |
缺省情况下,没有指定缺省实服务组 |
虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
表2-29 引用负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的负载均衡策略 |
lb-policy policy-name |
缺省情况下,虚服务器没有引用任何负载均衡策略 虚服务器只能引用与自身类型相关的策略模板,如:快速HTTP和HTTP类型的虚服务器,可以引用通用或HTTP类型的策略模板;IP、TCP和UDP类型的虚服务器,只能引用通用类型的策略模板 |
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
表2-30 引用参数模板(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IP、TCP或UDP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的参数模板 |
parameter ip profile-name |
缺省情况下,虚服务器没有引用任何参数模板 |
表2-31 引用参数模板(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入快速HTTP和HTTP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的参数模板 |
parameter { http | http-compression | ip | tcp } profile-name |
缺省情况下,虚服务器没有引用任何参数模板 |
通过本配置可以调整虚服务器所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表2-32 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
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-33 配置UDP强制负载均衡功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入UDP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的UDP强制负载均衡功能 |
udp per-packet |
缺省情况下,虚服务器的UDP强制负载均衡功能处于关闭状态 |
在HTTP类型的虚服务器视图下开启了重定向功能后,所有匹配该虚服务器的HTTP请求报文都将被重定向到指定URL。
表2-34 配置重定向功能
操作 |
命令 |
说明 |
进入系统视图 |
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-35 引用SSL策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的SSL客户端策略 |
ssl-client-policy policy-name |
缺省情况下,虚服务器没有引用任何SSL客户端策略 快速HTTP类型的虚服务器不支持本功能 |
指定虚服务器引用的SSL服务器端策略 |
ssl-server-policy policy-name |
缺省情况下,虚服务器没有引用任何SSL服务器端策略 快速HTTP类型的虚服务器不支持本功能 |
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
表2-36 配置热备份功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的会话扩展信息备份功能 |
connection-sync enable |
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态 HTTP类型的虚服务器不支持本功能 |
开启虚服务器的持续性表项备份功能 |
sticky-sync enable |
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态 |
引用负载均衡连接数限制策略后,访问虚服务器的连接数将会受到连接数限制策略的限制。
表2-37 引用负载均衡连接数限制策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
引用负载均衡连接数限制策略 |
lb-limit-policy policy-name |
缺省情况下,虚服服器中没有引用任何负载均衡连接数限制策略 |
配置完虚服务器后,需要将其开启后才能进入工作状态。
表2-38 开启虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器 |
service enable |
缺省情况下,虚服务器处于关闭状态 |
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
四层和七层服务器负载均衡的负载均衡类配置有所区别,下面分别进行介绍。
表2-39 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
表2-40 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
|||
创建HTTP实体类型的匹配规则 |
|||
创建HTTP Cookie类型的匹配规则 |
|||
创建HTTP首部类型的匹配规则 |
|||
创建HTTP URL类型的匹配规则 |
|||
创建匹配报文方法类型的匹配规则 |
表2-41 创建负载均衡类(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建通用类型的负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name type generic [ match-all | match-any ] |
缺省情况下,不存在任何负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类没有描述信息 |
表2-42 创建负载均衡类(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP类型的负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name type http [ match-all | match-any ] |
缺省情况下,不存在任何负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类没有描述信息 |
表2-43 创建嵌套类的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建嵌套类的匹配规则 |
match [ match-id ] class class-name |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-44 创建源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-45 创建ACL类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建ACL类型的匹配规则 |
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-46 创建HTTP实体类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP实体类型的匹配规则 |
match [ match-id ] content content [ offset offset ] |
缺省情况下,负载均衡类中不存在任何匹配规则 快速HTTP类型虚服务器不支持本功能 |
表2-47 创建HTTP Cookie类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP Cookie类型的匹配规则 |
match [ match-id ] cookie cookie-name value value |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-48 创建HTTP首部类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP首部类型的匹配规则 |
match [ match-id ] header header-name value value |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-49 创建HTTP URL类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建HTTP URL类型的匹配规则 |
match [ match-id ] url url |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表2-50 创建匹配报文方法类型的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡类视图 |
loadbalance class class-name |
- |
创建匹配报文方法类型的匹配规则 |
match [ match-id ] method { ext ext-type | rfc rfc-type } |
缺省情况下,负载均衡类中不存在任何匹配规则 |
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
四层和七层服务器负载均衡的负载均衡动作配置有所区别,下面分别进行介绍。
表2-51 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
配置报文的转发模式为转发 |
可选其一 这两条命令互斥,当配置了其中一条后,另一条的配置将被自动取消 |
|
指定指导转发的实服务组 |
|||
配置查找可用实服务器失败时继续匹配下一条引用规则 |
可选 |
||
配置修改类动作 |
配置发往服务器的IP报文中的ToS字段 |
可选 |
|
配置重定向功能 |
可选 |
表2-52 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
指定指导转发的实服务组 |
可选 |
|
配置查找可用实服务器失败时继续匹配下一条引用规则 |
|||
配置修改类动作 |
配置发往服务器的IP报文中的ToS字段 |
可选其一 |
|
操作HTTP首部 |
|||
重写服务器发送的HTTP应答报文Location首部的URL |
|||
引用SSL客户端策略 |
|||
修改HTTP应答报文体中的指定内容 |
|||
配置重定向功能 |
表2-53 创建负载均衡动作(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建通用类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type generic |
缺省情况下,不存在任何负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作没有描述信息 |
表2-54 创建负载均衡动作(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type http |
缺省情况下,不存在任何负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作没有描述信息 |
表2-55 配置报文的转发模式为转发
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入通用类型的负载均衡动作视图 |
loadbalance action action-name |
- |
配置报文的转发模式为转发 |
forward all |
缺省情况下,报文转发模式为丢弃 |
当主用实服务组可用(该实服务组存在且有可用的实服务器)时,使用主用实服务组指导转发;当主用实服务组不可用而备用实服务组可用时,使用备用实服务组指导转发。
表2-56 指定指导转发的实服务组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
指定指导转发的实服务组 |
server-farm server-farm-name [ backup backup-server-farm-name ] [ sticky sticky-name ] |
缺省情况下,没有指定指导转发的实服务组 |
当配置该命令的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用实服务器失败时,可继续顺序匹配策略中的下一条引用规则。
表2-57 配置查找实服务器失败时继续匹配下一条引用规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置查找实服务器失败时继续匹配下一条引用规则 |
fallback-action continue |
缺省情况下,根据当前动作查找可用实服务器失败时,不再继续匹配下一条引用规则 |
表2-58 配置发往服务器的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置发往服务器的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往服务器的IP报文中的ToS字段 |
通过本配置可以对HTTP首部执行以下操作:
· 删除:如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部从报文中删除。
· 插入:系统将在指定方向的HTTP报文中插入指定名称和内容的首部。
· 重写:如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部中的指定内容重写为新的内容。
表2-59 操作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-60 重写服务器发送的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-61 引用SSL客户端策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
指定引用的SSL客户端策略 |
ssl-client-policy policy-name |
缺省情况下,没有引用任何SSL客户端策略 |
通过本配置,可以修改HTTP应答报文体中指定内容。
表2-62 修改HTTP应答报文体中指定内容
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
修改HTTP应答报文体中指定内容 |
content rewrite value value replace replace |
缺省情况下,不修改HTTP应答报文体中指定内容 |
在HTTP类型的负载均衡动作视图下开启了重定向功能后,所有匹配对应负载均衡动作的HTTP请求报文都将被重定向到指定URL。
表2-63 配置重定向功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的负载均衡动作视图 |
loadbalance action action-name |
- |
开启动作的重定向功能并指定重定向URL |
redirect relocation relocation |
缺省情况下,动作的重定向功能处于关闭状态 |
配置负载均衡设备返回给客户端的重定向报文中的状态码 |
redirect return-code { 301 | 302 } |
缺省情况下,负载均衡设备返回给客户端的重定向报文中的状态码为302 本命令只有在开启了动作的重定向功能后才会生效 |
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
四层和七层服务器负载均衡的负载均衡策略配置有所区别,下面分别进行介绍。
表2-64 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
表2-65 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
表2-66 创建负载均衡策略(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建通用类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type generic |
缺省情况下,不存在任何负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略没有描述信息 |
表2-67 创建负载均衡策略(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type http |
缺省情况下,不存在任何负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略没有描述信息 |
通用类型的负载均衡策略只能引用通用类型的负载均衡类和负载均衡动作,HTTP类型的负载均衡策略则无此限制。
表2-68 指定负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
为负载均衡类指定负载均衡动作 |
class class-name [ insert-before before-class-name ] action action-name |
缺省情况下,没有为任何负载均衡类指定负载均衡动作 不同的负载均衡类可以与同一负载均衡动作组成匹配规则 |
通用类型的负载均衡策略只能用通用类型的负载均衡动作作为其缺省负载均衡动作,HTTP类型的负载均衡策略则无此限制。
表2-69 指定缺省负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
指定缺省负载均衡动作 |
default-class action action-name |
缺省情况下,未指定缺省负载均衡动作 |
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了实服务器之后,后续包都会沿用这个选择结果。
四层和七层服务器负载均衡的持续性组配置有所区别,下面分别进行介绍。
表2-70 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
|
创建持续性组 |
必选 |
||
配置持续性方法 |
配置IP持续性方法 |
必选 |
|
配置持续性表项超时时间 |
可选 |
||
开启匹配持续性表项的会话不受连接数限制影响功能 |
可选 |
||
表2-71 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建持续性组 |
必选 |
||
配置持续性方法 |
配置IP持续性方法 |
至少选其一 |
|
配置HTTP实体持续性方法 |
|||
配置HTTP Cookie持续性方法 |
|||
配置HTTP首部持续性方法 |
|||
配置HTTP载荷持续性方法 |
|||
配置SSL持续性方法 |
|||
配置持续性表项超时时间 |
可选 |
||
开启匹配持续性表项的会话不受连接数限制影响功能 |
可选 |
表2-72 创建持续性组(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建地址端口类型的持续性组,并进入持续性组视图 |
sticky-group group-name type address-port |
缺省情况下,不存在任何持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组没有描述信息 |
表2-73 创建持续性组(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP实体、HTTP Cookie、HTTP首部、HTTP载荷或SSL类型的持续性组,并进入持续性组视图 |
sticky-group group-name type { http-content | http-cookie | http-header | payload | ssl } |
缺省情况下,不存在任何持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组没有描述信息 |
表2-74 配置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-75 配置HTTP实体持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP实体类型的持续性组视图 |
sticky-group group-name |
- |
配置HTTP实体持续性方法 |
content [ offset offset ] [ start start-string ] [ end end-string | length length ] |
缺省情况下,不存在任何持续性方法 快速HTTP类型的虚服务器不支持本功能 |
表2-76 配置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-77 配置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-78 配置HTTP载荷持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP载荷类型的持续性组视图 |
sticky-group group-name |
- |
配置HTTP载荷持续性方法 |
payload [ offset offset ] [ start start-string ] [ end end-string | length length ] |
缺省情况下,不存在任何持续性方法 快速HTTP类型的虚服务器不支持本功能 |
表2-79 配置SSL持续性方法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL类型的持续性组视图 |
sticky-group group-name |
- |
配置SSL持续性方法为基于SSL会话ID |
ssl session-id |
缺省情况下,不存在任何持续性方法 |
表2-80 配置持续性表项超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
配置持续性表项的超时时间 |
timeout timeout-value |
缺省情况下,对于HTTP Cookie类型的持续性组,持续性表项的超时时间为86400秒;对于其它类型的持续性组,持续性表项的超时时间为60秒 |
开启该功能后,如果该连接匹配了已有的持续性表项,将不受实服务器上带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
表2-81 开启匹配持续性表项的会话不受连接数限制影响功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
开启匹配持续性表项的会话不受连接数限制影响功能 |
override-limit enable |
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响 |
四层和七层服务器负载均衡的参数模板配置有所区别,下面分别进行介绍。
表2-82 配置任务简介(四层)
配置任务 |
说明 |
详细配置 |
创建参数模板 |
必选 |
|
配置发往客户端的IP报文中的ToS字段 |
必选 |
表2-83 配置任务简介(七层)
配置任务 |
说明 |
详细配置 |
|
创建参数模板 |
必选 |
||
配置具体参数 |
配置TCP连接中的本地最大窗口值 |
至少选其一 |
|
配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式 |
|||
配置负载均衡设备与对端建立TCP连接时的MSS值 |
|||
配置对每个HTTP请求报文都进行负载均衡 |
|||
配置允许负载均衡设备与服务器的连接复用 |
|||
配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作 |
|||
配置匹配字符串时对大小写不敏感 |
|||
配置HTTP最大解析长度 |
|||
配置Secondary Cookie相关参数 |
|||
配置当HTTP请求或应答报文首部超出最大长度时的处理方式 |
|||
配置压缩功能 |
通过配置参数模板可以制订对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。
表2-84 创建参数模板(四层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IP类型的参数模板,并进入参数模板视图 |
parameter-profile profile-name type ip |
缺省情况下,不存在任何参数模板 创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置参数模板的描述信息 |
description text |
缺省情况下,参数模板没有描述信息 |
表2-85 创建参数模板(七层)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HTTP、HTTP压缩或TCP类型的参数模板,并进入参数模板视图 |
parameter-profile profile-name type { http | http-compression | tcp } |
缺省情况下,不存在任何参数模板 创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置参数模板的描述信息 |
description text |
缺省情况下,参数模板没有描述信息 |
表2-86 配置发往客户端的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置发往客户端的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往客户端的IP报文中的ToS字段 |
表2-87 配置TCP连接中的本地最大窗口值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置TCP连接中的本地最大窗口值 |
tcp window-size size |
缺省情况下,TCP连接中的本地最大窗口值为65535 |
表2-88 配置对客户端发来的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-89 配置负载均衡设备与对端建立TCP连接时的MSS值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TCP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置负载均衡设备与对端建立TCP连接时的MSS值 |
tcp mss value |
缺省情况下,未配置负载均衡设备与对端建立TCP连接时的MSS值 |
表2-90 配置对每个HTTP请求报文都进行负载均衡
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置对每个HTTP请求报文都进行负载均衡 |
rebalance per-request |
缺省情况下,只对一条连接的第一个HTTP请求报文进行负载均衡,其余请求的处理方式与第一个相同 |
表2-91 配置允许负载均衡设备与服务器的连接复用
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置允许负载均衡设备与服务器的连接复用 |
server-connection reuse |
缺省情况下,不允许负载均衡设备与服务器的连接复用 快速HTTP类型的虚服务器不支持本功能 |
表2-92 配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作 |
header modify per-request |
缺省情况下,只对每个连接的第一个HTTP请求或应答报文的首部执行插入、删除或修改操作 |
表2-93 配置匹配字符串时对大小写不敏感
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置匹配字符串时对大小写不敏感 |
case-insensitive |
缺省情况下,匹配字符串时对大小写敏感 |
表2-94 配置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-95 配置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-96 配置当HTTP请求或应答报文首部超出最大长度时的处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入HTTP类型的参数模板视图 |
parameter-profile profile-name |
- |
配置当HTTP请求或应答报文首部超出最大长度时的处理方式 |
header exceed-length { continue | drop } |
缺省情况下,当HTTP请求或应答报文首部超出最大长度时,继续进行负载均衡处理 快速HTTP类型的虚服务器不支持本功能 |
表2-97 配置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-98 配置负载均衡连接数限制策略
操作 |
命令 |
说明 |
进入系统视图 |
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 |
缺省情况下,未配置任何描述信息 |
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
四层和七层服务器负载均衡的负载均衡告警功能配置完全相同。
表2-99 配置负载均衡告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡的告警功能 |
snmp-agent trap enable loadbalance |
缺省情况下,负载均衡的告警功能处于开启状态 |
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
表2-100 配置负载均衡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-101 测试负载均衡效果
操作 |
命令 |
说明 |
测试IPv4负载均衡的效果 |
loadbalance schedule-test ip protocol { protocol-number | icmp | tcp | udp } destination destination-address destination-port destination-port source source-address [ slot slot-number ] |
本命令可在任意视图下执行 |
测试IPv6负载均衡的效果 |
loadbalance schedule-test ipv6 protocol { protocol-number | icmpv6 | tcp | udp } destination destination-address destination-port destination-port source source-address [ slot slot-number ] |
本命令可在任意视图下执行 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后服务器负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除服务器负载均衡的统计信息。
表2-102 服务器负载均衡显示和维护
配置 |
命令 |
显示负载均衡动作的信息 |
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 |
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
清除实服务器的统计信息 |
reset real-server statistics [ real-server-name ] |
清除虚服务器的统计信息 |
reset virtual-server statistics [ virtual-server-name ] |
三台物理服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图2-7 四层服务器负载均衡基本功能配置组网图
(1) 配置负载均衡设备
· 配置接口IP地址
<LB> system-view
[LB] interface gigabitethernet 1/0/1
[LB-GigabitEthernet1/0/1] ip address 61.159.4.100 24
[LB-GigabitEthernet1/0/1] quit
[LB] interface gigabitethernet 1/0/2
[LB-GigabitEthernet1/0/2] ip address 192.168.1.100 24
[LB-GigabitEthernet1/0/2] quit
· 配置实服务组
# 创建ICMP类型的NQA模板t1。
[LB] nqa template icmp t1
[LB-nqatplt-icmp-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[LB] server-farm sf
[LB-sfarm-sf] predictor round-robin
[LB-sfarm-sf] probe t1
[LB-sfarm-sf] quit
· 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为21、权值为150,并加入实服务组sf。
[LB] real-server rs1
[LB-rserver-rs1] ip address 192.168.1.1
[LB-rserver-rs1] port 21
[LB-rserver-rs1] weight 150
[LB-rserver-rs1] server-farm sf
[LB-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为21、权值为120,并加入实服务组sf。
[LB] real-server rs2
[LB-rserver-rs2] ip address 192.168.1.2
[LB-rserver-rs2] port 21
[LB-rserver-rs2] weight 120
[LB-rserver-rs2] server-farm sf
[LB-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为21、权值为80,并加入实服务组sf。
[LB] real-server rs3
[LB-rserver-rs3] ip address 192.168.1.3
[LB-rserver-rs3] port 21
[LB-rserver-rs3] weight 80
[LB-rserver-rs3] server-farm sf
[LB-rserver-rs3] quit
· 配置虚服务器
# 创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其缺省主用实服务组为sf,并开启此虚服务器。
[LB] virtual-server vs type tcp
[LB-vs-tcp-vs] virtual ip address 61.159.4.100
[LB-vs-tcp-vs] default server-farm sf
[LB-vs-tcp-vs] service enable
[LB-vs-tcp-vs] quit
(2) 配置物理服务器
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[LB] display real-server brief
Real server Address Port State Server farm
rs1 192.168.1.1 21 Active sf
rs2 192.168.1.2 21 Active sf
rs3 192.168.1.3 21 Active sf
# 显示所有实服务组的详细信息。
[LB] display server-farm
Server farm: sf
Description:
Predictor: Round robin
Proximity: Disabled
NAT: Enabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected server: Disabled
Probe information:
Probe success criteria: All
Probe method:
t1
Total real server: 3
Active real server: 3
Real server list:
Name State Address Port Weight Priority
rs1 Active 192.168.1.1 21 150 4
rs2 Active 192.168.1.2 21 120 4
rs3 Active 192.168.1.3 21 80 4
# 显示所有虚服务器的详细信息。
[LB] display virtual-server
Virtual server: vs
Description:
Type: TCP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.100/32
Virtual IPv6 address: --
Port: 0
Primary server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
· 三台物理服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
· 为了提高可靠性,由两台负载均衡设备采用双机热备方式进行组网。在这两台负载均衡设备上,要实现会话扩展信息和持续性表项的实时批量备份,以确保主备倒换过程中服务不中断。
图2-8 四层服务器负载均衡双机热备配置组网图
(1) 配置负载均衡设备
· 配置IRF
将两台负载均衡设备配置成一台IRF设备,它们在IRF中的成员编号分别为1和2,有关IRF的相关配置过程略,具体请参考“虚拟化配置指导”中的“IRF”。
· 配置以太网冗余接口
# 创建以太网冗余接口Reth1,为其配置IP地址并添加成员接口。
[LB] interface reth 1
[LB-Reth1] ip address 61.159.4.100 24
[LB-Reth1] member interface gigabitethernet 1/0/1 priority 20
[LB-Reth1] member interface gigabitethernet 2/0/1 priority 10
[LB-Reth1] quit
# 创建以太网冗余接口Reth2,为其配置IP地址并添加成员接口。
[LB] interface reth 2
[LB-Reth2] ip address 192.168.1.100 24
[LB-Reth2] member interface gigabitethernet 1/0/2 priority 20
[LB-Reth2] member interface gigabitethernet 2/0/2 priority 10
[LB-Reth2] quit
· 配置冗余组
# 分别创建四个Track项,各自监视一个以太网接口的状态。
[LB] track 1 interface gigabitethernet 1/0/1
[LB] track 2 interface gigabitethernet 1/0/2
[LB] track 3 interface gigabitethernet 2/0/1
[LB] track 4 interface gigabitethernet 2/0/2
# 创建冗余组bkp,并为其添加成员接口Reth1和Reth2。
[LB] redundancy group bkp
[LB-redundancy-group-bkp] member interface reth 1
[LB-redundancy-group-bkp] member interface reth 2
# 创建冗余组主节点1(优先级为100),将其与成员设备1绑定,并关联Track项1和2。
[LB-redundancy-group-bkp] node 1
[LB-redundancy-group-bkp-node-1] priority 100
[LB-redundancy-group-bkp-node-1] bind slot 1
[LB-redundancy-group-bkp-node-1] track 1 interface gigabitethernet 1/0/1
[LB-redundancy-group-bkp-node-1] track 2 interface gigabitethernet 1/0/2
[LB-redundancy-group-bkp-node-1] quit
# 创建冗余组备节点2(优先级为50),将其与成员设备2绑定,并关联Track项3和4。
[LB-redundancy-group-bkp] node 2
[LB-redundancy-group-bkp-node2] priority 50
[LB-redundancy-group-bkp-node2] bind slot 2
[LB-redundancy-group-bkp-node2] track 3 interface gigabitethernet 2/0/1
[LB-redundancy-group-bkp-node2] track 4 interface gigabitethernet 2/0/2
[LB-redundancy-group-bkp-node2] quit
[LB-redundancy-group-bkp] quit
· 配置会话备份
# 开启会话业务热备份功能。
[LB] session synchronization enable
· 配置实服务组
# 创建ICMP类型的NQA模板t1。
[LB] nqa template icmp t1
[LB-nqatplt-icmp-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[LB] server-farm sf
[LB-sfarm-sf] predictor round-robin
[LB-sfarm-sf] probe t1
[LB-sfarm-sf] quit
· 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为21、权值为150,并加入实服务组sf。
[LB] real-server rs1
[LB-rserver-rs1] ip address 192.168.1.1
[LB-rserver-rs1] port 21
[LB-rserver-rs1] weight 150
[LB-rserver-rs1] server-farm sf
[LB-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为21、权值为120,并加入实服务组sf。
[LB] real-server rs2
[LB-rserver-rs2] ip address 192.168.1.2
[LB-rserver-rs2] port 21
[LB-rserver-rs2] weight 120
[LB-rserver-rs2] server-farm sf
[LB-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为21、权值为80,并加入实服务组sf。
[LB] real-server rs3
[LB-rserver-rs3] ip address 192.168.1.3
[LB-rserver-rs3] port 21
[LB-rserver-rs3] weight 80
[LB-rserver-rs3] server-farm sf
[LB-rserver-rs3] quit
· 配置虚服务器
# 创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其缺省主用实服务组为sf,分别开启会话扩展信息和持续性表项的备份功能,并开启此虚服务器。
[LB] virtual-server vs type tcp
[LB-vs-tcp-vs] virtual ip address 61.159.4.100
[LB-vs-tcp-vs] default server-farm sf
[LB-vs-tcp-vs] connection-sync enable
[LB-vs-tcp-vs] sticky-sync enable
[LB-vs-tcp-vs] service enable
[LB-vs-tcp-vs] quit
(2) 配置物理服务器
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示冗余组bkp的相关信息。
[LB] display redundancy group bkp
Redundancy group bkp (ID 1):
Node ID Slot Priority Status Track weight
1 Slot1 100 Primary 255
2 Slot2 50 Secondary 255
Preempt delay time remained : 0 min
Preempt delay timer setting : 1 min
Remaining hold-down time : 0 sec
Hold-down timer setting : 1 sec
Manual switchover request : No
Member interfaces:
Reth1 Reth2
Member failover groups:
Node 1:
Track info:
Track Status Reduced weight Interface
1 Positive 255 GE1/0/1
2 Positive 255 GE1/0/2
Node 2:
Track info:
Track Status Reduced weight Interface
3 Negative 255 GE2/0/1
4 Negative 255 GE2/0/2
# 显示所有实服务器的简要信息。
[LB] display real-server brief
Real server Address Port State Server farm
rs1 192.168.1.1 21 Active sf
rs2 192.168.1.2 21 Active sf
rs3 192.168.1.3 21 Active sf
# 显示所有实服务组的详细信息。
[LB] display server-farm
Server farm: sf
Description:
Predictor: Round robin
Proximity: Disabled
NAT: Enabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected server: Disabled
Probe information:
Probe success criteria: All
Probe method:
t1
Total real server: 3
Active real server: 3
Real server list:
Name State Address Port Weight Priority
rs1 Active 192.168.1.1 21 150 4
rs2 Active 192.168.1.2 21 120 4
rs3 Active 192.168.1.3 21 80 4
# 显示所有虚服务器的详细信息。
[LB] display virtual-server
Virtual server: vs
Description:
Type: TCP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.100/32
Virtual IPv6 address: --
Port: 0
Primary server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
Connection synchronization: Enabled
Sticky synchronization: Enabled
Bandwidth busy protection: Disabled
三台物理服务器Server A、Server B和Server C均可提供HTTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图2-9 七层服务器负载均衡基本功能配置组网图
(1) 配置负载均衡设备
· 配置接口IP地址
<LB> system-view
[LB] interface gigabitethernet 1/0/1
[LB-GigabitEthernet1/0/1] ip address 61.159.4.100 24
[LB-GigabitEthernet1/0/1] quit
[LB] interface gigabitethernet 1/0/2
[LB-GigabitEthernet1/0/2] ip address 192.168.1.100 24
[LB-GigabitEthernet1/0/2] quit
· 配置实服务组
# 创建HTTP类型的NQA模板t1。
<LB> system-view
[LB] nqa template http t1
[LB-nqatplt-http-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[LB] server-farm sf
[LB-sfarm-sf] predictor round-robin
[LB-sfarm-sf] probe t1
[LB-sfarm-sf] quit
· 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为8080、权值为150,并加入实服务组sf。
[LB] real-server rs1
[LB-rserver-rs1] ip address 192.168.1.1
[LB-rserver-rs1] port 8080
[LB-rserver-rs1] weight 150
[LB-rserver-rs1] server-farm sf
[LB-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为8080、权值为120,并加入实服务组sf。
[LB] real-server rs2
[LB-rserver-rs2] ip address 192.168.1.2
[LB-rserver-rs2] port 8080
[LB-rserver-rs2] weight 120
[LB-rserver-rs2] server-farm sf
[LB-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为8080、权值为80,并加入实服务组sf。
[LB] real-server rs3
[LB-rserver-rs3] ip address 192.168.1.3
[LB-rserver-rs3] port 8080
[LB-rserver-rs3] weight 80
[LB-rserver-rs3] server-farm sf
[LB-rserver-rs3] quit
· 配置虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其缺省主用实服务组为sf,并开启此虚服务器。
[LB] virtual-server vs type http
[LB-vs-http-vs] virtual ip address 61.159.4.100
[LB-vs-http-vs] default server-farm sf
[LB-vs-http-vs] service enable
[LB-vs-http-vs] quit
(2) 配置物理服务器
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[LB] display real-server brief
Real server Address Port State Server farm
rs1 192.168.1.1 8080 Active sf
rs2 192.168.1.2 8080 Active sf
rs3 192.168.1.3 8080 Active sf
# 显示所有实服务组的详细信息。
[LB] display server-farm
Server farm: sf
Description:
Predictor: Round robin
Proximity: Disabled
NAT: Enabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected server: Disabled
Probe information:
Probe success criteria: All
Probe method:
t1
Total real server: 3
Active real server: 3
Real server list:
Name State Address Port Weight Priority
rs1 Active 192.168.1.1 8080 150 4
rs2 Active 192.168.1.2 8080 120 4
rs3 Active 192.168.1.3 8080 80 4
# 显示所有虚服务器的详细信息。
[LB] display virtual-server
Virtual server: vs
Description:
Type: HTTP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.100/32
Virtual IPv6 address: --
Port: 80
Primary server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
HTTP parameter profile:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
SSL server policy:
SSL client policy:
Redirect relocation:
Redirect return-code: 302
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
· 三台物理服务器Server A、Server B和Server C均可提供HTTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
· 为了在提高用户访问安全性的同时又不增加服务器的负担,在主机与负载均衡设备之间采用通过SSL加密的HTTPS连接,而在负载均衡设备与服务器之间则采用普通的HTTP连接。负载均衡设备在其中需要完成SSL终结的工作,即终结与主机的SSL会话,并与服务器建立TCP连接。
图2-10 七层服务器负载均衡SSL终结配置组网图
(1) 配置负载均衡设备
· 配置接口IP地址
<LB> system-view
[LB] interface gigabitethernet 1/0/1
[LB-GigabitEthernet1/0/1] ip address 61.159.4.100 24
[LB-GigabitEthernet1/0/1] quit
[LB] interface gigabitethernet 1/0/2
[LB-GigabitEthernet1/0/2] ip address 192.168.1.100 24
[LB-GigabitEthernet1/0/2] quit
· 配置实服务组
# 创建SSL类型的NQA模板t1。
<LB> system-view
[LB] nqa template ssl t1
[LB-nqatplt-ssl-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[LB] server-farm sf
[LB-sfarm-sf] predictor round-robin
[LB-sfarm-sf] probe t1
[LB-sfarm-sf] quit
· 配置SSL服务器端策略
# 配置PKI域1(有关PKI域的具体配置,请参见“安全配置指导”中的“PKI”)。
[Device] pki domain 1
# 创建一个名为ssp的SSL服务器端策略。
[Device] ssl server-policy ssp
# 配置SSL服务器端策略使用的PKI域名为1。
[Device-ssl-server-policy-ssp] pki-domain 1
# 配置服务器端需要验证客户端身份。
[Device-ssl-server-policy-ssp] client-verify enable
[Device-ssl-server-policy-ssp] quit
# 配置HTTPS服务使用的SSL策略为ssp。
[Device] ip https ssl-server-policy ssp
# 开启HTTPS服务。
[Device] ip https enable
# 创建本地用户usera,密码为123,服务类型为https,用户角色为network-admin。
[Device] local-user usera
[Device-luser-usera] password simple 123
[Device-luser-usera] service-type https
[Device-luser-usera] authorization-attribute user-role network-admin
· 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为8080、权值为150,并加入实服务组sf。
[LB] real-server rs1
[LB-rserver-rs1] ip address 192.168.1.1
[LB-rserver-rs1] port 8080
[LB-rserver-rs1] weight 150
[LB-rserver-rs1] server-farm sf
[LB-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为8080、权值为120,并加入实服务组sf。
[LB] real-server rs2
[LB-rserver-rs2] ip address 192.168.1.2
[LB-rserver-rs2] port 8080
[LB-rserver-rs2] weight 120
[LB-rserver-rs2] server-farm sf
[LB-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为8080、权值为80,并加入实服务组sf。
[LB] real-server rs3
[LB-rserver-rs3] ip address 192.168.1.3
[LB-rserver-rs3] port 8080
[LB-rserver-rs3] weight 80
[LB-rserver-rs3] server-farm sf
[LB-rserver-rs3] quit
· 配置虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100、端口号为443,指定其缺省主用实服务组为sf,引用SSL服务器端策略ssp,并开启此虚服务器。
[LB] virtual-server vs type http
[LB-vs-http-vs] virtual ip address 61.159.4.100
[LB-vs-http-vs] port 443
[LB-vs-http-vs] default server-farm sf
[LB-vs-http-vs] ssl-server-policy ssp
[LB-vs-http-vs] service enable
[LB-vs-http-vs] quit
(2) 配置物理服务器
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[LB] display real-server brief
Real server Address Port State Server farm
rs1 192.168.1.1 8080 Active sf
rs2 192.168.1.2 8080 Active sf
rs3 192.168.1.3 8080 Active sf
# 显示所有实服务组的详细信息。
[LB] display server-farm
Server farm: sf
Description:
Predictor: Round robin
Proximity: Disabled
NAT: Enabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected server: Disabled
Total real server: 3
Active real server: 3
Real server list:
Name State Address Port Weight Priority
rs1 Active 192.168.1.1 8080 150 4
rs2 Active 192.168.1.2 8080 120 4
rs3 Active 192.168.1.3 8080 80 4
# 显示所有虚服务器的详细信息。
[LB] display virtual-server
Virtual server: vs
Description:
Type: HTTP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.100/32
Virtual IPv6 address: --
Port: 443
Default server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
HTTP parameter profile:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
SSL server policy: ssp
SSL client policy:
Redirect relocation:
Redirect return-code: 302
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
出方向链路负载均衡功能可在多条链路上分担内网用户访问外部互联网的流量。
如图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 |
- |
在链路组中开启链路温暖上线功能 |
slow-online [ standby-time standby-time ramp-up-time ramp-up-time ] |
缺省情况下,链路组中的链路温暖上线功能处于关闭状态 |
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。
表3-10 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
指定链路组的健康检测方法 |
probe template-name |
缺省情况下,没有指定链路组的健康检测方法 |
配置链路组健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过本配置可以选择链路组的故障处理方式:
· 保持已有连接:不主动断开与故障链路的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到链路组中其它可用的链路上。
· 断开已有连接:主动断开与故障链路的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
表3-11 配置故障处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
配置链路组的故障处理方式 |
fail-action { keep | reschedule | reset } |
缺省情况下,链路组的故障处理方式为保持已有连接 |
就近性功能就是通过对链路进行探测,选出到达目的地的最优链路,从而引导后续流量。具体而言,就是当流量经过负载均衡模块时,如果没有与目的地址相关的就近性信息,则根据调度算法,为该流量选择一条链路,以保证业务的可用性,然后启动就近性探测来生成就近性表项,以引导后续流量。
配置就近性功能时,需要先在就近性视图下配置就近性参数,然后在链路组中开启就近性功能。
表3-12 配置就近性参数
操作 |
命令 |
说明 |
进入系统视图 |
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-13 开启就近性功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路组视图 |
loadbalance link-group link-group-name |
- |
开启就近性功能 |
proximity enable |
缺省情况下,链路组的就近性功能处于关闭状态 |
链路是运营商提供的实体链路。一条链路只能属于一个链路组,而一个链路组可以包含多条链路。
表3-14 配置任务简介
配置任务 |
说明 |
详细配置 |
创建链路并指定其所属链路组 |
必选 |
|
指定链路出口方向(外网方向)的下一跳IP地址 |
必选 |
|
配置权值和调用优先级 |
必选 |
|
配置带宽和连接参数 |
可选 |
|
配置健康检测功能 |
可选 |
|
配置慢宕功能 |
可选 |
|
配置就近性计算成本 |
可选 |
|
配置链路的带宽繁忙比与最大繁忙保护带宽 |
可选 |
表3-15 创建链路并指定其所属链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建链路,并进入链路视图 |
loadbalance link link-name |
缺省情况下,不存在任何链路 |
(可选)配置链路的描述信息 |
description text |
缺省情况下,链路没有描述信息 |
指定链路所属的链路组 |
link-group link-group-name |
缺省情况下,链路不属于任何链路组 |
表3-16 指定链路出口方向(外网方向)的下一跳IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路出口方向(外网方向)的下一跳IP地址 |
router ip ipv4-address |
二者选其一 缺省情况下,未配置链路出口方向的下一跳IP地址 |
router ipv6 ipv6-address |
通过本配置可以调整链路的加权轮转和加权最小连接这两种调度算法所使用的权值,以及链路在链路组中的调用优先级。
表3-17 配置权值和调用优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路的权值 |
weight weight-value |
缺省情况下,链路的权值为100 |
配置链路的调用优先级 |
priority priority |
缺省情况下,链路的调用优先级为4 |
通过本配置可以调整链路所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表3-18 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
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-19 配置健康检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路的健康检测方法 |
probe template-name |
缺省情况下,没有指定链路的健康检测方法 |
配置链路健康检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法都通过检测才认为健康检测成功 |
通过shutdown命令可以立即中断链路的已有连接,而慢宕则不会立即中断链路的已有连接,而是让其自然老化,并且不再建立新的连接。慢宕功能需要与shutdown命令配合使用,即在开启了慢宕功能之后再关闭链路,该实服务器才会开始慢宕。
本命令仅对下一次shutdown命令生效。比如:开启慢宕功能并关闭链路之后,如果再关闭慢宕功能,则该链路将保持慢宕状态,而不会立即中断已有连接。
表3-20 配置慢宕功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
开启链路的慢宕功能 |
slow-shutdown enable |
缺省情况下,链路的慢宕功能处于关闭状态 |
关闭链路 |
shutdown |
缺省情况下,链路处于开启状态 |
通过本配置可以调整就近性计算的链路成本。
表3-21 配置就近性计算成本
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置就近性计算的链路成本 |
cost cost-value |
缺省情况下,就近性计算的链路成本为0 |
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大繁忙保护带宽。当访问某个链路的链路流量超过该链路的带宽繁忙比与最大繁忙保护带宽的乘积后,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发。
表3-22 配置链路的带宽繁忙比与最大繁忙保护带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
配置链路的带宽繁忙比 |
bandwidth [ inbound | outbound ] busy-rate rate-number |
缺省情况下,链路的总带宽繁忙比为70 |
配置链路最大繁忙保护带宽 |
max-bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路所允许的繁忙保护最大总带宽、最大上行带宽和最大下行带宽均为0千字节/秒,即不限制 |
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
链路负载均衡支持的虚服务器类型为LINK-IP。
表3-23 配置任务简介
配置任务 |
说明 |
详细配置 |
创建虚服务器 |
必选 |
|
配置VSIP和端口号 |
必选 |
|
指定虚服务器所属的VPN |
可选 |
|
指定缺省链路组 |
至少选其一 如果同时配置,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给缺省链路组处理 |
|
引用负载均衡策略 |
||
引用参数模板 |
可选 |
|
配置带宽和连接参数 |
可选 |
|
配置带宽繁忙保护功能 |
可选 |
|
开启链路的接口带宽统计功能 |
可选 |
|
配置热备份功能 |
可选 |
|
开启虚服务器 |
必选 |
表3-24 创建虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-IP类型的虚服务器,并进入虚服务器视图 |
virtual-server virtual-server-name type link-ip |
缺省情况下,不存在任何虚服务器 |
(可选)配置虚服务器的描述信息 |
description text |
缺省情况下,虚服务器没有描述信息 |
通过本配置可以指定虚服务器的IPv4或IPv6地址(即VSIP),以及虚服务器的端口号。
表3-25 配置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-26 指定虚服务器所属的VPN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器所属的VPN |
vpn-instance vpn-instance-name |
缺省情况下,虚服务器属于公网 |
当主用链路组可用(该链路组存在且有可用的链路)时,虚服务器通过主用链路组进行转发;当主用链路组不可用而备用链路组可用时,虚服务器通过备用链路组进行转发。
表3-27 指定缺省链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定缺省链路组 |
default link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ] |
缺省情况下,没有指定缺省链路组 |
虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
表3-28 引用负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的负载均衡策略 |
lb-policy policy-name |
缺省情况下,虚服务器没有引用任何负载均衡策略 虚服务器只能引用与自身类型相关的策略模板,如: LINK-IP类型的虚服务器,只能引用Link-generic类型的策略模板 |
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
表3-29 引用参数模板
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
指定虚服务器引用的参数模板 |
parameter ip profile-name |
缺省情况下,虚服务器没有引用任何参数模板 |
通过本配置可以调整虚服务器所允许的最大带宽、最大连接数和每秒最大连接数三个参数值。
表3-30 配置带宽和连接参数
操作 |
命令 |
说明 |
进入系统视图 |
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-31 配置带宽繁忙保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚链路的带宽繁忙保护功能 |
bandwidth busy-protection enable |
缺省情况下,链路的带宽繁忙保护功能处于关闭状态 |
链路的带宽缺省由负载均衡模块自行统计,通过本配置可以使链路的带宽由接口来统计。
表3-32 开启链路的接口带宽统计功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server vritual-server-name |
- |
开启链路的接口带宽统计功能 |
bandwidth interface statistics enable |
缺省情况下,未开启链路的接口带宽统计功能 |
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
表3-33 配置热备份功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器的会话扩展信息备份功能 |
connection-sync enable |
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态 |
开启虚服务器的持续性表项备份功能 |
sticky-sync enable |
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态 |
配置完虚服务器后,需要将其开启后才能进入工作状态。
表3-34 开启虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器视图 |
virtual-server virtual-server-name |
- |
开启虚服务器 |
service enable |
缺省情况下,虚服务器处于关闭状态 |
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
表3-35 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建负载均衡类 |
必选 |
||
创建匹配规则 |
创建嵌套类的匹配规则 |
至少选其一 |
|
创建源IP地址类型的匹配规则 |
|||
创建ACL类型的匹配规则 |
|||
创建ISP类型的匹配规则 |
表3-36 创建负载均衡类
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-generic负载均衡类,并进入负载均衡类视图 |
loadbalance class class-name [ type link-generic [ match-all | match-any ] ] |
缺省情况下,不存在任何负载均衡类 创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡类的描述信息 |
description text |
缺省情况下,负载均衡类没有描述信息 |
表3-37 创建嵌套类的匹配规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡类视图 |
loadbalance class class-name |
- |
创建嵌套类的匹配规则 |
match [ match-id ] class class-name |
缺省情况下,负载均衡类中不存在任何匹配规则 |
表3-38 创建源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-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 |
缺省情况下,负载均衡类中不存在任何匹配规则 |
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
表3-42 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建负载均衡动作 |
必选 |
||
配置转发类动作 |
配置报文的转发模式为转发 |
可选其一 这两条命令互斥,当配置了其中一条后,另一条的配置将被自动取消 |
|
指定指导转发的链路组 |
|||
配置查找可用链路失败时继续匹配下一条引用规则 |
可选 |
||
配置修改类动作 |
配置发往服务器的IP报文中的ToS字段 |
可选 |
表3-43 创建负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-generic类型的负载均衡动作,并进入负载均衡动作视图 |
loadbalance action action-name type link-generic |
缺省情况下,不存在任何负载均衡动作 创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡动作的描述信息 |
description text |
缺省情况下,负载均衡动作没有描述信息 |
表3-44 配置报文的转发模式为转发
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置报文的转发模式为转发 |
forward all |
缺省情况下,报文转发模式为丢弃 |
当主用链路组可用(该链路组存在且有可用的链路)时,使用主用链路组指导转发;当主用链路组不可用而备用链路组可用时,使用备用链路组指导转发。
表3-45 指定指导转发的链路组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
指定指导转发的链路组 |
link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ] |
缺省情况下,没有指定指导转发的链路组 |
当配置该命令的动作在策略中被引用时,在转发中根据该配置判断当前动作查找可用链路失败时,可继续顺序匹配策略中的下一条引用规则。
表3-46 配置查找链路失败时继续匹配下一条引用规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置查找链路失败时继续匹配下一条引用规则 |
fallback-action continue |
缺省情况下,根据当前动作查找可用链路失败时,不再继续匹配下一条引用规则 |
表3-47 配置发往服务器的IP报文中的ToS字段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡动作视图 |
loadbalance action action-name |
- |
配置发往服务器的IP报文中的ToS字段 |
set ip tos tos-number |
缺省情况下,不改变发往服务器的IP报文中的ToS字段 |
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
表3-48 配置任务简介
配置任务 |
说明 |
详细配置 |
创建负载均衡策略 |
必选 |
|
指定负载均衡动作 |
必选 |
|
指定缺省负载均衡动作 |
必选 |
表3-49 创建负载均衡策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Link-generic类型的负载均衡策略,并进入负载均衡策略视图 |
loadbalance policy policy-name type link-generic |
缺省情况下,不存在任何负载均衡策略 创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置负载均衡策略的描述信息 |
description text |
缺省情况下,负载均衡策略没有描述信息 |
Link-generic类型的负载均衡策略只能引用Link-generic类型的负载均衡类和动作。
表3-50 指定负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
为负载均衡类指定负载均衡动作 |
class class-name [ insert-before before-class-name ] action action-name |
缺省情况下,没有为任何负载均衡类指定负载均衡动作 不同的负载均衡类可以与同一负载均衡动作组成匹配规则 |
Link-generic类型的负载均衡策略只能用Link-generic类型的负载均衡动作作为其缺省动作。
表3-51 指定缺省负载均衡动作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入负载均衡策略视图 |
loadbalance policy policy-name |
- |
指定缺省负载均衡动作 |
default-class action action-name |
缺省情况下,未指定缺省负载均衡动作 |
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一链路处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了同一链路之后,后续包都会沿用这个选择结果。
表3-52 配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建持续性组 |
必选 |
||
配置持续性方法 |
配置IP持续性方法 |
必选 |
|
配置持续性表项超时时间 |
可选 |
||
开启匹配持续性表项的会话不受连接数限制影响功能 |
可选 |
||
表3-53 创建持续性组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建地址端口类型的持续性组,并进入持续性组视图 |
sticky-group group-name type address-port |
缺省情况下,不存在任何持续性组 创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置持续性组的描述信息 |
description text |
缺省情况下,持续性组没有描述信息 |
表3-54 配置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-55 配置持续性表项超时时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
配置持续性表项的超时时间 |
timeout timeout-value |
缺省情况下,对于HTTP Cookie类型的持续性组,持续性表项的超时时间为86400秒;对于其它类型的持续性组,持续性表项的超时时间为60秒 |
开启该功能后,如果该连接匹配了已有的持续性表项,将不受链路带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
表3-56 开启匹配持续性表项的会话不受连接数限制影响功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入持续性组视图 |
sticky-group group-name |
- |
开启匹配持续性表项的会话不受连接数限制影响功能 |
override-limit enable |
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响 |
表3-57 配置任务简介
配置任务 |
说明 |
详细配置 |
创建参数模板 |
必选 |
|
配置发往客户端的IP报文中的ToS字段 |
必选 |
通过配置参数模板可以制订对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。
表3-58 创建参数模板
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IP类型的参数模板,并进入参数模板视图 |
parameter-profile profile-name type ip |
缺省情况下,不存在任何参数模板 创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致 |
(可选)配置参数模板的描述信息 |
description text |
缺省情况下,参数模板没有描述信息 |
表3-59 配置发往客户端的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-60 配置任务简介
配置任务 |
说明 |
详细配置 |
手工配置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-62 导入ISP文件
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
导入ISP文件 |
loadbalance isp file isp-file-name |
- |
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
表3-63 配置负载均衡告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启负载均衡的告警功能 |
snmp-agent trap enable loadbalance |
缺省情况下,负载均衡的告警功能处于开启状态 |
负载均衡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 ] 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 ] protocol { protocol-number | icmpv6 | tcp | udp } destination destination-address destination-port destination-port source source-address source-port source-port [ slot slot-number ] |
本命令可在任意视图下执行 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后出方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除出方向链路负载均衡的统计信息。
表3-66 链路负载均衡显示和维护
配置 |
命令 |
显示负载均衡动作的信息 |
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状态 |
|
清除负载均衡热备份的统计信息 |
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 ] |
用户从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由器跳数、带宽和成本均相同,但Link 1的网络延迟小于Link 2。通过配置链路负载均衡,使Server B访问Server A时优先选择这两条链路中的最优链路。
图3-4 出方向链路负载均衡配置组网图
· 配置接口IP地址
<LB> system-view
[LB] interface gigabitethernet 1/0/1
[LB-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[LB-GigabitEthernet1/0/1] quit
[LB] interface gigabitethernet 1/0/2
[LB-GigabitEthernet1/0/2] ip address 20.1.1.1 24
[LB-GigabitEthernet1/0/2] quit
· 配置链路组
# 创建ICMP类型的NQA模板t1,并配置每次探测结果发送机制。
[LB] nqa template icmp t1
[LB-nqatplt-icmp-t1] reaction trigger per-probe
[LB-nqatplt-icmp-t1] quit
# 指定缺省就近性探测方法为t1,并配置就近性计算的网络延迟权值为200。
[LB] loadbalance proximity
[LB-lb-proximity] match default probe t1
[LB-lb-proximity] rtt weight 200
[LB-lb-proximity] quit
# 创建链路组lg,并开启就近性功能。
[LB] loadbalance link-group lg
[LB-lb-lgroup-lg] proximity enable
# 关闭NAT功能。
[LB-lb-lgroup-lg] transparent enable
[LB-lb-lgroup-lg] quit
· 配置链路
# 创建链路link1,配置其下一跳IPv4地址为10.1.1.2,并加入链路组lg。
[LB] loadbalance link link1
[LB-lb-link-link1] router ip 10.1.1.2
[LB-lb-link-link1] link-group lg
[LB-lb-link-link1] quit
# 创建链路link2,配置其下一跳IPv4地址为20.1.1.2,并加入链路组lg。
[LB] loadbalance link link2
[LB-lb-link-link2] router ip 20.1.1.2
[LB-lb-link-link2] link-group lg
[LB-lb-link-link2] quit
· 配置虚服务器
# 创建LINK-IP类型的虚服务器vs,配置其VSIP为通配0.0.0.0/0,指定其缺省主用链路组为lg,并开启此虚服务器。
[LB] virtual-server vs type link-ip
[LB-vs-link-ip-vs] virtual ip address 0.0.0.0 0
[LB-vs-link-ip-vs] default link-group lg
[LB-vs-link-ip-vs] service enable
[LB-vs-link-ip-vs] quit
# 显示所有链路的简要信息。
[LB] display loadbalance link brief
Link Route IP State Link group
link1 10.1.1.2 Active lg
link2 20.1.1.2 Active lg
# 显示所有链路组的详细信息。
[LB] display loadbalance link-group
Link group: lg
Description:
Predictor: Round robin
Proximity: Enabled
NAT: Disabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected link: Disabled
Probe information:
Probe success criteria: All
Probe method:
t1
Total link: 2
Active link: 2
Link list:
Name State VPN instance Router IP Weight Priority
link1 Active 10.1.1.2 100 4
link2 Active 20.1.1.2 100 4
# 显示所有虚服务器的详细信息。
[LB] display virtual-server
Virtual server: vs
Description:
Type: LINK-IP
State: Active
VPN instance:
Virtual IPv4 address: 0.0.0.0/0
Virtual IPv6 address: --
Port: 0
Primary link group: lg (in use)
Backup link group:
Sticky:
LB policy:
LB limit-policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
#显示所有IPv4就近性表项的简要信息。
[LB] display loadbalance proximity ip
IPv4 entries in total: 1
IPv4 address/Mask length Timeout Best link
------------------------------------------------------------
10.1.0.0/24 50 link1
入方向链路负载均衡功能可在多条链路上分担外网用户访问内网服务器的流量。
如图4-1所示,入方向链路负载均衡包含以下要素:
· Local DNS:本地DNS服务器。主要负责接收Client host发送的DNS请求,并转发给权威DNS服务器。
· Client host:访问内网服务器的外部互联网用户。
· LB device:入方向链路负载均衡设备。做为权威DNS服务器负责处理Local DNS转发的DNS请求,通过DNS智能处理机制为外部互联网用户访问内部服务器的流量选择最优链路。
· Link(链路):运营商提供的实体链路。
· Internal server:内网服务器,提供具体的网络服务。
入方向链路负载均衡的工作流程如图4-2所示。
入方向链路负载均衡工作流程简述如表4-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 |
· ISP:指互联网服务提供商。根据不同的地址段来配置不同的ISP信息。
· Region:指区域对象。可根据ISP信息来配置区域对象。
· Topology:指拓扑。将发出DNS请求的Local DNS源地址所在的区域对象与虚服务器所在IP网段关联,从而将DNS请求分发给对应的虚服务器。
· Link:指链路。负载均衡设备连接外部网络的每条物理链路对应一个Link。虚服务器通过Link(链路)对外部网络提供服务。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有DNS请求匹配上对应虚服务器才能进行负载均衡处理。
· 虚服务器池:在虚服务器池下将虚服务器与链路关链,链路和虚服务器的可用性共同决定虚服务器是否可参与调度。
· DNS映射:DNS映射的作用是把指定的域名与虚服务器IP地址关联在一起,当负载均衡设备收到DNS请求时可以根据域名获取到所关联的虚服务器IP地址。
· DNS监听器:用于监听负载均衡设备上收到的DNS请求。当DNS请求的目的地址匹配DNS监听地址时,会进行入方向链路负载均衡处理,在所有的DNS映射中查找对应的域名与地址的映射表项。其作用是在用户与服务器建立连接前,就能通过DNS监听器获取到域名所对应的虚服务器IP地址并以回复DNS请求的方式将此地址告之给用户。
配置任务 |
说明 |
详细配置 |
配置DNS监听器 |
必选 |
|
配置DNS映射 |
必选 |
|
配置虚服务器 |
必选 |
|
配置虚服务器池 |
必选 |
|
配置链路(Link) |
必选 |
|
配置Topology |
可选 |
|
配置Region |
可选 |
|
配置ISP信息 |
可选 |
|
入方向链路负载均衡显示和维护 |
可选 |
表4-2 配置任务简介
配置任务 |
说明 |
详细配置 |
创建DNS监听器 |
必选 |
|
指定DNS监听器的地址和端口 |
必选 |
|
开启DNS监听器功能 |
必选 |
|
指定DNS监听器查找DNS请求资源记录失败时的处理方式 |
可选 |
表4-3 创建DNS监听器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS监听器,并进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
缺省情况下,不存在任何DNS监听器 |
通过配置DNS监听器的IPv4地址和端口,指定设备对外提供DNS解析服务的IPv4地址和端口。
表4-4 指定DNS监听器的地址和端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
为DNS监听器指定地址和端口 |
ip address ipv4-address [ port port-number ] |
缺省情况下,没有为任何DNS监听器指定地址和端口 |
表4-5 开启DNS监听器功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
开启DNS监听器功能 |
service enable |
缺省情况下,DNS监听器功能处于关闭状态 |
表4-6 指定DNS监听器查找DNS请求资源记录失败时的处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS监听器视图 |
loadbalance dns-listener dns-listener-name |
- |
指定DNS监听器查找DNS请求资源记录失败时的处理方式 |
fallback { dns-proxy | no-response | reject } |
缺省情况下,DNS监听器查找DNS请求资源记录失败时的处理方式为回应DNS拒绝报文 |
表4-7 配置任务简介
配置任务 |
说明 |
详细配置 |
创建DNS映射 |
必选 |
|
添加DNS映射的DNS域名 |
必选 |
|
配置缓存DNS域名解析记录的缓存时间 |
可选 |
|
指定DNS映射使用的虚服务器池 |
必选 |
|
开启DNS映射 |
必选 |
表4-8 创建DNS映射
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DNS映射,并进入DNS映射视图 |
loadbalance dns-map dns-map-name |
缺省情况下,不存在任何DNS映射 |
同一个DNS映射视图下,可以添加多个DNS映射的DNS域名。
表4-9 添加DNS映射的DNS域名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
添加DNS映射的DNS域名 |
domain-name domain-name |
缺省情况下,DNS映射中不存在任何域名 |
配置的缓存DNS域名解析记录的缓存时间将会填充到DNS应答报文的域名解析记录中。例如,当负载均衡策略或虚服务器配置变化时,用户可以通过配置小一些的缓存时间,使DNS请求客户端尽快获得新的解析记录;而在网络稳定的环境下,用户可将缓存时间设置为更大的值,提高域名的解析稳定性及速度。
表4-10 配置缓存DNS域名解析记录的缓存时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
配置缓存DNS域名解析记录的缓存时间 |
ttl ttl-value |
缺省情况下,域名解析记录的缓存时间缺省值为3600秒 |
表4-11 指定DNS映射使用的虚服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
指定DNS映射使用的虚服务器池 |
virtual-server-pool pool-name |
缺省情况下,DNS映射未使用任何虚服务器池 |
表4-12 开启DNS映射
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DNS映射视图 |
loadbalance dns-map dns-map-name |
- |
开启DNS映射 |
service enable |
缺省情况下,DNS映射处于关闭状态 |
入方向链路负载均衡使用的虚服务器为服务器负载均衡的虚服务器。此节的配置任务及相关配置,具体配置请参见2.5 配置虚服务器。
需要注意的是:
· 如果同时配置入方向链路负载均衡功能和服务器负载均衡功能,请避免配置虚服务器的IP地址与DNS监听器地址为同一地址,以免影响入方向链路负载均衡功能的正常使用。关于DNS监听器IP地址的详细介绍,请参见4.3.3 指定DNS监听器的地址和端口。
· 配置入方向链路负载均衡使用的虚服务器的IP地址时,要求配置32位掩码且为非全0的单播地址。
为了便于对虚服务器进行统一管理,可将具有相同或相似功能的虚服务器抽象成一个池,称为虚服务器池。
表4-13 配置任务简介
配置任务 |
说明 |
详细配置 |
创建虚服务器池 |
必选 |
|
添加虚服务器 |
必选 |
|
配置虚服务器池的调度算法 |
可选 |
|
开启虚服务器池的繁忙保护功能 |
可选 |
表4-14 创建虚服务器池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚服务器池,并进入虚服务器池视图 |
loadbalance virtual-server-pool name |
缺省情况下,不存在任何虚服务器池 |
表4-15 添加虚服务器
操作 |
命令 |
说明 |
进入系统视图 |
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请求分发给虚服务器。
配置虚服务器池的调度算法时,可以分别指定首选调度算法、备选调度算法和次选调度算法。其中,首选调度算法优先级最高,当采用首选算法不能选出可用的虚服务器时,采用备选调度算法,次选调度算法优先级最低。
表4-16 配置虚服务器池的调度算法
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器池视图 |
loadbalance virtual-server-pool name |
- |
配置虚服务器池的调度算法 |
predictor { alternate | fallback | preferred } { least-connection | random | round-robin | topology } |
缺省情况下,虚服务器池的首选调度算法为加权轮转算法,不存在次选和备选调度算法 |
开启繁忙保护功能后,虚服务器池根据用户配置的调度方式选择虚服务器成员时,会查看所选取的虚服务器成员对应的链路是否超过配置的繁忙比例,如果超出则不选择该虚服务器成员。关于配置链路的带宽繁忙比例,具体请参见4.7.5 配置链路的带宽繁忙比与最大繁忙保护带宽。
表4-17 开启虚服务器池的繁忙保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚服务器池视图 |
loadbalance virtual-server-pool name |
- |
开启虚服务器池的繁忙保护功能 |
bandwidth busy-protection enable |
缺省情况下,虚服务器池繁忙保护功能处于关闭状态 |
由于虚服务器池中进行虚服务器调度时,链路可用性是决定虚服务器是否可参与调度的因素之一。可以根据实际需求,通过配置链路的健康检测,所允许的最大带宽及带宽繁忙比例等功能来影响链路的可用性。
表4-18 配置任务简介
配置任务 |
说明 |
详细配置 |
创建链路 |
必选 |
|
指定链路出口方向(外网方向)的下一跳IP地址 |
必选 |
|
配置链路的健康检测 |
可选 |
|
配置带宽繁忙比及繁忙阈值保护最大带宽 |
可选 |
表4-19 创建链路
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建链路,并进入链路视图 |
loadbalance link link-name |
缺省情况下,不存在任何链路 |
表4-20 指定链路出口方向(外网方向)的下一跳IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路出口方向(外网方向)的下一跳IP地址 |
router ip ipv4-address |
缺省情况下,未配置链路出口方向的下一跳IP地址 |
通过为链路配置健康检测方法,可以对链路的质量、链路的状态等进行检测,保证其可用。链路的健康检测方法通过引用NOA模板来配置。NQA模板的相关配置,请参见“网络管理和监控命令参考”中的“NQA配置”。
同一个链路视图下,可以配置多个链路健康检测方法。缺省情况下,只有全部方法通过检测才认为健康检测成功,可通过success-criteria命令配置链路健康检测的成功条件。
表4-21 配置链路的健康检测
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link link-name |
- |
指定链路的健康检测方法 |
probe template-name |
缺省情况下,未指定任何链路检测方法 |
配置链路检测的成功条件 |
success-criteria { all | at-least min-number } |
缺省情况下,只有全部方法通过检测才认为健康检测成功 |
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大繁忙保护带宽。当某条链路流量超过该链路的带宽繁忙比与最大繁忙保护带宽的乘积后,新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发。
表4-22 配置链路的带宽繁忙与最大繁忙保护带宽
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入链路视图 |
loadbalance link name |
- |
配置链路的带宽繁忙比例 |
bandwidth [ inbound | outbound ] busy-rate rate-number |
缺省情况下,链路的总带宽繁忙比例为70 |
配置链路的最大繁忙保护带宽 |
max-bandwidth [ inbound | outbound ] bandwidth-value |
缺省情况下,链路所允许的最大繁忙保护带宽、最大入带宽和最大出带宽均为0千字节/秒,即不限制 |
当虚服务器池中指定调度算法为静态就近性调度算法(topology)时,则需要配置Topology。关于虚服务器池的调度算法的具体配置,请参见4.6.4 配置虚服务器池的调度算法。
若DNS请求匹配多个Topology记录时,优先选择权重值高的记录。
表4-23 配置Topology
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置Topology |
topology region region-name ip ip-address [ mask-length | mask ] [ weight weight-value ] |
缺省情况下,区域特征与IP网段的对应关系不存在 |
区域对象中包含根据不同ISP信息(运营商类别)划分的地址段。
表4-24 配置Region
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Region,并进入Region视图 |
loadbalance region region-name |
缺省情况下,不存在任何Region |
添加ISP信息 |
isp isp-name |
缺省情况下,Region下不存在任何ISP信息 |
入方向链路负载均衡使用的ISP信息为出方向链路负载均衡下的ISP信息。此节的配置任务及相关配置,请参见3.11 配置ISP信息。
在完成上述配置后,在任意视图下执行display命令可以显示配置后入方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除链路负载均衡的统计信息。
表4-25 入方向链路负载均衡显示和维护
配置 |
命令 |
显示负载均衡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 ] |
显示ISP的信息 |
display loadbalance isp [ ip ipv4-address | ipv6 ipv6-address | name isp-name ] |
清除DNS监听器的统计信息 |
reset loadbalance dns-listener statistics [ dns-listener-name ] |
清除DNS映射的统计信息 |
reset loadbalance dns-map statistics [ dns-map-name ] |
用户从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由器跳数、带宽和成本均相同。通过配置链路负载均衡,使Client host访问Server时,如果遇到其中一条链路故障的情况,可以优先选择这两条链路中的可用链路。
图4-5 入方向链路负载均衡配置组网图
· 配置接口IP地址
<LB> system-view
[LB] interface gigabitethernet 1/0/1
[LB-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[LB-GigabitEthernet1/0/1] quit
[LB] interface gigabitethernet 1/0/2
[LB-GigabitEthernet1/0/2] ip address 20.1.1.1 24
[LB-GigabitEthernet1/0/2] quit
· 配置Link
# 创建ICMP类型的NQA模板t1。
[LB] nqa template icmp t1
[LB-nqatplt-icmp-t1] quit
# 创建名为link1的Link,指定链路出方向的下一跳IP地址为10.1.1.2。
[LB] loadbalance link link1
[LB-lb-link-link1] router ip 10.1.1.2
[LB-lb-link-link1] probe t1
[LB-lb-link-link1] quit
# 创建名为link2的Link,指定链路出方向的下一跳IP地址为20.1.1.2。
[LB] loadbalance link link2
[LB-lb-link-link2] router ip 20.1.1.2
[LB-lb-link-link2] probe t1
[LB-lb-link-link2] quit
· 配置实服务组
# 创建实服务组sf。
[LB] server-farm sf
[LB-sfarm-sf] quit
· 配置虚服务器
# 创建HTTP类型的虚服务器vs1,配置其VSIP为10.1.1.3,端口为80,指定其缺省主用实服务组为sf,并开启此虚服务器。
[LB] virtual-server vs1 type http
[LB-vs-http-vs1] virtual ip address 10.1.1.3
[LB-vs-http-vs1] port 80
[LB-vs-http-vs1] default server-farm sf
[LB-vs-http-vs1] service enable
[LB-vs-http-vs1] quit
# 创建HTTP类型的虚服务器vs2,配置其VSIP为20.1.1.3,端口为80,指定其缺省主用实服务组为sf,并开启此虚服务器。
[LB] virtual-server vs2 type http
[LB-vs-http-vs2] virtual ip address 20.1.1.3
[LB-vs-http-vs2] port 80
[LB-vs-http-vs2] default server-farm sf
[LB-vs-http-vs2] service enable
[LB-vs-http-vs2] quit
· 配置实服务器
# 创建实服务器rs,配置其IPv4地址为192.168.1.10,并加入实服务组sf。
[LB] real-server rs
[LB-rserver-rs] ip address 192.168.1.10
[LB-rserver-rs] server-farm sf
[LB-rserver-rs] quit
· 配置虚服务器池
# 创建虚服务器池vsp,并添加虚服务器vs1、vs2,虚服务器分别关联链路link1、link2。
[LB] loadbalance virtual-server-pool vsp
[LB-lb-vspool-vsp] virtual-server vs1 link link1
[LB-lb-vspool-vsp] virtual-server vs2 link link2
· 配置DNS监听器
# 创建DNS监听器dl1,配置其IPv4地址为10.1.1.1,并开启DNS监听服务。
[LB] loadbalance dns-listener dl1
[LB-lb-dl-dl1] ip address 10.1.1.1
[LB-lb-dl-dl1] service enable
[LB-lb-dl-dl1] quit
# 创建DNS监听器dl2,配置其IPv4地址为20.1.1.1,并开启DNS监听服务。
[LB] loadbalance dns-listener dl2
[LB-lb-dl-dl2] ip address 20.1.1.1
[LB-lb-dl-dl2] service enable
[LB-lb-dl-dl2] quit
· 配置DNS映射
# 创建DNS映射dm,配置其域名为www.aaa.com,指定虚服务器池vsp,并开启其服务。
[LB] loadbalance dns-map dm
[LB-lb-dm-dm] domain-name www.aaa.com
[LB-lb-dm-dm] service enable
[LB-lb-dm-dm] virtual-server-pool vsp
[LB-lb-dm-dm] quit
# 显示所有DNS监听器的信息。
[LB] display loadbalance dns-listener
DNS listener name:dl
Service state:Enabled
IPv4 address: 10.1.1.1
Port: 53
Fallback: Reject
# 显示所有DNS映射的信息。
[LB] display loadbalance dns-map
DNS mapping name: dm
Service state: Enabled
TTL: 3600
Domain name list: www.aaa.com
Virtual server pool: vsp
# 显示所有虚服务器池的简要信息。
[LB] display loadbalance virtual-server-pool brief
Predictor: RR - Round robin, RD - Random, LC - Least connection,
TOP - Topology, PRO - Proximity
VSpool Pre Alt Fbk BWP Total Active
vsp RR LC Enabled 0 0
# 显示所有虚服务器池的详细信息。
[LB] display loadbalance virtual-server-pool
Virtual-server pool: local_pool
Predictor:
Preferred round-robin
Alternate --
Fallback --
Bandwidth busy-protection:Disabled
Total virtual servers: 2
Active virtual servers: 2
Virtual server list:
Name State Address Port Weight Link
vs1 Active 10.1.1.3 80 100 link1
vs2 Active 20.1.1.3 80 100 link2
# 显示所有实服务器的简要信息。
[LB] display real-server brief
Real server Address Port State Server farm
rs 192.168.1.10 0 Active sf
# 显示所有链路的简要信息。
[LB] display loadbalance link brief
link Router IP State
link1 10.1.1.2 Active
link2 20.1.1.2 Probe-failed
# 显示所有实服务组的详细信息。
[LB] display server-farm
Server farm: sf
Description:
Predictor: Round robin
Proximity: Enabled
NAT: Enabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected server: Disabled
Total real server: 1
Active real server: 1
Real server list:
Name State Address Port Weight Priority
rs Active 192.168.1.10 0 100 4
# 显示所有虚服务器的简要信息。
[LB] display virtual-server brief
Virtual server State Type VPN instance Virtual address Port
vs1 Active HTTP 10.1.1.3/24 80
vs2 Active HTTP 20.1.1.3/24 80
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!