01-负载均衡配置
本章节下载: 01-负载均衡配置 (1.80 MB)
2.9.13 配置基于SIP信令报文Call ID的持续性方法
2.9.16 开启匹配持续性表项的会话不受连接数限制影响功能
2.10.6 配置TCP连接TIME-WAIT状态的超时时间
2.10.9 配置TCP连接FIN-WAIT-1状态的超时时间
2.10.10 配置TCP连接FIN-WAIT-2状态的超时时间
2.10.11 配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式
2.10.12 配置负载均衡设备与对端建立TCP连接时的MSS值
2.10.19 配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作
2.10.22 配置Secondary Cookie相关参数
2.10.23 配置当HTTP请求或应答报文首部超出最大长度时的处理方式
2.11.4 配置TCP zero-window类型负载均衡探测模板
2.11.5 配置HTTP passive类型负载均衡探测模板
5.4.6 指定DNS监听器查找DNS请求资源记录失败时的处理方式
LB(Load Balance,负载均衡)是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。
负载均衡技术具有以下优势:
· 高性能:通过将业务较均衡地分配到多台设备或多条链路上,提高了系统的整体性能。
· 可扩展性:可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。
· 高可靠性:单个甚至多个设备或链路发生故障也不会导致业务中断,提高了系统的整体可靠性。
· 可管理性:大量的管理工作都集中在应用了负载均衡技术的设备上,集群中的设备或链路只需要进行普通的配置和维护。
· 透明性:对用户而言,集群等同于一个可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构。增减集群中的设备或链路不会影响正常业务。
负载均衡技术可分为以下几种类型:
· 服务器负载均衡:在数据中心等组网中,通过此技术可将网络服务分担给多台服务器或防火墙进行处理,从而提高服务器或防火墙的处理能力。
· 链路负载均衡:当存在多条运营商链路时,通过此技术可实现链路的动态选择,从而充分利用多条链路。链路负载均衡支持IPv4与IPv6,但不支持IPv4报文与IPv6报文的互相转换。根据数据的连接请求方向不同,链路负载均衡又分为以下三种:
¡ 出方向链路负载均衡:当内网用户访问外部互联网存在多条链路时,可在多条链路上分担内网用户访问外部互联网的流量。
¡ DNS透明代理:当内网用户访问外网DNS服务器存在多条链路时,可在多条链路上分担内网用户访问外部DNS服务器的流量。
¡ 入方向链路负载均衡:当外网用户访问内网服务器存在多条链路时,可在多条链路上分担外网用户访问内网服务器的流量。
根据识别信息的层级不同,服务器负载均衡可分为以下两种:
· 四层服务器负载均衡:可识别网络层和传输层信息,是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。由于四层服务器负载均衡对七层业务无法按内容分发,从而限制了其适用范围。
· 七层服务器负载均衡:除了可识别网络层和传输层信息之外,还可识别应用层信息,是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的服务器负载均衡。
服务器负载均衡在网络中的部署模式有两种:
· NAT(Network Address Translation,网络地址转换)模式:通过转换报文的源/目的IP地址实现服务器负载均衡功能。
· 旁路模式:在此模式下,通过二层透传实现服务器负载均衡功能,不需要进行IP地址转换。
如图2-1所示,NAT模式服务器负载均衡包含以下要素:
· LB device(负载均衡设备):负责将各种服务请求分发到多台服务器。
· Server(服务器):负责响应和处理各种服务请求。
· VSIP(Virtual Service IP,虚服务IP):对外提供服务的IP地址,供用户请求服务时使用。
· Server IP(服务器IP):供负载均衡设备分发服务请求时使用。
图2-1 NAT模式组网图
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所示,旁路模式服务器负载均衡包含以下要素:
· 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 |
服务器负载均衡各配置项之间的配置关系如图2-6所示。
· 实服务组:将具有相同或相似功能的实服务器抽象成一个实服务组。实服务组可被虚服务器或负载均衡动作引用。
· 实服务器:负载均衡设备上处理用户业务的实体。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· 负载均衡动作:制订丢弃、转发或修改报文的具体行为。
· 负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。
· 持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理。持续性组可被虚服务器或负载均衡动作引用。
· 参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。
服务器负载均衡配置任务如下:
(1) 配置实服务组
(2) 配置实服务器
(3) 配置虚服务器
(4) (可选)配置负载均衡策略
a. 配置负载均衡类
b. 配置负载均衡动作
c. 配置负载均衡策略
(5) (可选)配置持续性组
(6) (可选)配置模板及策略
¡ 配置参数模板
(7) (可选)配置负载均衡连接数限制策略
(8) (可选)配置SNAT全局策略
(9) (可选)配置负载均衡ALG功能
(10) (可选)加载用户自定义文件
¡ 加载外链改写文件
(11) (可选)测试负载均衡效果
(12) (可选)配置负载均衡告警及日志功能
为了便于对实服务器进行统一管理,可将具有相同或相似功能的实服务器抽象成一个组,称为实服务组。比如,可按存储内容的不同划分为歌曲服务器组、视频服务器组和图片服务器组等。
四层和七层服务器负载均衡的实服务组配置完全相同。
实服务器配置任务如下:
(1) 创建实服务组
(2) (可选)添加并配置实服务组成员
(3) 配置实服务组的调度算法
(4) 配置NAT功能
请至少选择其中一项进行配置:
(5) 配置可用条件
(6) (可选)配置温暖上线功能
(7) (可选)配置健康检测功能
(8) (可选)配置智能监控功能
(9) (可选)配置繁忙处理方式
(10) (可选)配置故障处理方式
(1) 进入系统视图。
system-view
(2) 创建实服务组,并进入实服务组视图。
server-farm server-farm-name
(3) (可选)配置实服务组的描述信息。
description text
缺省情况下,未配置实服务组的描述信息。
设备支持通过两种方式向实服务组中添加成员:
· 在实服务组视图下,通过本配置创建实服务组成员或添加已存在的实服务器。
· 在实服务器视图下,指定其所属的实服务组。具体配置请参见“2.4.2 创建实服务器并指定其所属实服务组”。
本配置用来指定实服务器在实服务组内的权值、调用优先级、连接参数、健康检测功能以及慢宕功能。基于实服务组成员的调度算法会依据这些配置,选出当前实服务组中最优的实服务器。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 创建并添加实服务组成员,并进入实服务组成员视图。
real-server real-server-name port port-number
若指定名称的实服务器已存在,则本命令只是在实服务组视图下添加已存在的实服务器。
(4) (可选)配置实服务组成员的描述信息。
description text
缺省情况下,未配置实服务组成员的描述信息。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 进入实服务组成员视图。
real-server real-server-name port port-number
(4) 配置实服务组成员的权值。
weight weight-value
缺省情况下,实服务组成员的权值为100。
(5) 配置实服务组成员的调用优先级
priority priority
缺省情况下,实服务组成员的调度优先级为4。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 进入实服务组成员视图。
real-server real-server-name port port-number
(4) 配置实服务组成员所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,实服务器所允许的最大连接速率为0,即不受限制。
(5) 配置实服务组成员所允许的最大连接数。
connection-limit max max-number
缺省情况下,实服务组成员所允许的最大连接数为0,即不受限制。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 进入实服务组成员视图。
real-server real-server-name port port-number
(4) 指定实服务组成员的健康检测方法。
probe template-name [ nqa-template-port ]
缺省情况下,未指定实服务组成员的健康检测方法。
设备支持通过引用NQA模板进行健康探测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(5) 配置实服务组成员健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 进入实服务组成员视图。
real-server real-server-name port port-number
(4) 开启实服务组成员的慢宕功能。
slow-shutdown enable
缺省情况下,实服务组成员的慢宕功能处于关闭状态。
(5) 关闭实服务组成员。
shutdown
缺省情况下,实服务组成员处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 进入实服务组成员视图。
real-server real-server-name port port-number
(4) 配置实服务组成员关联的变量。
variable variable-name value value
缺省情况下,未配置实服务组成员关联的变量。
重写TCP载荷的负载均衡动作通过调用实服务组成员关联的变量将TCP报文载荷的指定内容替换为实服务组成员关联的变量值。
设备根据实服务组中配置的调度算法,计算出处理用户请求的实服务器。设备支持以下实服务组的调度算法:
· 源IP哈希算法:根据源IP地址哈希算法将请求分发给实服务器。
· 源IP及端口哈希算法:根据源IP地址和端口号哈希算法将请求分发给实服务器。
· 目的IP哈希算法:根据目的IP地址哈希算法将请求分发给实服务器。
· HTTP哈希算法:根据HTTP载荷将请求分发给实服务器。
· CARP哈希算法:CARP(Cache Array Routing Protocol,缓存阵列路由协议)哈希算法是在哈希算法的基础上进行了改进。当可用的实服务器数量发生变化时,采用CARP哈希算法,可使当前所有可用实服务器负载分担变动最小。设备支持配置基于源IP地址、源IP地址及端口、目的IP地址和HTTP载荷进行的CARP哈希算法。
· 动态反馈算法:根据实服务器的内存使用率、CPU使用率和磁盘使用率等信息计算出当前的负载能力权值。负载越小,权值越大,分配到的新连接越多。该算法只有在引用了SNMP-DCA类型的NQA探测模板的情况下才会生效。若未引用SNMP-DCA类型的NQA探测模板,则使用非加权的轮转算法进行调度。有关NQA模板的配置请参见“网络管理与监控配置指导”中的“NQA”。
· 加权最小连接算法(基于实服务器):总是将请求分发给加权活动连接数(当前实服务器在所有实服务组中的活动连接总数/权值)最小的实服务器。该算法中使用的权值为实服务器视图下配置的权值。
· 加权最小连接算法(基于实服务器组成员):总是将请求分发给加权活动连接数(实服务组成员在指定实服务组中的活动连接数/权值)最小的实服务组成员。该算法中使用的权值为实服务器组成员视图下配置的权值。
· 随机算法:将请求随机分发给某个实服务器。
· 最快响应算法(基于实服务器):根据实服务器的响应时间计算出当前负载能力的权值。响应时间越短,权值越大,分配到的新连接越多。
· 最快响应算法(基于实服务组成员):根据实服务组成员的响应时间计算出当前负载能力的权值。响应时间越短,权值越大,分配到的新连接越多。
· 加权轮转算法:根据实服务器权值的大小将请求依次分发给每个实服务器,权值越大,分配的请求越多。
· 带宽算法:根据实服务器的权值与剩余带宽的比例把请求分发给每个实服务器。
· 最大带宽算法:总是将请求分发给处于空闲状态且剩余带宽最大的实服务器。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 配置实服务组的调度算法。
¡ 基于实服务器:
predictor { dync-round-robin | least-connection | least-time | { bandwidth | max-bandwidth } [ inbound | outbound ] }
¡ 基于实服务组成员:
predictor hash [ carp ] address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ]
predictor hash [ carp ] http [ offset offset ] [ start start-string ] [ [ end end-string ] | [ length length ] ]
predictor { least-connection member | random | round-robin }
缺省情况下,实服务组的调度算法为加权轮转算法。
(4) 配置实服务组中可被调度算法调用的实服务器数量限制。
selected-server min min-number max max-number
缺省情况下,实服务组中调用优先级最高的实服务器全部被调度算法调用。
在旁路模式下,需要在实服务组中关闭NAT功能。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 在实服务组中关闭NAT功能。
transparent enable
缺省情况下,实服务组中的NAT功能处于开启状态。
实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理。
NAT模式又分为DNAT、SNAT和DNAT+SNAT这三种实现方式,对于DNAT方式,只需在实服务组中开启NAT功能即可;而对于SNAT和DNAT+SNAT这两种方式,还需配置SNAT地址转换方式。实服务组配置相应的SNAT转换方式之后,负载均衡设备将把收到报文的源IP地址按照对应的方式转换后再转发出去。设备在实服务组视图下支持配置三种源地址转换方式:
· 自动映射:采用设备与实服务器通信的接口IP地址进行源地址转换。
· TCP Option:根据收到报文的TCP Option字段携带的地址进行源地址转换。此方式还需要在TCP类型的参数模板中,配置进行SNAT地址转换的TCP选项。具体配置请参见“2.10.15 配置进行SNAT地址转换的TCP选项”。
· SNAT地址池:根据配置的SNAT地址池进行源地址转换。
一个SNAT地址池由多个地址成员组成,每个地址成员最多包含256个IPv4地址或65536个IPv6地址,且不同SNAT地址成员中的IPv4或IPv6地址不允许重叠,同一SNAT地址池的不同地址成员中,也不允许包含相同的IPv4或IPv6地址。
对于TCP Option类型的SNAT转换方式,需要在业务处理之前将所用到的源地址插入到指定的TCP Option中。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 在实服务组中开启NAT功能。
undo transparent enable
缺省情况下,实服务组中的NAT功能处于开启状态。
实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理。
(4) (可选)指定发送免费ARP报文或者ND报文的接口。
arp-nd interface interface-type interface-number
缺省情况下,未指定发送免费ARP报文或者ND报文的接口。
(1) 进入系统视图。
system-view
(2) (可选)创建SNAT地址池。
a. 创建SNAT地址池,并进入SNAT地址池视图。
loadbalance snat-pool pool-name
b. (可选)配置SNAT地址池的描述信息。
description text
缺省情况下,未配置SNAT地址池的描述信息。
c. 添加SNAT地址池的IP地址成员。
(IPv4网络)
ip range start start-ipv4-address end end-ipv4-address
(IPv6网络)
ipv6 range start start-ipv6-address end end-ipv6-address
缺省情况下,未配置SNAT地址池的IP地址成员。
配置SNAT地址转换方式为SNAT地址池方式时,必须配置本步骤。
(3) 退回系统视图。
quit
(4) 进入实服务组视图。
server-farm server-farm-name
(5) 在实服务组中开启NAT功能。
undo transparent enable
缺省情况下,实服务组中的NAT功能处于开启状态。
实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理。
(6) 配置SNAT地址转换方式。请选择其中一项进行配置。
¡ 配置自动映射方式的SNAT地址转换。
snat-mode auto-map
¡ 配置TCP Option方式的SNAT地址转换。
snat-mode tcp-option
¡ 配置SNAT地址池方式的SNAT地址转换。
snat-pool pool-name
缺省情况下,未配置SNAT地址转换方式。
(7) (可选)指定发送免费ARP报文或者ND报文的接口。
arp-nd interface interface-type interface-number
缺省情况下,未指定发送免费ARP报文或者ND报文的接口。
通过配置实服务组的可用条件,可将流量在主用实服务组和备用实服务组之间进行切换:当主用实服务组中的实服务器可用率低于下限时,将流量切换到备用实服务组上,以防止服务器受到大流量的冲击;待主用实服务组中的实服务器可用率恢复到上限时,再将流量切换回来。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 配置实服务组的可用条件。
activate lower lower-percentage upper upper-percentage
缺省情况下,实服务组中只要有一个实服务器可用,该实服务组就被认为可用。
当向实服务组中添加实服务器时,某些新增的实服务器无法立即承担大量业务,此时可以开启温暖上线功能。这样,当实服务器上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 在实服务组中开启实服务器的温暖上线功能。
slow-online [ standby-time standby-time ramp-up-time ramp-up-time ]
缺省情况下,实服务组中实服务器的温暖上线功能处于关闭状态。
通过健康检测可以对实服务器进行检测,保证其能够提供有效的服务。
用户既可在实服务组视图下对组内的所有实服务器进行配置,也可在实服务器视图下只对当前实服务器进行配置,后者的配置优先级较高。
设备支持通过引用NQA模板进行健康探测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 指定实服务组的健康检测方法。
probe template-name [ nqa-template-port ]
缺省情况下,未指定实服务组的健康检测方法。
(4) 配置实服务组健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
智能监控功能通过统计实服务器发出的RST报文的数量、零窗口报文的数量与HTTP响应报文中的异常URL次数来判断实服务组成员的健康状态,并执行相应的保护动作。通过在实服务组视图下引用TCP RST、TCP zero-window或HTTP passive类型的负载均衡探测模板,可以开启实服务组的智能监控功能。
如果智能监控功能将实服务器的状态置为Auto shutdown,则可以通过配置实服务器的智能监控自动恢复时间使得实服务器自动恢复为正常状态,也可以通过配置手动将实服务器或实服务组成员的状态恢复为正常状态。
因为RST报文或零窗口报文达到阈值导致实服务器关闭或导致实服务器处于繁忙状态时,若删除实服务组引用的负载均衡探测模板,则实服务器的状态会立即恢复为正常。
异常URL次数达到阈值时,HTTP passive类型的负载均衡探测模板会将实服务器的状态置为Auto shutdown,若删除实服务组引用的负载均衡探测模板,则实服务器的状态会立即恢复为正常。
在配置智能监控功能前,请先完成负载均衡探测模板的相关配置,具体配置请参见“2.11 配置负载均衡探测模板”。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 指定实服务组引用的负载均衡探测模板。
probe-template { http-passive | tcp-rst | tcp-zero-window } template-name
缺省情况下,未指定实服务组引用的负载均衡探测模板。
(4) (可选)配置实服务器的智能监控自动恢复时间。
auto-shutdown recovery-time recovery-time
缺省情况下,实服务组的智能监控自动恢复时间为0。0表示不自动恢复。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 手动恢复处于Auto shutdown状态的实服务器。
recover-from-auto-shutdown
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 进入实服务组成员视图。
real-server real-server-name port port-number
(4) 手动恢复处于Auto shutdown状态的实服务器。
recover-from-auto-shutdown
只有当组内所有实服务器均处于繁忙状态时,实服务组才处于繁忙状态。通过本配置可以指定实服务组处于繁忙状态的处理方式。设备支持以下三种繁忙处理方式:
· 调度失败:设备停止向处于繁忙状态实服务组分发流量,若配置负载均衡策略允许继续匹配下一条规则,则继续匹配下一条匹配规则,否则直接丢弃请求报文。
· 排队等待:设备停止向处于繁忙状态实服务组分发流量,并且将新的请求报文加入等待队列。若等待队列的长度超过配置的队列长度,后续的请求报文将会被丢弃;若请求报文加入队列后的等待时间超过配置的老化时间,请求报文将会被丢弃。
· 强制调度:实服务组内的所有实服务器均参与调度。
系统判断实服务器是否处于繁忙状态的依据包括:实服务器所允许的最大连接数、实服务器所允许的最大连接速率、实服务器所允许的最大HTTP请求速率、实服务器所允许的最大带宽(总带宽、入带宽和出带宽)和SNMP-DCA探测模板返回的探测状态。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 配置实服务组的繁忙处理方式。
busy-action { drop | enqueue length length timeout timeout-value | force }
缺省情况下,实服务组的繁忙处理方式为调度失败。
通过本配置可以选择实服务组的故障处理方式:
· 保持已有连接:不主动断开与故障实服务器的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到实服务组中其它可用的实服务器上。
· 断开已有连接:主动断开与故障实服务器的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
(1) 进入系统视图。
system-view
(2) 进入实服务组视图。
server-farm server-farm-name
(3) 配置实服务组的故障处理方式。
fail-action { keep | reschedule | reset }
缺省情况下,实服务组的故障处理方式为保持已有连接。
(4) (可选)配置查找所有可用实服务组成员失败时,将流量转发给最近一次选中的实服务组成员。
all-service-down action forward
缺省情况下,查找所有可用实服务组成员失败时丢弃报文。
仅当实服务组被工作在七层的TCP类型虚服务器引用时,配置才能生效。
实服务器是负载均衡设备上处理用户业务的实体。一个实服务器可以属于多个实服务组,一个实服务组也可以包含多个实服务器。
四层和七层服务器负载均衡的实服务器配置完全相同。
实服务器配置任务如下:
(1) 创建实服务器并指定其所属实服务组
(2) 配置IP地址和端口号
(3) 配置权值和调用优先级
(4) (可选)配置带宽和连接参数
(5) (可选)配置健康检测功能
(6) (可选)慢宕实服务器
(7) (可选)配置实服务器的带宽繁忙比与最大期望带宽
(8) (可选)配置实服务器所属VPN实例
¡ (可选)指定实服务器所属的VPN实例
¡ (可选)关闭实服务器所属VPN实例的继承功能
(1) 进入系统视图。
system-view
(2) 创建实服务器,并进入实服务器视图。
real-server real-server-name
(3) (可选)配置实服务器的描述信息。
description text
缺省情况下,未配置实服务器的描述信息。
(4) 指定实服务器所属的实服务组。
server-farm server-farm-name
缺省情况下,实服务器不属于任何实服务组。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 配置实服务器的IP地址。
(IPv4网络)
ip address ipv4-address
(IPv6网络)
ipv6 address ipv6-address
缺省情况下,未配置实服务器的IP地址。
(4) 配置实服务器的端口号。
port port-number
缺省情况下,实服务器的端口号为0(表示继续使用原报文携带的端口号)。
通过本配置可以调整实服务器的加权轮转和加权最小连接这两种调度算法所使用的权值,以及实服务器在实服务组中的调用优先级。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 配置实服务器的权值。
weight weight-value
缺省情况下,实服务器的权值为100。
(4) 配置实服务器的调用优先级。
priority priority
缺省情况下,实服务器的调用优先级为4。
通过本配置可以调整实服务器所允许的最大带宽、最大连接数、最大连接速率和最大HTTP请求速率。这四个参数值都是判断实服务器是否繁忙的依据。若访问实服务器的带宽、连接数、每秒连接数或每秒HTTP请求数超过配置的数值,则实服务器进入繁忙状态。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 配置实服务器所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value
缺省情况下,实服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置实服务器所允许的最大连接数。
connection-limit max max-number
缺省情况下,实服务器所允许的最大连接数为0,即不受限制。
(5) 配置实服务器所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,实服务器所允许的最大连接速率为0,即不受限制。
(6) 实服务器所允许的最大HTTP请求速率。
rate-limit http-request request-number
缺省情况下,实服务器所允许的最大HTTP请求速率为0,即不受限制。
通过健康检测可以对实服务器进行检测,保证其能够提供有效的服务。
用户既可在实服务组视图下对组内的所有实服务器进行配置,也可在实服务器视图下只对当前实服务器进行配置,后者的配置优先级较高。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 指定实服务器的健康检测方法。
probe template-name [ nqa-template-port ]
缺省情况下,未指定实服务器的健康检测方法。
(4) 配置实服务器健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过shutdown命令可以立即中断实服务器的已有连接,而慢宕则不会立即中断实服务器的已有连接,而是让其自然老化,并且不再建立新的连接。
慢宕功能需要与shutdown命令配合使用,即在开启了慢宕功能之后再关闭实服务器,该实服务器才会开始慢宕。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 开启实服务器的慢宕功能。
slow-shutdown enable
缺省情况下,实服务器的慢宕功能处于关闭状态。
(4) 关闭实服务器。
shutdown
缺省情况下,实服务器处于开启状态。
通过本配置可以调整实服务器的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当访问某个实服务器的流量超过该实服务器的带宽繁忙比与最大期望带宽的乘积后,实服务器进入繁忙状态,设备将停止向该实服务器分发新建流量,但已有流量仍由该实服务器处理;当该流量低于该实服务器的带宽繁忙恢复比与最大期望带宽的乘积后,实服务器解除繁忙状态,重新参与调度。
实服务器的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 配置实服务器的带宽繁忙比。
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,实服务器的总带宽繁忙比为70。
(4) 配置实服务器的最大期望带宽。
max-bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,实服务器所允许的最大总期望带宽、最大上行期望带宽和最大出带宽均为0,即不限制。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 指定实服务器所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,当实服务器所属VPN实例的继承功能处于开启状态时,实服务器所属的VPN实例与虚服务器所属的VPN实例一致;当实服务器所属VPN实例的继承功能处于关闭状态时,实服务器服务于公网。
实服务器所属VPN实例的继承功能是指实服务器所属的VPN实例继承对应虚服务器所属的VPN实例。若在实服务器视图下执行vpn-instance命令指定了实服务器所属的VPN实例,则实服务器属于该VPN实例。若未指定实服务器所属的VPN实例,当实服务器所属VPN实例的继承功能处于开启状态时,实服务器所属的VPN实例与虚服务器所属的VPN实例一致;当该功能处于关闭状态时,实服务器服务于公网。
(1) 进入系统视图。
system-view
(2) 进入实服务器视图。
real-server real-server-name
(3) 关闭实服务器所属VPN实例的继承功能。
inherit vpn-instance disable
缺省情况下,实服务器所属VPN实例的继承功能处于开启状态。
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
如果同时指定实服务组和引用负载均衡策略,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给实服务组处理。
虚服务器(四层)配置任务如下:
(1) 配置虚服务器基本功能
a. 创建虚服务器
b. 配置VSIP和端口号
c. 指定虚服务器所属的VPN
(2) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 指定实服务组
¡ 引用负载均衡策略
(3) (可选)配置带宽和连接参数
(4) (可选)配置UDP强制负载均衡功能
(5) (可选)引用参数模板和策略
¡ (可选)引用参数模板
¡ (可选)引用负载均衡连接数限制策略
(6) (可选)提高网络可靠性
¡ (可选)配置虚服务器绑定的VRRP备份组
¡ (可选)配置热备份功能
¡ (可选)开启虚服务器IP地址发布功能
(7) (可选)指定发送免费ARP报文或ND报文的接口
(8) 开启虚服务器
虚服务器(七层)配置任务如下:
(1) 配置虚服务器基本功能
a. 创建虚服务器
c. 配置VSIP和端口号
d. 指定虚服务器所属的VPN
(2) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 指定实服务组
¡ 引用负载均衡策略
(3) (可选)配置带宽和连接参数
(4) (可选)配置HTTP重定向功能
(5) (可选)配置MySQL数据库信息
¡ (可选)配置MySQL数据库的版本
¡ (可选)配置登录MySQL数据库的用户名和密码
¡ (可选)开启MySQL数据库读写分离功能
(6) (可选)引用参数模板和策略
¡ (可选)引用持续性组
¡ (可选)引用参数模板
¡ (可选)引用负载均衡连接数限制策略
¡ (可选)引用SSL策略
¡ (可选)引用Web缓存策略
(7) (可选)配置外链代理功能
(8) (可选)提高网络可靠性
¡ (可选)配置虚服务器绑定的VRRP备份组
¡ (可选)配置热备份功能
¡ (可选)开启虚服务器IP地址发布功能
(9) (可选)指定发送免费ARP报文或ND报文的接口
(10) (可选)配置快速日志输出功能
(11) 开启虚服务器
四层服务器负载均衡的虚服务器包括IP、TCP和UDP三种类型。
七层服务器负载均衡的虚服务器包括快速HTTP、HTTP、MySQL、RADIUS、基于TCP的SIP和基于UDP的SIP类型。
快速HTTP类型的虚服务器需避免与TCP客户端验证功能(该功能的介绍请参见“安全配置指导”中的“攻击检测与防范”)同时使用。
(1) 进入系统视图。
system-view
(2) 创建IP、TCP或UDP类型的虚服务器,并进入虚服务器视图。
virtual-server virtual-server-name type { ip | tcp | udp }
创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置虚服务器的描述信息。
description text
缺省情况下,未配置虚服务器的描述信息。
(1) 进入系统视图。
system-view
(2) 创建快速HTTP、HTTP、MySQL、RADIUS、基于TCP的SIP或基于UDP的SIP类型的虚服务器,并进入虚服务器视图。
virtual-server virtual-server-name type { fast-http | http | mysql | radius | sip-tcp | sip-udp }
创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置虚服务器的描述信息。
description text
缺省情况下,未配置虚服务器的描述信息。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置TCP类型的虚服务器工作在七层。
application-mode enable
缺省情况下,TCP类型的虚服务器工作在四层。
快速HTTP、HTTP、MySQL、RADIUS、基于TCP的SIP和TCP类型虚服务器的VSIP和端口号不能都相同。
UDP类型和基于UDP的SIP类型虚服务器的VSIP和端口号不能都相同。
(1) 进入系统视图。
system-view
(2) 进入IP、TCP或UDP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器的IP地址。
(IPv4网络)
virtual ip address ipv4-address [ mask-length | mask ]
(IPv6网络)
virtual ipv6 address ipv6-address [ prefix-length ]
缺省情况下,未配置虚服务器的IP地址。
(4) 配置虚服务器的端口号。
port { port-number [ to port-number ] } &<1-n>
缺省情况下,IP、TCP和UDP类型虚服务器的端口号为0(表示任意端口号)。
(1) 进入系统视图。
system-view
(2) 进入快速HTTP、HTTP、MySQL、RADIUS、基于TCP的SIP或基于UDP的SIP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器的IP地址。
(IPv4网络)
virtual ip address ipv4-address [ mask-length | mask ]
(IPv6网络)
virtual ipv6 address ipv6-address [ prefix-length ]
缺省情况下,未配置虚服务器的IP地址。
(4) 配置虚服务器的端口号。
port { port-number [ to port-number ] } &<1-n>
缺省情况下,快速HTTP和HTTP类型虚服务器的端口号为80;MySQL类型虚服务器的端口号为3306;RADIUS类型虚服务器的端口号为0(表示任意端口号);SIP类型虚服务器的端口号为5060。
如果虚服务器引用了SSL策略,则必须为其配置一个非缺省端口号(通常用443)。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器所属的VPN。
vpn-instance vpn-instance-name
缺省情况下,虚服务器属于公网。
当主用实服务组可用(该实服务组存在且有可用的实服务器)时,虚服务器通过主用实服务组进行转发;当主用实服务组不可用而备用实服务组可用时,虚服务器通过备用实服务组进行转发。
如果用户既配置了主用持续性组,也配置了备用持续性组,则会根据两个持续性组同时生成主用持续性表项和备用持续性表项。当有新的流量匹配已生成的持续性表项时,如果未能匹配到主用持续性表项,则进行备用持续性表项匹配。
若配置了备用持续性组,只有如下三种组合才会生成备用持续性表项,否则配置不生效:
· 主用持续性组为RADIUS类型,备用持续性组为地址端口类型;
· 主用持续性组为HTTP Cookie类型,备用持续性组为地址端口类型;
· 主用持续性组为HTTP Cookie类型,备用持续性组为HTTP passive类型。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定实服务组。
default server-farm server-farm-name [ backup backup-server-farm-name ] [ sticky sticky-name [ backup backup-sticky-name ] ]
缺省情况下,未指定实服务组。
虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的负载均衡策略。
lb-policy policy-name
缺省情况下,虚服务器未引用任何负载均衡策略。
虚服务器只能引用与自身类型相关的负载均衡策略,如:快速HTTP和HTTP类型的虚服务器,可以引用通用或HTTP类型的策略;IP、SIP、TCP和UDP类型的虚服务器,只能引用通用类型的策略;MySQL类型的虚服务可以引用通用或MySQL类型的策略;RADIUS类型的虚服务器,可以引用通用或RADIUS类型的策略。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value
缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置虚服务器所允许的最大连接数。
connection-limit max max-number
缺省情况下,虚服务器所允许的最大连接数为0,即不受限制。
(5) 配置虚服务器所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,虚服务器所允许的最大连接速率为0,即不受限制。
当UDP强制负载均衡功能关闭时,匹配虚服务器的流量按照数据流来进行负载均衡,即一个应用的流量会被负载均衡到同一个实服务器上;而当UDP强制负载均衡功能开启后,匹配虚服务器的流量不再按照流来进行负载均衡,而是按照每报文来进行负载均衡。
(1) 进入系统视图。
system-view
(2) 进入基于UDP的SIP或UDP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器的UDP强制负载均衡功能。
udp per-packet
缺省情况下,虚服务器的UDP强制负载均衡功能处于关闭状态。
在HTTP类型的虚服务器视图下开启了重定向功能后,所有匹配该虚服务器的HTTP请求报文都将被重定向到指定URL。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器的重定向功能并指定重定向URL。
redirect relocation relocation
缺省情况下,虚服务器的重定向功能处于关闭状态。
(4) 配置负载均衡设备返回给客户端的重定向报文中的状态码。
redirect return-code { 301 | 302 }
缺省情况下,负载均衡设备返回给客户端的重定向报文中的状态码为302。
本命令只有在开启了虚服务器的重定向功能后才会生效。
(1) 进入系统视图。
system-view
(2) 进入MySQL类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置MySQL数据库的版本。
version { 5.0 | 5.1 | 5.5 | 5.6 | 5.7 }
缺省情况下,MySQL数据库的版本为5.6。
通过本配置可以指定设备代替MySQL服务器对客户端进行认证的用户名和密码。此用户名和密码必须与MySQL服务器实际的登录用户名和密码相同。
(1) 进入系统视图。
system-view
(2) 进入MySQL类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置登录MySQL数据库时使用的用户名和密码。
username username [ password { cipher | simple } string ]
缺省情况下,未配置登录MySQL数据库时使用的用户名和密码。
开启MySQL虚服务器的读写分离功能后,读SQL命令和写SQL命令将分别由读实服务组和写实服务组执行,一定程度上缓解读写并发时对数据库性能的影响。
(1) 进入系统视图。
system-view
(2) 进入MySQL类型的虚服务器视图。
virtual-server virtual-server-name
(3) 开启MySQL数据库读写分离功能。
readwirte-separation read-server-farm read-server-farm-name [ read-sticky-group read-sticky-group-name ] write-server-farm write-sever-farm-name [ write-sticky-group write-sticky-group-name ]
缺省情况下,MySQL数据库读写分离功能处于关闭状态。
设备支持通过以下三种方式引用持续性组:
· 在虚服务器视图下,指定缺省实服务组引用的持续性组;
· 在负载均衡动作视图下,指定实服务组引用的持续性组;
· 在虚服务器视图下,指定虚服务器引用的持续性组。
其中,通过本配置指定的虚服务器引用的持续性组优先级最高。即在进行流量分配时,优先根据虚服务器引用的持续性组生成持续性表项。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的持续性组。
sticky sticky-name
缺省情况下,未指定虚服务器引用的持续性组。
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
(1) 进入系统视图。
system-view
(2) 进入IP、TCP或UDP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的参数模板。
parameter { ip | tcp } profile-name [ client-side | server-side ]
缺省情况下,虚服务器未引用任何参数模板。
只有TCP类型的虚服务器可以引用TCP类型的参数模板,其他类型的虚服务器只能引用IP类型的参数模板。仅TCP类型参数模板支持客户端侧与服务器侧分别配置。
(1) 进入系统视图。
system-view
(2) 进入快速HTTP、HTTP类型、MySQL、RADIUS、基于TCP的SIP或基于UDP的SIP的虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的参数模板。
parameter { http | http-compression | http-statistics | ip | mysql | oneconnect | tcp | tcp-application } profile-name [ client-side | server-side ]
缺省情况下,虚服务器未引用任何参数模板。
http参数仅在快速HTTP和HTTP类型的虚服务器视图下支持,http-compression、http-statistics和oneconnect参数仅在HTTP类型的虚服务器视图下支持,mysql参数仅在MySQL类型的虚服务视图下支持,tcp参数仅在快速HTTP、HTTP和MySQL类型的虚服务视图下支持,tcp-application只在工作在七层的TCP类型的虚服务器视图下支持。
仅TCP类型参数模板支持客户端侧与服务器侧分别配置。
引用负载均衡连接数限制策略后,访问虚服务器的连接数将会受到连接数限制策略的限制。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 引用负载均衡连接数限制策略。
lb-limit-policy policy-name
缺省情况下,虚服服器中未引用任何负载均衡连接数限制策略。
通过在HTTP类型的虚服务器视图下引用Web缓存策略,当HTTP请求报文中的URI与配置的HTTP URI类型的Web缓存匹配规则的URI一致时,设备会对其应答内容进行缓存。当用户再次请求页面时,能够直接从设备本地响应,减少了与真实服务器的交互时间,提升交互效率。有关缓存策略的详细介绍,请参见“负载均衡配置指导”中的“Web缓存策略”。
同一Web缓存策略只能被一个虚服务器引用。
不允许同时配置本功能和HTTP代答动作,有关HTTP代答动作的详细描述,请参见“2.7.7 配置对指定的HTTP请求进行代答”。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的Web缓存策略。
lb-cache-policy cache-policy-name
缺省情况下,虚服务器未引用Web缓存策略。
通过指定虚服务器引用的SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。
通过指定虚服务器引用的SSL服务器端策略,可以对负载均衡设备(作为SSL服务器)与SSL客户端之间传输的流量进行加密传输。
如需修改已被虚服务器引用的SSL客户端/服务器端策略,在策略修改完成后,需在虚服务器视图下,先通过配置undo service enable命令关闭虚服务器,再通过配置service enable命令开启虚服务器,新的策略才能生效。
(1) 进入系统视图。
system-view
(2) 进入TCP或HTTP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的SSL客户端策略。
ssl-client-policy policy-name
缺省情况下,虚服务器未引用任何SSL客户端策略。
TCP和快速HTTP类型的虚服务器不支持本功能。
(4) 指定虚服务器引用的SSL服务器端策略。
ssl-server-policy policy-name [ sni server-name ]
缺省情况下,虚服务器未引用任何SSL服务器端策略。
快速HTTP类型的虚服务器不支持本功能。
网站页面中通常会包含其他网站的外部链接(以下简称外链),比如门户网站等。如果主站已经支持IPv6,但外链资源不支持IPv6,那么当IPv6单栈客户端访问主站页面时,就会出现页面加载缓慢,显示不全或外链无法访问的现象。这就是IPv6升级改造过程中常见的“天窗”问题。
为了解决“天窗”问题,外链代理功能应运而生。外链代理功能通过代理IPv6客户端的IPv4外链访问请求,使IPv6单栈用户可以正常访问IPv4外链,帮助用户实现从IPv4网络到IPv6网络的平滑过渡。此外,代理过程具有透明性,客户端不可感知,有效保障了用户体验。
若未配置外链代理功能,当IPv6客户端访问包含IPv4外链的网站时,客户端浏览器会向本地DNS服务器发送请求外链域名的DNS请求报文。由于客户端是IPv6单栈客户端,DNS服务器无法解析出IPv4地址,外链资源访问失败。
配置了外链代理功能后,客户端浏览器执行设备发送的脚本文件,对IPv4外链域名进行改写,向本地DNS服务器发送DNS请求报文,查询改写后外链域名。本地DNS服务器根据查询的域名将DNS请求重定向至设备,设备会代替IPv6客户端请求外链资源,并将外链资源返回给客户端。详细处理流程如图2-7所示,
表2-4 外链代理流程简述
① |
IPv6 Host获取到包含改写后外链http://www.extlink.com.proxy.suffix.com的主站页面 |
② |
IPv6 Host向Local DNS server发送查询域名http://www.extlink.com.proxy.suffix.com的DNS请求报文。Local DNS server根据查询结果通知IPv6 Host解析该域名的DNS服务器为LB device |
③ |
IPv6 Host向LB device发送查询域名http://www.extlink.com.proxy.suffix.com的DNS请求报文 |
④ |
LB device收到包含改写后域名的DNS请求报文后,代替IPv6 Host向DNS sever发送查询原始外链域名http://www.extlink.com的DNS请求报文,获取外链资源的IPv4地址 |
⑤ |
LB device根据外链资源的IPv4地址获取外链资源 |
⑥ |
LB device将收到的外链资源发送给IPv6 Host |
当设备检测到服务器返回的HTTP应答报文中包含外链时,会改写应答报文中包含的外链域名,在原始的外链域名后添加URI标识、域名后缀和虚服务器端口号。以便IPv6客户端以改写后的域名发送DNS请求报文,设备在收到包含指定URI标识的请求报文时,会代理IPv6客户端请求IPv4外链资源。
改写后的域名为:协议类型://原始外链域名+URI标识+域名后缀+:虚服务器端口号。协议类型包括HTTP和HTTPS。
例如,协议类型为HTTP,原始的IPv4外链域名为www.aaa.com,若配置URI标识为proxy,域名后缀为bbb.com,虚服务器端口号为8080,则改写后的外链域名为http://www.aaa.com.proxy.bbb.com:8080。
在配置外链代理功能时,管理员需要联系运营商在Local DNS上进行配置,将负载均衡设备配置为解析改写后域名的权威DNS服务器。
管理员需要配置loadbalance dns-server命令在设备上指定解析原始外链域名的DNS服务器。有关DNS服务器的详细配置,请参见4.5 配置DNS服务器。
若DNS选路由入方向链路负载均衡完成,则外链代理的域名后缀应与DNS映射的域名后缀相同。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置外链代理的URI标识。
external-link inject-uri string
缺省情况下,未配置外链代理的URI标识。
URI标识用来识别请求报文中是否为改写后的域名。
(4) 配置外链代理的域名后缀。
external-link inject-domain-suffix domain-suffix
缺省情况下,未配置外链代理的域名后缀。
(5) (可选)指定外链代理的SNAT地址池。
external-link snat-pool pool-name
缺省情况下,未指定外链代理的SNAT地址池,使用设备通往服务器的出接口IP地址作为客户端IP地址。
当设备收到包含改写后外链域名的DNS请求报文后,设备会提取出原始的外链域名并使用外链代理SNAT地址池中的地址作为客户端IP地址,代替客户端请求IPv4外链资源。
(6) (可选)配置外链代理的白名单表项。
external-link whitelist domain domain-name
缺省情况下,未配置外链代理的白名单表项。
将指定域名添加到外链代理白名单中,设备不会对加入白名单中的外链进行代理。
(7) 开启外链代理功能。
external-link proxy enable
缺省情况下,外链代理功能处于关闭。
在HA与VRRP联动的组网中,主管理设备上配置服务器负载均衡功能时,需要通过配置本功能,将虚服务器与VRRP备份组绑定,以保证正反向报文在同一台Master设备上处理。关于HA的详细介绍,请参见“高可靠性配置指导”中的“高可靠性”。
对于绑定了不同VRRP备份组的多个虚服务器,不允许引用同一个SNAT地址池。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器绑定的VRRP备份组。
vrrp [ ipv6 ] vrid virtual-router-id interface interface-type interface-number
缺省情况下,未绑定任何VRRP备份组。
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
在VRRP组网中,开启虚服务器的持续性表项备份功能时必须指定global参数,否则配置不生效。
若设备的配置发生以下变化,则设备会删除当前已有的持续性表项,后续流量将会重新触发生成新的持续性表项。
· 关闭持续性表项备份功能
· 持续性表项备份由组间备份切换为全局备份
· 持续性表项备份由全局备份切换为组间备份
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器的会话扩展信息备份功能。
connection-sync enable
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态。
HTTP类型的虚服务器不支持本功能。
(4) 开启虚服务器的持续性表项备份功能。
sticky-sync enable [ global ]
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态。
在多数据中心的容灾备份组网中,通过在各数据中心的负载均衡设备上开启虚服务器IP地址发布功能,可以实现多数据中心之间的全局负载均衡。
开启虚服务器IP地址发布功能后,设备会将虚服务器的IP地址发布给OSPF模块参与路由计算,当数据中心进行切换的时候,保证访问虚服务器的流量也可以自动切换,从而提高负载均衡服务的可靠性。有关OSPF的配置请参见“三层技术-IP路由配置指导”中的“OSPF”。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器IP地址发布功能。
route-advertisement enable
缺省情况下,虚服务器IP地址发布功能处于关闭状态。
通过本配置可从设备的指定接口发送免费ARP报文和ND报文。有关免费ARP的详细介绍,请参见“三层技术-IP业务配置指导”中的“ARP”。有关ND报文的详细介绍,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定发送免费ARP报文或者ND报文的接口。
arp-nd interface interface-type interface-number
缺省情况下,未指定发送免费ARP报文或者ND报文的接口。
通过配置本功能,可以根据用户需求指定负载均衡快速日志的输出内容。设备将把指定内容的日志信息采用快速日志方式发往日志主机。有关快速日志的详细介绍,请参见“网络管理和监控配置指导”中的“快速日志输出”。
配置本功能前,请确保负载均衡模块的快速日志输出功能已开启(custom format)且已配置了快速日志输出参数(custom host)。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置快速日志输出的内容。
customlog content content-value
缺省情况下,无快速日志输出。
配置完虚服务器后,需要将其开启后才能进入工作状态。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器。
service enable
缺省情况下,虚服务器处于关闭状态。
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
负载均衡类配置任务如下:
(1) 配置通用类型负载均衡类
a. 创建负载均衡类
b. 创建匹配规则
请至少选择其中一项进行配置:
(2) 配置HTTP类型负载均衡类
a. 创建负载均衡类
b. 创建匹配规则
请至少选择其中一项进行配置:
(3) 配置MySQL类型负载均衡类
a. 创建负载均衡类
b. 创建匹配规则
请至少选择其中一项进行配置:
(4) 配置RADIUS类型负载均衡类
a. 创建负载均衡类
b. 创建匹配规则
请至少选择其中一项进行配置:
(1) 进入系统视图。
system-view
(2) 创建通用类型的负载均衡类,并进入负载均衡类视图。
loadbalance class class-name type generic [ match-all | match-any ]
创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡类的描述信息。
description text
缺省情况下,未配置负载均衡类的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP、MySQL或RADIUS类型的负载均衡类,并进入负载均衡类视图。
loadbalance class class-name type { http | mysql | radius } [ match-all | match-any ]
创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡类的描述信息。
description text
缺省情况下,未配置负载均衡类的描述信息。
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建嵌套类的匹配规则。
match [ match-id ] class class-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建源IP地址类型的匹配规则。
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建ACL类型的匹配规则。
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }
(1) 进入系统视图。
system-view
(2) 进入通用类型或HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建基于入接口的匹配规则。
match [ match-id ] interface interface-type interface-number
(1) 进入系统视图。
system-view
(2) 进入通用类型或HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建基于用户的匹配规则。
match [ match-id ] [ identity-domain domain-name ] user user-name
(1) 进入系统视图。
system-view
(2) 进入通用类型或HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建基于用户组的匹配规则。
match [ match-id ] [ identity-domain domain-name ] user-group user-group-name
当在通用类型的负载均衡类中配置了TCP载荷类型的匹配规则,则TCP流量匹配上指定的正则表达式之后,执行相应的负载均衡动作。若在配置TCP载荷类型的匹配规则时,指定了not参数,则在TCP流量未匹配指定的正则表达式时,执行相应的负载均衡动作。
(1) 进入系统视图。
system-view
(2) 进入通用类型的负载均衡类视图。
loadbalance class class-name
(3) 创建TCP载荷类型的匹配规则。
match [ match-id ] payload payload [ case-insensitive ] [ not ]
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建HTTP实体类型的匹配规则。
match [ match-id ] content content [ offset offset ]
快速HTTP类型虚服务器不支持本功能。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建HTTP Cookie类型的匹配规则。
match [ match-id ] cookie cookie-name value value
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建HTTP首部类型的匹配规则。
match [ match-id ] header header-name value value
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建HTTP URL类型的匹配规则。
match [ match-id ] url url
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建HTTP方法类型的匹配规则。
match [ match-id ] method { ext ext-type | rfc rfc-type }
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡类视图。
loadbalance class class-name
(3) 创建HTTP版本类型的匹配规则。
match [ match-id ] version { 1.0 | 1.1 }
(1) 进入系统视图。
system-view
(2) 进入MySQL类型的负载均衡类视图。
loadbalance class class-name
(3) 创建MySQL语句类型的匹配规则。
match [ match-id ] sql sql [ case-insensitive ] [ not ]
(1) 进入系统视图。
system-view
(2) 进入RADIUS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建RADIUS属性的匹配规则。
match [ match-id ] radius-attribute { code attribute-code | user-name } value attribute-value
负载均衡动作可分为三大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
· 代答类动作:用指定的文件对客户端HTTP请求进行应答。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
· 对于四层服务器负载均衡,在配置转发类动作时,配置报文的转发模式为转发和配置指导转发的实服务组互斥。
· 对于七层服务器负载均衡,在配置负载均衡动作时,配置指导转发的实服务组、配置重定向功能和配置对指定的HTTP请求进行代答两两互斥。
· 对于七层服务器负载均衡,在配置负载均衡动作时,配置查找可用实服务器失败时继续匹配下一条引用规则和配置负载均衡处理失败时的代答文件互斥。
负载均衡动作配置任务如下:
(1) 配置通用类型负载均衡动作
a. 创建负载均衡动作
b. (可选)配置转发类动作
请从配置报文的转发模式为转发、指定指导转发的实服务组和关闭TCP连接中选择一项进行配置。
(可选)配置修改类动作
(2) 配置HTTP类型负载均衡动作
a. 创建负载均衡动作
b. (可选)配置转发类动作
请从指定指导转发的实服务组和关闭TCP连接中选择一项进行配置。
c. (可选)配置修改类动作
请至少选择其中一项进行配置。
重写服务器发送的HTTP应答报文Location首部的URL
d. (可选)配置代答类动作
e. (可选)开启外链代理功能
(3) 配置RADIUS类型负载均衡动作
a. 创建负载均衡动作
b. (可选)配置转发类动作
c. (可选)配置修改类动作
(1) 进入系统视图。
system-view
(2) 创建通用类型的负载均衡动作,并进入负载均衡动作视图。
loadbalance action action-name type generic
创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡动作的描述信息。
description text
缺省情况下,未配置负载均衡动作的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP或RADIUS类型的负载均衡动作,并进入负载均衡动作视图。
loadbalance action action-name type { http | radius }
创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡动作的描述信息。
description text
缺省情况下,未配置负载均衡动作的描述信息。
设备支持配置以下几种转发类动作,包括:
· 报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。
· 指定指导转发的实服务组:当主用实服务组可用(该实服务组存在且有可用的实服务器)时,使用主用实服务组指导转发;当主用实服务组不可用而备用实服务组可用时,使用备用实服务组指导转发。
· 关闭TCP连接:当配置本功能的动作在负载均衡策略中被引用时,设备直接向客户端发送FIN报文或RST报文关闭匹配当前策略的TCP连接。
· 查找实服务器失败时继续匹配下一条引用规则:当配置本功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用实服务器失败时,可继续顺序匹配策略中的下一条引用规则。
· 查找可用服务器失败时关闭TCP连接:当配置本功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用实服务器失败时,设备直接向客户端发送FIN报文或RST报文关闭TCP连接。
(1) 进入系统视图。
system-view
(2) 进入通用类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为转发。
forward all
缺省情况下,报文转发模式为丢弃。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 指定指导转发的实服务组。
server-farm server-farm-name [ backup backup-server-farm-name ] [ sticky sticky-name [ backup backup-sticky-name ] ]
缺省情况下,未指定指导转发的实服务组。
只有指定主用持续性组为RADIUS类型,备用持续性组为地址端口类型;或者主用持续性组为HTTP Cookie类型,被用持续性组为地址端口或HTTP passive类型时,才会生成备用持续性表项,否则备用持续性组的配置不生效。
(1) 进入系统视图。
system-view
(2) 进入通用和HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置关闭TCP连接的方式。
tcp-close { fin | rst }
缺省情况下,关闭TCP连接的方式为发送TCP FIN报文。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置查找实服务器失败时继续匹配下一条引用规则。
fallback-action continue
缺省情况下,查找可用实服务器失败时直接丢弃报文。
(1) 进入系统视图。
system-view
(2) 进入通用和HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置查找可用实服务器失败时关闭TCP连接。
fallback-action close { fin | rst }
缺省情况下,查找可用实服务器失败时直接丢弃报文。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置发往服务器的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往服务器的IP报文中的ToS字段。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 重写TCP载荷。
payload rewrite { both | request | response } value value replace replace-string
缺省情况下,未对TCP载荷进行重写。
若指定方向的TCP报文中携带有指定的载荷,系统会将该载荷中的指定内容重写为新的内容。
仅七层TCP类型的虚服务器支持引用包含该动作的负载均衡策略。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 删除HTTP首部。
header delete { both | request | response } name header-name
缺省情况下,未配置删除HTTP首部。
如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部从报文中删除。
(4) 插入HTTP首部。
header insert { both | request | response } name header-name value value [ encode { base64 | url } ]
缺省情况下,未配置插入HTTP首部。
系统将在指定方向的HTTP报文中插入指定名称和内容的首部。
(5) 重写HTTP首部。
header rewrite { both | request | response } name header-name value value replace replace [ encode { base64 | url } ]
缺省情况下,未配置重写HTTP首部。
如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部中的指定内容重写为新的内容。
(6) 重写HTTP请求首部中的URL。
header rewrite request url value value replace replace [ encode { base64 | url } ]
缺省情况下,未配置重写HTTP请求首部中的URL。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 重写服务器发送的HTTP应答报文Location首部的URL。
ssl url rewrite location location [ clearport clear-port ] [ sslport ssl-port ]
缺省情况下,未配置重写服务器发送的HTTP应答报文Location首部的URL。
如果HTTP应答报文Location首部匹配了指定的URL和HTTP端口号,系统会将Location首部的URL由HTTP重写为HTTPS,并将原HTTP端口号重写为新的SSL端口号。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 指定引用的SSL客户端策略。
ssl-client-policy policy-name
缺省情况下,未引用任何SSL客户端策略。
通过引用SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。
如需修改已被负载均衡动作引用的SSL客户端策略,在策略修改完成后,需在虚服务器视图下,先通过配置undo service enable命令关闭虚服务器,再通过配置service enable命令开启虚服务器,新的策略才能生效。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 修改HTTP应答报文体中指定内容。
content rewrite value value replace replace
缺省情况下,未配置修改HTTP应答报文体中指定内容。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 开启动作的重定向功能并指定重定向URL。
redirect relocation relocation
缺省情况下,动作的重定向功能处于关闭状态。
在HTTP类型的负载均衡动作视图下开启了重定向功能后,所有匹配对应负载均衡动作的HTTP请求报文都将被重定向到指定URL。
(4) 配置负载均衡设备返回给客户端的重定向报文中的状态码。
redirect return-code { 301 | 302 }
缺省情况下,负载均衡设备返回给客户端的重定向报文中的状态码为302。
本命令只有在开启了动作的重定向功能后才会生效。
设备支持配置用压缩文件和非压缩文件对客户端的指定HTTP请求进行应答。
· 如果客户端请求URL中的资源路径匹配指定的url,则用指定的非压缩文件对客户端请求进行应答。
· 如果客户端请求URL中的资源路径匹配指定的workpath+ZIP压缩包内相对路径,则使用ZIP压缩包内的文件对客户端请求进行应答。
若配置了用压缩文件和非压缩文件对同一HTTP请求进行应答,且压缩文件和非压缩文件的路径相同,则使用非压缩文件进行代答。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置对指定的HTTP请求进行代答。
response { url url file filename | workpath workpath zip-file zip-filename }
缺省情况下,未配置对HTTP请求进行代答。
通过配置负载均衡处理失败时的代答文件,可在以下两种情况下使用指定文件对客户端请求进行应答:
· 查找可用实服务器失败。
· 配置了对指定的HTTP请求进行代答后,查找代答文件失败。
代答文件必须是一个完整的HTTP报文,不能只是HTTP报文体的内容。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置负载均衡处理失败时的代答文件。
fallback-action response raw-file raw-filename
缺省情况下,根据当前动作查找可用服务器失败时直接丢弃报文。
在HTTP类型的负载均衡动作视图下,开启了外链功能后,要使外链代理功能生效,还需要在虚服务器视图下配置外链代理相关参数。有关外链代理功能的详细配置,请参见“2.5.21 配置外链代理功能”。
若开启了外链代理功能且配置了以下负载均衡动作时,外链代理功能不生效。
· 转发类动作(不包括配置指导转发的实服务组)
· 负载均衡处理失败时的代答文件
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的负载均衡动作视图。
loadbalance action action-name
(3) 开启外链代理功能。
external-link proxy enable
缺省情况下,外链代理功能处于关闭状态。
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
四层和七层服务器负载均衡的负载均衡策略配置基本相同。
负载均衡策略配置任务如下:
(1) 创建负载均衡策略
(2) 指定负载均衡动作
(3) 指定缺省负载均衡动作
(1) 进入系统视图。
system-view
(2) 创建通用类型的负载均衡策略,并进入负载均衡策略视图。
loadbalance policy policy-name type generic
创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡策略的描述信息。
description text
缺省情况下,未配置负载均衡策略的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP或RADIUS类型的负载均衡策略,并进入负载均衡策略视图。
loadbalance policy policy-name type { http | mysql | radius }
创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡策略的描述信息。
description text
缺省情况下,未配置负载均衡策略的描述信息。
通用类型的负载均衡策略只能引用通用类型的负载均衡类和负载均衡动作;HTTP类型的负载均衡策略可以引用HTTP或通用类型的负载均衡类和负载均衡动作;MySQL类型的负载均衡策略可以引用MySQL或通用类型的负载均衡类和通用类型负载均衡动作;RADIUS类型的负载均衡策略可以引用RAIDIUS或通用类型的负载均衡类和负载均衡动作。
(1) 进入系统视图。
system-view
(2) 进入负载均衡策略视图。
loadbalance policy policy-name
(3) 为负载均衡类指定负载均衡动作。
class class-name [ insert-before before-class-name ] action action-name
缺省情况下,没有为任何负载均衡类指定负载均衡动作。
不同的负载均衡类可以与同一负载均衡动作组成匹配规则。
通用类型的负载均衡策略只能引用通用类型的负载均衡动作作为其缺省负载均衡动作,HTTP类型的负载均衡策略则无此限制。
(1) 进入系统视图。
system-view
(2) 进入负载均衡策略视图。
loadbalance policy policy-name
(3) 指定缺省负载均衡动作。
default-class action action-name
缺省情况下,未指定缺省负载均衡动作。
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了实服务器之后,后续包都会沿用这个选择结果。
持续性组(四层)配置任务如下:
(1) 创建持续性组
(2) 配置持续性方法
请至少选择其中一项进行配置。
(3) (可选)配置持续性表项超时时间
(4) (可选)开启匹配持续性表项的会话不受连接数限制影响功能
(5) (可选)开启持续性处理优先于繁忙功能
持续性组(七层)配置任务如下:
(1) 创建持续性组
(2) 配置持续性方法
请至少选择其中一项进行配置。
(3) (可选)配置持续性表项超时时间
(4) (可选)开启匹配持续性表项的会话不受连接数限制影响功能
(5) (可选)开启持续性处理优先于繁忙功能
(1) 进入系统视图。
system-view
(2) 创建地址端口类型的持续性组,并进入持续性组视图。
sticky-group group-name type address-port
创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置持续性组的描述信息。
description text
缺省情况下,未配置持续性组的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP实体、HTTP Cookie、HTTP首部、HTTP/UDP载荷、RADIUS、SIP或SSL类型的持续性组,并进入持续性组视图。
sticky-group group-name type { http-content | http-cookie | http-header | http-passive | payload | radius | sip | ssl | tcp-payload | udp-passive }
创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置持续性组的描述信息。
description text
缺省情况下,未配置持续性组的描述信息。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 配置IP持续性方法。
(IPv4网络)
ip [ port ] { both | destination | source } [ mask mask-length ]
(IPv6网络)
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ]
缺省情况下,未配置IP持续性方法。
(1) 进入系统视图。
system-view
(2) 进入TCP载荷类型的持续性组视图。
sticky-group group-name
(3) 配置TCP载荷持续性方法。
tcp-payload [ offset offset ] [ start start-string ] [ end end-string | length length ]
缺省情况下,未配置TCP载荷持续性方法。
配置UDP passive类型的持续性方法后,当设备收到UDP应答方向报文后,根据payload get命令的配置获取到的UDP应答报文的载荷信息生成持续性表项。对于后续收到的UDP请求报文,根据payload match命令的配置获取到指定请求报文的载荷信息,若该载荷信息匹配上持续性表项,则按照持续性表项转发。
UDP载荷被动持续性方法需要get和match命令的配合才能生成。
(1) 进入系统视图。
system-view
(2) 进入UDP passive类型的持续性组视图。
sticky-group group-name
(3) 配置UDP passive类型持续性方法。
payload get [ offset offset ] [ start start-string ] [ end end-string | length length ]
payload match [ offset offset ] [ start start-string ] [ end end-string | length length ]
缺省情况下,未配置UDP passive类型持续性方法。
(1) 进入系统视图。
system-view
(2) 进入HTTP实体类型的持续性组视图。
sticky-group group-name
(3) 配置HTTP实体持续性方法。
content [ offset offset ] [ start start-string ] [ end end-string | length length ]
缺省情况下,未配置HTTP实体持续性方法。
快速HTTP类型的虚服务器不支持本功能。
(1) 进入系统视图。
system-view
(2) 进入HTTP Cookie类型的持续性组视图。
sticky-group group-name
(3) 配置HTTP Cookie持续性方法。
cookie { get name cookie-name [ offset offset ] [ start start-string] [ end end-string | length length ] | { insert [ domain domain-name ] [ path path ] [ httponly ] [ secure ] | rewrite } [ name cookie-name ] [ httponly ] [ secure ] }
缺省情况下,未配置HTTP Cookie持续性方法。
(4) (可选)指定需在URI中查找的Secondary Cookie的名称。
cookie secondary name value
缺省情况下,未指定需在URI中查找的Secondary Cookie名称。
(5) (可选)配置检查所有报文。
check all-packet
缺省情况下,不检查所有报文。
(1) 进入系统视图。
system-view
(2) 进入HTTP首部类型的持续性组视图。
sticky-group group-name
(3) 配置HTTP首部持续性方法。
header { { { host | name header-name | url } [ offset offset ] [ start start-string] [ end end-string | length length ] } | request-method | version }
缺省情况下,未配置HTTP首部持续性方法。
HTTP passive类型持续性方法包括HTTP首部被动持续性方法和HTTP实体被动持续性方法。
配置HTTP passive类型的持续性方法后,设备会根据header get或content get命令获取HTTP应答报文首部或实体中的指定字符串,生成持续性表项。对于后续收到的所有HTTP请求报文,根据header match或content match命令获取HTTP请求报文首部或实体中的指定字段,若该字段匹配上持续性表项,则按照持续性表项转发。
HTTP首部被动持续性方法和HTTP实体被动持续性方法都包括get和match命令,其配置遵循以下原则:
· n条get命令获取到的n个字符串,其中任意1~n个字符串又可以按照ID顺序组合成2n-1个字符串,若match命令获取到字符串匹配上任意一个组合后的字符串,则认为匹配成功。
· n条match命令获取到的n个字符串按照ID顺序结合成一个字符串进行匹配。
假设,用户配置了ID为1、2、3的三条get命令,使得设备可以获取到HTTP应答报文首部中的字符串a、b、c,组合成七个匹配字符串a、b、c、ab、ac、bc、abc,并生成七条持续性表项。同时用户配置了ID为2、3、4的三条match命令,当设备收到HTTP请求报文后,若基于这三条规则获取到了字符串a、b、c,且它们组合成的字符串abc能够与通过get命令获取到的字符串abc匹配成功,则认为HTTP请求报文与持续性表项匹配成功,按照持续性表项转发。
HTTP首部被动持续性方法和实体被动持续性方法需要get和match命令的配合才能生成。
同一HTTP passive类型的持续性组视图下,最多允许通过配置4条get命令在HTTP应答报文中获取4个指定字符串,最多允许通过配置4条match命令在HTTP请求报文中获取4个指定字符串。
(1) 进入系统视图。
system-view
(2) 进入HTTP passive类型的持续性组视图。
sticky-group group-name
(3) 配置HTTP passive持续性方法。请至少选择其中一项进行配置。
¡ 配置HTTP首部被动持续性方法。
header get id name header-name start start-string { end end-string | length length }
header match id { name header-name | url } start start-string { end end-string | length length }
缺省情况下,未配置HTTP首部被动持续性方法。
¡ 配置HTTP实体被动持续性方法。
content get id start start-string { end end-string | length length }
content match id start start-string { end end-string | length length }
缺省情况下,未配置HTTP实体被动持续性方法。
(4) (可选)配置检查所有报文。
check all-packet
缺省情况下,不检查所有报文。
(1) 进入系统视图。
system-view
(2) 进入HTTP或UDP载荷类型的持续性组视图。
sticky-group group-name
(3) 配置HTTP或UDP载荷持续性方法。
payload [ offset offset ] [ start start-string ] [ end end-string | length length ]
缺省情况下,未配置HTTP或UDP载荷持续性方法。
快速HTTP类型的虚服务器不支持本功能。
(1) 进入系统视图。
system-view
(2) 进入RADIUS类型的持续性组视图。
sticky-group group-name
(3) 配置RADIUS属性持续性方法。
radius-attribute { code attribute-code | framed-ip-address | user-name }
缺省情况下,未配置RADIUS属性持续性方法。
配置基于SIP信令报文Call ID的持续性方法后,设备会根据SIP信令报文首部的call-id字段生成持续性表项,将具有相同Call ID的SIP报文都分配给同一台实服务器处理。
(1) 进入系统视图。
system-view
(2) 进入SIP类型的持续性组视图。
sticky-group group-name
(3) 配置基于SIP信令报文Call ID的持续性方法。
header call-id
缺省情况下,未配置基于SIP信令报文Call ID的持续性方法。
(1) 进入系统视图。
system-view
(2) 进入SSL类型的持续性组视图。
sticky-group group-name
(3) 配置SSL持续性方法为基于SSL会话ID。
ssl session-id
缺省情况下,未配置SSL持续性方法。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 配置持续性表项的超时时间。
timeout { indefinite | timeout-value }
缺省情况下,对于HTTP Cookie、HTTP passive和UDP passive类型的持续性组,持续性表项的超时时间为86400秒;对于其它类型的持续性组,持续性表项的超时时间为60秒。
开启该功能后,如果该连接匹配了已有的持续性表项,将不受实服务器上带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 开启匹配持续性表项的会话不受连接数限制影响功能。
override-limit enable
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响。
开启持续性处理优先于繁忙功能后,在持续性表项老化之前,无论实服务器是否处于繁忙状态,设备都会依据持续性表项为其分配流量。
若持续性处理优先于繁忙功能处于关闭状态,则在持续性表项老化之前,设备会依据持续性表项仅为处于正常状态的实服务器分配流量。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 开启持续性处理优先于繁忙功能。
sticky-over-busy enable
缺省情况下,持续性处理优先于繁忙功能处于关闭状态。
参数模板配置任务如下:
(1) 创建参数模板
(1) 创建参数模板
(2) 配置参数
请至少选择其中一项进行配置。
¡ 配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式
(1) 创建参数模板
(2) 配置TCP载荷匹配的缓冲条件
(1) 创建参数模板
(2) 配置参数
请至少选择其中一项进行配置。
¡ 配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作
¡ 配置当HTTP请求或应答报文首部超出最大长度时的处理方式
(1) 创建参数模板
(2) 配置HTTP压缩功能
(1) 创建参数模板
(2) 配置HTTP统计功能
(1) 创建参数模板
(1) 进入系统视图。
system-view
(2) 创建IP类型的参数模板,并进入参数模板视图。
parameter-profile profile-name type ip
创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置参数模板的描述信息。
description text
缺省情况下,未配置参数模板的描述信息。
(1) 进入系统视图。
system-view
(2) 创建HTTP、HTTP压缩、HTTP统计、MySQL、OneConnect、TCP或TCP-application类型的参数模板,并进入参数模板视图。
parameter-profile profile-name type { http | http-compression | http-statistics | mysql | oneconnect | tcp | tcp-application }
创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置参数模板的描述信息。
description text
缺省情况下,未配置参数模板的描述信息。
(1) 进入系统视图。
system-view
(2) 进入IP类型的参数模板视图。
parameter-profile profile-name
(3) 配置发往客户端的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往客户端的IP报文中的ToS字段。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接中的本地最大窗口值。
tcp window-size size
缺省情况下,TCP连接中的本地最大窗口值为65535。
通过本配置可以自定义负载均衡设备与客户端以及服务器建立的TCP连接的空闲超时时间。若在TCP连接的空闲超时时间内没有应用数据传输,负载均衡设备会主动断开与客户端或服务器的TCP连接。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接的空闲超时时间。
tcp connection idle-timeout value
缺省情况下,TCP连接的空闲超时时间为0,即不超时。
缺省情况下,TCP协议的TIME-WAIT状态超时时间为报文段在被丢弃之前在因特网上能够存在的最大时间(MSL)的两倍。
TCP连接断开时,由于TCP协议的TIME-WAIT状态超时时间较长,导致TCP连接释放过慢,影响负载均衡业务处理效率。通过本配置可灵活设置TIME-WAIT状态的超时时间。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接TIME-WAIT状态的超时时间。
time-wait timeout value
缺省情况下,TCP连接TIME-WAIT状态的超时时间为2秒。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接SYN报文的重传超时时间。
syn retransmission-timeout timeout-value
缺省情况下,TCP连接SYN报文的重传超时时间为10秒。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接保活定时器的空闲超时时间。
keepalive idle-timeout timeout-value
缺省情况下,TCP连接保活定时器的空闲超时时间为10秒。
(4) 配置TCP保活报文的重传时间间隔与重传次数。
keepalive retransmission interval interval count count
缺省情况下,TCP保活报文的重传时间间隔为3秒,重传次数为3次。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接FIN-WAIT-1状态的超时时间。
fin-wait1 timeout timeout-value
缺省情况下,TCP连接FIN-WAIT-1状态的超时时间为5秒。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP连接FIN-WAIT-2状态的超时时间。
fin-wait2 timeout timeout-value
缺省情况下,TCP连接FIN-WAIT-2状态的超时时间为5秒。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式。
exceed-mss { allow | drop }
缺省情况下,对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式为允许超出MSS的数据段。
在客户端与负载均衡设备建立TCP连接时,客户端将MSS值通告给负载均衡设备,负载均衡设备会记录下这个MSS值,并将配置的MSS值发送给客户端,客户端与负载均衡设备将使用较小的MSS值作为双方通信的最大分段长度。
在负载均衡设备与服务器建立TCP连接时,负载均衡设备将配置的MSS值通告给服务器,服务器会记录下这个MSS值,并将自身的MSS值发送给负载均衡设备,负载均衡设备与服务器将使用较小的MSS值作为双方通信的最大分段长度。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置负载均衡设备与对端建立TCP连接时的MSS值。
tcp mss value
缺省情况下,未配置负载均衡设备与对端建立TCP连接时的MSS值。
本功能用来在负载均衡设备发送给服务器的TCP报文头的指定选项中插入客户端的真实源IP地址。
本功能仅在以下几种类型的虚服务器引用TCP类型的参数模板时才会生效:
· HTTP类型的虚服务器
· 配置了SSL服务器端策略的TCP类型的虚服务器
· 工作在七层的TCP类型的虚服务器
· MySQL类型的虚服务器
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置在TCP选项中插入内容。
tcp option insert option-number src-addr [ encode { binary | string } ]
缺省情况下,未在TCP选项中插入内容。
本功能用来清除负载均衡设备发送给服务器的TCP报文头中的指定选项。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 清除TCP报文头中的指定选项。
tcp option remove option-number
缺省情况下,未对TCP报文头中的指定选项进行清除。
通过本配置可以指定用来进行SNAT地址转换的TCP选项,即将指定TCP选项中携带的IP地址作为SNAT转换地址。实现本功能还需配置SNAT转换方式为TCP Option方式,具体配置请参见“2.3.6 配置NAT模式的NAT功能”。
(1) 进入系统视图。
system-view
(2) 进入TCP类型的参数模板视图。
parameter-profile profile-name
(3) 配置进行SNAT地址转换的TCP选项。
src-addr-option option-number [ encode { binary | string } ]
缺省情况下,未配置进行SNAT地址转换的TCP选项。
此命令仅在客户端侧的参数模板下生效。
配置TCP载荷类型的匹配规则后,在TCP载荷匹配的缓冲时间内,设备会缓冲客户端发给虚服务器的流量进行TCP载荷匹配。直到出现以下任意一种情况才结束缓冲:
· 收到缓冲结束符。
· 缓冲数据长度超过配置的TCP缓冲数据大小。
· 缓冲数据已经与匹配规则匹配。
(1) 进入系统视图。
system-view
(2) 进入TCP-Application类型的参数模板视图。
parameter-profile profile-name
(3) 配置TCP载荷匹配的缓冲时间。
match-buffer-time time
缺省情况下,TCP载荷匹配的缓冲时间为3秒。
(4) 配置对TCP载荷结束缓冲的匹配条件。请至少选择其中一项进行配置。
¡ 配置TCP载荷匹配的缓冲数据大小。
match-buffer-size size
缺省情况下,TCP载荷匹配的缓冲数据大小为4096字节。
¡ 配置TCP载荷匹配的缓冲结束符。
match-buffer-end string
缺省情况下,未配置TCP载荷匹配的缓冲结束符。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置对每个HTTP请求报文都进行负载均衡。
rebalance per-request
缺省情况下,只对一条连接的第一个HTTP请求报文进行负载均衡,其余请求报文的处理方式与第一个相同。
通过开启负载均衡设备与服务器的连接复用功能,可在负载均衡设备与服务器之间建立一条长时间不会老化的连接,使多个客户端复用同一条与服务器的TCP连接。
开启了负载均衡设备与服务器的连接复用功能后,可通过配置以下参数对TCP连接的复用时间、复用次数、复用范围以及连接池大小进行限制:
· 空闲超时时间:当负载均衡设备与服务器之间TCP连接的空闲时间达到配置的空闲超时时间时,此连接将会被删除,后续客户端发起的连接请求将触发建立新的TCP连接。
· 最大复用次数:当负载均衡设备与服务器TCP连接的复用次数达到配置的最大复用次数时,此连接将会被删除,后续客户端发起的连接请求将触发建立新的TCP连接。
· IPv4网络掩码/IPv6前缀:通过配置连接复用的IPv4网络掩码或IPv6前缀,可对负载均衡设备与服务器之间连接复用的客户端网段进行限制。当负载均衡设备收到客户端的连接请求时,若客户端网段与已建立的TCP空闲连接的网段相同,则复用已建立的空闲连接。否则,触发建立新的TCP连接。
· MySQL连接池大小:当MySQL数据传输完成后,不立即断开TCP连接,而是将TCP连接保存在MySQL连接池中。当需要建立新的连接时,优先从MySQL连接池中获取可用连接,而不是重新建立一个新连接。若MySQL连接池中的连接数达到配置的上限,则不再将空闲连接保存在连接池中。
(1) 进入系统视图。
system-view
(2) 进入HTTP或MySQL类型的参数模板视图。
parameter-profile profile-name
(3) 开启负载均衡设备与服务器的连接复用功能。
server-connection reuse
缺省情况下,负载均衡设备与服务器的连接复用功能处于关闭状态。
快速HTTP类型的虚服务器不支持本功能。
(4) 退回系统视图。
quit
(1) 进入MySQL或OneConnect类型的参数模板视图。
parameter-profile profile-name
(2) (可选)配置负载均衡设备与服务器之间TCP连接的空闲超时时间。
idle-time idle-time
缺省情况下,负载均衡设备与服务器之间TCP连接的空闲超时时间为86400秒。
(3) (可选)配置负载均衡设备与服务器之间TCP连接的最大复用次数。
max-reuse reuse-number
缺省情况下,负载均衡设备与服务器之间TCP连接的最大复用次数为1000。
(4) (可选)配置连接复用的IPv4网络掩码。
ip source mask { mask-length | mask }
缺省情况下,连接复用的IPv4网络掩码为自然掩码。
(5) (可选)配置连接复用的IPv6前缀长度。
ipv6 source prefix prefix-length
缺省情况下,连接复用的IPv6前缀长度为0。
(6) (可选)配置连接复用的连接池大小。
pool-size pool-size
缺省情况下,连接复用的连接池大小为1024。
仅MySQL类型的参数模板支持本配置。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作。
header modify per-request
缺省情况下,只对每个连接的第一个HTTP请求或应答报文的首部执行插入、删除或修改操作。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置匹配字符串时对大小写不敏感。
case-insensitive
缺省情况下,匹配字符串时对大小写敏感。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置HTTP实体的最大解析长度。
content maxparse-length length
缺省情况下,HTTP实体的最大解析长度为4096。
快速HTTP类型的虚服务器不支持本功能。
(4) 配置HTTP首部的最大解析长度。
header maxparse-length length
缺省情况下,HTTP首部的最大解析长度为4096。
快速HTTP类型的虚服务器不支持本功能。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置URL中分隔Secondary Cookie的字符。
secondary-cookie delimiters text
缺省情况下,URL中分隔Secondary Cookie的字符为“/”、“&”、“#”或“+”。
(4) 配置URL中Secondary Cookie的起始位置标示字符。
secondary-cookie start text
缺省情况下,URL中Secondary Cookie的起始位置标示字符为“?”。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置当HTTP请求或应答报文首部超出最大长度时的处理方式。
header exceed-length { continue | drop }
缺省情况下,当HTTP请求或应答报文首部超出最大长度时,继续进行负载均衡处理。
快速HTTP类型的虚服务器不支持本功能。
配置本功能后,设备会将服务器发送的HTTP响应报文中Set-Cookie字段加密后发往客户端,以防止保存在Cookie中的用户关键信息泄露。客户端携带加密后的Cookie值访问服务器时,设备会将Cookie字段解密后再发往服务器。
(1) 进入系统视图。
system-view
(2) 进入HTTP类型的参数模板视图。
parameter-profile profile-name
(3) 配置Cookie加密功能。
encrypt-cookie name cookie-name key { cipher | simple } string
缺省情况下,不对任何Cookie加密。
快速HTTP类型的虚服务器不支持本功能。
(1) 进入系统视图。
system-view
(2) 进入HTTP压缩类型的参数模板视图。
parameter-profile profile-name
(3) 设置进行压缩的应答报文体最小长度。
content length-threshold length
缺省情况下,压缩的应答报文体最小长度为1024字节。
(4) 设置应答报文的压缩级别。
compression level level
缺省情况下,应答报文的压缩级别为1。
(5) 设置应答报文压缩所占用的内存大小。
memory-size size
缺省情况下,应答报文压缩所占用的内存大小为8KB。
(6) 配置对HTTP1.0的请求报文的应答进行压缩处理。
request-version all
缺省情况下,不对HTTP1.0的请求报文的应答进行压缩处理。
(7) 配置应答报文首选的压缩算法。
prefer-method { deflate | gzip }
缺省情况下,首选压缩算法为gzip。
(8) 配置删除请求报文中的Accept-Encoding首部。
header delete request accept-encoding
缺省情况下,删除请求中的Accept-Encoding首部。
(9) 设置在应答报文中插入Vary首部,内容为Accept-Encoding 。
header insert response vary
缺省情况下,在应答报文中插入Vary首部,内容为Accept-Encoding。
(10) 配置进行压缩的过滤条件。
rule [ rule-id ] { permit | deny } { content-type | url } expression
缺省情况下,未配置任何过滤条件。
(11) 配置压缩使用的窗口大小。
window-size size
缺省情况下,压缩窗口大小为16KB。
通过配置HTTP统计类型的参数模板,可对访问指定URL的流量进行统计。
若HTTP流量匹配了指定URL,并且HTTP流量的源IP地址匹配了指定的源IP地址对象组,则按照源IP地址对象组进行流量统计。若未匹配指定的源IP地址对象组,则按照单个源IP地址进行流量统计。
设备支持在统计节点视图下配置多条URL类型的统计匹配规则,通过该配置可统计出访问多个URL的总流量。
(1) 进入系统视图。
system-view
(2) 进入HTTP统计类型的参数模板视图。
parameter-profile profile-name
(3) (可选)配置按照指定源IP地址对象组进行HTTP流量统计。
source-ip object-group object-group-name
缺省情况下,按照单个源IP地址进行HTTP流量统计。
(4) 创建统计节点,并进入统计节点视图。
node node-name
(5) 配置URL类型的统计匹配规则。
statistics-match [ rule-id ] url url
(6) (可选)配置统计节点的描述信息。
description text
缺省情况下,未配置统计节点的描述信息。
服务器负载均衡支持配置TCP RST、TCP zero-window和HTTP passive类型的负载均衡探测模板。当负载均衡探测模板被实服务组引用后,在负载均衡探测模板的监控周期内,设备可以统计出实服务组中每个实服务器发送的RST报文的个数和zero-window(零窗口)报文的个数以及HTTP响应报文中的异常URL次数,以此来判断实服务器的健康状态,并执行相应的保护动作。设备支持配置以下两种保护动作:
· 设置实服务器为繁忙状态:当实服务器发送的RST报文或零窗口报文达到配置的阈值时,系统会将实服务器的状态标记为繁忙,然后以繁忙保护时间为间隔再次对实服务器进行检查。若实服务器在繁忙保护时间内发送的RST报文或零窗口报文未达到配置的阈值,则实服务器恢复正常状态,否则继续以繁忙保护时间为间隔检查实服务器,直到达到实服务器的繁忙保护次数为止。达到繁忙保护次数后,系统会自动关闭实服务器,此时实服务器的状态为Auto shutdown。
· 关闭实服务器:当实服务器发送的RST报文、零窗口报文或异常URL次数达到配置的阈值时,系统会自动关闭实服务器,此时实服务器的状态为Auto shutdown。
HTTP passive类型的负载均衡探测模板的保护动作只有Auto shutdown且不可配置。
(1) 进入系统视图。
system-view
(2) 创建RST类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template tcp-rst template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,负载均衡探测模板的监控周期为10秒。
(5) 配置RST报文的上限阈值。
rst threshold number
缺省情况下,RST报文的上限阈值为1000000。
(6) 配置负载均衡探测模板的保护动作。
protect-action { auto-shutdown | busy [ probe-interval interval ] [ probe-times times ] }
缺省情况下,负载均衡探测模板的保护动作为设置实服务器为繁忙状态。
(1) 进入系统视图。
system-view
(2) 创建TCP zero-window类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template tcp-zero-window template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,负载均衡探测模板的监控周期为10秒。
(5) 配置零窗口报文的上限阈值。
zero-window threshold percentage
缺省情况下,零窗口报文的上限阈值为40%。
(6) 配置负载均衡探测模板的保护动作。
protect-action { auto-shutdown | busy [ probe-interval interval ] [ probe-times times ] }
缺省情况下,负载均衡探测模板的保护动作为设置实服务器为繁忙状态。
(1) 进入系统视图。
system-view
(2) 创建HTTP passive类型负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template http-passive template-name
(3) (可选)配置负载均衡探测模板的描述信息。
description text
缺省情况下,未配置负载均衡探测模板的描述信息。
(4) 配置负载均衡探测模板的监控周期。
monitor-interval interval-time
缺省情况下,负载均衡探测模板的监控周期为1秒。
(5) 配置异常URL次数的上限阈值。
abnormal-url threshold number
缺省情况下,异常URL次数的上限阈值为10000。
(6) 配置负载均衡探测模板所要检查的URL。
check-url url
缺省情况下,未配置HTTP passive类型探测模板所要检查的URL。
每个探测模板最多允许配置10个URL的正则表达式。
(7) 配置负载均衡探测模板所要检查的响应状态码。
status-code code
缺省情况下,未配置HTTP passive类型探测模板所要检查的响应状态码。
每个探测模板最多允许配置10个响应状态码。
(8) 配置HTTP passive类型探测模板的响应超时时间。
timeout timeout
缺省情况下,HTTP passive类型探测模板的响应超时时间为5秒。
通过配置SNAT全局策略可将设备收到报文的源地址转换为指定地址。
用户既可在系统视图下配置SNAT全局策略,也可在实服务组视图下配置SNAT功能,后者的配置优先级较高。只有在实服务组视图下未配置SNAT功能时,SNAT全局策略才会生效,即所有实服务组均采用SNAT全局策略进行源地址转换。
SNAT全局策略配置任务如下:
(1) 创建SNAT全局策略
(2) 配置SNAT地址转换方式
(3) (可选)配置SNAT全局策略匹配优先级
(4) (可选)配置进行SNAT地址转换的过滤条件
(5) (可选)指定SNAT全局策略所属的VPN实例
(6) 开启SNAT全局策略
(1) 进入系统视图。
system-view
(2) 创建SNAT全局策略,并进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) (可选)配置SNAT全局策略的描述信息。
description text
缺省情况下,未配置SNAT全局策略的描述信息。
设备支持在SNAT全局策略中配置两种SNAT地址转换方式:
· 自动映射:采用设备与实服务器通信的接口地址进行SNAT地址转换。
· SNAT地址池:根据配置的SNAT地址池进行SNAT地址转换。设备将报文的源地址修改为SNAT地址池中的地址后再转发出去。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 配置SNAT地址转换方式。
translation-mode { auto-map | snat-pool pool-name }
缺省情况下,未配置SNAT地址转换方式。
设备允许同时配置多个SNAT全局策略,优先级越大,越优先匹配。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 配置SNAT全局策略的优先级。
priority priority
缺省情况下,SNAT全局策略的优先级为0。
若配置了进行SNAT地址转换的源IP地址对象组,则仅对匹配指定源IP地址的流量进行SNAT地址转换。有关IP地址对象的配置请参见“安全配置指导”中的“对象组”。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 配置进行SNAT地址转换的源IP地址对象组。
source-ip object-group object-group-name
缺省情况下,对所有源IP地址的流量都进行SNAT地址转换。
若配置了进行SNAT地址转换的目的IP地址对象组,则仅对匹配指定目的IP地址的流量进行SNAT地址转换。有关IP地址对象的配置请参见“安全配置指导”中的“对象组”。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 配置进行SNAT地址转换的目的IP地址对象组。
destination-ip object-group object-group-name
缺省情况下,对所有流量都进行SNAT地址转换。
若配置了进行SNAT地址转换的服务对象组,则仅对匹配指定服务的流量进行SNAT地址转换。有关服务对象组的配置请参见“安全配置指导”中的“对象组”。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 配置进行SNAT地址转换的服务对象组。
service object-group object-group-name
缺省情况下,对所有服务类型的流量都进行SNAT地址转换。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 指定SNAT全局策略所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,SNAT全局策略属于公网。
(1) 进入系统视图。
system-view
(2) 进入SNAT全局策略视图。
loadbalance snat-global-policy policy-name
(3) 开启SNAT全局策略。
snat enable
缺省情况下, SNAT全局策略处于关闭状态。
通过引用负载均衡连接数限制,可以对设备上建立的连接数进行统计和限制,能够有效解决因某些用户在短时间内经过设备向内部网络发起大量连接,导致设备系统或服务器资源迅速消耗,其它用户无法正常使用网络资源的问题,实现保护内部网络资源(主机或服务器)以及合理分配设备系统资源的目的。
一个连接数限制策略中可配置多条连接数限制规则,每条规则中指定一个连接数限制的用户范围,属于该范围的用户可建立的连接数将受到该规则中指定参数的限制。当某类型的连接数达到上限值(max-amount)时,设备将不接受该类型的新建连接请求,直到设备上已有连接因老化而删除,使得当前该类型的连接数低于连接数下限(min-amount)后,才允许新建连接。对于未匹配连接数限制规则的用户所建立的连接,设备不对其连接数进行限制。
目前,连接数限制支持根据ACL来限定用户范围,对匹配ACL规则的访问虚服务器的连接数进行统计和限制。
(1) 进入系统视图。
system-view
(2) 创建负载均衡连接数限制策略,并进入连接数限制策略视图。
loadbalance limit-policy policy-name
(3) 配置负载均衡连接数限制规则。
limit limit-id acl [ ipv6 ] { acl-number | name acl-name } [ per-destination | per-service | per-source ] * amount max-amount min-amount
缺省情况下,负载均衡连接数限制策略中不存在任何限制规则。
(4) (可选)配置负载均衡连接数限制策略的描述信息。
description text
缺省情况下,未配置负载均衡连接数限制策略的描述信息。
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
(1) 进入系统视图。
system-view
(2) 开启指定协议的负载均衡ALG功能。
loadbalance alg { dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }
缺省情况下,ftp、dns、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
(3) 开启所有协议的负载均衡ALG功能。
loadbalance alg all-enable
缺省情况下,dns、ftp、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
若配置了对指定的HTTP请求进行代答或配置了负载均衡处理失败时的代答文件,当指定的代答文件发生变化后,需要通过本配置进行重新加载,否则代答文件无法生效。
(1) 进入系统视图。
system-view
(2) 配置重新加载代答文件。
reload http-response { file filename }
通过执行本命令可以加载指定的外链改写文件。设备存在内置的外链改写方法,若未配置本功能或未指定外链改写文件,则使用内置的外链改写方法进行外链改写。有关外链改写功能的详细描述,请参见2.5.21 配置外链代理功能。
外链改写文件需要配置为客户端浏览器能够识别的格式,推荐配置为JS脚本文件。
当外链改写文件内容发生变化后,需要再次执行本命令重新加载外链改写文件。
不允许配置文件名称相同的外链改写文件和代答文件。
(1) 进入系统视图。
system-view
(2) 配置加载外链改写文件。
loadbalance reload external-link file filename
缺省情况下,不使用外链改写文件。
用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。
可在任意视图下执行本命令,测试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 [ chassis chassis-number 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 [ chassis chassis-number slot slot-number ]
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
四层和七层服务器负载均衡的负载均衡告警功能配置完全相同。
(1) 进入系统视图。
system-view
(2) 开启负载均衡的告警功能。
snmp-agent trap enable loadbalance
缺省情况下,负载均衡的告警功能处于开启状态。
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括负载均衡基本日志和负载均衡NAT日志。
通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:
· 实服务器或实服务组的状态变化。
· 实服务器的健康检测结果发生变化。
· 实服务器或虚服务器的连接数达到上限或者恢复到正常范围内。
· 实服务器或虚服务器的连接速率达到上限或者恢复到正常范围内。
· 虚服务器引用的缺省实服务器组主备切换。
· 负载均衡动作引用的实服务器组主备切换。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
(1) 进入系统视图。
system-view
(2) 开启负载均衡基本日志功能。
loadbalance log enable base
缺省情况下,负载均衡基本日志功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡NAT日志功能。
loadbalance log enable nat
缺省情况下,负载均衡NAT日志功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后服务器负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除服务器负载均衡的统计信息。
配置 |
命令 |
显示负载均衡动作的信息 |
display loadbalance action [ name action-name ] |
显示负载均衡类的信息 |
display loadbalance class [ name class-name ] |
显示七层负载均衡的TCP连接信息 |
display loadbalance connections [ client-side{ ipv4 | ipv6 } [ cs-client-ip ip-address [ cs-client-port port-number ] ] [ cs-server-ip ip-address [ cs-server-port port-number ] ] [ state { closed | close_wait | closing | established | fin_wait_1 | fin_wait_2 | last_ack | listening | syn_received | syn_sent | time_wait } ] ] [ server-side { ipv4 | ipv6 } [ ss-client-ip ip-address [ ss-client-port port-number ] ] [ ss-server-ip ip-address [ ss-server-port port-number ] ] [ state { closed | close_wait | closing | established | fin_wait_1 | fin_wait_2 | last_ack | listening | syn_received | syn_sent | time_wait } ] ] [ chassis chassis-number slot slot-number ] [ verbose ] |
显示外链代理正在查询的域名信息 |
display loadbalance dns-query [ vpn-instance vpn-instance-name ] [ slot slot-number ]
display loadbalance dns-query [ vpn-instance vpn-instance-name ] [ chassis chassis-number slot slot-number ] |
显示负载均衡热备份的统计信息 |
display loadbalance hot-backup statistics [ chassis chassis-number slot slot-number ] |
显示负载均衡连接数限制策略配置信息 |
display loadbalance limit-policy [ name policy-name ] |
显示负载均衡策略的信息 |
display loadbalance policy [ name policy-name ] |
显示负载均衡探测模板的信息 |
display loadbalance probe-template [ name template-name ] |
显示SNAT全局策略的信息 |
display loadbalance snat-global-policy |
显示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 server-farm server-farm-name [ name real-server-name port port-number ] |
显示实服务器的统计信息 |
display real-server statistics [ name real-server-name ] [ chassis chassis-number slot slot-number ] |
显示实服务组成员的统计信息 |
display real-server statistics server-farm server-farm-name [ name real-server-name port port-number ] [ chassis chassis-number 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 | read-server-farm | write-server-farm ] [ chassis chassis-number 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 ] [ chassis chassis-number 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 real-server statistics server-farm server-farm-name [ name real-server-name port port-number ] |
清除虚服务器的统计信息 |
reset virtual-server statistics [ virtual-server-name ] |
三台物理服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图2-8 四层服务器负载均衡基本功能配置组网图
(1) 配置接口IP地址和路由保证网络可达,具体配置步骤略。
(2) 配置实服务组
# 创建ICMP类型的NQA模板t1。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(3) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为21、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 21
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为21、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 21
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为21、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 21
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(4) 配置虚服务器
# 创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs type tcp
[Device-vs-tcp-vs] virtual ip address 61.159.4.100
[Device-vs-tcp-vs] default server-farm sf
[Device-vs-tcp-vs] service enable
[Device-vs-tcp-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] 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:
LB limit-policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
SSL server policy:
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
· 三台物理服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
· 为了提高可靠性,由两台负载均衡设备采用双机热备方式进行组网。在这两台负载均衡设备上,要实现会话扩展信息和持续性表项的实时批量备份,以确保主备倒换过程中服务不中断。
图2-9 四层服务器负载均衡双机热备配置组网图
(1) 配置IRF
将两台负载均衡设备配置成一台IRF设备,它们在IRF中的成员编号分别为1和2,有关IRF的相关配置过程略,具体请参考“虚拟化配置指导”中的“IRF”。
(2) 配置以太网冗余接口
# 创建以太网冗余接口Reth1,为其配置IP地址并添加成员接口。
[Device] interface reth 1
[Device-Reth1] ip address 61.159.4.100 24
[Device-Reth1] member interface gigabitethernet 1/2/5/1 priority 20
[Device-Reth1] member interface gigabitethernet 2/2/5/1 priority 10
[Device-Reth1] quit
# 创建以太网冗余接口Reth2,为其配置IP地址并添加成员接口。
[Device] interface reth 2
[Device-Reth2] ip address 192.168.1.100 24
[Device-Reth2] member interface gigabitethernet 1/2/5/2 priority 20
[Device-Reth2] member interface gigabitethernet 2/2/5/2 priority 10
[Device-Reth2] quit
(3) 配置冗余组
# 分别创建四个Track项,各自监视一个以太网接口的状态。
[Device] track 1 interface gigabitethernet 1/2/5/1
[Device] track 2 interface gigabitethernet 1/2/5/2
[Device] track 3 interface gigabitethernet 2/2/5/1
[Device] track 4 interface gigabitethernet 2/2/5/2
# 创建冗余组bkp,并为其添加成员接口Reth1和Reth2。
[Device] redundancy group bkp
[Device-redundancy-group-bkp] member interface reth 1
[Device-redundancy-group-bkp] member interface reth 2
# 创建冗余组主节点1(优先级为100),将其与成员设备1绑定,并关联Track项1和2。
[Device-redundancy-group-bkp] node 1
[Device-redundancy-group-bkp-node-1] priority 100
[Device-redundancy-group-bkp-node-1] bind slot 1
[Device-redundancy-group-bkp-node-1] track 1 interface gigabitethernet 1/2/5/1
[Device-redundancy-group-bkp-node-1] track 2 interface gigabitethernet 1/2/5/2
[Device-redundancy-group-bkp-node-1] quit
# 创建冗余组备节点2(优先级为50),将其与成员设备2绑定,并关联Track项3和4。
[Device-redundancy-group-bkp] node 2
[Device-redundancy-group-bkp-node2] priority 50
[Device-redundancy-group-bkp-node2] bind slot 2
[Device-redundancy-group-bkp-node2] track 3 interface gigabitethernet 2/2/5/1
[Device-redundancy-group-bkp-node2] track 4 interface gigabitethernet 2/2/5/2
[Device-redundancy-group-bkp-node2] quit
[Device-redundancy-group-bkp] quit
(4) 配置会话备份
# 开启会话业务热备份能。
[Device] session synchronization enable
(5) 配置实服务组
# 创建ICMP类型的NQA模板t1。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(6) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为21、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 21
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为21、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 21
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为21、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 21
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(7) 配置虚服务器
# 创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其缺省主用实服务组为sf,分别开启会话扩展信息和持续性表项的备份功能,并开启此虚服务器。
[Device] virtual-server vs type tcp
[Device-vs-tcp-vs] virtual ip address 61.159.4.100
[Device-vs-tcp-vs] default server-farm sf
[Device-vs-tcp-vs] connection-sync enable
[Device-vs-tcp-vs] sticky-sync enable
[Device-vs-tcp-vs] service enable
[Device-vs-tcp-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示冗余组bkp的相关信息。
[Device] 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/2/5/1
2 Positive 255 GE1/2/5/2
Node 2:
Track info:
Track Status Reduced weight Interface
3 Negative 255 GE2/2/5/1
4 Negative 255 GE2/2/5/2
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] 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:
LB limit-policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
SSL server policy:
Connection synchronization: Enabled
Sticky synchronization: Enabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
三台物理服务器Server A、Server B和Server C均可提供HTTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图2-10 七层服务器负载均衡基本功能配置组网图
(1) 配置接口IP地址和路由保证网络可达,具体配置步骤略。
(2) 配置实服务组
# 创建HTTP类型的NQA模板t1。
<Device> system-view
[Device] nqa template http t1
[Device-nqatplt-http-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(3) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为8080、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 8080
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为8080、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 8080
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为8080、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 8080
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(4) 配置虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs type http
[Device-vs-http-vs] virtual ip address 61.159.4.100
[Device-vs-http-vs] default server-farm sf
[Device-vs-http-vs] service enable
[Device-vs-http-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] 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:
LB limit-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
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
· 三台物理服务器Server A、Server B和Server C均可提供HTTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
· 为了在提高用户访问安全性的同时又不增加服务器的负担,在主机与负载均衡设备之间采用通过SSL加密的HTTPS连接,而在负载均衡设备与服务器之间则采用普通的HTTP连接。负载均衡设备在其中需要完成SSL终结的工作,即终结与主机的SSL会话,并与服务器建立TCP连接。
图2-11 七层服务器负载均衡SSL终结配置组网图
(1) 配置接口IP地址
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 61.159.4.100 24
[Device-GigabitEthernet1/2/5/1] quit
[Device] interface gigabitethernet 1/2/5/2
[Device-GigabitEthernet1/2/5/2] ip address 192.168.1.100 24
[Device-GigabitEthernet1/2/5/2] quit
(2) 配置实服务组
# 创建SSL类型的NQA模板t1。
<Device> system-view
[Device] nqa template ssl t1
[Device-nqatplt-ssl-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(3) 配置SSL服务器端策略
# 配置PKI域1(有关PKI域的具体配置,请参见“安全配置指导”中的“PKI”)。
[Device] pki domain 1
[Device-domain-1] quit
# 创建一个名为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,密码为User@1234,服务类型为https,用户角色为network-admin。
[Device] local-user usera
[Device-luser-manage-usera] password simple User@1234
[Device-luser-manage-usera] service-type https
[Device-luser-manage-usera] authorization-attribute user-role network-admin
(4) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为8080、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 8080
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为8080、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 8080
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为8080、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 8080
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(5) 配置虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100、端口号为443,指定其缺省主用实服务组为sf,引用SSL服务器端策略ssp,并开启此虚服务器。
[Device] virtual-server vs type http
[Device-vs-http-vs] virtual ip address 61.159.4.100
[Device-vs-http-vs] port 443
[Device-vs-http-vs] default server-farm sf
[Device-vs-http-vs] ssl-server-policy ssp
[Device-vs-http-vs] service enable
[Device-vs-http-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] 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:
LB limit-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
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
三台物理服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图2-12 四层服务器负载均衡基本功能配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 61.159.4.100 255.255.255.0
[Device-GigabitEthernet1/2/5/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置静态路由
本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。
# 请根据组网图中规划的信息,配置静态路由,本举例假设到达Host的下一跳IP地址为61.159.4.1,实际使用中请以具体组网情况为准,具体配置步骤如下。
[Device] ip route-static 1.1.1.1 24 61.159.4.1
(3) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/1
[Device-security-zone-Untrust] quit
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Trust] quit
(4) 配置安全策略
配置安全策略放行Untrust与Trust安全域、Local与Trust安全域之间的流量,用于用户访问FTP服务器。
# 配置名称为lbrule1的安全策略规则,使用户可以访问FTP服务器,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lbrule1
[Device-security-policy-ip-1-lbrule1] source-zone untrust
[Device-security-policy-ip-1-lbrule1] destination-zone trust
[Device-security-policy-ip-1-lbrule1] destination-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-1-lbrule1] action pass
[Device-security-policy-ip-1-lbrule1] quit
# 配置名称为lblocalout的安全策略规则,使Device可以向FTP服务器发送健康检测报文,具体配置步骤如下。
[Device-security-policy-ip] rule name lblocalout
[Device-security-policy-ip-2-lblocalout] source-zone local
[Device-security-policy-ip-2-lblocalout] destination-zone trust
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] action pass
[Device-security-policy-ip-2-lblocalout] quit
[Device-security-policy-ip] quit
(5) 配置实服务组
# 创建ICMP类型的NQA模板t1。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(6) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为21、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 21
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为21、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 21
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为21、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 21
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(7) 配置虚服务器
# 创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.200,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs type tcp
[Device-vs-tcp-vs] virtual ip address 61.159.4.200
[Device-vs-tcp-vs] default server-farm sf
[Device-vs-tcp-vs] service enable
[Device-vs-tcp-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] display virtual-server
Virtual server: vs
Description:
Type: TCP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.200/32
Virtual IPv6 address: --
Port: 0
Primary server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
LB limit-policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
SSL server policy:
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
· 三台物理服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
· 为了提高可靠性,由两台负载均衡设备采用双机热备方式进行组网。在这两台负载均衡设备上,要实现会话扩展信息和持续性表项的实时批量备份,以确保主备倒换过程中服务不中断。
图2-13 四层服务器负载均衡双机热备配置组网图
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略。
(2) 配置IRF
将Device配置成一台IRF设备,它们在IRF中的成员编号分别为1和2,有关IRF的相关配置过程略,具体请参考“虚拟化配置指导”中的“IRF”。
(3) 配置以太网冗余接口
# 创建以太网冗余接口Reth1,为其配置IP地址并添加成员接口。
[Device] interface reth 1
[Device-Reth1] ip address 61.159.4.100 24
[Device-Reth1] member interface gigabitethernet 1/2/5/1 priority 20
[Device-Reth1] member interface gigabitethernet 2/0/1 priority 10
[Device-Reth1] quit
# 创建以太网冗余接口Reth2,为其配置IP地址并添加成员接口。
[Device] interface reth 2
[Device-Reth2] ip address 192.168.1.100 24
[Device-Reth2] member interface gigabitethernet 1/2/5/2 priority 20
[Device-Reth2] member interface gigabitethernet 2/0/2 priority 10
[Device-Reth2] quit
(4) 配置冗余组
# 分别创建四个Track项,各自监视一个以太网接口的状态。
[Device] track 1 interface gigabitethernet 1/2/5/1
[Device] track 2 interface gigabitethernet 1/2/5/2
[Device] track 3 interface gigabitethernet 2/0/1
[Device] track 4 interface gigabitethernet 2/0/2
# 创建冗余组bkp,并为其添加成员接口Reth1和Reth2。
[Device] redundancy group bkp
[Device-redundancy-group-bkp] member interface reth 1
[Device-redundancy-group-bkp] member interface reth 2
# 创建冗余组主节点1(优先级为100),将其与成员设备1绑定,并关联Track项1和2。
[Device-redundancy-group-bkp] node 1
[Device-redundancy-group-bkp-node-1] priority 100
[Device-redundancy-group-bkp-node-1] bind slot 1
[Device-redundancy-group-bkp-node-1] track 1 interface gigabitethernet 1/2/5/1
[Device-redundancy-group-bkp-node-1] track 2 interface gigabitethernet 1/2/5/2
[Device-redundancy-group-bkp-node-1] quit
# 创建冗余组备节点2(优先级为50),将其与成员设备2绑定,并关联Track项3和4。
[Device-redundancy-group-bkp] node 2
[Device-redundancy-group-bkp-node2] priority 50
[Device-redundancy-group-bkp-node2] bind slot 2
[Device-redundancy-group-bkp-node2] track 3 interface gigabitethernet 2/0/1
[Device-redundancy-group-bkp-node2] track 4 interface gigabitethernet 2/0/2
[Device-redundancy-group-bkp-node2] quit
[Device-redundancy-group-bkp] quit
(5) 配置会话备份
# 开启会话业务热备份能。
[Device] session synchronization enable
(6) 配置实服务组
# 创建ICMP类型的NQA模板t1。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(7) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为21、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 21
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为21、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 21
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为21、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 21
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(8) 配置虚服务器
# 创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.200,指定其缺省主用实服务组为sf,分别开启会话扩展信息和持续性表项的备份功能,并开启此虚服务器。
[Device] virtual-server vs type tcp
[Device-vs-tcp-vs] virtual ip address 61.159.4.200
[Device-vs-tcp-vs] default server-farm sf
[Device-vs-tcp-vs] connection-sync enable
[Device-vs-tcp-vs] sticky-sync enable
[Device-vs-tcp-vs] service enable
[Device-vs-tcp-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示冗余组bkp的相关信息。
[Device] 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/2/5/1
2 Positive 255 GE1/2/5/2
Node 2:
Track info:
Track Status Reduced weight Interface
3 Negative 255 GE2/0/1
4 Negative 255 GE2/0/2
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] display virtual-server
Virtual server: vs
Description:
Type: TCP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.200/32
Virtual IPv6 address: --
Port: 0
Primary server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
LB limit-policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
SSL server policy:
Connection synchronization: Enabled
Sticky synchronization: Enabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
三台物理服务器Server A、Server B和Server C均可提供HTTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图2-14 七层服务器负载均衡基本功能配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 61.159.4.100 255.255.255.0
[Device-GigabitEthernet1/2/5/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置静态路由
本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。
# 请根据组网图中规划的信息,配置静态路由,本举例假设到达Host的下一跳IP地址为61.159.4.1,实际使用中请以具体组网情况为准,具体配置步骤如下。
[Device] ip route-static 1.1.1.1 24 61.159.4.1
(3) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/1
[Device-security-zone-Untrust] quit
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Trust] quit
(4) 配置安全策略
配置安全策略放行Untrust与Local安全域、Local与Trust安全域之间的流量,用于用户访问服务器。
# 配置名称为lblocalin的安全策略规则,使用户可以向Device发送报文,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lblocalin
[Device-security-policy-ip-1-lblocalin] source-zone untrust
[Device-security-policy-ip-1-lblocalin] destination-zone local
[Device-security-policy-ip-1-lblocalin] destination-ip-subnet 61.159.4.0 255.255.255.0
[Device-security-policy-ip-1-lblocalin] action pass
[Device-security-policy-ip-1-lblocalin] quit
# 配置名称为lblocalout的安全策略规则,使Device可以向服务器发送报文,具体配置步骤如下。
[Device-security-policy-ip] rule name lblocalout
[Device-security-policy-ip-2-lblocalout] source-zone local
[Device-security-policy-ip-2-lblocalout] destination-zone trust
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] action pass
[Device-security-policy-ip-2-lblocalout] quit
[Device-security-policy-ip] quit
(5) 配置实服务组
# 创建HTTP类型的NQA模板t1。
[Device] nqa template http t1
[Device-nqatplt-http-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(6) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为8080、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 8080
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为8080、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 8080
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为8080、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 8080
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(7) 配置虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.200,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs type http
[Device-vs-http-vs] virtual ip address 61.159.4.200
[Device-vs-http-vs] default server-farm sf
[Device-vs-http-vs] service enable
[Device-vs-http-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] display virtual-server
Virtual server: vs
Description:
Type: HTTP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.200/32
Virtual IPv6 address: --
Port: 80
Primary server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
LB limit-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
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
· 三台物理服务器Server A、Server B和Server C均可提供HTTP服务,且这三台服务器的硬件配置顺次降低。通过配置服务器负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
· 为了在提高用户访问安全性的同时又不增加服务器的负担,在主机与负载均衡设备之间采用通过SSL加密的HTTPS连接,而在负载均衡设备与服务器之间则采用普通的HTTP连接。负载均衡设备在其中需要完成SSL终结的工作,即终结与主机的SSL会话,并与服务器建立TCP连接。
图2-15 七层服务器负载均衡SSL终结配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 61.159.4.100 255.255.255.0
[Device-GigabitEthernet1/2/5/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置静态路由
本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。
# 请根据组网图中规划的信息,配置静态路由,本举例假设到达Host的下一跳IP地址为61.159.4.1,实际使用中请以具体组网情况为准,具体配置步骤如下。
[Device] ip route-static 1.1.1.1 24 61.159.4.1
(3) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/1
[Device-security-zone-Untrust] quit
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Trust] quit
(4) 配置安全策略
配置安全策略放行Untrust与Local安全域、Local与Trust安全域之间的流量,用于用户访问服务器。
# 配置名称为lblocalin的安全策略规则,使用户可以向Device发送报文,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lblocalin
[Device-security-policy-ip-1-lblocalin] source-zone untrust
[Device-security-policy-ip-1-lblocalin] destination-zone local
[Device-security-policy-ip-1-lblocalin] destination-ip-subnet 61.159.4.0 255.255.255.0
[Device-security-policy-ip-1-lblocalin] action pass
[Device-security-policy-ip-1-lblocalin] quit
# 配置名称为lblocalout的安全策略规则,使Device可以向服务器发送报文,具体配置步骤如下。
[Device-security-policy-ip] rule name lblocalout
[Device-security-policy-ip-2-lblocalout] source-zone local
[Device-security-policy-ip-2-lblocalout] destination-zone trust
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] action pass
[Device-security-policy-ip-2-lblocalout quit
[Device-security-policy-ip] quit
(5) 配置实服务组
# 创建SSL类型的NQA模板t1。
[Device] nqa template ssl t1
[Device-nqatplt-ssl-t1] quit
# 创建实服务组sf,配置其调度算法为加权轮转算法,并指定其健康检测方法为t1。
[Device] server-farm sf
[Device-sfarm-sf] predictor round-robin
[Device-sfarm-sf] probe t1
[Device-sfarm-sf] quit
(6) 配置SSL服务器端策略
# 配置PKI域1(有关PKI域的具体配置,请参见“安全配置指导”中的“PKI”)。
[Device] pki domain 1
[Device-domain-1] quit
# 创建一个名为ssp的SSL服务器端策略,并使用名为1的PKI域,配置验证客户端身份。
[Device] ssl server-policy ssp
[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,并开启HTTPS服务。
[Device] ip https ssl-server-policy ssp
[Device] ip https enable
# 创建本地用户usera,密码为123456TESTplat&!,服务类型为https,用户角色为network-admin。
[Device] local-user usera
[Device-luser-manage-usera] password simple 123456TESTplat&!
[Device-luser-manage-usera] service-type https
[Device-luser-manage-usera] authorization-attribute user-role network-admin
(7) 配置实服务器
# 创建实服务器rs1,配置其IPv4地址为192.168.1.1、端口号为8080、权值为150,并加入实服务组sf。
[Device] real-server rs1
[Device-rserver-rs1] ip address 192.168.1.1
[Device-rserver-rs1] port 8080
[Device-rserver-rs1] weight 150
[Device-rserver-rs1] server-farm sf
[Device-rserver-rs1] quit
# 创建实服务器rs2,配置其IPv4地址为192.168.1.2、端口号为8080、权值为120,并加入实服务组sf。
[Device] real-server rs2
[Device-rserver-rs2] ip address 192.168.1.2
[Device-rserver-rs2] port 8080
[Device-rserver-rs2] weight 120
[Device-rserver-rs2] server-farm sf
[Device-rserver-rs2] quit
# 创建实服务器rs3,配置其IPv4地址为192.168.1.3、端口号为8080、权值为80,并加入实服务组sf。
[Device] real-server rs3
[Device-rserver-rs3] ip address 192.168.1.3
[Device-rserver-rs3] port 8080
[Device-rserver-rs3] weight 80
[Device-rserver-rs3] server-farm sf
[Device-rserver-rs3] quit
(8) 配置虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.200、端口号为443,指定其缺省主用实服务组为sf,引用SSL服务器端策略ssp,并开启此虚服务器。
[Device] virtual-server vs type http
[Device-vs-http-vs] virtual ip address 61.159.4.200
[Device-vs-http-vs] port 443
[Device-vs-http-vs] default server-farm sf
[Device-vs-http-vs] ssl-server-policy ssp
[Device-vs-http-vs] service enable
[Device-vs-http-vs] quit
在三台物理服务器Server A、Server B和Server C上,将缺省网关都配置为192.168.1.100。
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance 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
# 显示所有实服务组的详细信息。
[Device] 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 VPN instance 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
# 显示所有虚服务器的详细信息。
[Device] display virtual-server
Virtual server: vs
Description:
Type: HTTP
State: Active
VPN instance:
Virtual IPv4 address: 61.159.4.200/32
Virtual IPv6 address: --
Port: 443
Default server farm: sf (in use)
Backup server farm:
Sticky:
LB policy:
LB limit-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
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
出方向链路负载均衡功能可在多条链路上分担内网用户访问外部互联网的流量。
如图3-1所示,出方向链路负载均衡包含以下要素:
· LB device(负载均衡设备):负责将内网用户访问外部互联网的流量分发到多条链路。
· Link(链路):运营商提供的实体链路。
· VSIP(Virtual Service IP,虚服务IP):集群对外提供的虚服务IP地址,即内网用户发送报文的目的网段。
· Server IP(服务器IP):服务器IP地址。
出方向链路负载均衡的工作流程如图3-2所示。
出方向链路负载均衡工作流程简述如表3-1所示。
步骤 |
描述 |
(1) |
负载均衡设备接收来自内网服务器的流量 |
(2) |
负载均衡设备依次根据负载均衡策略、持续性方法、就近性算法、调度算法(通常使用带宽算法或最大带宽算法)来选择最佳链路 |
(3) |
负载均衡设备通过选定的最佳链路将流量转发给外网服务器 |
(4) |
负载均衡设备接收来自外网服务器的流量 |
(5) |
负载均衡设备将流量转发给内网服务器 |
出方向链路负载均衡各配置项之间的配置关系如图3-3所示。
· 链路组:将具有相同或相似功能的链路抽象成一个链路组。链路组可被虚服务器或负载均衡动作引用。
· 链路:运营商提供的实体链路。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· 负载均衡动作:制订丢弃、转发或修改报文的具体行为。
· 负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。
· 持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一条链路处理。持续性组可被虚服务器或负载均衡动作引用。
· 参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。
出方向链路负载均衡配置任务如下:
(1) 配置链路组
(2) 配置链路
(3) 配置虚服务器
(4) (可选)配置负载均衡策略
a. 配置负载均衡类
b. 配置负载均衡动作
c. 配置负载均衡策略
(5) (可选)配置持续性组
(6) (可选)配置参数模板
(7) (可选)配置ISP信息
(8) (可选)配置负载均衡DNS缓存表项的老化时间
(9) (可选)配置负载均衡ALG功能
(10) (可选)测试负载均衡效果
(11) (可选)配置负载均衡告警及日志功能
为了便于对链路进行统一管理,可将具有相同或相似功能的链路抽象成一个组,称为链路组。比如,可按不同的运营商划分为ISP1链路组、ISP2链路组和ISP3链路组等。
链路组配置任务如下:
(1) 创建链路组
(2) (可选)添加并配置链路组成员
(3) 配置链路组的调度算法
(4) 配置可用条件
(5) 关闭NAT功能
(6) (可选)配置SNAT功能
(7) (可选)配置温暖上线功能
(8) (可选)配置健康检测功能
(9) (可选)配置故障处理方式
(10) (可选)配置就近性功能
(1) 进入系统视图。
system-view
(2) 创建链路组,并进入链路组视图。
loadbalance link-group link-group-name
(3) (可选)配置链路组的描述信息。
description text
缺省情况下,未配置链路组的描述信息。
设备支持通过两种方式向链路组中添加成员:
· 在链路组视图下,通过本配置创建链路组成员或添加已存在的链路。
· 在链路视图下,指定其所属的链路组。具体配置请参见“3.4.2 创建链路并指定其所属链路组”。
本配置用来指定链路在链路组内的权值、调用优先级、连接参数、健康检测功能以及慢宕功能。基于链路组成员的调度算法会依据这些配置选出当前链路组中最优的链路。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 创建并添加链路组成员,并进入链路组成员视图。
link link-name
若指定名称的链路已存在,则本命令只是在链路组视图下添加已存在的链路。
(4) (可选)配置链路组成员的描述信息。
description text
缺省情况下,未配置链路组成员的描述信息。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 配置链路组成员的权值。
weight weight-value
缺省情况下,链路组成员的权值为100。
(5) 配置链路组成员的调用优先级
priority priority
缺省情况下,链路组成员的调度优先级为4。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 配置链路组成员所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,链路组成员所允许的最大连接速率为0,即不受限制。
(5) 配置链路组成员所允许的最大连接数。
connection-limit max max-number
缺省情况下,链路组成员所允许的最大连接数为0,即不受限制。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 指定链路组成员的健康检测方法。
probe template-name
缺省情况下,未指定链路组成员的健康检测方法。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(5) 配置链路组成员健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 开启链路组成员的慢宕功能。
slow-shutdown enable
缺省情况下,链路组成员的慢宕功能处于关闭状态。
(5) 关闭链路组成员。
shutdown
缺省情况下,链路组成员处于开启状态。
设备根据链路组中配置的调度算法,计算出处理用户请求的链路。设备支持以下链路组的调度算法:
· 加权最小连接算法(基于链路):总是将请求分发给加权活动连接数(当前链路在所有链路组中的活动连接总数/权值)最小的链路。该算法中使用的权值为链路视图下配置的权值。
· 加权最小连接算法(基于链路组成员):总是将请求分发给加权活动连接数(链路组成员在指定链路组中的活动连接数/权值)最小的链路组成员。该算法中使用的权值为链路组成员视图下配置的权值。
· 链路质量算法:根据链路的网络延迟、路由跳数和丢包率综合计算出链路的质量,根据链路质量把新连接依次分发给每条链路,链路质量越好,分配的新连接越多。
· 随机算法:将请求随机分发给某条链路。
· 加权轮转算法:根据链路权值的大小将请求依次分发给每条链路,权值越大,分配的请求越多。
· 带宽算法:根据链路的权值与剩余带宽的比例把请求分发给每条链路。
· 最大带宽算法:总是将请求分发给处于空闲状态且剩余带宽最大的链路。
· 源IP哈希算法:根据源IP地址哈希算法将请求分发给链路。
· 源IP及端口哈希算法:根据源IP地址和端口号哈希算法将请求分发给链路。
· 目的IP哈希算法:根据目的IP地址哈希算法将请求分发给链路。
若配置调度算法为链路质量算法,则需要在就近性视图下配置就近性探测方法、网络延迟权值、路由跳数权值以及丢包率权值。就近性探测模板用来对链路的网络延迟、路由跳数以及丢包率进行探测,网络延迟权值、路由跳数权值和丢包率权值用来指定链路质量计算时各参数所占的比重。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 配置链路组的调度算法。
¡ 基于链路:
predictor { least-connection | link-quality | { bandwidth | max-bandwidth } [ inbound | outbound ] }
¡ 基于链路组成员:
predictor hash address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ]
predictor { least-connection member | random | round-robin }
缺省情况下,链路组的调度算法为加权轮转算法。
(4) 配置链路组中可被调度算法调用的实链路数量限制。
selected-link min min-number max max-number
缺省情况下,链路组中调用优先级最高的链路全部被调度算法调用。
通过配置链路组的可用条件,可将流量在主用链路组和备用链路组之间进行切换:当主用链路组中的链路可用率低于下限时,将流量切换到备用链路组上,以防止链路受到大流量的冲击;待主用链路组中的链路可用率恢复到上限时,再将流量切换回来。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 配置链路组的可用条件。
activate lower lower-percentage upper upper-percentage
缺省情况下,链路组中只要有一个链路可用,该链路组就被认为可用。
出方向链路负载均衡组网通常需要在链路组中关闭NAT功能。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 在链路组中关闭NAT功能。
transparent enable
缺省情况下,链路组中的NAT功能处于开启状态。
SNAT地址池被链路组引用之后,负载均衡设备将把收到报文的源IP地址修改为SNAT地址池中的IP地址后再转发出去。
一个SNAT地址池由多个地址成员组成,每个地址成员最多包含256个IPv4地址或65536个IPv6地址,且不同SNAT地址成员中的IPv4或IPv6地址不允许重叠。
出方向链路负载均衡的SNAT功能使用场景有限,通常不建议使用。
(1) 进入系统视图。
system-view
(2) 创建SNAT地址池,并进入SNAT地址池视图。
loadbalance snat-pool pool-name
(3) (可选)配置SNAT地址池的描述信息。
description text
缺省情况下,未配置SNAT地址池的描述信息。
(4) 添加SNAT地址池的IP地址成员。
(IPv4网络)
ip range start start-ipv4-address end end-ipv4-address
(IPv6网络)
ipv6 range start start-ipv6-address end end-ipv6-address
缺省情况下,未配置SNAT地址池的IP地址成员。
(5) 退回系统视图。
quit
(6) 进入链路组视图。
loadbalance link-group link-group-name
(7) 指定链路引用的SNAT地址池。
snat-pool pool-name
缺省情况下,链路组没有引用任何SNAT地址池。
当向链路组中添加链路时,某些新增的链路无法立即承担大量业务,此时可以开启温暖上线功能。这样,当链路上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 在链路组中开启链路温暖上线功能。
slow-online [ standby-time standby-time ramp-up-time ramp-up-time ]
缺省情况下,链路组中的链路温暖上线功能处于关闭状态。
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 指定链路组的健康检测方法。
probe template-name
缺省情况下,没有指定链路组的健康检测方法。
(4) 配置链路组健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过本配置可以选择链路组的故障处理方式:
· 保持已有连接:不主动断开与故障链路的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到链路组中其它可用的链路上。
· 断开已有连接:主动断开与故障链路的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 配置链路组的故障处理方式。
fail-action { keep | reschedule | reset }
缺省情况下,链路组的故障处理方式为保持已有连接。
就近性功能就是通过对链路进行探测,选出到达目的地的最优链路,从而引导后续流量。具体而言,就是当流量经过负载均衡模块时,如果没有与目的地址相关的就近性信息,则根据调度算法,为该流量选择一条链路,以保证业务的可用性,然后启动就近性探测来生成就近性表项,以引导后续流量。
设备支持在就近性视图下通过引用NQA模板或负载均衡探测模板进行就近性探测,并根据探测结果和就近性参数的配置生成就近性表项。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
配置就近性功能时,需要先在就近性视图下配置就近性参数,然后在链路组中开启就近性功能。
(1) 进入系统视图。
system-view
(2) 创建负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template icmp template-name
(3) 配置探测周期。
frequency interval
缺省情况下,探测周期为300秒。
(4) 配置探测报文的应答超时时间。
timeout timeout-value
缺省情况下,探测报文的应答超时时间为3秒。
(1) 进入系统视图。
system-view
(2) 进入就近性视图。
loadbalance proximity [ vpn-instance vpn-instance-name ]
(3) 为TCP报文指定就近性探测方法。
match [ match-id ] { tcp } { lb-probe lb-template | probe nqa-template }
缺省情况下,未指定就近性探测方法。
(4) 指定缺省就近性探测方法。
match default { lb-probe lb-template | probe nqa-template }
缺省情况下,未指定缺省就近性探测方法。
(5) 配置IPv4就近性表项的掩码长度。
ip mask { mask-length | mask }
缺省情况下,IPv4就近性表项的掩码长度为24。
(6) 配置IPv6就近性表项的前缀长度。
ipv6 prefix prefix-length
缺省情况下,IPv6就近性表项的前缀长度为96。
(7) 配置就近性计算的网络延迟权值。
rtt weigt rtt-weight
缺省情况下,就近性计算的网络延迟权值为100。
(8) 配置就近性计算的路由器跳数权值。
ttl weight ttl-weight
缺省情况下,就近性计算的路由器跳数权值为100。
(9) 配置就近性计算的带宽权值。
bandwidth { inbound | outbound } weight bandwidth-weight
缺省情况下,就近性计算的出、入方向带宽权值均为100。
(10) 配置就近性计算的成本权值。
cost weight cost-weight
缺省情况下,就近性计算的成本权值为100。
(11) 配置就近性计算的丢包率权值。
packet-loss-rate weight packet-loss-rate-weight
缺省情况下,就近性计算的丢包率权值为0。
(12) 配置就近性表项的老化时间。
timeout timeout-value
缺省情况下,就近性表项的老化时间为60秒。
(13) 配置就近性表项的最大个数。
max-number number
缺省情况下,就近性表项的最大个数为65535。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 开启就近性功能。
proximity enable
缺省情况下,链路组的就近性功能处于关闭状态。
链路是运营商提供的实体链路。一条链路可以属于多个链路组,一个链路组也可以包含多条链路。
链路配置任务如下:
(1) 创建链路并指定其所属链路组
(2) 配置链路的IP地址或出接口
请选择以下一项进行配置:
(3) 配置权值和调用优先级
(4) (可选)配置带宽和连接参数
(5) (可选)配置健康检测功能
(6) (可选)配置慢宕功能
(7) (可选)配置就近性计算的链路成本
(8) (可选)配置链路的带宽繁忙比与最大期望带宽
(9) (可选)关闭链路所属VPN实例的继承功能
(1) 进入系统视图。
system-view
(2) 创建链路,并进入链路视图。
loadbalance link link-name
(3) (可选)配置链路的描述信息。
description text
缺省情况下,未配置链路的描述信息。
(4) 指定链路所属的链路组。
link-group link-group-name
缺省情况下,链路不属于任何链路组。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路出口方向(外网方向)的下一跳IP地址。
(IPv4网络)
router ip ipv4-address
(IPv6网络)
router ipv6 ipv6-address
缺省情况下,未配置链路出口方向的下一跳IP地址。
在出口链路使用PPPoE动态获取IP地址的应用场景下,通过本配置,负载均衡设备可从指定接口动态获取链路通往外网的下一跳IP地址。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 链路对应的出接口。
router interface interface-type interface-number
缺省情况下,未配置链路对应的出接口。
通过本配置可以调整链路的加权轮转和加权最小连接这两种调度算法所使用的权值,以及链路在链路组中的调用优先级。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路的权值。
weight weight-value
缺省情况下,链路的权值为100。
(4) 配置链路的调用优先级。
priority priority
缺省情况下,链路的调用优先级为4。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value
缺省情况下,链路所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置链路所允许的最大连接数。
connection-limit max max-number
缺省情况下,链路所允许的最大连接数为0,即不受限制。
(5) 配置链路所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,链路所允许的最大连接速率为0,即不受限制。
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路的健康检测方法。
probe template-name
缺省情况下,没有指定链路的健康检测方法。
(4) 配置链路健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过shutdown命令可以立即中断链路的已有连接,而慢宕则不会立即中断链路的已有连接,而是让其自然老化,并且不再建立新的连接。慢宕功能需要与shutdown命令配合使用,即在开启了慢宕功能之后再关闭链路,该链路会开始慢宕。
本命令仅对下一次shutdown命令生效。比如:开启慢宕功能并关闭链路之后,如果再关闭慢宕功能,则该链路将保持慢宕状态,而不会立即中断已有连接。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 开启链路的慢宕功能。
slow-shutdown enable
缺省情况下,链路的慢宕功能处于关闭状态。
(4) 关闭链路。
shutdown
缺省情况下,链路处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置就近性计算的链路成本。
cost cost-value
缺省情况下,就近性计算的链路成本为0。
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的链路流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,进入空闲状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法、最大带宽算法和就近性中剩余带宽的计算。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路的带宽繁忙比。
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,链路的总带宽繁忙比为70,带宽繁忙恢复比例为60。
(4) 配置链路最大期望带宽。
max-bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路所允许的期望最大总带宽、最大上行期望带宽和最大下行期望带宽均为0,即不限制。
若在链路视图下执行vpn-instance命令指定了链路所属的VPN实例,则链路属于该VPN实例。若未指定链路所属的VPN实例,当链路所属VPN实例的继承功能处于开启状态时,链路所属的VPN实例与虚服务器所属的VPN实例一致;当该功能处于关闭状态时,链路属于公网。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 关闭链路所属VPN实例的继承功能。
inherit vpn-instance disable
缺省情况下,链路所属VPN实例的继承功能处于开启状态。
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
链路负载均衡支持的虚服务器类型为LINK-IP。
虚服务器配置任务如下:
(1) 创建虚服务器
(2) 配置VSIP和端口号
(3) (可选)指定虚服务器所属的VPN
(4) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 指定链路组
¡ 引用负载均衡策略
(5) (可选)引用参数模板
(6) (可选)配置带宽和连接参数
(7) (可选)配置带宽繁忙保护功能
(8) (可选)开启链路的接口带宽统计功能
(9) (可选)配置热备份功能
(10) 开启虚服务器
(1) 进入系统视图。
system-view
(2) 创建Link-IP类型的虚服务器,并进入虚服务器视图。
virtual-server virtual-server-name type link-ip
(3) (可选)配置虚服务器的描述信息。
description text
缺省情况下,未配置虚服务器的描述信息。
(1) 进入系统视图。
system-view
(2) 进入LINK-IP类型的虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器的IP地址。
(IPv4网络)
virtual ip address ipv4-address [ mask-length | mask ]
(IPv6网络)
virtual ipv6 address ipv6-address [ prefix-length ]
缺省情况下,虚服务器没有IP地址。
(4) 配置虚服务器的端口号。
port port-number
缺省情况下,LINK-IP类型虚服务器的端口号为0(表示任意端口号)。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器所属的VPN。
vpn-instance vpn-instance-name
缺省情况下,虚服务器属于公网。
当主用链路组可用(该链路组存在且有可用的链路)时,虚服务器通过主用链路组进行转发;当主用链路组不可用而备用链路组可用时,虚服务器通过备用链路组进行转发。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定链路组。
default link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ]
缺省情况下,未指定链路组。
虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的负载均衡策略。
lb-policy policy-name
缺省情况下,虚服务器没有引用任何负载均衡策略。
虚服务器只能引用与自身类型相关的策略模板,如:LINK-IP类型的虚服务器,只能引用链路类型的策略模板。
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的参数模板。
parameter ip profile-name
缺省情况下,虚服务器没有引用任何参数模板。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value
缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置虚服务器所允许的最大连接数。
connection-limit max max-number
缺省情况下,虚服务器所允许的最大连接数为0,即不受限制。
(5) 配置虚服务器所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,虚服务器所允许的最大连接速率为0,即不受限制。
带宽繁忙保护功能就是对链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比后,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发。
带宽繁忙保护功能仅在链路的接口带宽统计功能开启的情况下生效。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚链路的带宽繁忙保护功能。
bandwidth busy-protection enable
缺省情况下,链路的带宽繁忙保护功能处于关闭状态。
链路的带宽缺省由负载均衡模块自行统计,通过本配置可以使链路的带宽由接口来统计。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server vritual-server-name
(3) 开启链路的接口带宽统计功能。
bandwidth interface statistics enable
缺省情况下,未开启链路的接口带宽统计功能。
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
在VRRP组网中,开启虚服务器的持续性表项备份功能时必须指定global参数,否则配置不生效。
若设备的配置发生以下变化,则设备会删除当前已有的持续性表项,后续流量将会重新触发生成新的持续性表项。
· 关闭持续性表项备份功能
· 持续性表项备份由组间备份切换为全局备份
· 持续性表项备份由全局备份切换为组间备份
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器的会话扩展信息备份功能。
connection-sync enable
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态。
(4) 开启虚服务器的持续性表项备份功能。
sticky-sync enable [ global ]
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态。
配置完虚服务器后,需要将其开启后才能进入工作状态。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器。
service enable
缺省情况下,虚服务器处于关闭状态。
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
负载均衡类配置任务如下:
(1) 创建负载均衡类
(2) 创建匹配规则
请至少选择以下一项进行配置:
(1) 进入系统视图。
system-view
(2) 创建链路类型的负载均衡类,并进入负载均衡类视图。
loadbalance class class-name type link-generic [ match-all | match-any ]
创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡类的描述信息。
description text
缺省情况下,未配置负载均衡类的描述信息。
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建嵌套类的匹配规则。
match [ match-id ] class class-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建源IP地址类型的匹配规则。
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建目的IP地址类型的匹配规则。
match [ match-id ] destination { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建ACL类型的匹配规则。
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建基于入接口的匹配规则。
match [ match-id ] interface interface-type interface-number
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建基于用户的匹配规则。
match [ match-id ] [ identity-domain domain-name ] user user-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建基于用户组的匹配规则。
match [ match-id ] [ identity-domain domain-name ] user-group user-group-name
负载均衡设备会将域名与IP地址的对应关系记录在DNS缓存表中,当业务流量匹配DNS缓存表中的IP地址时,查找出对应的域名。若查找出的域名与匹配规则中的域名一致,则根据匹配规则将匹配不同域名的报文在不同的负载均衡动作流程中处理。
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建域名类型的匹配规则。
match [ match-id ] destination domain-name domain-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建ISP类型的匹配规则。
match [match-id ] isp isp-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建应用类型的匹配规则。
match [ match-id ] app-group group-name
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
在配置转发类动作时,配置报文的转发模式为转发和配置指导转发的链路组互斥。当配置了其中一条后,另一条的配置将被自动取消。
负载均衡动作配置任务如下:
(1) 创建负载均衡动作
(2) (可选)配置转发类动作
请从配置报文的转发模式为转发和指定指导转发的实服务组中选择一项进行配置。
¡ (可选)配置查找链路失败时继续匹配下一条引用规则
¡ (可选)配置繁忙处理方式为继续匹配下一条引用规则
(3) (可选)配置修改类动作
(1) 进入系统视图。
system-view
(2) 创建链路类型的负载均衡动作,并进入负载均衡动作视图。
loadbalance action action-name type link-generic
创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡动作的描述信息。
description text
缺省情况下,未配置负载均衡动作的描述信息。
设备支持配置四种转发类动作,包括:
· 报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。
· 指定指导转发的链路组:当主用链路组可用(该链路组存在且有可用的链路)时,使用主用链路组指导转发;当主用链路组不可用而备用链路组可用时,使用备用链路组指导转发。
· 查找链路失败时继续匹配下一条引用规则:当该动作在策略中被引用时,在转发中根据该配置判断当前动作查找可用链路失败时,可继续顺序匹配策略中的下一条引用规则。
· 配置繁忙处理方式为继续匹配下一条引用规则:当该动作在负载均衡策略中被引用时,判断当前动作查找链路全部繁忙时,可继续顺序匹配策略中的下一条引用规则。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为转发。
forward all
缺省情况下,报文转发模式为丢弃。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 指定指导转发的链路组。
link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ]
缺省情况下,未指定指导转发的链路组。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置查找链路失败时继续匹配下一条引用规则。
fallback-action continue
缺省情况下,根据当前动作查找可用链路失败时,不再继续匹配下一条引用规则。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置繁忙处理方式为继续匹配下一条引用规则。
busy-action continue
缺省情况下,繁忙处理方式为强制调度,即无论链路是否繁忙,依然为其分配流量。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置发往服务器的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往服务器的IP报文中的ToS字段。
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
负载均衡策略配置任务如下:
(1) 创建负载均衡策略
(2) 指定负载均衡动作
(3) 指定缺省负载均衡动作
(1) 进入系统视图。
system-view
(2) 创建链路类型的负载均衡策略,并进入负载均衡策略视图。
loadbalance policy policy-name type link-generic
创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡策略的描述信息。
description text
缺省情况下,未配置负载均衡策略的描述信息。
链路类型的负载均衡策略只能引用链路类型的负载均衡类和动作。
(1) 进入系统视图。
system-view
(2) 进入负载均衡策略视图。
loadbalance policy policy-name
(3) 为负载均衡类指定负载均衡动作。
class class-name [ insert-before before-class-name ] action action-name
缺省情况下,没有为任何负载均衡类指定负载均衡动作。
不同的负载均衡类可以与同一负载均衡动作组成匹配规则。
链路类型的负载均衡策略只能用链路类型的负载均衡动作作为其缺省动作。
(1) 进入系统视图。
system-view
(2) 进入负载均衡策略视图。
loadbalance policy policy-name
(3) 指定缺省负载均衡动作。
default-class action action-name
缺省情况下,未指定缺省负载均衡动作。
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一链路处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了同一链路之后,后续包都会沿用这个选择结果。
持续性组配置任务如下:
(1) 创建持续性组
(2) 配置IP持续性方法
(3) (可选)配置持续性表项超时时间
(4) (可选)开启匹配持续性表项的会话不受连接数限制影响功能
(5) (可选)开启持续性处理优先于繁忙功能
(1) 进入系统视图。
system-view
(2) 创建地址端口类型的持续性组,并进入持续性组视图。
sticky-group group-name type address-port
创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置持续性组的描述信息。
description text
缺省情况下,未配置持续性组的描述信息。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 配置IP持续性方法。
(IPv4网络)
ip [ port ] { both | destination | source } [ mask mask-length ]
(IPv6网络)
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ]
缺省情况下,未配置IP持续性方法。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 配置持续性表项的超时时间。
timeout timeout-value
缺省情况下,持续性表项的超时时间为60秒。
开启该功能后,如果该连接匹配了已有的持续性表项,将不受链路带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 开启匹配持续性表项的会话不受连接数限制影响功能。
override-limit enable
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响。
开启持续性处理优先于繁忙功能后,在持续性表项老化之前,无论实链路是否处于繁忙状态,设备都会依据持续性表项为其分配流量。
若持续性处理优先于繁忙功能处于关闭状态,则在持续性表项老化之前,设备会依据持续性表项仅为处于正常状态的链路分配流量。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 开启持续性处理优先于繁忙功能。
sticky-over-busy enable
缺省情况下,持续性处理优先于繁忙功能处于关闭状态。
通过配置参数模板可以制订对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。
(1) 进入系统视图。
system-view
(2) 创建IP类型的参数模板,并进入参数模板视图。
parameter-profile profile-name type ip
创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置参数模板的描述信息。
description text
缺省情况下,参数模板没有描述信息。
(1) 进入系统视图。
system-view
(2) 进入IP类型的参数模板视图。
parameter-profile profile-name
(3) 配置发往客户端的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往客户端的IP报文中的ToS字段。
本功能主要配置ISP(Internet Sevice Provider,互联网服务提供商)的IP地址信息,该地址信息可以在ISP类型的匹配规则中进行引用。当目的地址匹配了指定的ISP地址信息后,可根据配置执行相应的负载均衡动作。设备支持通过以下三种方式配置ISP信息:
· 手工配置ISP信息:由用户手工指定ISP地址信息。
· 自动更新ISP信息:开启ISP自动更新功能后,设备会依据运营商的WHOIS服务器管理标识定期向指定的WHOIS服务器查询ISP地址信息。
· 导入ISP文件:由用户手工导入ISP文件。设备仅允许导入.tp格式的文件。
配置ISP信息分为手工配置ISP信息、自动更新ISP信息和导入ISP文件,三者既可单独配置,也可同时配置。
(1) 进入系统视图。
system-view
(2) 创建ISP,并进入ISP视图。
loadbalance isp name isp-name
(3) 配置ISP的IP地址信息。
(IPv4网络)
ip address ipv4-address { mask-length | mask }
(IPv6网络)
ipv6 address ipv6-address prefix-length
缺省情况下,未配置ISP的IP地址信息。
同一ISP中不允许配置完全相同的网段。
(4) (可选)配置ISP的描述信息。
description text
缺省情况下,未配置ISP的描述信息。
(1) 进入系统视图。
system-view
(2) 创建ISP,并进入ISP视图。
loadbalance isp name isp-name
(3) 配置当前ISP的WHOIS服务器管理标识
whois-mntner mntner-name
缺省情况下,未配置当前ISP的WHOIS服务器管理标识。
同一ISP下,最多允许手动配置10个WHOIS服务器管理标识。
(4) 退回系统视图。
quit
(5) 开启ISP自动更新功能。
loadbalance isp auto-update enable
缺省情况下,ISP自动更新功能处于关闭状态。
(6) 配置ISP自动更新的频率。
loadbalance isp auto-update frequency { per-day | per-week | per-month }
缺省情况下,ISP自动更新的频率为每周一次。
(7) 配置ISP自动更新所查询的WHOIS服务器。
loadbalance isp auto-update whois-server { domain domain-name | ip ip-address }
缺省情况下,未配置ISP自动更新所查询的WHOIS服务器。
(1) 进入系统视图。
system-view
(2) 导入ISP文件。
loadbalance isp file isp-file-name
DNS缓存表项用来记录域名与链路出口方向(外网方向)下一跳IP地址的映射关系。通过本配置可以指定DNS缓存表项的老化时间。
(1) 进入系统视图。
system-view
(2) 配置负载均衡DNS缓存表项的老化时间。
loadbalance dns-cache aging-time aging-time
缺省情况下,负载均衡DNS缓存表项的老化时间为60分钟。
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
(1) 进入系统视图。
system-view
(2) 开启指定协议的负载均衡ALG功能。
loadbalance alg { dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }
缺省情况下,ftp、dns、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
(3) 开启所有协议的负载均衡ALG功能。
loadbalance alg all-enable
缺省情况下,dns、ftp、pptp、rtsp和icmp-error协议的负载均衡ALG功能均处于开启状态。
用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。
可在任意视图下执行本命令,测试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 [ chassis chassis-number 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 [ chassis chassis-number slot slot-number ]
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启负载均衡的告警功能。
snmp-agent trap enable loadbalance
缺省情况下,负载均衡的告警功能处于开启状态。
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括基本日志、NAT日志和链路带宽繁忙日志。
通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:
· 链路或链路组的状态变化。
· 链路的健康检测结果发生变化。
· 虚服务器或链路的连接数达到上限或者恢复到正常范围内。
· 虚服务器或链路的连接速率达到上限或者恢复到正常范围内。
· 虚服务器引用的缺省链路组主备切换。
· 负载均衡动作引用的链路组主备切换。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
(1) 进入系统视图。
system-view
(2) 开启负载均衡基本日志功能。
loadbalance log enable base
缺省情况下,负载均衡基本日志功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡NAT日志功能。
loadbalance log enable nat
缺省情况下,负载均衡NAT日志功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡链路带宽繁忙日志功能。
loadbalance log enable bandwidth-busy
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后出方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除出方向链路负载均衡的统计信息。
表3-2 链路负载均衡显示和维护
配置 |
命令 |
显示负载均衡动作的信息 |
display loadbalance action [ name action-name ] |
显示负载均衡类的信息 |
display loadbalance class [ name class-name ] |
显示负载均衡热备份的统计信息 |
display loadbalance hot-backup statistics [ chassis chassis-number 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 ] ] [ chassis chassis-number slot slot-number ] |
显示参数模板的信息 |
display parameter-profile [ name parameter-name ] |
显示链路的信息 |
display loadbalance link [ brief | name link-name ] |
显示链路组成员的信息 |
display loadbalance link link-group link-group-name [ name link-name ] |
显示链路的统计信息 |
display loadbalance link statistics [ name link-name] [ chassis chassis-number slot slot-number ] |
显示链路组成员的统计信息 |
display loadbalance link statistics link-group link-group-name [ name link-name ] [ chassis chassis-number 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 ] [ chassis chassis-number 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 ] [ chassis chassis-number slot slot-number ] |
显示所有协议的负载均衡ALG状态 |
|
显示DNS缓存信息 |
display loadbalance dns-cache [ vpn-instance vpn-instance-name ] [ domain-name domain-name ] [ chassis chassis-number 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 loadbalance link statistics link-group link-group-name [ name link-name ] |
清除虚服务器的统计信息 |
reset virtual-server statistics [ virtual-server-name ] |
清除DNS缓存信息 |
reset loadbalance dns-cache [ vpn-instance vpn-instance-name ] [ domain-name domain-name ] |
用户从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由器跳数、带宽和成本均相同,但Link 1的网络延迟小于Link 2。通过配置链路负载均衡,使Host访问Server时优先选择这两条链路中的最优链路。
图3-4 出方向链路负载均衡基本组网配置组网图
(1) 配置接口IP地址
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 10.1.1.1 24
[Device-GigabitEthernet1/2/5/1] quit
[Device] interface gigabitethernet 1/2/5/2
[Device-GigabitEthernet1/2/5/2] ip address 20.1.1.1 24
[Device-GigabitEthernet1/2/5/2] quit
(2) 配置链路组
# 创建ICMP类型的NQA模板t1,并配置每次探测结果发送机制。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] reaction trigger per-probe
[Device-nqatplt-icmp-t1] quit
# 指定缺省就近性探测方法为t1,并配置就近性计算的网络延迟权值为200。
[Device] loadbalance proximity
[Device-lb-proximity] match default probe t1
[Device-lb-proximity] rtt weight 200
[Device-lb-proximity] quit
# 创建链路组lg,并开启就近性功能。
[Device] loadbalance link-group lg
[Device-lb-lgroup-lg] proximity enable
# 关闭NAT功能。
[Device-lb-lgroup-lg] transparent enable
[Device-lb-lgroup-lg] quit
(3) 配置链路
# 创建链路link1,配置其下一跳IPv4地址为10.1.1.2,并加入链路组lg。
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] link-group lg
[Device-lb-link-link1] quit
# 创建链路link2,配置其下一跳IPv4地址为20.1.1.2,并加入链路组lg。
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] link-group lg
[Device-lb-link-link2] quit
(4) 配置虚服务器
# 创建LINK-IP类型的虚服务器vs,配置其VSIP为通配0.0.0.0/0,指定其缺省主用链路组为lg,并开启此虚服务器。
[Device] virtual-server vs type link-ip
[Device-vs-link-ip-vs] virtual ip address 0.0.0.0 0
[Device-vs-link-ip-vs] default link-group lg
[Device-vs-link-ip-vs] service enable
[Device-vs-link-ip-vs] quit
# 显示所有链路的简要信息。
[Device] display loadbalance link brief
Link Route IP State VPN instance Link group
link1 10.1.1.2 Active lg
link2 20.1.1.2 Active lg
# 显示所有链路组的详细信息。
[Device] 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
# 显示所有虚服务器的详细信息。
[Device] 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就近性表项的简要信息。
[Device] display loadbalance proximity ip
(*) - Real server object
Slot 1:
IPv4 address/Mask length Timeout Best link
------------------------------------------------------------
10.1.0.0/24 50 link1
用户从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由器跳数、带宽和成本均相同,但Link 1的网络延迟小于Link 2。通过配置链路负载均衡,使Host访问Server时优先选择这两条链路中的最优链路。
图3-5 出方向链路负载均衡基本组网配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 10.1.1.1 255.255.255.0
[Device-GigabitEthernet1/2/5/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/1
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Untrust] quit
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/2/5/3
[Device-security-zone-Trust] quit
(3) 配置安全策略
配置安全策略放行Trust与Untrust安全域、Local与Untrust安全域之间的流量,用于用户访问外网服务器。
# 配置名称为lbrule1的安全策略规则,使用户可以访问外网服务器,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lbrule1
[Device-security-policy-ip-1-lbrule1] source-zone trust
[Device-security-policy-ip-1-lbrule1] destination-zone untrust
[Device-security-policy-ip-1-lbrule1] source-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-1-lbrule1] action pass
[Device-security-policy-ip-1-lbrule1] quit
# 配置名称为lblocalout的安全策略规则,使Device可以向链路下一跳发送健康检测报文,具体配置步骤如下。
[Device-security-policy-ip] rule name lblocalout
[Device-security-policy-ip-2-lblocalout] source-zone local
[Device-security-policy-ip-2-lblocalout] destination-zone untrust
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 10.1.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 20.1.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] action pass
[Device-security-policy-ip-2-lblocalout] quit
[Device-security-policy-ip] quit
(4) 配置链路组
# 创建ICMP类型的NQA模板t1,并配置每次探测结果发送机制。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] reaction trigger per-probe
[Device-nqatplt-icmp-t1] quit
# 指定缺省就近性探测方法为t1,并配置就近性计算的网络延迟权值为200。
[Device] loadbalance proximity
[Device-lb-proximity] match default probe t1
[Device-lb-proximity] rtt weight 200
[Device-lb-proximity] quit
# 创建链路组lg,开启就近性功能,关闭NAT功能。
[Device] loadbalance link-group lg
[Device-lb-lgroup-lg] proximity enable
[Device-lb-lgroup-lg] transparent enable
[Device-lb-lgroup-lg] quit
(5) 配置链路
# 创建链路link1和link2,配置link1的下一跳IPv4地址为10.1.1.2,link2的下一跳IPv4地址为20.1.1.2,并加入链路组lg。
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] link-group lg
[Device-lb-link-link1] quit
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] link-group lg
[Device-lb-link-link2] quit
(6) 配置虚服务器
# 创建LINK-IP类型的虚服务器vs,配置其VSIP为通配0.0.0.0/0,指定其缺省主用链路组为lg,并开启此虚服务器。
[Device] virtual-server vs type link-ip
[Device-vs-link-ip-vs] virtual ip address 0.0.0.0 0
[Device-vs-link-ip-vs] default link-group lg
[Device-vs-link-ip-vs] service enable
[Device-vs-link-ip-vs] quit
# 显示所有链路的简要信息。
[Device] display loadbalance link brief
Link Route IP State VPN instance Link group
link1 10.1.1.2 Active lg
link2 20.1.1.2 Active lg
# 显示所有链路组的详细信息。
[Device] 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
# 显示所有虚服务器的详细信息。
[Device] 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就近性表项的简要信息。
[Device] display loadbalance proximity ip
(*) - Real server object
Slot 1:
IPv4 address/Mask length Timeout Best link
------------------------------------------------------------
10.1.0.0/24 50 link1
如图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应答报文。内网用户收到应答报文后,就可以访问该外网服务器了。
DNS透明代理功能配置任务如下:
(1) 配置DNS透明代理
(2) 配置DNS服务器池
(3) 配置DNS服务器池的调度算法
(4) 配置链路
(5) (可选)配置负载均衡策略
a. 配置负载均衡类
b. 配置负载均衡动作
c. 配置负载均衡策略
(6) (可选)配置持续性组
(7) (可选)配置负载均衡日志功能
通过配置DNS透明代理,负载均衡可以对匹配上DNS透明代理的DNS请求报文进行负载均衡处理。
如果同时指定DNS服务器池和引用负载均衡策略,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给DNS服务器池处理。
DNS透明代理配置任务如下:
(1) 创建DNS透明代理
(3) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 引用负载均衡策略
(4) (可选)指定DNS透明代理所属的VPN实例
(5) (可选)开启带宽繁忙保护功能
(6) (可选)配置热备份功能
(7) 开启DNS透明代理功能
(1) 进入系统视图。
system-view
(2) 创建DNS透明代理,并进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name type udp
在同时配置DNS透明代理功能和服务器负载均衡功能的情况下,为了使DNS透明代理功能正常使用,请避免将DNS透明代理的IP地址和端口号与UDP类型的虚服务器配置为同一IP地址和端口号。
建议将DNS透明代理的IP地址配置为全0地址,即对所有的DNS请求报文均进行DNS透明代理处理。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 配置DNS透明代理的IP地址。
(IPv4网络)
ip address ipv4-address [ mask-length | mask ]
(IPv6网络)
ipv6 address ipv6-address [ prefix-length ]
缺省情况下,未配置DNS透明代理的IP地址。
(4) 配置DNS透明代理的端口号。
port port-number
缺省情况下,DNS透明代理的端口号为53。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 指定DNS透明代理引用的缺省DNS服务器池。
default dns-server-pool pool-name [ sticky sticky-name ]
缺省情况下,未指定DNS透明代理引用的缺省DNS服务器池。
通过在DNS透明代理视图下引用负载均衡策略,能够细化DNS请求的粒度。根据策略中的负载均衡类,对不同的报文内容进行不同的负载均衡动作处理,从而有效地丰富了DNS透明代理的负载功能,实现对链路带宽资源的合理利用。有关负载均衡策略的详细配置,请参见“4.9 配置负载均衡策略”。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 指定DNS透明代理引用的负载均衡策略。
lb-policy policy-name
缺省情况下,DNS透明代理未引用负载均衡策略。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 指定DNS透明代理所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DNS透明代理所属的VPN实例为公网。
带宽繁忙保护功能就是对DNS服务器对应链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比(当前带宽与最大带宽的百分比)后,新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发。开启带宽繁忙保护功能后,DNS透明代理设备选择DNS服务器时,会检查DNS服务器使用的链路的带宽繁忙比是否超过配置的带宽繁忙比,如果超出则不选择该DNS服务器。
当DNS服务器池中的所有DNS服务器对应的链路都达到了带宽繁忙比例时,带宽繁忙保护功能自动失效;只要此DNS服务器池中有任何一个DNS服务器对应链路恢复到配置的带宽繁忙比例以下,则该DNS服务器重新参与调度,带宽繁忙保护功能自动生效。有关链路带宽繁忙比的详细配置,请参见“4.6.8 配置链路的带宽繁忙比与最大期望带宽”。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 开启DNS服务器对应链路的带宽繁忙保护功能。
bandwidth busy-protection enable
缺省情况下,DNS服务器对应的链路带宽繁忙保护功能处于关闭状态。
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在DNS透明代理下开启会话扩展信息备份功能和持续性信息备份功能。会话扩展信息备份功能主要备份负载均衡业务的会话表项;持续性信息备份功能主要备份持续性表项。
在开启DNS透明代理的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
在VRRP组网中,开启虚服务器的持续性表项备份功能时必须指定global参数,否则配置不生效。
若设备的配置发生以下变化,则设备会删除当前已有的持续性表项,后续流量将会重新触发生成新的持续性表项。
· 关闭持续性表项备份功能
· 持续性表项备份由组间备份切换为全局备份
· 持续性表项备份由全局备份切换为组间备份
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 开启DNS透明代理的会话扩展信息备份功能。
connection-sync enable
缺省情况下,DNS透明代理的会话扩展信息备份功能处于关闭状态。
(4) 开启DNS透明代理的持续性信息备份功能。
sticky-sync enable [ global ]
缺省情况下,DNS透明代理的持续性信息备份功能处于关闭状态。
配置完DNS透明代理后,需要将其开启后才能进入工作状态。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 开启DNS透明代理功能。
service enable
缺省情况下,DNS透明代理功能处于关闭状态。
通过配置DNS服务池,可对具有相同或相似功能的DNS服务器进行统一管理。
(1) 进入系统视图。
system-view
(2) 创建DNS服务器池,并进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) (可选)配置DNS服务器池的描述信息。
description text
缺省情况下,未配置DNS服务器池的描述信息。
设备支持通过两种方式向DNS服务器池中添加成员:
· 在DNS服务器池视图下,通过本配置创建DNS服务器池成员或添加已存在的DNS服务器。
· 在DNS服务器视图下,指定其所属的DNS服务器池。具体配置请参见“4.5.2 创建DNS服务器并指定其所属DNS服务器池”。
本配置用来指定DNS服务器在DNS服务器池内的权值、调用优先级、连接参数、健康检测功能以及慢宕功能。基于DNS服务器池成员的调度算法会依据这些配置选出当前DNS服务器池中最优的DNS服务器。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 创建并添加DNS服务器池成员,并进入DNS服务器池成员视图。
dns-server dns-server-name port port-number
若指定名称的DNS服务器已存在,则本命令只是在DNS服务器池视图下添加已存在的DNS服务器。
(4) (可选)配置DNS服务器池成员的描述信息。
description text
缺省情况下,未配置DNS服务器池成员的描述信息。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 进入DNS服务器池成员视图。
dns-server dns-server-name port port-number
(4) 配置DNS服务器池成员的权值。
weight weight-value
缺省情况下,DNS服务器池成员的权值为100。
(5) 配置DNS服务器池成员的调用优先级。
priority priority
缺省情况下,DNS服务器池成员的调度优先级为4。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 进入DNS服务器池成员视图。
dns-server dns-server-name port port-number
(4) 指定DNS服务器池成员的健康检测方法。
probe template-name
缺省情况下,未指定DNS服务器池成员的健康检测方法。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(5) 配置DNS服务器池成员健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
负载均衡设备根据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服务器。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 配置DNS服务池的调度算法。
¡ predictor hash address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ]
¡ predictor { random | round-robin | { bandwidth | max-bandwidth } [ inbound | outbound ] }
缺省情况下,DNS服务器池的调度算法为加权轮转算法。
(4) 配置DNS服务器池可被调度算法调用的DNS服务器数量限制。
selected-server min min-number max max-number
缺省情况下,DNS服务器池中调用优先级最高的DNS服务器全部被调度算法调用。
通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。
用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 指定DNS服务器池的健康检测方法。
probe template-name
缺省情况下,未指定DNS服务器池的健康检测方法。
(4) 配置DNS服务器池健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过配置DNS服务器,指定负载均衡设备上处理和响应DNS请求报文的实体。此处配置的DNS服务器对应于运营商网络内的DNS服务器。一个DNS服务器可以属于多个DNS服务器池,一个DNS服务器池也可以包含多个DNS服务器。
DNS服务器配置如下:
(2) 配置DNS服务器的IP地址
请选择以下一项进行配置:
(3) (可选)指定DNS服务器所属的VPN实例
(4) 指定与DNS服务器关联的链路
(5) (可选)配置权值和调用优先级
(6) (可选)配置健康检测功能
(1) 进入系统视图。
system-view
(2) 创建DNS服务器,并进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) (可选)配置DNS服务器的描述信息。
description text
缺省情况下,DNS服务器未配置描述信息。
(4) 指定DNS服务器所属的DNS服务器池。
dns-server-pool pool-name
缺省情况下,未指定DNS服务器所属的DNS服务器池。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 配置DNS服务器的IP地址。
(IPv4网络)
ip address ipv4-address
(IPv6网络)
ipv6 address ipv6-address
缺省情况下,未配置DNS服务器IP地址。
(4) 配置DNS服务器的端口号。
port port-number
缺省情况下,DNS服务器的端口号为0(表示继续使用原报文携带的端口号)。
在出口链路使用PPPoE动态获取IP地址的应用场景下,建议通过本配置动态获取DNS服务器的IP地址。
配置本功能前,需要在链路视图下配置链路对应的出接口。否则不能获取到DNS服务器IP地址。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 开启动态获取DNS服务器IP地址的功能。
auto-alloc address
缺省情况下,动态获取DNS服务器IP地址的功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 指定DNS服务器所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DNS服务器所属的VPN实例为公网。
每台DNS服务器仅支持与一条链路相关联,同一条链路可以关联多台DNS服务器。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 指定与DNS服务器关联的链路。
link link-name
缺省情况下,未指定与DNS服务器关联的链路。
通过在DNS服务器视图下配置权值和调用优先级,可以调整DNS服务器的加权轮转调度算法和带宽调度算法使用的权值,以及DNS服务器在DNS服务器池中的调用优先级。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 配置DNS服务器的权值。
weight weight-value
缺省情况下,DNS服务器的权值为100。
(4) 配置DNS服务器的调用优先级。
priority priority
缺省情况下,DNS服务器的调用优先级为4。
通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。
用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 指定DNS服务器的健康检测方法。
probe template-name
缺省情况下,未指定DNS服务器的健康检测方法。
(4) 配置DNS服务器健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
链路是运营商提供的实体链路。通过在链路视图下配置通往外网方向的下一跳IP地址,实现对流量的引流。通过配置最大带宽、健康检测、带宽繁忙比和最大期望带宽等功能为链路性能提供一定的保障。
链路配置任务如下:
(1) 创建链路
(2) 配置链路的IP地址或出接口
请选择以下一项进行配置:
(3) (可选)指定链路所属的VPN实例
(4) (可选)配置链路所允许的最大带宽
(5) (可选)配置健康检测功能
(6) (可选)配置链路的带宽繁忙比与最大期望带宽
(1) 进入系统视图。
system-view
(2) 创建链路,并进入链路视图。
loadbalance link link-name
(3) (可选)配置链路的描述信息。
description text
缺省情况下,未配置链路的描述信息。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路通往外网方向的下一跳IP地址。
(IPv4网络)
router ip ipv4-address
(IPv6网络)
router ipv6 ipv6-address
缺省情况下,未指定链路通往外网方向的下一跳IP地址。
在出口链路使用PPPoE动态获取IP地址的应用场景下,通过本配置,负载均衡设备可从指定接口动态获取链路通往外网的下一跳IP地址。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路对应的出接口。
router interface interface-type interface-number
缺省情况下,未配置链路对应的出接口。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,链路属于公网。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value
缺省情况下,链路所允许的最大带宽不受限制。
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路的健康检测方法。
probe template-name
缺省情况下,未指定链路的健康检测方法。
(4) 配置链路健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过本配置可以调整链路的带宽繁忙比,即当前流量与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的流量超过两者的乘积后,链路进入繁忙状态,新建流量(不包括匹配持续性表项的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路的带宽繁忙比。
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,链路的总带宽繁忙比为70。
(4) 配置链路最大期望带宽。
max-bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路最大期望带宽不受限制。
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
负载均衡类配置任务如下:
(1) 创建负载均衡类
(2) 创建匹配规则
请至少选择以下一项进行配置:
(1) 进入系统视图。
system-view
(2) 创建DNS类型的负载均衡类,并进入负载均衡类视图。
loadbalance class class-name type dns [ match-all | match-any ]
创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡类的描述信息。
description text
缺省情况下,未配置负载均衡类的描述信息。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建嵌套类的匹配规则。
match [ match-id ] class class-name
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建源IP地址类型的匹配规则。
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建目的IP地址类型的匹配规则。
match [ match-id ] destination { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
如果指定编号或名称的ACL不存在,此匹配规则将不参与匹配。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建ACL类型的匹配规则。
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建域名类型的匹配规则。
match [ match-id ] domain-name domain-name
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
在配置转发类动作时,配置报文的转发模式为转发、指定指导转发的DNS服务器池、和配置跳过当前DNS透明代理两两互斥。当配置了其中一条后,其他的配置将被自动取消。
负载均衡动作配置如下:
(1) 创建负载均衡动作
(2) (可选)配置转发类动作
请从配置报文的转发模式为转发、指定指导转发的DNS服务器池和配置跳过当前DNS透明代理中选择一项进行配置。
¡ (可选)配置查找可用DNS服务器失败时继续匹配下一条引用规则
¡ (可选)配置繁忙处理方式为继续匹配下一条引用规则
(3) (可选)配置修改类动作
(1) 进入系统视图。
system-view
(2) 创建DNS类型的负载均衡动作,并进入负载均衡动作视图。
loadbalance action action-name type dns
创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡动作的描述信息。
description text
缺省情况下,未配置负载均衡动作的描述信息。
设备支持配置五种转发类动作,包括:
· 报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。
· 指定指导转发的DNS服务器池:当配置本功能的动作在负载均衡策略中被引用时,可将报文转发到指定的DNS服务器池进行处理。
· 跳过当前DNS透明代理:配置报文的转发模式为跳过当前DNS透明代理,可使匹配了DNS透明代理的报文跳过当前DNS透明代理,并重新匹配DNS透明代理或虚服务器。
· 查找DNS服务器失败时继续匹配下一条引用规则:当配置该功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用DNS服务器失败时,可继续顺序匹配策略中的下一条引用规则。
· 配置繁忙处理方式为继续匹配下一条引用规则:当该动作在负载均衡策略中被引用时,判断当前动作查找DNS服务器全部繁忙时,可继续顺序匹配策略中的下一条引用规则。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为转发。
forward all
缺省情况下,报文转发模式为丢弃。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 指定指导转发的DNS服务器池。
dns-server-pool pool-name
缺省情况下,未指定指导转发的DNS服务器池。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为跳过当前DNS透明代理。
skip current-dns-proxy
缺省情况下,报文的转发模式为丢弃。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置查找DNS服务器失败时继续匹配下一条引用规则。
fallback-action continue
缺省情况下,当前动作查找可用DNS服务器失败时,不再继续匹配下一条引用规则,直接丢弃报文。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置繁忙处理方式为继续匹配下一条引用规则。
busy-action continue
缺省情况下,繁忙处理方式为强制调度。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置发往DNS服务器的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往DNS服务器的IP报文中的ToS字段。
负载均衡策略配置如下:
(1) 创建负载均衡策略
(2) 指定负载均衡动作
(3) 指定缺省负载均衡动作
(1) 进入系统视图。
system-view
(2) 创建DNS类型的负载均衡策略,并进入负载均衡策略视图。
loadbalance policy policy-name type dns
创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡策略的描述信息。
description text
缺省情况下,未配置负载均衡策略的描述信息。
DNS类型的负载均衡策略只能引用DNS类型的负载均衡类和负载均衡动作。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡策略视图。
loadbalance policy policy-name
(3) 为负载均衡类指定负载均衡动作。
class class-name [ insert-before before-class-name ] action action-name
缺省情况下,没有为负载均衡类指定负载均衡动作。
通过指定缺省负载均衡动作,可以为未匹配任何负载均衡类的报文指定其执行的缺省动作。
DNS类型的负载均衡策略只能引用DNS类型的负载均衡动作作为其缺省负载均衡动作。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡策略视图。
loadbalance policy policy-name
(3) 指定缺省负载均衡动作。
default-class action action-name
缺省情况下,未指定缺省负载均衡动作。
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一台DNS服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了一台DNS服务器之后,后续包都会延用这个选择结果。
持续性组配置如下:
(1) 创建持续性组
(2) 配置IP持续性方法
(3) (可选)配置持续性表项的超时时间
(1) 进入系统视图。
system-view
(2) 创建地址端口类型的持续性组,并进入持续性组视图。
sticky-group group-name type address-port
创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置持续性组的描述信息。
description text
缺省情况下,未配置持续性组的描述信息。
(1) 进入系统视图。
system-view
(2) 进入地址端口类型的持续性组视图。
sticky-group group-name
(3) 配置IP持续性方法。
(IPv4网络)
ip [ port ] { both | destination | source } [ mask mask-length ]
(IPv6网络)
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ]
缺省情况下,未配置IP持续性方法。
(1) 进入系统视图。
system-view
(2) 进入地址端口类型的持续性组视图。
sticky-group group-name
(3) 配置持续性表项的超时时间。
timeout timeout-value
缺省情况下,持续性表项的超时时间为60秒。
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括NAT日志和链路带宽繁忙日志。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过地址转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
(1) 进入系统视图。
system-view
(2) 开启负载均衡NAT日志功能。
loadbalance log enable nat
缺省情况下,负载均衡NAT日志功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡链路带宽繁忙日志功能。
loadbalance log enable bandwidth-busy
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DNS透明代理的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DNS透明代理的统计信息。
表4-2 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 dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ] |
|
显示DNS服务器的统计信息 |
display loadbalance dns-server statistics [ name dns-server-name ] [ chassis chassis-number slot slot-number ] |
|
显示DNS服务器池成员的统计信息 |
display loadbalance dns-server statistics dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ] [ chassis chassis-number slot slot-number ] |
|
显示DNS透明代理的信息 |
display loadbalance dns-proxy [ brief | name dns-proxy-name ] |
|
显示DNS透明代理的统计信息 |
display loadbalance dns-proxy statistics [ name dns-proxy-name ] [ chassis chassis-number slot slot-number ] |
|
显示链路的信息 |
display loadbalance link [ brief | name link-name ] |
|
显示链路的统计信息 |
display loadbalance link statistics [ name link-name] [ chassis chassis-number 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 ] [ chassis chassis-number slot slot-number ] |
|
显示持续性组的信息 |
display sticky-group [ name group-name ] |
|
显示负载均衡热备份的统计信息 |
display loadbalance hot-backup statistics [ chassis chassis-number slot slot-number ] |
|
清除DNS服务器的统计信息 |
reset loadbalance dns-server statistics [ dns-server-name ] |
|
清除DNS服务器池成员的统计信息 |
reset loadbalance dns-server statistics dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ] |
|
清除DNS透明代理的统计信息 |
reset loadbalance dns-proxy statistics [ dns-proxy-name ] |
|
清除链路的统计信息 |
reset loadbalance link statistics [ link-name ] |
|
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
|
用户从两个运营商ISP 1和ISP 2处分别租用了带宽相同的两条链路Link 1和Link 2。属于ISP 1 DNS服务器的IP地址为10.1.2.100,属于ISP 2的DNS服务器的IP地址为20.1.2.100。
当内网用户通过域名www.abc.com访问外网的Web服务器Web Server A和Web Server B时,使上网流量均匀地分布在不同的链路上。
图4-4 DNS透明代理基本组网配置组网图
(1) 配置接口IP地址
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 192.168.1.100 24
[Device-GigabitEthernet1/2/5/1] quit
[Device] interface gigabitethernet 1/2/5/2
[Device-GigabitEthernet1/2/5/2] ip address 10.1.1.1 24
[Device-GigabitEthernet1/2/5/2] quit
[Device] interface gigabitethernet 1/2/5/3
[Device-GigabitEthernet1/2/5/3] ip address 20.1.1.1 24
[Device-GigabitEthernet1/2/5/3] quit
(2) 配置链路
# 创建名为link1的链路,指定链路出方向的下一跳IP地址为10.1.1.2
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] quit
# 创建名为link2的链路,指定链路出方向的下一跳IP地址为20.1.1.2。
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] quit
(3) 配置DNS服务器池
# 创建名为dsp的DNS服务器池
[Device] loadbalance dns-server-pool dsp
[Device-lb-dspool-dsp] quit
(4) 配置DNS服务器
# 创建名为ds1的DNS服务器,配置其IPv4地址为10.1.2.100,所属DNS服务器池为dsp,并指定ds1对应的链路为link1。
[Device] loadbalance dns-server ds1
[Device-lb-ds-ds1] ip address 10.1.2.100
[Device-lb-ds-ds1] dns-server-pool dsp
[Device-lb-ds-ds1] link link1
[Device-lb-ds-ds1] quit
# 创建名为ds2的DNS服务器,配置其IPv4地址为20.1.2.100,所属DNS服务器池为dsp,并指定ds2对应的链路为link2。
[Device] loadbalance dns-server ds2
[Device-lb-ds-ds2] ip address 20.1.2.100
[Device-lb-ds-ds2] dns-server-pool dsp
[Device-lb-ds-ds2] link link2
[Device-lb-ds-ds2] quit
(5) 配置DNS透明代理
# 创建名为dns-proxy1的UDP类型的DNS透明代理,配置其IPv4地址为0.0.0.0,指定DNS服务器池为dsp,并开启DNS透明代理功能。
[Device] loadbalance dns-proxy dns-proxy1 type udp
[Device-lb-dp-udp-dp] ip address 0.0.0.0 0
[Device-lb-dp-udp-dp] default dns-server-pool dsp
[Device-lb-dp-udp-dp] service enable
[Device-lb-dp-udp-dp] quit
# 显示所有DNS服务器的简要信息。
[Device] display loadbalance dns-server brief
DNS server Address Port Link State DNS server pool
ds1 10.1.2.100 0 link1 Active dsp
ds2 20.1.2.100 0 link2 Active dsp
# 显示所有DNS服务器池的详细信息。
[Device] display loadbalance dns-server-pool
DNS server pool: dsp
Description:
Predictor: Round robin
Selected server: Disabled
Probe information:
Probe success criteria: All
Probe method:
Total DNS servers: 2
Active DNS servers: 2
DNS server list:
Name State Address port Link Weight Priority
ds1 Active 10.1.2.100 0 link1 100 4
ds2 Active 20.1.2.100 0 link2 100 4
# 显示所有DNS透明代理的详细信息。
[Device] display loadbalance dns-proxy
DNS proxy: dns-proxy1
Type: UDP
State: Active
Service state: Enabled
VPN instance:
IPv4 address: 0.0.0.0/0
IPv6 address: --
Port: 53
DNS server pool: dsp
Sticky:
LB policy:
Connection synchronization: Enabled
Sticky synchronization: Enabled
Bandwidth busy protection: Disabled
完成上述配置后,负载均衡设备可以将DNS请求报文均匀地分发到DNS Server A和DNS Server B上,从而将内网用户访问外网Web服务器的流量均匀地分配到Link 1和Link 2上。
用户从两个运营商ISP 1和ISP 2处分别租用了带宽相同的两条链路Link 1和Link 2。属于ISP 1 DNS服务器的IP地址为10.1.2.100,属于ISP 2的DNS服务器的IP地址为20.1.2.100。
当内网用户通过域名www.abc.com访问外网的Web服务器Web Server A和Web Server B时,使上网流量均匀地分布在不同的链路上。
图4-5 DNS透明代理基本组网配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 192.168.1.100 255.255.255.0
[Device-GigabitEthernet1/2/5/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/2/5/1
[Device-security-zone-Trust] quit
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/3
[Device-security-zone-Untrust] quit
(3) 配置安全策略
配置安全策略放行Trust与Untrust安全域、Local与Untrust安全域之间的流量,用于用户访问外网服务器。
# 配置名称为lbrule1的安全策略规则,使用户可以访问外网服务器,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lbrule1
[Device-security-policy-ip-1-lbrule1] source-zone trust
[Device-security-policy-ip-1-lbrule1] destination-zone untrust
[Device-security-policy-ip-1-lbrule1] source-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-1-lbrule1] action pass
[Device-security-policy-ip-1-lbrule1] quit
# 配置名称为lblocalout的安全策略规则,使Device可以向链路下一跳发送健康检测报文,具体配置步骤如下。
[Device-security-policy-ip] rule 2 name lblocalout
[Device-security-policy-ip-2-lblocalout] source-zone local
[Device-security-policy-ip-2-lblocalout] destination-zone untrust
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 10.1.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 20.1.1.0 255.255.255.0
[Device-security-policy-ip-2-lblocalout] action pass
[Device-security-policy-ip-2-lblocalout] quit
[Device-security-policy-ip] quit
(4) 配置链路
# 创建名为link1和link2的链路,指定链路link1出方向的下一跳IP地址为10.1.1.2,指定链路link2出方向的下一跳IP地址为20.1.1.2
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] quit
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] quit
(5) 配置DNS服务器池
# 创建名为dsp的DNS服务器池
[Device] loadbalance dns-server-pool dsp
[Device-lb-dspool-dsp] quit
(6) 配置DNS服务器
# 创建名为ds1的DNS服务器,配置其IPv4地址为10.1.2.100,所属DNS服务器池为dsp,并指定ds1对应的链路为link1。
[Device] loadbalance dns-server ds1
[Device-lb-ds-ds1] ip address 10.1.2.100
[Device-lb-ds-ds1] dns-server-pool dsp
[Device-lb-ds-ds1] link link1
[Device-lb-ds-ds1] quit
# 创建名为ds2的DNS服务器,配置其IPv4地址为20.1.2.100,所属DNS服务器池为dsp,并指定ds2对应的链路为link2。
[Device] loadbalance dns-server ds2
[Device-lb-ds-ds2] ip address 20.1.2.100
[Device-lb-ds-ds2] dns-server-pool dsp
[Device-lb-ds-ds2] link link2
[Device-lb-ds-ds2] quit
(7) 配置DNS透明代理
# 创建名为dns-proxy1的UDP类型的DNS透明代理,配置其IPv4地址为0.0.0.0,指定DNS服务器池为dsp,并开启DNS透明代理功能。
[Device] loadbalance dns-proxy dns-proxy1 type udp
[Device-lb-dp-udp-dp] ip address 0.0.0.0 0
[Device-lb-dp-udp-dp] default dns-server-pool dsp
[Device-lb-dp-udp-dp] service enable
[Device-lb-dp-udp-dp] quit
# 显示所有DNS服务器的简要信息。
[Device] display loadbalance dns-server brief
DNS server Address Port Link State DNS server pool
ds1 10.1.2.100 0 link1 Active dsp
ds2 20.1.2.100 0 link2 Active dsp
# 显示所有DNS服务器池的详细信息。
[Device] display loadbalance dns-server-pool
DNS server pool: dsp
Description:
Predictor: Round robin
Selected server: Disabled
Probe information:
Probe success criteria: All
Probe method:
Total DNS servers: 2
Active DNS servers: 2
DNS server list:
Name State Address port Link Weight Priority
ds1 Active 10.1.2.100 0 link1 100 4
ds2 Active 20.1.2.100 0 link2 100 4
# 显示所有DNS透明代理的详细信息。
[Device] display loadbalance dns-proxy
DNS proxy: dns-proxy1
Type: UDP
State: Active
Service state: Enabled
VPN instance:
IPv4 address: 0.0.0.0/0
IPv6 address: --
Port: 53
DNS server pool: dsp
Sticky:
LB policy:
Connection synchronization: Enabled
Sticky synchronization: Enabled
Bandwidth busy protection: Disabled
完成上述配置后,负载均衡设备可以将DNS请求报文均匀地分发到DNS Server A和DNS Server B上,从而将内网用户访问外网Web服务器的流量均匀地分配到Link 1和Link 2上。
入方向链路负载均衡功能可在多条链路上分担外网用户访问内网服务器的流量。
如图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 |
入方向链路负载均衡是负载均衡设备通过接收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地址后将其作为目的地址,通过该虚服务器关联的链路访问内网服务器。
在配置入方向链路负载均衡时,管理员需要联系运营商在Local DNS上配置委派域,指定负载均衡设备为处理DNS请求的权威DNS服务器。
入方向链路负载均衡配置任务如下:
(1) 配置DNS监听器
(2) 配置DNS映射
(3) 配置虚服务器
(4) 配置虚服务器池
(5) 配置链路(Link)
(6) (可选)配置DNS区域
(7) (可选)配置Topology
(8) (可选)配置Region
(9) (可选)配置ISP信息
(10) (可选)配置负载均衡链路带宽繁忙日志功能
(11) (可选)测试入方向链路负载均衡效果
(12) (可选)配置可记录的解析失败的DNS请求报文
通过配置DNS监听器,指定负载均衡设备提供DNS解析服务的IP地址和端口号,以及所属VPN等信息。
DNS监听器配置任务如下:
(1) 创建DNS监听器
(2) 指定DNS监听器的IP地址和端口
(3) (可选)指定DNS监听器所属的VPN实例
(4) 开启DNS监听功能
(5) (可选)指定DNS监听器查找DNS请求资源记录失败时的处理方式
(1) 进入系统视图。
system-view
(2) 创建DNS监听器,并进入DNS监听器视图。
loadbalance dns-listener dns-listener-name
通过配置DNS监听器的IPv4地址和端口,指定设备对外提供DNS解析服务的IPv4地址和端口。
(1) 进入系统视图。
system-view
(2) 进入DNS监听器视图。
loadbalance dns-listener dns-listener-name
(3) 指定DNS监听器的IPv4地址和端口。
(IPv4网络)
ip address ipv4-address [ port port-number ]
(IPv6网络)
ipv6 address ipv6-address [ port port-number ]
缺省情况下,未指定DNS监听器的IP地址和端口。
(1) 进入系统视图。
system-view
(2) 进入DNS监听器视图。
loadbalance dns-listener dns-listener-name
(3) 指定DNS监听器所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DNS监听器属于公网。
(1) 进入系统视图。
system-view
(2) 进入DNS监听器视图。
loadbalance dns-listener dns-listener-name
(3) 开启DNS监听功能。
service enable
缺省情况下,DNS监听功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入DNS监听器视图。
loadbalance dns-listener dns-listener-name
(3) 指定DNS监听器查找DNS请求资源记录失败时的处理方式。
fallback { dns-proxy | no-response | reject }
缺省情况下,DNS监听器查找DNS请求资源记录失败时的处理方式为回应DNS拒绝报文。
通过配置DNS映射,可以将DNS域名和虚服务器池关联起来。
DNS映射配置任务如下:
(1) 创建DNS映射
(2) 添加DNS映射的DNS域名
(3) 指定DNS映射使用的虚服务器池
(4) (可选)配置缓存DNS域名解析记录的缓存时间
(5) 开启DNS映射
(1) 进入系统视图。
system-view
(2) 创建DNS映射,并进入DNS映射视图。
loadbalance dns-map dns-map-name
同一个DNS映射视图下,可以添加多个DNS映射的DNS域名。
(1) 进入系统视图。
system-view
(2) 进入DNS映射视图。
loadbalance dns-map dns-map-name
(3) 添加DNS映射的DNS域名。
domain-name domain-name
(1) 进入系统视图。
system-view
(2) 进入DNS映射视图。
loadbalance dns-map dns-map-name
(3) 指定DNS映射使用的虚服务器池。
virtual-server-pool pool-name
缺省情况下,DNS映射未使用任何虚服务器池。
配置的缓存DNS域名解析记录的缓存时间将会填充到DNS应答报文的域名解析记录中。例如,当负载均衡策略或虚服务器配置变化时,用户可以通过配置小一些的缓存时间,使DNS请求客户端尽快获得新的解析记录;而在网络稳定的环境下,用户可将缓存时间设置为更大的值,提高域名的解析稳定性及速度。
(1) 进入系统视图。
system-view
(2) 进入DNS映射视图。
loadbalance dns-map dns-map-name
(3) 配置缓存DNS域名解析记录的缓存时间。
ttl ttl-value
缺省情况下,域名解析记录的缓存时间缺省值为3600秒。
(1) 进入系统视图。
system-view
(2) 进入DNS映射视图。
loadbalance dns-map dns-map-name
(3) 开启DNS映射。
service enable
缺省情况下,DNS映射处于关闭状态。
通过配置虚服务器,指定内网服务器对外提供服务的IP地址和端口等信息。此节的配置任务及相关配置,请参见“2.5 配置虚服务器”。
· 如果同时配置入方向链路负载均衡功能和服务器负载均衡功能,请配置虚服务器的IP地址与DNS监听器地址为不同的公网地址,以免影响入方向链路负载均衡功能的正常使用。关于DNS监听器IP地址的详细介绍,请参见“5.4.3 指定DNS监听器的IP地址和端口”。
· 配置入方向链路负载均衡使用的虚服务器的IPv4地址时,要求配置32位掩码且为非全0的单播地址。
· 配置入方向链路负载均衡使用的虚服务器的IPv6地址时,要求配置128位掩码且为非全0的单播地址。
通过配置虚服务器池,可将具有相同或相似功能的虚服务器进行统一管理。
虚服务器池配置任务如下:
(1) 创建虚服务器池
(2) 添加虚服务或虚IP
请至少选择其中一项进行配置:
¡ 添加虚服务器
¡ 添加虚IP
(3) (可选)配置虚服务器池的调度算法
(4) (可选)开启虚服务器池的繁忙保护功能
(1) 进入系统视图。
system-view
(2) 创建虚服务器池,并进入虚服务器池视图。
loadbalance virtual-server-pool name
(1) 进入系统视图。
system-view
(2) 进入虚服务器池视图。
loadbalance virtual-server-pool name
(3) 添加虚服务器。
virtual-server virtual-server-name link link-name [ weight weigth-name ]
缺省情况下,虚服务器池未添加任何虚服务器。
(1) 进入系统视图。
system-view
(2) 进入虚服务器池视图。
loadbalance virtual-server-pool name
(3) 虚服务器池中添加虚IP地址。
(IPv4网络)
virtual-ip ipv4-address link link-name [ weight weight-value ]
(IPv6网络)
virtual-ipv6 ipv6-address link link-name [ weight weight-value ]
缺省情况下,虚服务器池中未添加任何虚IP地址。
设备支持以下虚服务器池的调度算法:
· 加权最小连接算法(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请求分发给虚服务器。
配置虚服务器池的调度算法时,可以分别指定首选调度算法、备选调度算法和次选调度算法。其中,首选调度算法优先级最高,当采用首选算法不能选出可用的虚服务器时,采用次选调度算法,备选调度算法优先级最低。
(1) 进入系统视图。
system-view
(2) 进入虚服务器池视图。
loadbalance virtual-server-pool name
(3) 配置虚服务器池的调度算法。
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.8.5 配置链路的带宽繁忙比与最大期望带宽”。
(1) 进入系统视图。
system-view
(2) 进入虚服务器池视图。
loadbalance virtual-server-pool name
(3) 开启虚服务器池的繁忙保护功能。
bandwidth busy-protection enable
缺省情况下,虚服务器池繁忙保护功能处于关闭状态。
由于虚服务器池中进行虚服务器调度时,链路可用性是决定虚服务器是否可参与调度的因素之一。可以根据实际需求,通过配置链路的健康检测,所允许的最大期望带宽及带宽繁忙比例等功能来影响链路的可用性。
链路配置任务如下:
(1) 创建链路
(2) 指定链路通往外网方向的下一跳
(3) (可选)配置链路的健康检测
(4) (可选)配置链路的带宽繁忙比与最大期望带宽
(1) 进入系统视图。
system-view
(2) 创建链路,并进入链路视图。
loadbalance link link-name
在入方向负载均衡中,链路通往外网方向的下一跳指的是链路对端设备的IP地址,管理员通过配置该地址来指定对哪一条链路进行健康检测和带宽限制。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路通往外网方向的下一跳。
router ip ipv4-address
缺省情况下,未配置链路通往外网方向的下一跳IP地址。
通过为链路配置健康检测方法,可以对链路的质量、链路的状态等进行检测,保证其可用。链路的健康检测方法通过引用NQA模板来配置。NQA模板的相关配置,请参见“网络管理和监控配置指导”中的“NQA”。
同一个链路视图下,可以配置多个链路健康检测方法。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路的健康检测方法。
probe template-name
缺省情况下,未指定任何链路检测方法。
(4) 配置链路检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法通过检测才认为健康检测成功。
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当某条链路流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link name
(3) 配置链路的带宽繁忙比例。
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,链路的总带宽繁忙比例为70。
(4) 配置链路的最大期望带宽。
max-bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路所允许的最大总期望带宽、最大上行期望带宽和最大下行期望带宽均为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-4所示,配置DNS正向区域的负载均衡设备收到DNS请求后,首先查询在DNS正向区域中配置的资源记录得到主机域名,再依据该主机域名在DNS映射中查找域名所对应的虚服务器IP地址。
DNS正向区域配置任务如下:
(1) 创建DNS正向区域
(2) (可选)配置资源记录
¡ (可选)配置指定类型的资源记录
支持配置CNAME、MX、NS、SRV和TXT资源记录。
¡ (可选)配置SOA资源记录
(3) (可选)配置资源记录的缓存时间
(1) 进入系统视图。
system-view
(2) 创建DNS正向区域,并进入DNS正向区域视图。
loadbalance zone domain-name
(1) 进入系统视图。
system-view
(2) 进入DNS正向区域视图。
loadbalance zone domain-name
(3) 配置指定类型的资源记录。
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 ]
(1) 进入系统视图。
system-view
(2) 进入DNS正向区域视图。
loadbalance zone domain-name
(3) 创建SOA类型的资源记录,并进入SOA视图。
soa
(4) 配置主域名服务器的主机名。
primary-nameserver host-name
缺省情况下,未配置主域名服务器的主机名。
(5) 配置管理员的邮件地址。
responsible-mail mail-address
缺省情况下,未配置管理员的邮件地址。
(6) 配置DNS正向区域的序列号。
serial number
缺省情况下,DNS正向区域的序列号为1。
(7) 配置刷新间隔。
refresh refresh-interval
缺省情况下,刷新间隔为3600秒。
(8) 配置重试时间。
retry retry-interval
缺省情况下,重试时间为600秒。
(9) 配置过期时间。
expire expire-time
缺省情况下,过期时间为86400秒。
(10) 配置最小生命周期。
min-ttl ttl-value
缺省情况下,最小生命周期为3600秒。
(1) 进入系统视图。
system-view
(2) 进入DNS正向区域视图。
loadbalance zone domain-name
(3) 配置资源记录的缓存时间。
ttl ttl-value
缺省情况下,资源记录的缓存时间为3600秒。
负载均衡设备根据DNS反向区域对收到的报文进行反向DNS解析,即根据IP地址查找对应的域名。DNS反向区域中设置的PTR(Pointer Record,指针记录)用来记录域名和IP地址的映射关系。
DNS反向地址解析通常用于解决网络中的垃圾邮件攻击,即对邮件发送方的合法性进行检查,来拒绝转发或接收非法邮件。例如,当邮件服务器收到来自外网用户的邮件时,向负载均衡设备发送反向解析请求,负载均衡设备收到来自邮件服务器的反向解析请求后,查找在DNS反向区域中配置的PTR资源记录,将邮件发送方的源IP地址解析为域名并将解析结果返回给邮件服务器。邮件服务器将收到的域名与邮件报文中的发送方域名进行比较,结果一致则接收该邮件,否则认为该邮件为垃圾邮件并将其丢弃。
(1) 进入系统视图。
system-view
(2) 创建DNS反向区域,并进入DNS反向区域视图。
loadbalance reverse-zone { ip ipv4-address mask-length | ipv6 ipv6-address prefix-length }
(3) 配置PTR资源记录。
record ptr { ip ipv4-address | ipv6 ipv6-address } domain-name [ ttl ttl-value ]
缺省情况下,未配置PTR资源记录。
当虚服务器池中指定调度算法为静态就近性调度算法(topology)时,则需要配置Topology。关于虚服务器池的调度算法的具体配置,请参见“5.7.5 配置虚服务器池的调度算法”。
若DNS请求匹配多个Topology记录时,优先选择优先级值高的记录。
(1) 进入系统视图。
system-view
(2) 配置Topology。
topology region region-name { ip ipv4-address { mask-length | mask } | ipv6 ipv6-address prefix-length } [ priority priority ]
区域对象中包含根据不同ISP信息(运营商类别)划分的地址段。
(1) 进入系统视图。
system-view
(2) 创建区域对象,并进入区域对象视图。
loadbalance region region-name
(3) 添加ISP信息。
isp isp-name
入方向链路负载均衡使用的ISP信息为出方向链路负载均衡下的ISP信息。此节的配置任务及相关配置,请参见“3.11 配置ISP信息”。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
(1) 进入系统视图。
system-view
(2) 开启负载均衡链路带宽繁忙日志功能。
loadbalance log enable bandwidth-busy
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。
可以通过指定DNS请求报文的类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试入方向链路负载均衡的解析结果。
可在任意视图下执行本命令,测试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 } } [ chassis chassis-number 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 | ipv6-address } } [ chassis chassis-number slot slot-number ]
(1) 进入系统视图。
system-view
(2) 配置可记录的解析失败的DNS请求报文的最大数目。
loadbalance local-dns-server parse-fail-record max-number max-number
缺省情况下,可记录的解析失败的DNS请求报文的最大数目为10000条。
(1) 进入系统视图。
system-view
(2) 配置可记录的解析失败的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命令可以清除链路负载均衡的统计信息。
配置 |
命令 |
显示负载均衡DNS监听器的信息 |
display loadbalance dns-listener [ name listener-name ] |
显示负载均衡DNS监听器的统计信息 |
display loadbalance dns-listener statistics [ name dns-listener-name ] [ chassis chassis-number slot slot-number ] |
显示负载均衡DNS映射的信息 |
display loadbalance dns-map [ name dns-map-name ] |
显示负载均衡DNS映射的统计信息 |
display loadbalance dns-map statistics [ name dns-map-name ] [ chassis chassis-number 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 ] [ chassis chassis-number 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 |
如图5-5所示,管理员从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由器跳数、带宽和成本均相同。通过配置入方向链路负载均衡,使Client host访问Internal server时,如果遇到其中一条链路故障的情况,可以优先选择这两条链路中的可用链路。其中,Internal server对外提供服务的域名为l.abc.com,实际主机名为www.abc.com。
(1) 配置接口IP地址
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1 ip address 10.1.1.1 24
[Device-GigabitEthernet1/2/5/1] quit
[Device] interface gigabitethernet 1/2/5/2
[Device-GigabitEthernet1/2/5/2] ip address 20.1.1.1 24
[Device-GigabitEthernet1/2/5/2] quit
(2) 配置链路
# 创建ICMP类型的NQA模板t1。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] quit
# 创建名为link1的链路,指定链路出方向的下一跳IP地址为10.1.1.2,并引用ICMP类型的NQA模板t1。
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] probe t1
[Device-lb-link-link1] quit
# 创建名为link2的链路,指定链路出方向的下一跳IP地址为20.1.1.2,并引用ICMP类型的NQA模板t1。
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] probe t1
[Device-lb-link-link2] quit
(3) 配置实服务组
# 创建实服务组sf。
[Device] server-farm sf
[Device-sfarm-sf] quit
(4) 配置实服务器
# 创建实服务器rs,配置其IPv4地址为192.168.1.10,并加入实服务组sf。
[Device] real-server rs
[Device-rserver-rs] ip address 192.168.1.10
[Device-rserver-rs] server-farm sf
[Device-rserver-rs] quit
(5) 配置虚服务器
# 创建HTTP类型的虚服务器vs1,配置其VSIP为10.1.1.3,端口为80,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs1 type http
[Device-vs-http-vs1] virtual ip address 10.1.1.3
[Device-vs-http-vs1] port 80
[Device-vs-http-vs1] default server-farm sf
[Device-vs-http-vs1] service enable
[Device-vs-http-vs1] quit
# 创建HTTP类型的虚服务器vs2,配置其VSIP为20.1.1.3,端口为80,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs2 type http
[Device-vs-http-vs2] virtual ip address 20.1.1.3
[Device-vs-http-vs2] port 80
[Device-vs-http-vs2] default server-farm sf
[Device-vs-http-vs2] service enable
[Device-vs-http-vs2] quit
(6) 配置虚服务器池
# 创建虚服务器池vsp,并添加虚服务器vs1、vs2,虚服务器分别关联链路link1、link2。
[Device] loadbalance virtual-server-pool vsp
[Device-lb-vspool-vsp] virtual-server vs1 link link1
[Device-lb-vspool-vsp] virtual-server vs2 link link2
(7) 配置DNS监听器
# 创建DNS监听器dl1,配置其IPv4地址为10.1.1.1,并开启DNS监听服务。
[Device] loadbalance dns-listener dl1
[Device-lb-dl-dl1] ip address 10.1.1.1
[Device-lb-dl-dl1] service enable
[Device-lb-dl-dl1] quit
# 创建DNS监听器dl2,配置其IPv4地址为20.1.1.1,并开启DNS监听服务。
[Device] loadbalance dns-listener dl2
[Device-lb-dl-dl2] ip address 20.1.1.1
[Device-lb-dl-dl2] service enable
[Device-lb-dl-dl2] quit
(8) 配置DNS映射
# 创建DNS映射dm,配置其域名为www.aaa.com,指定虚服务器池vsp,并开启DNS映射。
[Device] loadbalance dns-map dm
[Device-lb-dm-dm] domain-name www.aaa.com
[Device-lb-dm-dm] service enable
[Device-lb-dm-dm] virtual-server-pool vsp
[Device-lb-dm-dm] quit
(9) 配置DNS正向区域
# 创建域名为aaa.com的DNS正向区域。
[Device] loadbalance zone aaa.com
# 配置CNAME资源记录,为主机www.aaa.com指定别名l.aaa.com。
[Device-lb-zone-abc.com] record cname alias l.aaa.com. canonical www.aaa.com. ttl 600
[Device-lb-zone-abc.com] quit
# 显示所有DNS监听器的信息。
[Device] display loadbalance dns-listener
DNS listener name:dl1
Service state:Enabled
IPv4 address: 10.1.1.1
Port: 53
IPv6 address: --
IPv6 Port: 53
Fallback: Reject
VPN instance:
DNS listener name: dl2
Service state: Enabled
IPv4 address: 20.1.1.1
Port: 53
IPv6 address: --
IPv6 Port: 53
Fallback: Reject
VPN instance:
# 显示所有DNS映射的信息。
[Device] display loadbalance dns-map
DNS mapping name: dm
Service state: Enabled
TTL: 3600
Domain name list: www.aaa.com
Virtual server pool: vsp
# 显示所有DNS正向区域的信息。
[Device]display loadbalance zone
Zone name: aaa.com
TTL: 3600s
SOA:
Record list:
Type TTL RDATA
CNAME 600s l.aaa.com. www.aaa.com.
# 显示所有虚服务器池的简要信息。
[Device] display loadbalance virtual-server-pool brief
Predictor: RR - Round robin, RD - Random, LC - Least connection,
TOP - Topology, PRO - Proximity
BW - Bandwidth, MBW - Max bandwidth,
IBW - Inbound bandwidth, OBW - Outbound bandwidth,
MIBW - Max inbound bandwidth, MOBW - Max outbound bandwidth,
HASH(SIP) - Hash address source IP,
HASH(DIP) - Hash address destination IP,
HASH(SIP-PORT) - Hash address source IP-port
VSpool Pre Alt Fbk BWP Total Active
vsp RR -- -- Enabled 0 0
# 显示所有虚服务器池的详细信息。
[Device] display loadbalance virtual-server-pool
Virtual-server pool: vsp
Predictor:
Preferred RR
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
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance Server farm
rs 192.168.1.10 0 Active sf
# 显示所有链路的简要信息。
[Device] display loadbalance link brief
link Router IP State VPN instance Link group
link1 10.1.1.2 Active
link2 20.1.1.2 Probe-failed
# 显示所有实服务组的详细信息。
[Device] 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
Probe information:
Probe success criteria: All
Probe method:
t1
Total real server: 1
Active real server: 1
Real server list:
Name State VPN instance Address Port Weight Priority
rs Active 192.168.1.10 0 100 4
# 显示所有虚服务器的简要信息。
[Device] display virtual-server brief
Virtual server State Type VPN instance Virtual address Port
vs1 Active HTTP 10.1.1.3/32 80
vs2 Active HTTP 20.1.1.3/32 80
完成上述配置后,当Client Host访问域名l.aaa.com时,可以解析到10.1.1.1,使用ISP 1的链路访问内网服务器,也可以解析到20.1.1.1,使用ISP 2的链路访问内网服务器。
如图5-6所示,管理员从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由器跳数、带宽和成本均相同。通过配置入方向链路负载均衡,使Client host访问Internal server时,如果遇到其中一条链路故障的情况,可以优先选择这两条链路中的可用链路。其中,Internal server对外提供服务的域名为l.abc.com,实际主机名为www.abc.com。
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/2/5/1
[Device-GigabitEthernet1/2/5/1] ip address 10.1.1.1 255.255.255.0
[Device-GigabitEthernet1/2/5/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/1
[Device-security-zone-Untrust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Untrust] quit
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/2/5/2
[Device-security-zone-Trust] quit
(3) 配置安全策略
配置安全策略放行Untrust与Trust安全域、Untrust与Local安全域、Local与Untrust安全域之间的流量,用于用户访问外网服务器。
# 配置名称为lbrule1的安全策略规则,使用户可以访问内网服务器,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lbrule1
[Device-security-policy-ip-1-lbrule1] source-zone untrust
[Device-security-policy-ip-1-lbrule1] destination-zone trust
[Device-security-policy-ip-1-lbrule1] destination-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-1-lbrule1] action pass
[Device-security-policy-ip-1-lbrule1] quit
# 配置名称为lblocalin的安全策略规则,使用户可以访问DNS监听器,具体配置步骤如下。
[Device-security-policy-ip] rule name lblocalin
[Device-security-policy-ip-2-lblocalout] source-zone untrust
[Device-security-policy-ip-2-lblocalout] destination-zone local
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 10.1.1.1 255.255.255.255
[Device-security-policy-ip-2-lblocalout] destination-ip-subnet 20.1.1.1 255.255.255.255
[Device-security-policy-ip-2-lblocalout] action pass
[Device-security-policy-ip-2-lblocalout] quit
[Device-security-policy-ip] quit
# 配置名称为lblocalout的安全策略规则,使Device可以向链路下一跳发送健康检测报文,具体配置步骤如下。
[Device-security-policy-ip] rule name lblocalout
[Device-security-policy-ip-3-lblocalout] source-zone local
[Device-security-policy-ip-3-lblocalout] destination-zone untrust
[Device-security-policy-ip-3-lblocalout] destination-ip-subnet 10.1.1.0 255.255.255.0
[Device-security-policy-ip-3-lblocalout] destination-ip-subnet 20.1.1.0 255.255.255.0
[Device-security-policy-ip-3-lblocalout] action pass
[Device-security-policy-ip-3-lblocalout] quit
[Device-security-policy-ip] quit
(4) 配置链路
# 创建ICMP类型的NQA模板t1。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] quit
# 创建名为link1的链路,指定链路出方向的下一跳IP地址为10.1.1.2,并引用ICMP类型的NQA模板t1。
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] probe t1
[Device-lb-link-link1] quit
# 创建名为link2的Link,指定链路出方向的下一跳IP地址为20.1.1.2,并引用ICMP类型的NQA模板t1。
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] probe t1
[Device-lb-link-link2] quit
(5) 配置实服务组
# 创建实服务组sf。
[Device] server-farm sf
[Device-sfarm-sf] quit
(6) 配置实服务器
# 创建实服务器rs,配置其IPv4地址为192.168.1.10,并加入实服务组sf。
[Device] real-server rs
[Device-rserver-rs] ip address 192.168.1.10
[Device-rserver-rs] server-farm sf
[Device-rserver-rs] quit
(7) 配置虚服务器
# 创建HTTP类型的虚服务器vs1,配置其VSIP为10.1.1.3,端口为80,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs1 type http
[Device-vs-http-vs1] virtual ip address 10.1.1.3
[Device-vs-http-vs1] port 80
[Device-vs-http-vs1] default server-farm sf
[Device-vs-http-vs1] service enable
[Device-vs-http-vs1] quit
# 创建HTTP类型的虚服务器vs2,配置其VSIP为20.1.1.3,端口为80,指定其缺省主用实服务组为sf,并开启此虚服务器。
[Device] virtual-server vs2 type http
[Device-vs-http-vs2] virtual ip address 20.1.1.3
[Device-vs-http-vs2] port 80
[Device-vs-http-vs2] default server-farm sf
[Device-vs-http-vs2] service enable
[Device-vs-http-vs2] quit
(8) 配置虚服务器池
# 创建虚服务器池vsp,并添加虚服务器vs1、vs2,虚服务器分别关联链路link1、link2。
[Device] loadbalance virtual-server-pool vsp
[Device-lb-vspool-vsp] virtual-server vs1 link link1
[Device-lb-vspool-vsp] virtual-server vs2 link link2
(9) 配置DNS监听器
# 创建DNS监听器dl1,配置其IPv4地址为10.1.1.1,并开启DNS监听服务。
[Device] loadbalance dns-listener dl1
[Device-lb-dl-dl1] ip address 10.1.1.1
[Device-lb-dl-dl1] service enable
[Device-lb-dl-dl1] quit
# 创建DNS监听器dl2,配置其IPv4地址为20.1.1.1,并开启DNS监听服务。
[Device] loadbalance dns-listener dl2
[Device-lb-dl-dl2] ip address 20.1.1.1
[Device-lb-dl-dl2] service enable
[Device-lb-dl-dl2] quit
(10) 配置DNS映射
# 创建DNS映射dm,配置其域名为www.aaa.com,指定虚服务器池vsp,并开启DNS映射。
[Device] loadbalance dns-map dm
[Device-lb-dm-dm] domain-name www.aaa.com
[Device-lb-dm-dm] service enable
[Device-lb-dm-dm] virtual-server-pool vsp
[Device-lb-dm-dm] quit
(11) 配置DNS正向区域
# 创建域名为aaa.com的DNS正向区域。
[Device] loadbalance zone aaa.com
# 配置CNAME资源记录,为主机www.aaa.com指定别名l.aaa.com。
[Device-lb-zone-abc.com] record cname alias l.aaa.com. canonical www.aaa.com. ttl 600
[Device-lb-zone-abc.com] quit
# 显示所有DNS监听器的信息。
[Device] display loadbalance dns-listener
DNS listener name:dl1
Service state:Enabled
IPv4 address: 10.1.1.1
Port: 53
IPv6 address: --
IPv6 Port: 53
Fallback: Reject
VPN instance:
DNS listener name: dl2
Service state: Enabled
IPv4 address: 20.1.1.1
Port: 53
IPv6 address: --
IPv6 Port: 53
Fallback: Reject
VPN instance:
# 显示所有DNS映射的信息。
[Device] display loadbalance dns-map
DNS mapping name: dm
Service state: Enabled
TTL: 3600
Domain name list: www.aaa.com
Virtual server pool: vsp
# 显示所有DNS正向区域的信息。
[Device]display loadbalance zone
Zone name: aaa.com
TTL: 3600s
SOA:
Record list:
Type TTL RDATA
CNAME 600s l.aaa.com. www.aaa.com.
# 显示所有虚服务器池的简要信息。
[Device] display loadbalance virtual-server-pool brief
Predictor: RR - Round robin, RD - Random, LC - Least connection,
TOP - Topology, PRO - Proximity
BW - Bandwidth, MBW - Max bandwidth,
IBW - Inbound bandwidth, OBW - Outbound bandwidth,
MIBW - Max inbound bandwidth, MOBW - Max outbound bandwidth,
HASH(SIP) - Hash address source IP,
HASH(DIP) - Hash address destination IP,
HASH(SIP-PORT) - Hash address source IP-port
VSpool Pre Alt Fbk BWP Total Active
vsp RR -- -- Enabled 0 0
# 显示所有虚服务器池的详细信息。
[Device] display loadbalance virtual-server-pool
Virtual-server pool: vsp
Predictor:
Preferred RR
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
# 显示所有实服务器的简要信息。
[Device] display real-server brief
Real server Address Port State VPN instance Server farm
rs 192.168.1.10 0 Active sf
# 显示所有链路的简要信息。
[Device] display loadbalance link brief
link Router IP State VPN instance Link group
link1 10.1.1.2 Active
link2 20.1.1.2 Probe-failed
# 显示所有实服务组的详细信息。
[Device] 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
Probe information:
Probe success criteria: All
Probe method:
t1
Total real server: 1
Active real server: 1
Real server list:
Name State VPN instance Address Port Weight Priority
rs Active 192.168.1.10 0 100 4
# 显示所有虚服务器的简要信息。
[Device] display virtual-server brief
Virtual server State Type VPN instance Virtual address Port
vs1 Active HTTP 10.1.1.3/32 80
vs2 Active HTTP 20.1.1.3/32 80
完成上述配置后,当Client Host访问域名l.aaa.com时,可以解析到10.1.1.1,使用ISP 1的链路访问内网服务器,也可以解析到20.1.1.1,使用ISP 2的链路访问内网服务器。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!