• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

15-可靠性配置指导

目录

04-负载均衡配置

本章节下载 04-负载均衡配置  (1.52 MB)

docurl=/cn/Service/Document_Software/Document_Center/Wlan/WX/WX2500X-LI/Configure/Operation_Manual/H3C_WX2500X_LI_R5610-4731/15/202207/1646915_30005_0.htm

04-负载均衡配置

  录

1 负载均衡概述

1.1 负载均衡配置限制和指导

1.2 技术优势

1.3 技术分类

2 服务器负载均衡

2.1 服务器负载均衡简介

2.1.1 分类

2.1.2 部署模式

2.1.3 NAT模式

2.1.4 旁路模式

2.2 服务器负载均衡配置任务简

2.2.1 配置项之间的关系

2.2.2 配置任务简介

2.3 配置实服务组

2.3.1 配置任务简介

2.3.2 创建实服务组

2.3.3 添加并配置实服务组成员

2.3.4 配置实服务组的调度算法

2.3.5 配置旁路模式的NAT功能

2.3.6 配置NAT模式的NAT功能

2.3.7 配置可用条件

2.3.8 配置温暖上线功能

2.3.9 配置健康检测功能

2.3.10 配置智能监控功能

2.3.11 配置自定义监控功能

2.3.12 配置繁忙处理方式

2.3.13 配置故障处理方式

2.4 配置实服务器

2.4.1 配置任务简介

2.4.2 创建实服务器并指定其所属实服务组

2.4.3 配置IP地址和端口号

2.4.4 配置权值和调用优先级

2.4.5 配置带宽和连接参数

2.4.6 配置健康检测功能

2.4.7 配置自定义监控功能

2.4.8 慢宕实服务器

2.5 配置虚服务器

2.5.1 配置限制和指导

2.5.2 虚服务器(四层)配置任务简介

2.5.3 虚服务器(七层)配置任务简介

2.5.4 创建虚服务器

2.5.5 配置TCP类型的虚服务器工作在七层

2.5.6 配置VSIP和端口号

2.5.7 指定实服务组

2.5.8 引用负载均衡策略

2.5.9 配置带宽和连接参数

2.5.10 配置UDP强制负载均衡功能

2.5.11 配置HTTP重定向功能

2.5.12 配置MySQL数据库的版本

2.5.13 配置登录MySQL数据库的用户名和密码

2.5.14 开启MySQL数据库读写分离功能

2.5.15 引用持续性组

2.5.16 引用参数模

2.5.17 引用防护策略

2.5.18 引用负载均衡连接数限制策略

2.5.19 引用SSL策略

2.5.20 引用DPI应用profile

2.5.21 配置外链代理功能

2.5.22 开启虚服务器IP地址发布功能

2.5.23 指定发送免费ARP报文或ND报文的接口

2.5.24 配置快速日志输出内容

2.5.25 开启虚服务器

2.6 配置负载均衡类

2.6.1 负载均衡类配置任务简介

2.6.2 创建负载均衡类

2.6.3 创建嵌套类的匹配规则

2.6.4 创建源IP地址类型的匹配规则

2.6.5 创建ACL类型的匹配规则

2.6.6 创建基于入接口的匹配规则

2.6.7 创建基于用户的匹配规则

2.6.8 创建基于用户组的匹配规则

2.6.9 创建TCP载荷类型的匹配规则

2.6.10 创建HTTP实体类型的匹配规则

2.6.11 创建HTTP Cookie类型的匹配规则

2.6.12 创建HTTP首部类型的匹配规则

2.6.13 创建HTTP URL类型的匹配规则

2.6.14 创建HTTP方法类型的匹配规则

2.6.15 创建HTTP版本类型的匹配规则

2.6.16 创建MySQL语句类型的匹配规则

2.6.17 创建RADIUS属性的匹配规则

2.7 配置负载均衡动作

2.7.1 功能简介

2.7.2 配置限制和指导

2.7.3 负载均衡动作配置任务简介

2.7.4 创建负载均衡动作

2.7.5 配置转发类动作

2.7.6 配置修改类动作

2.7.7 配置对指定的HTTP请求进行代答

2.7.8 配置负载均衡处理失败时的代答文件

2.7.9 开启外链代理功能

2.8 配置负载均衡策略

2.8.1 功能简介

2.8.2 配置任务简介

2.8.3 创建负载均衡策略

2.8.4 指定负载均衡动作

2.8.5 指定缺省负载均衡动作

2.9 配置持续性组

2.9.1 持续性组(四层)配置任务简介

2.9.2 持续性组(七层)配置任务简介

2.9.3 创建持续性组

2.9.4 配置IP持续性方法

2.9.5 配置TCP载荷持续性方法

2.9.6 配置UDP passive类型持续性方法

2.9.7 配置HTTP实体持续性方法

2.9.8 配置HTTP Cookie持续性方法

2.9.9 配置HTTP首部持续性方法

2.9.10 配置HTTP passive持续性方法

2.9.11 配置HTTP或UDP载荷持续性方法

2.9.12 配置RADIUS属性持续性方法

2.9.13 配置基于SIP信令报文Call ID的持续性方法

2.9.14 配置SSL持续性方法

2.9.15 配置持续性表项超时时间

2.9.16 配置持续性表项匹配范围

2.9.17 开启匹配持续性表项的会话不受连接数限制影响功能

2.9.18 开启持续性处理优先于繁忙功能

2.10 配置参数模板

2.10.1 参数模板配置任务简介

2.10.2 创建参数模板

2.10.3 配置发往客户端的IP报文中的ToS字段

2.10.4 配置TCP连接中的本地最大窗口值

2.10.5 配置TCP连接的空闲超时时间

2.10.6 配置TCP连接TIME-WAIT状态的超时时间

2.10.7 配置TCP连接SYN报文的重传超时时间

2.10.8 配置TCP连接保活参数

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.13 配置在TCP选项中插入内容

2.10.14 清除TCP报文头中的指定选项

2.10.15 配置进行SNAT地址转换的TCP选项

2.10.16 配置TCP载荷匹配的缓冲条件

2.10.17 配置对每个HTTP请求报文都进行负载均衡

2.10.18 配置负载均衡设备与服务器的连接复用功能

2.10.19 配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作

2.10.20 配置匹配字符串时对大小写不敏感

2.10.21 配置HTTP最大解析长度

2.10.22 配置Secondary Cookie相关参数

2.10.23 配置当HTTP请求或应答报文首部超出最大长度时的处理方式

2.10.24 配置允许通过的HTTP请求报文实体的最大长度

2.10.25 配置Cookie加密功能

2.10.26 配置HTTP压缩功能

2.10.27 配置HTTP统计功能

2.11 配置防护策略

2.11.1 功能简介

2.11.2 配置任务简介

2.11.3 创建防护策略

2.11.4 配置防护规则

2.11.5 配置防护动作

2.12 配置负载均衡探测模板

2.12.1 功能简介

2.12.2 配置限制和指导

2.12.3 配置TCP RST类型负载均衡探测模板

2.12.4 配置TCP zero-window类型负载均衡探测模板

2.12.5 配置HTTP passive类型负载均衡探测模板

2.12.6 配置自定义监控类型负载均衡探测模板

2.13 配置SNAT全局策略

2.13.1 功能简介

2.13.2 配置限制和指导

2.13.3 配置任务简介

2.13.4 创建SNAT全局策略

2.13.5 配置SNAT地址转换方式

2.13.6 配置SNAT全局策略匹配优先级

2.13.7 配置进行SNAT地址转换的源IP地址对象组

2.13.8 配置进行SNAT地址转换的目的IP地址对象组

2.13.9 配置进行SNAT地址转换的服务对象组

2.13.10 开启SNAT全局策略

2.14 配置负载均衡连接数限制策略

2.15 配置负载均衡ALG功能

2.16 配置重新加载代答文件

2.17 测试负载均衡效果

2.17.1 功能简介

2.17.2 测试IPv4负载均衡的效果。

2.17.3 测试IPv6负载均衡的效果。

2.18 配置负载均衡告警功能

2.19 配置负载均衡日志功能

2.19.1 功能简介

2.19.2 配置负载均衡基本日志功能

2.19.3 配置负载均衡NAT日志功能

2.20 服务器负载均衡显示和维护

3 出方向链路负载均衡

3.1 出方向链路负载均衡简介

3.1.1 典型组网

3.1.2 工作流程

3.2 出方向链路负载均衡配置任务简介

3.2.1 配置项之间的关系

3.2.2 配置任务简介

3.3 配置链路组

3.3.1 配置任务简介

3.3.2 创建链路组

3.3.3 添加并配置链路组成员

3.3.4 配置链路组的调度算法

3.3.5 配置可用条件

3.3.6 关闭NAT功能

3.3.7 配置SNAT功能

3.3.8 配置温暖上线功能

3.3.9 配置健康检测功能

3.3.10 配置故障处理方式

3.3.11 配置就近性功能

3.4 配置链路

3.4.1 配置任务简介

3.4.2 创建链路并指定其所属链路组

3.4.3 指定链路出口方向(外网方向)的下一跳IP地址

3.4.4 配置链路对应的出接口

3.4.5 配置权值和调用优先级

3.4.6 配置带宽和连接参数

3.4.7 配置健康检测功能

3.4.8 配置慢宕功能

3.4.9 配置就近性计算的链路成本

3.4.10 配置链路的带宽繁忙比与最大期望带宽

3.5 配置虚服务器

3.5.1 配置限制和指导

3.5.2 配置任务简介

3.5.3 创建虚服务器

3.5.4 配置VSIP和端口号

3.5.5 指定链路组

3.5.6 引用负载均衡策略

3.5.7 引用参数模板

3.5.8 配置带宽和连接参数

3.5.9 配置带宽繁忙保护功能

3.5.10 开启链路的接口带宽统计功能

3.5.11 引用DPI应用profile

3.5.12 开启虚服务器

3.6 配置负载均衡类

3.6.1 配置任务简介

3.6.2 创建负载均衡类

3.6.3 创建嵌套类的匹配规则

3.6.4 创建源IP地址类型的匹配规则

3.6.5 创建目的IP地址类型的匹配规则

3.6.6 创建ACL类型的匹配规则

3.6.7 创建基于入接口的匹配规则

3.6.8 创建基于用户的匹配规则

3.6.9 创建基于用户组的匹配规则

3.6.10 创建域名类型的匹配规则

3.6.11 创建ISP类型的匹配规则

3.6.12 创建应用类型的匹配规则

3.7 配置负载均衡动作

3.7.1 功能简介

3.7.2 配置限制和指导

3.7.3 配置任务简介

3.7.4 创建负载均衡动作

3.7.5 配置转发类动作

3.7.6 配置发往服务器的IP报文中的ToS字段

3.8 配置负载均衡策略

3.8.1 功能简介

3.8.2 配置任务简介

3.8.3 创建负载均衡策略

3.8.4 指定负载均衡动作

3.8.5 指定缺省负载均衡动作

3.9 配置持续性组

3.9.1 配置任务简介

3.9.2 创建持续性组

3.9.3 配置IP持续性方法

3.9.4 配置持续性表项超时时间

3.9.5 开启匹配持续性表项的会话不受连接数限制影响功能

3.9.6 开启持续性处理优先于繁忙功能

3.10 配置参数模板

3.10.1 功能简介

3.10.2 创建参数模板

3.10.3 配置发往客户端的IP报文中的ToS字段

3.11 配置ISP信息

3.11.1 配置简介

3.11.2 配置限制和指导

3.11.3 手工配置ISP信息

3.11.4 导入ISP文件

3.12 配置负载均衡ALG功能

3.13 测试负载均衡效果

3.13.1 功能简介

3.13.2 测试IPv4负载均衡的效果。

3.13.3 测试IPv6负载均衡的效果。

3.14 配置负载均衡告警功能

3.15 配置负载均衡日志功能

3.15.1 功能简介

3.15.2 配置负载均衡基本日志功能

3.15.3 配置负载均衡链路流量日志功能

3.15.4 配置负载均衡NAT日志功能

3.15.5 配置负载均衡链路带宽繁忙日志功能

3.16 出方向链路负载均衡显示和维护

4 DNS透明代理

4.1 DNS透明代理简介

4.1.1 应用场景

4.1.2 工作流程

4.1.3 负载均衡设备上的业务处理流程

4.2 DNS透明代理配置任务简介

4.3 配置DNS透明代理

4.3.1 配置限制和指导

4.3.2 配置任务简介

4.3.3 创建DNS透明代

4.3.4 配置DNS透明代理的IP地址和端口号

4.3.5 指定DNS服务器池

4.3.6 引用负载均衡策略

4.3.7 开启带宽繁忙保护功能

4.3.8 开启DNS透明代理功能

4.4 配置DNS服务器池

4.4.1 创建DNS服务器池

4.4.2 配置DNS服务器池的调度算法

4.4.3 配置健康检测功能

4.5 配置DNS服务器

4.5.1 配置任务简介

4.5.2 创建DNS服务器并指定其所属DNS服务器池

4.5.3 配置DNS服务器的IP地址和端口号

4.5.4 开启动态获取DNS服务器IP地址的功能

4.5.5 指定与DNS服务器关联的链路

4.5.6 配置权值和调用优先级

4.5.7 配置健康检测功能

4.6 配置链路

4.6.1 配置任务简介

4.6.2 创建链路

4.6.3 指定链路通往外网方向的下一跳IP地址

4.6.4 配置链路对应的出接口

4.6.5 配置链路所允许的最大带宽

4.6.6 配置健康检测功能

4.6.7 配置链路的带宽繁忙比与最大期望带宽

4.7 配置负载均衡类

4.7.1 配置任务简介

4.7.2 创建负载均衡类

4.7.3 创建嵌套类的匹配规则

4.7.4 创建源IP地址类型的匹配规则

4.7.5 创建目的IP地址类型的匹配规则

4.7.6 创建ACL类型的匹配规则

4.7.7 创建域名类型的匹配规则

4.8 配置负载均衡动作

4.8.1 功能简介

4.8.2 配置限制和指导

4.8.3 配置任务简介

4.8.4 创建负载均衡动作

4.8.5 配置转发类动作

4.8.6 配置发往DNS服务器的IP报文中的ToS字段

4.9 配置负载均衡策略

4.9.1 配置任务简介

4.9.2 创建负载均衡策略

4.9.3 指定负载均衡动作

4.9.4 指定缺省负载均衡动作

4.10 配置持续性

4.10.1 配置任务简介

4.10.2 创建持续性组

4.10.3 配置IP持续性方法

4.10.4 配置持续性表项的超时时间

4.11 配置负载均衡日志功能

4.11.1 功能简

4.11.2 配置负载均衡NAT日志功能

4.11.3 配置负载均衡链路带宽繁忙日志功能

4.12 DNS透明代理显示和维护

5 入方向链路负载均衡

5.1 入方向链路负载均衡简介

5.1.1 应用场景

5.1.2 工作流程

5.1.3 负载均衡设备上的业务处理流程

5.2 入方向链路负载均衡配置限制和指导

5.3 入方向链路负载均衡配置任务简介

5.4 配置DNS监听器

5.4.1 配置任务简介

5.4.2 创建DNS监听器

5.4.3 指定DNS监听器的IP地址和端口

5.4.4 开启DNS监听功能

5.4.5 指定DNS监听器查找DNS请求资源记录失败时的处理方式

5.5 配置DNS映射

5.5.1 配置任务简介

5.5.2 创建DNS映射

5.5.3 添加DNS映射的DNS域名

5.5.4 指定DNS映射使用的虚服务器池

5.5.5 配置缓存DNS域名解析记录的缓存时间

5.5.6 开启DNS映射

5.6 配置虚服务器

5.7 配置虚服务器池

5.7.1 配置任务简介

5.7.2 创建虚服务器池

5.7.3 添加虚服务器

5.7.4 添加虚IP

5.7.5 配置虚服务器池的调度算法

5.7.6 开启虚服务器池的繁忙保护功能

5.8 配置链路(Link)

5.8.1 配置任务简介

5.8.2 创建链路

5.8.3 指定链路通往外网方向的下一跳

5.8.4 配置链路的健康检测

5.8.5 配置链路的带宽繁忙比与最大期望带宽

5.9 配置DNS正向区域

5.9.1 功能简介

5.9.2 配置任务简介

5.9.3 创建DNS正向区域

5.9.4 配置指定类型的资源记录

5.9.5 配置SOA资源记录

5.9.6 配置资源记录的缓存时间

5.10 配置DNS反向区域

5.11 配置Topology

5.12 配置Region

5.13 配置ISP信息

5.14 配置负载均衡链路带宽繁忙日志功能

5.15 测试入方向链路负载均衡效果

5.15.1 功能简介

5.15.2 测试IPv4入方向链路负载均衡的解析结果。

5.15.3 测试IPv6入方向链路负载均衡的解析结果。

5.16 配置可记录的解析失败的DNS请求报文的最大数目

5.17 配置可记录的解析失败的DNS请求报文的类型

5.18 入方向链路负载均衡显示和维护

 


1 负载均衡概述

LB(Load Balance,负载均衡)是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。

1.1  负载均衡配置限制和指导

对于支持FPGA硬件快速转发的设备,必须开启硬件快速转发的会话统计功能。否则负载均衡相关的统计信息无法精确统计,与统计相关的功能也会因此受到影响。包括:链路带宽统计功能、报文数相关的统计功能、带宽算法、最大带宽算法和带宽繁忙保护功能等。有关硬件快速转发的会话统计功能的详细介绍,请参见“安全配置指导”中的“会话管理”。

1.2  技术优势

负载均衡技术具有以下优势:

·     高性能:通过将业务较均衡地分配到多台设备或多条链路上,提高了系统的整体性能。

·     可扩展性:可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。

·     高可靠性:单个甚至多个设备或链路发生故障也不会导致业务中断,提高了系统的整体可靠性。

·     可管理性:大量的管理工作都集中在应用了负载均衡技术的设备上,集群中的设备或链路只需要进行普通的配置和维护。

·     透明性:对用户而言,集群等同于一个可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构。增减集群中的设备或链路不会影响正常业务。

1.3  技术分类

负载均衡技术可分为以下几种类型:

·     服务器负载均衡:在数据中心等组网中,通过此技术可将网络服务分担给多台服务器或防火墙进行处理,从而提高服务器或防火墙的处理能力。

·     链路负载均衡:当存在多条运营商链路时,通过此技术可实现链路的动态选择,从而充分利用多条链路。链路负载均衡支持IPv4与IPv6,但不支持IPv4报文与IPv6报文的互相转换。根据数据的连接请求方向不同,链路负载均衡又分为以下三种:

¡     出方向链路负载均衡:当内网用户访问外部互联网存在多条链路时,可在多条链路上分担内网用户访问外部互联网的流量。

¡     DNS透明代理:当内网用户访问外网DNS服务器存在多条链路时,可在多条链路上分担内网用户访问外部DNS服务器的流量。

¡     入方向链路负载均衡:当外网用户访问内网服务器存在多条链路时,可在多条链路上分担外网用户访问内网服务器的流量。


2 服务器负载均衡

2.1  服务器负载均衡简介

2.1.1  分类

根据识别信息的层级不同,服务器负载均衡可分为以下两种:

·     四层服务器负载均衡:可识别网络层和传输层信息,是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。由于四层服务器负载均衡对七层业务无法按内容分发,从而限制了其适用范围。

·     七层服务器负载均衡:除了可识别网络层和传输层信息之外,还可识别应用层信息,是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的服务器负载均衡。

2.1.2  部署模式

服务器负载均衡在网络中的部署模式有两种:

·     NAT(Network Address Translation,网络地址转换)模式:通过转换报文的源/目的IP地址实现服务器负载均衡功能。

·     旁路模式:在此模式下,通过二层透传实现服务器负载均衡功能,不需要进行IP地址转换。

2.1.3  NAT模式

1. NAT模式典型组网

图2-1所示,NAT模式服务器负载均衡包含以下要素:

·     LB device(负载均衡设备):负责将各种服务请求分发到多台服务器。

·     Server(服务器):负责响应和处理各种服务请求。

·     VSIP(Virtual Service IP,虚服务IP):对外提供服务的IP地址,供用户请求服务时使用。

·     Server IP(服务器IP):供负载均衡设备分发服务请求时使用。

图2-1 NAT模式组网图

 

2. NAT模式实现方式

NAT模式服务器负载均衡有以下三种实现方式:

·     DNAT(Destination Network Address Translation,目的网络地址转换)方式

·     SNAT(Source Network Address Translation,源网络地址转换)方式

·     DNAT+SNAT方式

3. DNAT方式

在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

 

4. SNAT方式

SNAT方式除了要求在服务器一侧在所有服务器上配置与VSIP相同的LoopBack接口地址外,还要求配置SNAT地址池所分配IP地址的路由。由于此方式的使用场景十分有限,因此并不推荐用户使用,本文也不对其进行详细介绍。

5. DNAT+SNAT方式

DNAT+SNAT方式的工作流程如图2-3所示。

图2-3 DNAT+SNAT方式工作流程图

 

DNAT+SNAT方式的工作流程简述如表2-2所示。

表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.1.4  旁路模式

1. 旁路模式典型组网

图2-4所示,旁路模式服务器负载均衡包含以下要素:

·     LB device:负责将各种服务请求分发到多台服务器。

·     General device:按照正常的转发规则转发数据。

·     Server:负责响应和处理各种服务请求。

·     VSIP:对外提供服务的IP地址,供用户请求服务时使用。

·     Server IP:供负载均衡设备分发服务请求时使用。

图2-4 旁路模式组网图

 

2. 旁路模式工作流程

在此模式下,需在负载均衡设备和服务器上都配置VSIP(要求服务器不能通过VSIP发送和响应ARP请求,比如可将VSIP配置在服务器的LoopBack接口上)。旁路模式服务器负载均衡的工作流程如图2-5所示。

图2-5 旁路模式工作流程图

 

旁路模式服务器负载均衡的工作流程简述如表2-3所示。由于此模式下服务器发出的报文不会经过负载均衡设备,因此其应用有一定局限性。

表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.2  服务器负载均衡配置任务简介

2.2.1  配置项之间的关系

服务器负载均衡各配置项之间的配置关系如图2-6所示。

图2-6 服务器负载均衡配置关系图

 

·     实服务组:将具有相同或相似功能的实服务器抽象成一个实服务组。实服务组可被虚服务器或负载均衡动作引用。

·     实服务器:负载均衡设备上处理用户业务的实体。

·     虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。

·     负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。

·     负载均衡动作:制订丢弃、转发或修改报文的具体行为。

·     负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。

·     持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一个实服务器处理。持续性组可被虚服务器或负载均衡动作引用。

·     参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。

2.2.2  配置任务简介

服务器负载均衡配置任务如下:

(1)     配置实服务组

(2)     配置实服务器

(3)     配置虚服务器

(4)     (可选)配置负载均衡策略

a.     配置负载均衡类

b.     配置负载均衡动作

c.     配置负载均衡策略

(5)     (可选)配置持续性组

(6)     (可选)配置模板及策略

¡     配置参数模板

¡     配置防护策略

¡     配置负载均衡探测模板

¡     配置负载均衡连接数限制策略

(7)     (可选)配置SNAT全局策略

(8)     (可选)配置负载均衡ALG功能

(9)     (可选)配置重新加载代答文件

(10)     (可选)测试负载均衡效果

(11)     (可选)配置负载均衡告警及日志功能

¡     配置负载均衡告警功能

¡     配置负载均衡日志功能

2.3  配置实服务组

为了便于对实服务器进行统一管理,可将具有相同或相似功能的实服务器抽象成一个组,称为实服务组。比如,可按存储内容的不同划分为歌曲服务器组、视频服务器组和图片服务器组等。

2.3.1  配置任务简介

四层和七层服务器负载均衡的实服务组配置完全相同。

实服务器配置任务如下:

(1)     创建实服务组

(2)     (可选)添加并配置实服务组成员

(3)     配置实服务组的调度算法

(4)     配置NAT功能

请至少选择其中一项进行配置:

¡     配置旁路模式的NAT功能

¡     配置NAT模式的NAT功能

(5)     配置可用条件

(6)     (可选)配置温暖上线功能

(7)     (可选)配置健康检测功能

(8)     (可选)配置自定义监控功能

(9)     (可选)配置智能监控功能

(10)     (可选)配置繁忙处理方式

(11)     (可选)配置故障处理方式

2.3.2  创建实服务组

(1)     进入系统视图。

system-view

(2)     创建实服务组,并进入实服务组视图。

server-farm server-farm-name

(3)     (可选)配置实服务组的描述信息。

description text

缺省情况下,未配置实服务组的描述信息。

2.3.3  添加并配置实服务组成员

1. 功能简介

设备支持通过两种方式向实服务组中添加成员:

·     在实服务组视图下,通过本配置创建实服务组成员或添加已存在的实服务器。

·     在实服务器视图下,指定其所属的实服务组。具体配置请参见“2.4.2  创建实服务器并指定其所属实服务组”。

本配置用来指定实服务器在实服务组内的权值、调用优先级、连接参数、健康检测功能以及慢宕功能。基于实服务组成员的调度算法会依据这些配置,选出当前实服务组中最优的实服务器。

2. 添加实服务组成员

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     创建并添加实服务组成员,并进入实服务组成员视图。

real-server real-server-name port port-number

若指定名称的实服务器已存在,则本命令只是在实服务组视图下添加已存在的实服务器。

(4)     (可选)配置实服务组成员的描述信息。

description text

缺省情况下,未配置实服务组成员的描述信息。

3. 配置实服务组成员的权值和调用优先级

(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。

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,即不受限制。

5. 配置实服务组成员的健康检测功能

(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 }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

(6)     (可选)开启实服务组成员的健康检测日志功能。

probe log enable

缺省情况下,实服务组成员健康检测日志功能处于开启状态。

6. 配置自定义监控功能

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     进入实服务组成员视图。

real-server real-server-name port port-number

(4)     指定实服务组成员引用的自定义监控类型的负载均衡探测模板。

probe-template external-monitor template-name

缺省情况下,未指定实服务组成员引用的自定义监控类型的负载均衡探测模板。

7. 配置实服务组成员的慢宕功能

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     进入实服务组成员视图。

real-server real-server-name port port-number

(4)     开启实服务组成员的慢宕功能。

slow-shutdown enable

缺省情况下,实服务组成员的慢宕功能处于关闭状态。

(5)     关闭实服务组成员。

shutdown

缺省情况下,实服务组成员处于开启状态。

8. 配置实服务组成员关联的变量

(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报文载荷的指定内容替换为实服务组成员关联的变量值。

9. 配置查找所有可用实服务组成员失败时,将流量转发给最近一次选中的实服务组成员

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     配置查找所有可用实服务组成员失败时,将流量转发给最近一次选中的实服务组成员。

all-service-down action forward

缺省情况下,查找所有可用实服务组成员失败时丢弃报文。

仅当实服务组被工作在七层的TCP类型虚服务器引用时,配置才能生效。

2.3.4  配置实服务组的调度算法

1. 实服务组调度算法简介

设备根据实服务组中配置的调度算法,计算出处理用户请求的实服务器。设备支持以下实服务组的调度算法:

·     源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”。

·     加权最小连接算法(基于实服务器):总是将请求分发给加权活动连接数(当前实服务器在所有实服务组中的活动连接总数/权值)最小的实服务器。该算法中使用的权值为实服务器视图下配置的权值。

·     加权最小连接算法(基于实服务器组成员):总是将请求分发给加权活动连接数(实服务组成员在指定实服务组中的活动连接数/权值)最小的实服务组成员。该算法中使用的权值为实服务器组成员视图下配置的权值。

·     随机算法:将请求随机分发给某个实服务器。

·     最快响应算法(基于实服务器):根据实服务器的响应时间计算出当前负载能力的权值。响应时间越短,权值越大,分配到的新连接越多。

·     最快响应算法(基于实服务组成员):根据实服务组成员的响应时间计算出当前负载能力的权值。响应时间越短,权值越大,分配到的新连接越多。

·     加权轮转算法:根据实服务器权值的大小将请求依次分发给每个实服务器,权值越大,分配的请求越多。

·     带宽算法:根据实服务器的权值与剩余带宽的比例把请求分发给每个实服务器。

·     最大带宽算法:总是将请求分发给处于空闲状态且剩余带宽最大的实服务器。

2. 配置步骤

(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

缺省情况下,实服务组中调用优先级最高的实服务器全部被调度算法调用。

2.3.5  配置旁路模式的NAT功能

1. 配置限制和指导

在旁路模式下,需要在实服务组中关闭NAT功能。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     在实服务组中关闭NAT功能。

transparent enable

缺省情况下,实服务组中的NAT功能处于开启状态。

实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理。

2.3.6  配置NAT模式的NAT功能

1. 功能简介

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地址池进行源地址转换。

2. 配置限制和指导

一个SNAT地址池由多个地址成员组成,每个地址成员最多包含256个IPv4地址或65536个IPv6地址,且不同SNAT地址成员中的IPv4或IPv6地址不允许重叠,同一SNAT地址池的不同地址成员中,也不允许包含相同的IPv4地址。

对于TCP Option类型的SNAT转换方式,需要在业务处理之前将所用到的源地址插入到指定的TCP Option中。

若SNAT地址池中的IP地址与设备连接服务器端的接口IP地址在同一网段,则必须指定发送免费ARP报文或ND报文的接口。否则,无需指定发送免费ARP报文或ND报文的接口。

3. DNAT方式配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     在实服务组中开启NAT功能。

undo transparent enable

缺省情况下,实服务组中的NAT功能处于开启状态。

实服务组被HTTP类型的虚服务器引用时,即使关闭了NAT功能也将仍按照NAT模式处理。

4. SNAT和DNAT+SNAT方式配置步骤

(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报文的接口。

2.3.7  配置可用条件

1. 功能简介

通过配置实服务组的可用条件,可将流量在主用实服务组和备用实服务组之间进行切换:当主用实服务组中的实服务器可用率低于下限时,将流量切换到备用实服务组上,以防止服务器受到大流量的冲击;待主用实服务组中的实服务器可用率恢复到上限时,再将流量切换回来。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     配置实服务组的可用条件。

activate lower lower-percentage upper upper-percentage

缺省情况下,实服务组中只要有一个实服务器可用,该实服务组就被认为可用。

2.3.8  配置温暖上线功能

1. 功能简介

当向实服务组中添加实服务器时,某些新增的实服务器无法立即承担大量业务,此时可以开启温暖上线功能。这样,当实服务器上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     在实服务组中开启实服务器的温暖上线功能。

slow-online [ standby-time standby-time ramp-up-time ramp-up-time ]

缺省情况下,实服务组中实服务器的温暖上线功能处于关闭状态。

2.3.9  配置健康检测功能

1. 功能简介

通过健康检测可以对实服务器进行检测,保证其能够提供有效的服务。

2. 配置限制和指导

用户既可在实服务组视图下对组内的所有实服务器进行配置,也可在实服务器视图下只对当前实服务器进行配置,后者的配置优先级较高。

设备支持通过引用NQA模板进行健康探测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     指定实服务组的健康检测方法。

probe template-name [ nqa-template-port ]

缺省情况下,未指定实服务组的健康检测方法。

(4)     配置实服务组健康检测的成功条件。

success-criteria { all | at-least min-number }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

2.3.10  配置智能监控功能

1. 功能简介

智能监控功能通过统计实服务器发出的RST报文的数量、零窗口报文的数量与HTTP响应报文中的异常URL次数来判断实服务组成员的健康状态,并执行相应的保护动作。通过在实服务组视图下引用TCP RST、TCP zero-window或HTTP passive类型的负载均衡探测模板,可以开启实服务组的智能监控功能。

如果智能监控功能将实服务器的状态置为Auto shutdown,则可以通过配置实服务器的智能监控自动恢复时间使得实服务器自动恢复为正常状态,也可以通过配置手动将实服务器或实服务组成员的状态恢复为正常状态。

2. 配置限制和指导

因为RST报文或零窗口报文达到阈值导致实服务器关闭或导致实服务器处于繁忙状态时,若删除实服务组引用的负载均衡探测模板,则实服务器的状态会立即恢复为正常。

异常URL次数达到阈值时,HTTP passive类型的负载均衡探测模板会将实服务器的状态置为Auto shutdown,若删除实服务组引用的负载均衡探测模板,则实服务器的状态会立即恢复为正常。

3. 配置准备

在配置智能监控功能前,请先完成负载均衡探测模板的相关配置,具体配置请参见“2.12  配置负载均衡探测模板”。

4. 配置实服务组引用的负载均衡探测模板

(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表示不自动恢复。

5. 手动恢复处于Auto shutdown状态的实服务器

(1)     进入系统视图。

system-view

(2)     进入实服务器视图。

real-server real-server-name

(3)     手动恢复处于Auto shutdown状态的实服务器。

recover-from-auto-shutdown

6. 手动恢复处于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

2.3.11  配置自定义监控功能

1. 功能简介

自定义监控功能是指,通过执行用户自定义的监控脚本对实服务组成员的运行状态进行监控。

2. 配置限制和指导

既可在实服务组视图下对组内的所有实服务组成员进行配置,也可在实服务组成员视图下只对当前实服务组成员进行配置,后者的配置优先级高。

3. 配置准备

在配置自定义监控功能前,请先完成负载均衡探测模板的相关配置,具体配置请参见“2.12  配置负载均衡探测模板”。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     指定实服务组引用的自定义监控类型的负载均衡探测模板。

probe-template external-monitor template-name

缺省情况下,未指定实服务组引用的自定义监控类型的负载均衡探测模板。

2.3.12  配置繁忙处理方式

1. 功能简介

只有当组内所有实服务器均处于繁忙状态时,实服务组才处于繁忙状态。通过本配置可以指定实服务组处于繁忙状态的处理方式。设备支持以下三种繁忙处理方式:

·     调度失败:设备停止向处于繁忙状态实服务组分发流量,若配置负载均衡策略允许继续匹配下一条规则,则继续匹配下一条匹配规则,否则直接丢弃请求报文。

·     排队等待:设备停止向处于繁忙状态实服务组分发流量,并且将新的请求报文加入等待队列。若等待队列的长度超过配置的队列长度,后续的请求报文将会被丢弃;若请求报文加入队列后的等待时间超过配置的老化时间,请求报文将会被丢弃。

·     强制调度:实服务组内的所有实服务器均参与调度。

系统判断实服务器是否处于繁忙状态的依据包括:实服务器所允许的最大连接数、实服务器所允许的最大连接速率、实服务器所允许的最大HTTP请求速率、实服务器所允许的最大带宽(总带宽、入带宽和出带宽)和SNMP-DCA探测模板返回的探测状态。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     配置实服务组的繁忙处理方式。

busy-action { drop | enqueue length length timeout timeout-value | force }

缺省情况下,实服务组的繁忙处理方式为调度失败。

2.3.13  配置故障处理方式

1. 功能简介

通过本配置可以选择某台实服务器故障时的处理方式:

·     保持已有连接:不主动断开与故障实服务器的连接,连接继续保持还是断开将由协议自身的超时机制决定。

·     重定向连接:把连接重定向到实服务组中其它可用的实服务器上。

·     断开已有连接:主动断开与故障实服务器的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务组视图。

server-farm server-farm-name

(3)     配置实服务器的故障处理方式。

fail-action { keep | reschedule | reset }

缺省情况下,实服务器的故障处理方式为保持已有连接。

2.4  配置实服务器

实服务器是负载均衡设备上处理用户业务的实体。一个实服务器可以属于多个实服务组,一个实服务组也可以包含多个实服务器。

2.4.1  配置任务简介

四层和七层服务器负载均衡的实服务器配置完全相同。

实服务器配置任务如下:

(1)     创建实服务器并指定其所属实服务组

(2)     配置IP地址和端口号

(3)     配置权值和调用优先级

(4)     (可选)配置带宽和连接参数

(5)     (可选)配置健康检测功能

(6)     (可选)配置自定义监控功能

(7)     (可选)慢宕实服务器

2.4.2  创建实服务器并指定其所属实服务组

(1)     进入系统视图。

system-view

(2)     创建实服务器,并进入实服务器视图。

real-server real-server-name

(3)     (可选)配置实服务器的描述信息。

description text

缺省情况下,未配置实服务器的描述信息。

(4)     指定实服务器所属的实服务组。

server-farm server-farm-name

缺省情况下,实服务器不属于任何实服务组。

2.4.3  配置IP地址和端口号

(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(表示继续使用原报文携带的端口号)。

2.4.4  配置权值和调用优先级

1. 功能简介

通过本配置可以调整实服务器的加权轮转和加权最小连接这两种调度算法所使用的权值,以及实服务器在实服务组中的调用优先级。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务器视图。

real-server real-server-name

(3)     配置实服务器的权值。

weight weight-value

缺省情况下,实服务器的权值为100。

(4)     配置实服务器的调用优先级。

priority priority

缺省情况下,实服务器的调用优先级为4。

2.4.5  配置带宽和连接参数

1. 功能简介

通过本配置可以调整实服务器所允许的最大带宽、最大连接数、最大连接速率和最大HTTP请求速率。这四个参数值都是判断实服务器是否繁忙的依据。若访问实服务器的带宽、连接数、每秒连接数或每秒HTTP请求数超过配置的数值,则实服务器进入繁忙状态。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务器视图。

real-server real-server-name

(3)     配置实服务器所允许的最大带宽。

rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps

缺省情况下,实服务器所允许的最大总带宽、最大入带宽和最大出带宽均为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,即不受限制。

2.4.6  配置健康检测功能

1. 功能简介

通过健康检测可以对实服务器进行检测,保证其能够提供有效的服务。

2. 配置限制和指导

用户既可在实服务组视图下对组内的所有实服务器进行配置,也可在实服务器视图下只对当前实服务器进行配置,后者的配置优先级较高。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务器视图。

real-server real-server-name

(3)     指定实服务器的健康检测方法。

probe template-name [ nqa-template-port ]

缺省情况下,未指定实服务器的健康检测方法。

(4)     配置实服务器健康检测的成功条件。

success-criteria { all | at-least min-number }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

(5)     退回系统视图。

quit

(6)     (可选)开启实服务器的健康检测日志功能。

probe log enable

缺省情况下,实服务器的健康检测日志功能处于开启状态。

2.4.7  配置自定义监控功能

1. 功能简介

自定义监控功能是指,通过执行用户自定义的监控脚本对实服务组成员的运行状态进行监控。

2. 配置准备

在配置自定义监控功能前,请先完成负载均衡探测模板的相关配置,具体配置请参见“2.12  配置负载均衡探测模板”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务器视图。

real-server real-server-name

(3)     指定实服务器引用的自定义监控类型的负载均衡探测模板。

probe-template external-monitor template-name

缺省情况下,未指定实服务器引用的自定义监控类型的负载均衡探测模板。

2.4.8  慢宕实服务器

1. 功能简介

通过shutdown命令可以立即中断实服务器的已有连接,而慢宕则不会立即中断实服务器的已有连接,而是让其自然老化,并且不再建立新的连接。

2. 配置限制和指导

慢宕功能需要与shutdown命令配合使用,即在开启了慢宕功能之后再关闭实服务器,该实服务器才会开始慢宕。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入实服务器视图。

real-server real-server-name

(3)     开启实服务器的慢宕功能。

slow-shutdown enable

缺省情况下,实服务器的慢宕功能处于关闭状态。

(4)     关闭实服务器。

shutdown

缺省情况下,实服务器处于开启状态。

2.5  配置虚服务器

虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。

2.5.1  配置限制和指导

如果同时指定实服务组和引用负载均衡策略,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给实服务组处理。

2.5.2  虚服务器(四层)配置任务简介

虚服务器(四层)配置任务如下:

(1)     配置虚服务器基本功能

a.     创建虚服务器

b.     配置VSIP和端口号

(2)     配置报文处理策略

请至少选择其中一项进行配置:

¡     指定实服务组

¡     引用负载均衡策略

(3)     (可选)配置带宽和连接参数

(4)     (可选)配置UDP强制负载均衡功能

(5)     (可选)引用参数模板和策略

¡     (可选)引用参数模板

¡     (可选)引用防护策略

¡     (可选)引用负载均衡连接数限制策略

¡     (可选)引用DPI应用profile

(6)     (可选)提高网络可靠性

¡     (可选)开启虚服务器IP地址发布功能

(7)     (可选)指定发送免费ARP报文或ND报文的接口

(8)     开启虚服务器

2.5.3  虚服务器(七层)配置任务简介

虚服务器(七层)配置任务如下:

(1)     配置虚服务器基本功能

a.     创建虚服务器

b.     配置TCP类型的虚服务器工作在七层

c.     配置VSIP和端口号

(2)     配置报文处理策略

请至少选择其中一项进行配置:

¡     指定实服务组

¡     引用负载均衡策略

(3)     (可选)配置带宽和连接参数

(4)     (可选)配置HTTP重定向功能

(5)     (可选)配置MySQL数据库信息

¡     (可选)配置MySQL数据库的版本

¡     (可选)配置登录MySQL数据库的用户名和密码

¡     (可选)开启MySQL数据库读写分离功能

(6)     (可选)引用参数模板和策略

¡     (可选)引用持续性组

¡     (可选)引用参数模板

¡     (可选)引用防护策略

¡     (可选)引用负载均衡连接数限制策略

¡     (可选)引用SSL策略

¡     (可选)引用DPI应用profile

(7)     (可选)配置外链代理功能

(8)     (可选)提高网络可靠性

¡     (可选)开启虚服务器IP地址发布功能

(9)     (可选)指定发送免费ARP报文或ND报文的接口

(10)     (可选)配置快速日志输出内容

(11)     开启虚服务器

2.5.4  创建虚服务器

1. 功能简介

四层服务器负载均衡的虚服务器包括IP、TCP和UDP三种类型。

七层服务器负载均衡的虚服务器包括快速HTTP、HTTP、MySQL、RADIUS、基于TCP的SIP和基于UDP的SIP类型。

2. 配置限制和指导

快速HTTP类型的虚服务器需避免与TCP客户端验证功能(该功能的介绍请参见“安全配置指导”中的“攻击检测与防范”)同时使用。

3. 创建虚服务器(四层)

(1)     进入系统视图。

system-view

(2)     创建IP、TCP或UDP类型的虚服务器,并进入虚服务器视图。

virtual-server virtual-server-name type { ip | tcp | udp }

创建虚服务器时必须为其指定类型;而在进入已创建的虚服务器视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置虚服务器的描述信息。

description text

缺省情况下,未配置虚服务器的描述信息。

4. 创建虚服务器(七层)

(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

缺省情况下,未配置虚服务器的描述信息。

2.5.5  配置TCP类型的虚服务器工作在七层

(1)     进入系统视图。

system-view

(2)     进入TCP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     配置TCP类型的虚服务器工作在七层。

application-mode enable

缺省情况下,TCP类型的虚服务器工作在四层。

2.5.6  配置VSIP和端口号

1. 配置限制和指导

快速HTTP、HTTP、MySQL、RADIUS、基于TCP的SIP和TCP类型虚服务器的VSIP和端口号不能都相同。

UDP类型和基于UDP的SIP类型虚服务器的VSIP和端口号不能都相同。

2. 配置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地址。

若虚服务器的IP地址与设备连接客户端的接口IP地址在同一网段,则必须指定发送免费ARP报文或ND报文的接口。否则,无需指定发送免费ARP报文或ND报文的接口。

(4)     配置虚服务器的端口号。

port { port-number [ to port-number ] } &<1-n>

缺省情况下,IP、TCP和UDP类型虚服务器的端口号为0(表示任意端口号)。

3. 配置VSIP和端口号(七层)

(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)。

2.5.7  指定实服务组

1. 功能简介

当主用实服务组可用(该实服务组存在且有可用的实服务器)时,虚服务器通过主用实服务组进行转发;当主用实服务组不可用而备用实服务组可用时,虚服务器通过备用实服务组进行转发。

如果用户既配置了主用持续性组,也配置了备用持续性组,则会根据两个持续性组同时生成主用持续性表项和备用持续性表项。当有新的流量匹配已生成的持续性表项时,如果未能匹配到主用持续性表项,则进行备用持续性表项匹配。

2. 配置限制和指导

若配置了备用持续性组,只有如下三种组合才会生成备用持续性表项,否则配置不生效:

·     主用持续性组为RADIUS类型,备用持续性组为地址端口类型;

·     主用持续性组为HTTP Cookie类型,备用持续性组为地址端口类型;

·     主用持续性组为HTTP Cookie类型,备用持续性组为HTTP passive类型。

3. 配置步骤

(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 ] ]

缺省情况下,未指定实服务组。

2.5.8  引用负载均衡策略

1. 功能简介

虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。

2. 配置步骤

(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类型的策略。

2.5.9  配置带宽和连接参数

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     配置虚服务器所允许的最大带宽。

rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps

缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。

(4)     配置虚服务器所允许的最大连接数。

connection-limit max max-number

缺省情况下,虚服务器所允许的最大连接数为0,即不受限制。

(5)     配置虚服务器所允许的最大连接速率。

rate-limit connection connection-number

缺省情况下,虚服务器所允许的最大连接速率为0,即不受限制。

2.5.10  配置UDP强制负载均衡功能

1. 功能简介

当UDP强制负载均衡功能关闭时,匹配虚服务器的流量按照数据流来进行负载均衡,即一个应用的流量会被负载均衡到同一个实服务器上;而当UDP强制负载均衡功能开启后,匹配虚服务器的流量不再按照流来进行负载均衡,而是按照每报文来进行负载均衡。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入基于UDP的SIP或UDP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     开启虚服务器的UDP强制负载均衡功能。

udp per-packet

缺省情况下,虚服务器的UDP强制负载均衡功能处于关闭状态。

2.5.11  配置HTTP重定向功能

1. 功能简介

在HTTP类型的虚服务器视图下开启了重定向功能后,所有匹配该虚服务器的HTTP请求报文都将被重定向到指定URL。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     开启虚服务器的重定向功能并指定重定向URL。

redirect relocation relocation

缺省情况下,虚服务器的重定向功能处于关闭状态。

(4)     配置负载均衡设备返回给客户端的重定向报文中的状态码。

redirect return-code { 301 | 302 }

缺省情况下,负载均衡设备返回给客户端的重定向报文中的状态码为302。

本命令只有在开启了虚服务器的重定向功能后才会生效。

2.5.12  配置MySQL数据库的版本

(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。

2.5.13  配置登录MySQL数据库的用户名和密码

1. 功能简介

通过本配置可以指定设备代替MySQL服务器对客户端进行认证的用户名和密码。此用户名和密码必须与MySQL服务器实际的登录用户名和密码相同。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入MySQL类型的虚服务器视图。

virtual-server virtual-server-name

(3)     配置登录MySQL数据库时使用的用户名和密码。

username username [ password { cipher | simple } string ]

缺省情况下,未配置登录MySQL数据库时使用的用户名和密码。

2.5.14  开启MySQL数据库读写分离功能

1. 功能简介

开启MySQL虚服务器的读写分离功能后,读SQL命令和写SQL命令将分别由读实服务组和写实服务组执行,一定程度上缓解读写并发数量较大时对数据库性能的影响。

2. 配置步骤

(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数据库读写分离功能处于关闭状态。

2.5.15  引用持续性组

1. 功能简介

设备支持通过以下三种方式引用持续性组:

·     在虚服务器视图下,指定缺省实服务组引用的持续性组;

·     在负载均衡动作视图下,指定实服务组引用的持续性组;

·     在虚服务器视图下,指定虚服务器引用的持续性组。

其中,通过本配置指定的虚服务器引用的持续性组优先级最高。即在进行流量分配时,优先根据虚服务器引用的持续性组生成持续性表项。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     指定虚服务器引用的持续性组。

sticky sticky-name

缺省情况下,未指定虚服务器引用的持续性组。

2.5.16  引用参数模板

1. 功能简介

参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。

2. 引用参数模板(四层)

(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类型参数模板支持客户端侧与服务器侧分别配置。

3. 引用参数模板(七层)

(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-application } profile-name

parameter tcp profile-name [ client-side | server-side ]

缺省情况下,虚服务器未引用任何参数模板。

http参数仅在快速HTTP和HTTP类型的虚服务器视图下支持,http-compressionhttp-statisticsoneconnect参数仅在HTTP类型的虚服务器视图下支持,mysql参数仅在MySQL类型的虚服务视图下支持,tcp参数仅在快速HTTP、HTTP和MySQL类型的虚服务视图下支持,tcp-application只在工作在七层的TCP类型的虚服务器视图下支持。

2.5.17  引用防护策略

1. 功能简介

通过在HTTP类型的虚服务器视图下引用HTTP防护策略,可以对防护策略中指定的URL进行防护,从而保护负载均衡设备和内网服务器的安全。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     指定虚服务器引用的防护策略。

protection-policy http policy-name

缺省情况下,虚服务器未引用任何防护策略。

2.5.18  引用负载均衡连接数限制策略

1. 功能简介

引用负载均衡连接数限制策略后,访问虚服务器的连接数将会受到连接数限制策略的限制。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     引用负载均衡连接数限制策略。

lb-limit-policy policy-name

缺省情况下,虚服服器中未引用任何负载均衡连接数限制策略。

2.5.19  引用SSL策略

1. 功能简介

通过指定虚服务器引用的SSL客户端策略,可以对负载均衡设备(作为SSL客户端)与SSL服务器之间传输的流量进行加密传输。

通过指定虚服务器引用的SSL服务器端策略,可以对负载均衡设备(作为SSL服务器)与SSL客户端之间传输的流量进行加密传输。

2. 配置限制和指导

如需修改已被虚服务器引用的SSL客户端/服务器端策略,在策略修改完成后,需在虚服务器视图下,先通过配置undo service enable命令关闭虚服务器,再通过配置service enable命令开启虚服务器,新的策略才能生效。

3. 配置步骤

(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类型的虚服务器不支持本功能。

2.5.20  引用DPI应用profile

1. 功能简介

通过指定虚服务器引用的DPI应用profile,可以对匹配虚服务的流量进行深度报文检测(包括IPS、防病毒和WAF),识别出网络攻击和安全隐患,从而保护负载均衡设备和内网服务器的安全。有关DPI应用profile的详细介绍,请参见“DPI深度安全配置指导”中的“应用层检测引擎”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入IP、TCP、UDP或HTTP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     指定虚服务器引用的DPI应用profile。

dpi-app-profile dpi-app-profile-name

缺省情况下,虚服务器未引用任何DPI应用profile。

2.5.21  配置外链代理功能

1. 功能简介

网站页面(以下简称主站)中通常会包含其他网站的外部链接(以下简称外链),比如门户网站等。如果主站已经支持IPv6,但外链资源不支持IPv6,那么当IPv6单栈客户端访问主站页面时,就会出现页面加载缓慢、显示不全或外链无法访问的现象。这就是IPv6升级改造过程中常见的“天窗”问题。

为了解决“天窗”问题,外链代理功能应运而生。外链代理功能通过代理IPv6客户端的IPv4外链访问请求,使IPv6单栈用户可以正常访问IPv4外链,帮助用户实现从IPv4网络到IPv6网络的平滑过渡。此外,代理过程具有透明性,客户端不感知,有效保障了用户体验。

2. 工作流程

若未配置外链代理功能,当IPv6客户端访问包含IPv4外链的网站时,客户端浏览器会向本地DNS服务器发送请求外链域名的DNS请求报文。由于客户端是IPv6单栈客户端,DNS服务器无法解析出IPv4地址,外链资源访问失败。

配置了外链代理功能后,设备在响应IPv6客户端访问主站页面的请求时,会同时向客户端返回外链改写的脚本文件。客户端浏览器执行该脚本文件,对IPv4外链域名进行改写。然后,客户端向本地DNS服务器查询改写后的外链域名。本地DNS服务器根据查询的域名将DNS请求重定向至设备,由设备代替IPv6客户端请求外链资源,并将外链资源返回给客户端。详细处理流程如图2-7所示。

图2-7 外链代理流程图

 

表2-4 外链代理流程简述

IPv6 Host浏览器执行脚本文件,将外链域名改写为http://www.extlink.com.proxy.suffix.com

IPv6 HostLocal DNS server发送查询域名http://www.extlink.com.proxy.suffix.comDNS请求报文。Local DNS server根据查询结果通知IPv6 Host解析该域名的权威DNS服务器为LB device

IPv6 HostLB device发送查询域名http://www.extlink.com.proxy.suffix.comDNS请求报文

LB device收到包含改写后域名的DNS请求报文后,代替IPv6 HostDNS sever发送查询原始外链域名http://www.extlink.comDNS请求报文,获取外链资源的IPv4地址

LB device根据外链资源的IPv4地址获取外链资源

LB device将收到的外链资源发送给IPv6 Host

3. 域名改写方法

当设备检测到服务器返回的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。

设备支持加载自定义外链改写文件,若未加载自定义外链改写文件,则使用缺省外链改写文件对外链域名进行改写。

4. 配置限制和指导

在配置外链代理功能时,管理员需要联系运营商在Local DNS上进行配置,将负载均衡设备配置为解析改写后域名的权威DNS服务器。

管理员需要配置loadbalance dns-server命令在设备上指定解析原始外链域名的DNS服务器。有关DNS服务器的详细配置,请参见4.5  配置DNS服务器

若DNS选路由入方向链路负载均衡完成,则外链代理的域名后缀应与DNS映射的域名后缀相同。

外链改写文件需要配置为客户端浏览器能够识别的格式,推荐配置为JS脚本文件。

不允许配置文件名称相同的外链改写文件和代答文件。

5. 配置步骤

(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

缺省情况下,外链代理功能处于关闭。

(8)     退回系统视图。

quit

(9)     (可选)配置加载外链改写文件。

loadbalance reload external-link file filename

缺省情况下,使用缺省外链改写文件。

当外链改写文件内容发生变化后,需要再次执行本命令重新加载。

2.5.22  开启虚服务器IP地址发布功能

1. 功能简介

在多数据中心的容灾备份组网中,通过在各数据中心的负载均衡设备上开启虚服务器IP地址发布功能,可以实现多数据中心之间的全局负载均衡。

开启虚服务器IP地址发布功能后,设备会将虚服务器的IP地址发布给OSPF模块参与路由计算,当数据中心进行切换的时候,保证访问虚服务器的流量也可以自动切换,从而提高负载均衡服务的可靠性。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     开启虚服务器IP地址发布功能。

route-advertisement enable

缺省情况下,虚服务器IP地址发布功能处于关闭状态。

2.5.23  指定发送免费ARP报文或ND报文的接口

1. 功能简介

通过本配置可从设备的指定接口发送免费ARP报文和ND报文。有关免费ARP的详细介绍,请参见“网络互通配置指导”中的“ARP”。有关ND报文的详细介绍,请参见“网络互通配置指导”中的“IPv6基础”。

2. 使用限制和指导

若虚服务器的IP地址与设备连接客户端的接口IP地址在同一网段,则必须指定发送免费ARP报文或ND报文的接口。否则,无需指定发送免费ARP报文或ND报文的接口。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     指定发送免费ARP报文或者ND报文的接口。

arp-nd interface interface-type interface-number

缺省情况下,未指定发送免费ARP报文或者ND报文的接口。

2.5.24  配置快速日志输出内容

1. 功能简介

通过配置本功能,可以根据用户需求指定负载均衡快速日志的输出内容。设备将把指定内容的日志信息采用快速日志方式发往日志主机。有关快速日志的详细介绍,请参见“网络管理和监控配置指导”中的“快速日志输出”。

2. 配置准备

配置本功能前,请确保负载均衡模块的快速日志输出功能已开启(custom format)且已配置了快速日志输出参数(custom host)。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的虚服务器视图。

virtual-server virtual-server-name

(3)     配置快速日志输出的内容。

customlog content content-value

缺省情况下,无快速日志输出。

2.5.25  开启虚服务器

1. 功能简介

配置完虚服务器后,需要将其开启后才能进入工作状态。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     开启虚服务器。

service enable

缺省情况下,虚服务器处于关闭状态。

2.6  配置负载均衡类

负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。

2.6.1  负载均衡类配置任务简介

负载均衡类配置任务如下:

(1)     配置通用类型负载均衡类

a.     创建负载均衡类

b.     创建匹配规则

请至少选择其中一项进行配置:

创建嵌套类的匹配规则

创建源IP地址类型的匹配规则

创建ACL类型的匹配规则

创建基于入接口的匹配规则

创建基于用户的匹配规则

创建基于用户组的匹配规则

创建TCP载荷类型的匹配规则

(2)     配置HTTP类型负载均衡类

a.     创建负载均衡类

b.     创建匹配规则

请至少选择其中一项进行配置:

创建嵌套类的匹配规则

创建源IP地址类型的匹配规则

创建ACL类型的匹配规则

创建基于入接口的匹配规则

创建基于用户的匹配规则

创建基于用户组的匹配规则

创建HTTP实体类型的匹配规则

创建HTTP Cookie类型的匹配规则

创建HTTP首部类型的匹配规则

创建HTTP URL类型的匹配规则

创建HTTP方法类型的匹配规则

(3)     配置MySQL类型负载均衡类

a.     创建负载均衡类

b.     创建匹配规则

请至少选择其中一项进行配置:

创建嵌套类的匹配规则

创建源IP地址类型的匹配规则

创建ACL类型的匹配规则

创建MySQL语句类型的匹配规则

(4)     配置RADIUS类型负载均衡类

a.     创建负载均衡类

b.     创建匹配规则

请至少选择其中一项进行配置:

创建嵌套类的匹配规则

创建源IP地址类型的匹配规则

创建ACL类型的匹配规则

创建RADIUS属性的匹配规则

2.6.2  创建负载均衡类

1. 创建负载均衡类(四层)

(1)     进入系统视图。

system-view

(2)     创建通用类型的负载均衡类,并进入负载均衡类视图。

loadbalance class class-name type generic [ match-all | match-any ]

创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡类的描述信息。

description text

缺省情况下,未配置负载均衡类的描述信息。

2. 创建负载均衡类(七层)

(1)     进入系统视图。

system-view

(2)     创建HTTP、MySQL或RADIUS类型的负载均衡类,并进入负载均衡类视图。

loadbalance class class-name type { http | mysql | radius } [ match-all | match-any ]

创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡类的描述信息。

description text

缺省情况下,未配置负载均衡类的描述信息。

2.6.3  创建嵌套类的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建嵌套类的匹配规则。

match [ match-id ] class class-name

2.6.4  创建源IP地址类型的匹配规则

(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 ] }

2.6.5  创建ACL类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建ACL类型的匹配规则。

match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }

2.6.6  创建基于入接口的匹配规则

(1)     进入系统视图。

system-view

(2)     进入通用类型或HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建基于入接口的匹配规则。

match [ match-id ] interface interface-type interface-number

2.6.7  创建基于用户的匹配规则

(1)     进入系统视图。

system-view

(2)     进入通用类型或HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建基于用户的匹配规则。

match [ match-id ] [ identity-domain domain-name ] user user-name

2.6.8  创建基于用户组的匹配规则

(1)     进入系统视图。

system-view

(2)     进入通用类型或HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建基于用户组的匹配规则。

match [ match-id ] [ identity-domain domain-name ] user-group user-group-name

2.6.9  创建TCP载荷类型的匹配规则

1. 功能简介

当在通用类型的负载均衡类中配置了TCP载荷类型的匹配规则,则TCP流量匹配上指定的正则表达式之后,执行相应的负载均衡动作。若在配置TCP载荷类型的匹配规则时,指定了not参数,则在TCP流量未匹配指定的正则表达式时,执行相应的负载均衡动作。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入通用类型的负载均衡类视图。

loadbalance class class-name

(3)     创建TCP载荷类型的匹配规则。

match [ match-id ] payload payload [ case-insensitive ] [ not ]

2.6.10  创建HTTP实体类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建HTTP实体类型的匹配规则。

match [ match-id ] content content [ offset offset ]

快速HTTP类型虚服务器不支持本功能。

2.6.11  创建HTTP Cookie类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建HTTP Cookie类型的匹配规则。

match [ match-id ] cookie cookie-name value value

2.6.12  创建HTTP首部类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建HTTP首部类型的匹配规则。

match [ match-id ] header header-name value value

2.6.13  创建HTTP URL类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建HTTP URL类型的匹配规则。

match [ match-id ] url url

2.6.14  创建HTTP方法类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建HTTP方法类型的匹配规则。

match [ match-id ] method { ext ext-type | rfc rfc-type }

2.6.15  创建HTTP版本类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡类视图。

loadbalance class class-name

(3)     创建HTTP版本类型的匹配规则。

match [ match-id ] version { 1.0 | 1.1 }

2.6.16  创建MySQL语句类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入MySQL类型的负载均衡类视图。

loadbalance class class-name

(3)     创建MySQL语句类型的匹配规则。

match [ match-id ] sql sql [ case-insensitive ] [ not ]

2.6.17  创建RADIUS属性的匹配规则

(1)     进入系统视图。

system-view

(2)     进入RADIUS类型的负载均衡类视图。

loadbalance class class-name

(3)     创建RADIUS属性的匹配规则。

match [ match-id ] radius-attribute { code attribute-code | user-name } value attribute-value

2.7  配置负载均衡动作

2.7.1  功能简介

负载均衡动作可分为三大类:

·     转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。

·     修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。

·     代答类动作:用指定的文件对客户端HTTP请求进行应答。

如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。

2.7.2  配置限制和指导

·     对于四层服务器负载均衡,在配置转发类动作时,配置报文的转发模式为转发和配置指导转发的实服务组互斥。

·     对于七层服务器负载均衡,在配置负载均衡动作时,配置指导转发的实服务组、配置重定向功能和配置对指定的HTTP请求进行代答两两互斥。

·     对于七层服务器负载均衡,在配置负载均衡动作时,配置查找可用实服务器失败时继续匹配下一条引用规则和配置负载均衡处理失败时的代答文件互斥。

2.7.3  负载均衡动作配置任务简介

负载均衡动作配置任务如下:

(1)     配置通用类型负载均衡动作

a.     创建负载均衡动作

b.     (可选)配置转发类动作

请从配置报文的转发模式为转发、指定指导转发的实服务组和关闭TCP连接中选择一项进行配置。

配置报文的转发模式为转发

指定指导转发的实服务组

关闭TCP连接

(可选)配置查找实服务器失败时继续匹配下一条引用规则

(可选)配置查找可用实服务器失败时关闭TCP连接

c.     (可选)配置修改类动作

配置发往服务器的IP报文中的ToS字段

重写TCP载荷

(2)     配置HTTP类型负载均衡动作

a.     创建负载均衡动作

b.     (可选)配置转发类动作

请从指定指导转发的实服务组和关闭TCP连接中选择一项进行配置。

指定指导转发的实服务组

关闭TCP连接

(可选)配置查找实服务器失败时继续匹配下一条引用规则

(可选)配置查找可用实服务器失败时关闭TCP连接

c.     (可选)配置修改类动作

请至少选择其中一项进行配置。

配置发往服务器的IP报文中的ToS字段

操作HTTP首部

重写服务器发送的HTTP应答报文Location首部的URL

引用SSL客户端策略

修改HTTP应答报文体中指定内容

配置HTTP重定向功能.

d.     (可选)配置代答类动作

配置对指定的HTTP请求进行代答

配置负载均衡处理失败时的代答文件

e.     (可选)开启外链代理功能

(3)     配置RADIUS类型负载均衡动作

a.     创建负载均衡动作

b.     (可选)配置转发类动作

指定指导转发的实服务组

配置查找实服务器失败时继续匹配下一条引用规则

c.     (可选)配置修改类动作

配置发往服务器的IP报文中的ToS字段

2.7.4  创建负载均衡动作

1. 创建负载均衡动作(四层)

(1)     进入系统视图。

system-view

(2)     创建通用类型的负载均衡动作,并进入负载均衡动作视图。

loadbalance action action-name type generic

创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡动作的描述信息。

description text

缺省情况下,未配置负载均衡动作的描述信息。

2. 创建负载均衡动作(七层)

(1)     进入系统视图。

system-view

(2)     创建HTTP或RADIUS类型的负载均衡动作,并进入负载均衡动作视图。

loadbalance action action-name type { http | radius }

创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡动作的描述信息。

description text

缺省情况下,未配置负载均衡动作的描述信息。

2.7.5  配置转发类动作

1. 转发类动作简介

设备支持配置以下几种转发类动作,包括:

·     报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。

·     指定指导转发的实服务组:当主用实服务组可用(该实服务组存在且有可用的实服务器)时,使用主用实服务组指导转发;当主用实服务组不可用而备用实服务组可用时,使用备用实服务组指导转发。

·     关闭TCP连接:当配置本功能的动作在负载均衡策略中被引用时,设备直接向客户端发送FIN报文或RST报文关闭匹配当前策略的TCP连接。

·     查找实服务器失败时继续匹配下一条引用规则:当配置本功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用实服务器失败时,可继续顺序匹配策略中的下一条引用规则。

·     查找可用服务器失败时关闭TCP连接:当配置本功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用实服务器失败时,设备直接向客户端发送FIN报文或RST报文关闭TCP连接。

2. 配置报文的转发模式为转发

(1)     进入系统视图。

system-view

(2)     进入通用类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置报文的转发模式为转发。

forward all

缺省情况下,报文转发模式为丢弃。

3. 指定指导转发的实服务组

(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类型时,才会生成备用持续性表项,否则备用持续性组的配置不生效。

4. 关闭TCP连接

(1)     进入系统视图。

system-view

(2)     进入通用和HTTP类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置关闭TCP连接的方式。

tcp-close { fin | rst }

缺省情况下,关闭TCP连接的方式为发送TCP FIN报文。

5. 配置查找实服务器失败时继续匹配下一条引用规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置查找实服务器失败时继续匹配下一条引用规则。

fallback-action continue

缺省情况下,查找可用实服务器失败时直接丢弃报文。

6. 配置查找可用实服务器失败时关闭TCP连接

(1)     进入系统视图。

system-view

(2)     进入通用和HTTP类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置查找可用实服务器失败时关闭TCP连接。

fallback-action close { fin | rst }

缺省情况下,查找可用实服务器失败时直接丢弃报文。

2.7.6  配置修改类动作

1. 配置发往服务器的IP报文中的ToS字段

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置发往服务器的IP报文中的ToS字段。

set ip tos tos-number

缺省情况下,不改变发往服务器的IP报文中的ToS字段。

2. 重写TCP载荷

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     重写TCP载荷。

payload rewrite { both | request | response } value value replace replace-string

缺省情况下,未对TCP载荷进行重写。

若指定方向的TCP报文中携带有指定的载荷,系统会将该载荷中的指定内容重写为新的内容。

仅七层TCP类型的虚服务器支持引用包含该动作的负载均衡策略。

3. 操作HTTP首部

(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。

4. 重写服务器发送的HTTP应答报文Location首部的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端口号。

5. 引用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命令开启虚服务器,新的策略才能生效。

6. 修改HTTP应答报文体中指定内容

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡动作视图。

loadbalance action action-name

(3)     修改HTTP应答报文体中指定内容。

content rewrite value value replace replace

缺省情况下,未配置修改HTTP应答报文体中指定内容。

7. 配置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。

本命令只有在开启了动作的重定向功能后才会生效。

2.7.7  配置对指定的HTTP请求进行代答

1. 功能简介

设备支持配置用压缩文件和非压缩文件对客户端的指定HTTP请求进行应答。

·     如果客户端请求URL中的资源路径匹配指定的url,则用指定的非压缩文件对客户端请求进行应答。

·     如果客户端请求URL中的资源路径匹配指定的workpath+ZIP压缩包内相对路径,则使用ZIP压缩包内的文件对客户端请求进行应答。

若配置了用压缩文件和非压缩文件对同一HTTP请求进行应答,且压缩文件和非压缩文件的路径相同,则使用非压缩文件进行代答。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置对指定的HTTP请求进行代答。

response { url url file filename | workpath workpath zip-file zip-filename }

缺省情况下,未配置对HTTP请求进行代答。

2.7.8  配置负载均衡处理失败时的代答文件

1. 功能简介

通过配置负载均衡处理失败时的代答文件,可在以下两种情况下使用指定文件对客户端请求进行应答:

·     查找可用实服务器失败。

·     配置了对指定的HTTP请求进行代答后,查找代答文件失败。

2. 配置限制和指导

代答文件必须是一个完整的HTTP报文,不能只是HTTP报文体的内容。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置负载均衡处理失败时的代答文件。

fallback-action response raw-file raw-filename

缺省情况下,根据当前动作查找可用服务器失败时直接丢弃报文。

2.7.9  开启外链代理功能

1. 功能简介

在HTTP类型的负载均衡动作视图下,开启了外链功能后,要使外链代理功能生效,还需要在虚服务器视图下配置外链代理相关参数。有关外链代理功能的详细配置,请参见“2.5.21  配置外链代理功能

2. 功能简介

网站页面(以下简称主站)中通常会包含其他网站的外部链接(以下简称外链),比如门户网站等。如果主站已经支持IPv6,但外链资源不支持IPv6,那么当IPv6单栈客户端访问主站页面时,就会出现页面加载缓慢、显示不全或外链无法访问的现象。这就是IPv6升级改造过程中常见的“天窗”问题。

为了解决“天窗”问题,外链代理功能应运而生。外链代理功能通过代理IPv6客户端的IPv4外链访问请求,使IPv6单栈用户可以正常访问IPv4外链,帮助用户实现从IPv4网络到IPv6网络的平滑过渡。此外,代理过程具有透明性,客户端不感知,有效保障了用户体验。

3. 工作流程

若未配置外链代理功能,当IPv6客户端访问包含IPv4外链的网站时,客户端浏览器会向本地DNS服务器发送请求外链域名的DNS请求报文。由于客户端是IPv6单栈客户端,DNS服务器无法解析出IPv4地址,外链资源访问失败。

配置了外链代理功能后,设备在响应IPv6客户端访问主站页面的请求时,会同时向客户端返回外链改写的脚本文件。客户端浏览器执行该脚本文件,对IPv4外链域名进行改写。然后,客户端向本地DNS服务器查询改写后的外链域名。本地DNS服务器根据查询的域名将DNS请求重定向至设备,由设备代替IPv6客户端请求外链资源,并将外链资源返回给客户端。详细处理流程如图2-7所示。

图2-8 外链代理流程图

 

表2-5 外链代理流程简述

IPv6 Host浏览器执行脚本文件,将外链域名改写为http://www.extlink.com.proxy.suffix.com

IPv6 HostLocal DNS server发送查询域名http://www.extlink.com.proxy.suffix.comDNS请求报文。Local DNS server根据查询结果通知IPv6 Host解析该域名的权威DNS服务器为LB device

IPv6 HostLB device发送查询域名http://www.extlink.com.proxy.suffix.comDNS请求报文

LB device收到包含改写后域名的DNS请求报文后,代替IPv6 HostDNS sever发送查询原始外链域名http://www.extlink.comDNS请求报文,获取外链资源的IPv4地址

LB device根据外链资源的IPv4地址获取外链资源

LB device将收到的外链资源发送给IPv6 Host

4. 域名改写方法

当设备检测到服务器返回的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。

设备支持加载自定义外链改写文件,若未加载自定义外链改写文件,则使用缺省外链改写文件对外链域名进行改写。

5. 配置限制和指导

在配置外链代理功能时,管理员需要联系运营商在Local DNS上进行配置,将负载均衡设备配置为解析改写后域名的权威DNS服务器。

管理员需要配置loadbalance dns-server命令在设备上指定解析原始外链域名的DNS服务器。有关DNS服务器的详细配置,请参见4.5  配置DNS服务器。

若DNS选路由入方向链路负载均衡完成,则外链代理的域名后缀应与DNS映射的域名后缀相同。

外链改写文件需要配置为客户端浏览器能够识别的格式,推荐配置为JS脚本文件。

不允许配置文件名称相同的外链改写文件和代答文件。

6. 配置步骤

(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

缺省情况下,外链代理功能处于关闭。

(8)     退回系统视图。

quit

(9)     (可选)配置加载外链改写文件。

loadbalance reload external-link file filename

缺省情况下,使用缺省外链改写文件。

当外链改写文件内容发生变化后,需要再次执行本命令重新加载。

”。

若开启了外链代理功能且配置了以下负载均衡动作时,外链代理功能优先生效。

·     转发类动作,请参见“2.7.5  配置转发类动作

·     HTTP重定向功能,请参见“2.7.6  7. 配置HTTP重定向功能.

·     对指定的HTTP请求进行代答,请参见“2.7.7  配置对指定的HTTP请求进行代答

·     负载均衡处理失败时的代答文件,请参见“2.7.8  配置负载均衡处理失败时的代答文件

7. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的负载均衡动作视图。

loadbalance action action-name

(3)     开启外链代理功能。

external-link proxy enable

缺省情况下,外链代理功能处于关闭状态。

2.8  配置负载均衡策略

2.8.1  功能简介

将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。

用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。

2.8.2  配置任务简介

四层和七层服务器负载均衡的负载均衡策略配置基本相同。

负载均衡策略配置任务如下:

(1)     创建负载均衡策略

(2)     指定负载均衡动作

(3)     指定缺省负载均衡动作

2.8.3  创建负载均衡策略

1. 创建负载均衡策略(四层)

(1)     进入系统视图。

system-view

(2)     创建通用类型的负载均衡策略,并进入负载均衡策略视图。

loadbalance policy policy-name type generic

创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡策略的描述信息。

description text

缺省情况下,未配置负载均衡策略的描述信息。

2. 创建负载均衡策略(七层)

(1)     进入系统视图。

system-view

(2)     创建HTTP或RADIUS类型的负载均衡策略,并进入负载均衡策略视图。

loadbalance policy policy-name type { http | mysql | radius }

创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡策略的描述信息。

description text

缺省情况下,未配置负载均衡策略的描述信息。

2.8.4  指定负载均衡动作

1. 配置限制和指导

通用类型的负载均衡策略只能引用通用类型的负载均衡类和负载均衡动作;HTTP类型的负载均衡策略可以引用HTTP或通用类型的负载均衡类和负载均衡动作;MySQL类型的负载均衡策略可以引用MySQL或通用类型的负载均衡类和通用类型负载均衡动作;RADIUS类型的负载均衡策略可以引用RAIDIUS或通用类型的负载均衡类和负载均衡动作。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入负载均衡策略视图。

loadbalance policy policy-name

(3)     为负载均衡类指定负载均衡动作。

class class-name [ insert-before before-class-name | insert-after [ after-class-name ] ] action action-name

缺省情况下,没有为任何负载均衡类指定负载均衡动作。

不同的负载均衡类可以与同一负载均衡动作组成匹配规则。

2.8.5  指定缺省负载均衡动作

1. 配置限制和指导

通用类型的负载均衡策略只能引用通用类型的负载均衡动作作为其缺省负载均衡动作,HTTP类型的负载均衡策略则无此限制。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入负载均衡策略视图。

loadbalance policy policy-name

(3)     指定缺省负载均衡动作。

default-class action action-name

缺省情况下,未指定缺省负载均衡动作。

2.9  配置持续性组

持续性组的作用是根据某持续性方法将具有相同特征的访问流量都分配给同一个实服务器处理,这个分配规则就称为持续性表项。当用户首次发起访问时,设备会根据调度算法将请求分发给某台实服务器。同时根据持续性方法生成持续性表项。在持续性表项老化之前,若设备再次收到用户请求,不会再根据调度算法进行计算,而是根据已生成的持续性表项,选择对应的实服务器进行转发。

2.9.1  持续性组(四层)配置任务简介

持续性组(四层)配置任务如下:

(1)     创建持续性组

(2)     配置持续性方法

请至少选择其中一项进行配置。

¡     配置IP持续性方法

¡     配置UDP passive类型持续性方法

(3)     (可选)配置持续性表项超时时间

(4)     (可选)配置持续性表项匹配范围

(5)     (可选)开启匹配持续性表项的会话不受连接数限制影响功能

(6)     (可选)开启持续性处理优先于繁忙功能

2.9.2  持续性组(七层)配置任务简介

持续性组(七层)配置任务如下:

(1)     创建持续性组

(2)     配置持续性方法

请至少选择其中一项进行配置。

¡     配置IP持续性方法

¡     配置TCP载荷持续性方法

¡     配置HTTP实体持续性方法

¡     配置HTTP Cookie持续性方法

¡     配置HTTP首部持续性方法

¡     配置HTTP passive持续性方法

¡     配置HTTP或UDP载荷持续性方法

¡     配置RADIUS属性持续性方法

¡     配置基于SIP信令报文Call ID的持续性方法

¡     配置SSL持续性方法

(3)     (可选)配置持续性表项超时时间

(4)     (可选)配置持续性表项匹配范围

(5)     (可选)开启匹配持续性表项的会话不受连接数限制影响功能

(6)     (可选)开启持续性处理优先于繁忙功能

2.9.3  创建持续性组

1. 创建持续性组(四层)

(1)     进入系统视图。

system-view

(2)     创建地址端口类型的持续性组,并进入持续性组视图。

sticky-group group-name type address-port

创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置持续性组的描述信息。

description text

缺省情况下,未配置持续性组的描述信息。

2. 创建持续性组(七层)

(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

缺省情况下,未配置持续性组的描述信息。

2.9.4  配置IP持续性方法

(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持续性方法。

2.9.5  配置TCP载荷持续性方法

(1)     进入系统视图。

system-view

(2)     进入TCP载荷类型的持续性组视图。

sticky-group group-name

(3)     配置TCP载荷持续性方法。

tcp-payload [ offset offset ] [ start start-string ] [ end end-string | length length ]

缺省情况下,未配置TCP载荷持续性方法。

2.9.6  配置UDP passive类型持续性方法

1. 功能简介

配置UDP passive类型的持续性方法后,当设备收到UDP应答方向报文后,根据payload get命令的配置获取到的UDP应答报文的载荷信息生成持续性表项。对于后续收到的UDP请求报文,根据payload match命令的配置获取到指定请求报文的载荷信息,若该载荷信息匹配上持续性表项,则按照持续性表项转发。

2. 配置限制和指导

UDP载荷被动持续性方法需要getmatch命令的配合才能生成。

3. 配置步骤

(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类型持续性方法。

2.9.7  配置HTTP实体持续性方法

(1)     进入系统视图。

system-view

(2)     进入HTTP实体类型的持续性组视图。

sticky-group group-name

(3)     配置HTTP实体持续性方法。

content [ offset offset ] [ start start-string ] [ end end-string | length length ]

缺省情况下,未配置HTTP实体持续性方法。

快速HTTP类型的虚服务器不支持本功能。

2.9.8  配置HTTP Cookie持续性方法

(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

缺省情况下,不检查所有报文。

2.9.9  配置HTTP首部持续性方法

(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首部持续性方法。

2.9.10  配置HTTP passive持续性方法

1. 功能简介

HTTP passive类型持续性方法包括HTTP首部被动持续性方法和HTTP实体被动持续性方法。

配置HTTP passive类型的持续性方法后,设备会根据header getcontent get命令获取HTTP应答报文首部或实体中的指定字符串,生成持续性表项。对于后续收到的所有HTTP请求报文,根据header matchcontent match命令获取HTTP请求报文首部或实体中的指定字段,若该字段匹配上持续性表项,则按照持续性表项转发。

HTTP首部被动持续性方法和HTTP实体被动持续性方法都包括getmatch命令,其配置遵循以下原则:

·     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请求报文与持续性表项匹配成功,按照持续性表项转发。

2. 配置限制和指导

HTTP首部被动持续性方法和实体被动持续性方法需要getmatch命令的配合才能生成。

同一HTTP passive类型的持续性组视图下,最多允许通过配置4条get命令在HTTP应答报文中获取4个指定字符串,最多允许通过配置4条match命令在HTTP请求报文中获取4个指定字符串。

3. 配置步骤

(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

缺省情况下,不检查所有报文。

2.9.11  配置HTTP或UDP载荷持续性方法

(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类型的虚服务器不支持本功能。

2.9.12  配置RADIUS属性持续性方法

(1)     进入系统视图。

system-view

(2)     进入RADIUS类型的持续性组视图。

sticky-group group-name

(3)     配置RADIUS属性持续性方法。

radius-attribute { code attribute-code | framed-ip-address | user-name }

缺省情况下,未配置RADIUS属性持续性方法。

2.9.13  配置基于SIP信令报文Call ID的持续性方法

1. 功能简介

配置基于SIP信令报文Call ID的持续性方法后,设备会根据SIP信令报文首部的call-id字段生成持续性表项,将具有相同Call ID的SIP报文都分配给同一台实服务器处理。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SIP类型的持续性组视图。

sticky-group group-name

(3)     配置基于SIP信令报文Call ID的持续性方法。

header call-id

缺省情况下,未配置基于SIP信令报文Call ID的持续性方法。

2.9.14  配置SSL持续性方法

(1)     进入系统视图。

system-view

(2)     进入SSL类型的持续性组视图。

sticky-group group-name

(3)     配置SSL持续性方法为基于SSL会话ID。

ssl session-id

缺省情况下,未配置SSL持续性方法。

2.9.15  配置持续性表项超时时间

(1)     进入系统视图。

system-view

(2)     进入持续性组视图。

sticky-group group-name

(3)     配置持续性表项的超时时间。

timeout { indefinite | timeout-value }

缺省情况下,对于HTTP Cookie、HTTP passive和UDP passive类型的持续性组,持续性表项的超时时间为86400秒;对于其它类型的持续性组,持续性表项的超时时间为60秒。

2.9.16  配置持续性表项匹配范围

1. 功能简介

缺省情况下,某虚服务器的持续性表项仅对访问当前虚服务器的流量生效。通过配置本功能,可以调整持续性表项的匹配范围,当用户流量未匹配上当前虚服务器的持续性表项时,可以继续进行跨服务匹配或者跨虚服务器匹配。通过配置跨服务或跨虚服务器匹配持续性表项,对于访问不同虚服务器的具有一定相关性的会话,设备可以将其分配给同一台实服务器。

若同时配置跨服务匹配和跨虚服务器匹配,持续性表项的匹配顺序依次为:匹配当前虚服务器,跨服务匹配,跨虚服务器匹配。在持续性表项的每种匹配范围内,设备总是优先匹配最新生成的持续性表项。匹配成功则转发报文,不再匹配其他表项。

下面分别对持续性表项的三种匹配范围进行介绍:

·     匹配当前虚服务器:设备仅匹配当前虚服务器的持续性表项。此为设备缺省匹配范围,无需配置。

·     跨服务匹配:设备在未匹配到当前虚服务器的持续性表项时,可以继续匹配IP地址相同的其他虚服务器的持续性表项。使用场景为,存在多个IP地址相同,端口不同的虚服务器,且这些虚服务器共用相同的实服务器资源。

·     跨虚服务器匹配:设备在未匹配到当前虚服务器的持续性表项时,可以继续匹配他所有虚服务器的持续性表项。使用场景为,存在多个共用相同实服务器资源的虚服务器。

例如,设备上存在虚服务器A、B、C同时对外提供服务,且所有虚服务器均采用源IP地址持续性方法,生成的持续性表项如图2-9所示(为了便于说明,图中仅列举了持续性表项的部分信息)。

下图以Host A、B、C均访问虚服务器A作为示例,若管理员配置不同的持续性表项生效范围,则会产生不同的匹配结果,进而将用户流量转发至不同的实服务组。

图2-9 持续性表项匹配示意图

匹配范围

匹配结果示例

匹配当前虚服务器

设备将请求报文的源IP地址与当前虚服务器A的持续性表项匹配

·     Host A匹配成功,设备根据持续性表项,将Host A的请求报文转发至实服务器RS A

·     Host BHost C匹配失败,持续性匹配结束,设备根据调度算法或负载均衡策略分发请求报文

跨服务匹配

设备将请求报文的源IP地址优先与当前虚服务器A的持续性表项匹配

·     Host A匹配成功,设备根据持续性表项,将Host A的请求报文转发至实服务器RS A

·     Host BHost C匹配不成功,设备会继续将请求报文的源IP地址与虚服务器B(与虚服务器AIP地址相同)的持续性表项匹配

¡     Host B匹配成功,设备根据虚服务器B的持续性表项,将Host B的请求报文转发至实服务器RS B

¡     Host C匹配不成功,持续性匹配结束,设备根据调度算法或负载均衡策略分发请求报文

跨虚服务器匹配

设备将请求报文的源IP地址优先与当前虚服务器A的持续性表项匹配

·     Host A匹配成功,设备根据持续性表项,将Host A的请求报文转发至实服务器RS A

·     Host BHost C匹配不成功,设备会继续将请求报文的源IP地址与其他所有虚服务器的持续性表项匹配

¡     Host B与虚服务器B的持续性表项匹配成功,设备根据虚服务器B的持续性表项,将Host B的请求报文转发至实服务器RS B

¡     Host C与虚服务器C的持续性表项匹配成功,设备根据虚服务器C的持续性表项,将Host C的请求报文转发至实服务器RS A

 

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入地址端口或RADIUS类型的持续性组视图。

sticky-group group-name

(3)     开启跨服务匹配持续性表项功能。

match-across-service enable

缺省情况下,跨服务匹配持续性表项功能处于关闭状态。

(4)     开启跨虚服务器匹配持续性表项功能。

match-across-virtual-server enable

缺省情况下,跨虚服务器匹配持续性表项功能处于关闭状态。

2.9.17  开启匹配持续性表项的会话不受连接数限制影响功能

1. 功能简介

开启该功能后,如果该连接匹配了已有的持续性表项,将不受实服务器上带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入持续性组视图。

sticky-group group-name

(3)     开启匹配持续性表项的会话不受连接数限制影响功能。

override-limit enable

缺省情况下,匹配持续性表项的会话受连接数限制配置的影响。

2.9.18  开启持续性处理优先于繁忙功能

1. 功能简介

开启持续性处理优先于繁忙功能后,在持续性表项老化之前,无论实服务器是否处于繁忙状态,设备都会依据持续性表项为其分配流量。

若持续性处理优先于繁忙功能处于关闭状态,则在持续性表项老化之前,设备会依据持续性表项仅为处于正常状态的实服务器分配流量。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入持续性组视图。

sticky-group group-name

(3)     开启持续性处理优先于繁忙功能。

sticky-over-busy enable

缺省情况下,持续性处理优先于繁忙功能处于关闭状态。

2.10  配置参数模板

2.10.1  参数模板配置任务简介

参数模板配置任务如下:

1. 配置IP类型参数模板

(1)     创建参数模板

(2)     配置发往客户端的IP报文中的ToS字段

2. 配置TCP类型参数模板

(1)     创建参数模板

(2)     配置参数

请至少选择其中一项进行配置。

¡     配置TCP连接中的本地最大窗口值

¡     配置TCP连接的空闲超时时间

¡     配置TCP连接TIME-WAIT状态的超时时间

¡     配置TCP连接SYN报文的重传超时时间

¡     配置TCP连接保活参数

¡     配置TCP连接FIN-WAIT-1状态的超时时间

¡     配置TCP连接FIN-WAIT-2状态的超时时间

¡     配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式

¡     配置负载均衡设备与对端建立TCP连接时的MSS值

¡     配置在TCP选项中插入内容

¡     清除TCP报文头中的指定选项

¡     配置进行SNAT地址转换的TCP选项

3. 配置TCP-application类型的参数模板

(1)     创建参数模板

(2)     配置TCP载荷匹配的缓冲条件

4. 配置HTTP类型的参数模板

(1)     创建参数模板

(2)     配置参数

请至少选择其中一项进行配置。

¡     配置对每个HTTP请求报文都进行负载均衡

¡     配置负载均衡设备与服务器的连接复用功能

¡     配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作

¡     配置匹配字符串时对大小写不敏感

¡     配置HTTP最大解析长度

¡     配置Secondary Cookie相关参数

¡     配置当HTTP请求或应答报文首部超出最大长度时的处理方式

¡     配置允许通过的HTTP请求报文实体的最大长度

¡     配置Cookie加密功能

5. 配置HTTP压缩类型的参数模板

(1)     创建参数模板

(2)     配置HTTP压缩功能

6. 配置HTTP统计类型的参数模板

(1)     创建参数模板

(2)     配置HTTP统计功能

7. 配置MySQL类型的参数模板

(1)     创建参数模板

(2)     配置负载均衡设备与服务器的连接复用功能

2.10.2  创建参数模板

1. 创建参数模板(四层)

(1)     进入系统视图。

system-view

(2)     创建IP类型的参数模板,并进入参数模板视图。

parameter-profile profile-name type ip

创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置参数模板的描述信息。

description text

缺省情况下,未配置参数模板的描述信息。

2. 创建参数模板(七层)

(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

缺省情况下,未配置参数模板的描述信息。

2.10.3  配置发往客户端的IP报文中的ToS字段

(1)     进入系统视图。

system-view

(2)     进入IP类型的参数模板视图。

parameter-profile profile-name

(3)     配置发往客户端的IP报文中的ToS字段。

set ip tos tos-number

缺省情况下,不改变发往客户端的IP报文中的ToS字段。

2.10.4  配置TCP连接中的本地最大窗口值

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接中的本地最大窗口值。

tcp window-size size

缺省情况下,TCP连接中的本地最大窗口值为65535。

2.10.5  配置TCP连接的空闲超时时间

1. 功能简介

通过本配置可以自定义负载均衡设备与客户端以及服务器建立的TCP连接的空闲超时时间。若在TCP连接的空闲超时时间内没有应用数据传输,负载均衡设备会主动断开与客户端或服务器的TCP连接。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接的空闲超时时间。

tcp connection idle-timeout value

缺省情况下,TCP连接的空闲超时时间为0,即不超时。

2.10.6  配置TCP连接TIME-WAIT状态的超时时间

1. 功能简介

缺省情况下,TCP协议的TIME-WAIT状态超时时间为报文段在被丢弃之前在因特网上能够存在的最大时间(MSL)的两倍。

TCP连接断开时,由于TCP协议的TIME-WAIT状态超时时间较长,导致TCP连接释放过慢,影响负载均衡业务处理效率。通过本配置可灵活设置TIME-WAIT状态的超时时间。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接TIME-WAIT状态的超时时间。

time-wait timeout value

缺省情况下,TCP连接TIME-WAIT状态的超时时间为2秒。

2.10.7  配置TCP连接SYN报文的重传超时时间

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接SYN报文的重传超时时间。

syn retransmission-timeout timeout-value

缺省情况下,TCP连接SYN报文的重传超时时间为10秒。

2.10.8  配置TCP连接保活参数

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接保活定时器的空闲超时时间。

keepalive idle-timeout timeout-value

缺省情况下,TCP连接保活定时器的空闲超时时间为1800秒。

(4)     配置TCP保活报文的重传时间间隔与重传次数。

keepalive retransmission interval interval count count

缺省情况下,TCP保活报文的重传时间间隔为10秒,重传次数为3次。

2.10.9  配置TCP连接FIN-WAIT-1状态的超时时间

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接FIN-WAIT-1状态的超时时间。

fin-wait1 timeout timeout-value

缺省情况下,TCP连接FIN-WAIT-1状态的超时时间为5秒。

2.10.10  配置TCP连接FIN-WAIT-2状态的超时时间

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置TCP连接FIN-WAIT-2状态的超时时间。

fin-wait2 timeout timeout-value

缺省情况下,TCP连接FIN-WAIT-2状态的超时时间为5秒。

2.10.11  配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式。

exceed-mss { allow | drop }

缺省情况下,对客户端发来的HTTP请求报文中超出MSS的数据段的处理方式为允许超出MSS的数据段。

2.10.12  配置负载均衡设备与对端建立TCP连接时的MSS值

1. 功能简介

在客户端与负载均衡设备建立TCP连接时,客户端将MSS值通告给负载均衡设备,负载均衡设备会记录下这个MSS值,并将配置的MSS值发送给客户端,客户端与负载均衡设备将使用较小的MSS值作为双方通信的最大分段长度。

在负载均衡设备与服务器建立TCP连接时,负载均衡设备将配置的MSS值通告给服务器,服务器会记录下这个MSS值,并将自身的MSS值发送给负载均衡设备,负载均衡设备与服务器将使用较小的MSS值作为双方通信的最大分段长度。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置负载均衡设备与对端建立TCP连接时的MSS值。

tcp mss value

缺省情况下,未配置负载均衡设备与对端建立TCP连接时的MSS值。

2.10.13  配置在TCP选项中插入内容

1. 功能简介

本功能用来在负载均衡设备发送给服务器的TCP报文头的指定选项中插入客户端的真实源IP地址。

2. 配置限制和指导

本功能仅在以下几种类型的虚服务器引用TCP类型的参数模板时才会生效:

·     HTTP类型的虚服务器

·     配置了SSL服务器端策略的TCP类型的虚服务器

·     工作在七层的TCP类型的虚服务器

·     MySQL类型的虚服务器

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置在TCP选项中插入内容。

tcp option insert option-number src-addr [ encode { binary | string } ]

缺省情况下,未在TCP选项中插入内容。

2.10.14  清除TCP报文头中的指定选项

1. 功能简介

本功能用来清除负载均衡设备发送给服务器的TCP报文头中的指定选项。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     清除TCP报文头中的指定选项。

tcp option remove option-number

缺省情况下,未对TCP报文头中的指定选项进行清除。

2.10.15  配置进行SNAT地址转换的TCP选项

1. 功能简介

通过本配置可以指定用来进行SNAT地址转换的TCP选项,即将指定TCP选项中携带的IP地址作为SNAT转换地址。实现本功能还需配置SNAT转换方式为TCP Option方式,具体配置请参见“2.3.6  配置NAT模式的NAT功能”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入TCP类型的参数模板视图。

parameter-profile profile-name

(3)     配置进行SNAT地址转换的TCP选项。

src-addr-option option-number [ encode { binary | string } ]

缺省情况下,未配置进行SNAT地址转换的TCP选项。

此命令仅在客户端侧的参数模板下生效。

2.10.16  配置TCP载荷匹配的缓冲条件

1. 功能简介

配置TCP载荷类型的匹配规则后,在TCP载荷匹配的缓冲时间内,设备会缓冲客户端发给虚服务器的流量进行TCP载荷匹配。直到出现以下任意一种情况才结束缓冲:

·     收到缓冲结束符。

·     缓冲数据长度超过配置的TCP缓冲数据大小。

·     缓冲数据已经与匹配规则匹配。

2. 配置步骤

(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载荷匹配的缓冲结束符。

2.10.17  配置对每个HTTP请求报文都进行负载均衡

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的参数模板视图。

parameter-profile profile-name

(3)     配置对每个HTTP请求报文都进行负载均衡。

rebalance per-request

缺省情况下,只对一条连接的第一个HTTP请求报文进行负载均衡,其余请求报文的处理方式与第一个相同。

2.10.18  配置负载均衡设备与服务器的连接复用功能

1. 功能简介

通过开启负载均衡设备与服务器的连接复用功能,可在负载均衡设备与服务器之间建立一条长时间不会老化的连接,使多个客户端复用同一条与服务器的TCP连接。

开启了负载均衡设备与服务器的连接复用功能后,可通过配置以下参数对TCP连接的复用时间、复用次数、复用范围以及连接池大小进行限制:

·     空闲超时时间:当负载均衡设备与服务器之间TCP连接的空闲时间达到配置的空闲超时时间时,此连接将会被删除,后续客户端发起的连接请求将触发建立新的TCP连接。

·     最大复用次数:当负载均衡设备与服务器TCP连接的复用次数达到配置的最大复用次数时,此连接将会被删除,后续客户端发起的连接请求将触发建立新的TCP连接。

·     IPv4网络掩码/IPv6前缀:通过配置连接复用的IPv4网络掩码或IPv6前缀,可对负载均衡设备与服务器之间连接复用的客户端网段进行限制。当负载均衡设备收到客户端的连接请求时,若客户端网段与已建立的TCP空闲连接的网段相同,则复用已建立的空闲连接。否则,触发建立新的TCP连接。

·     MySQL连接池大小:当MySQL数据传输完成后,不立即断开TCP连接,而是将TCP连接保存在MySQL连接池中。当需要建立新的连接时,优先从MySQL连接池中获取可用连接,而不是重新建立一个新连接。若MySQL连接池中的连接数达到配置的上限,则不再将空闲连接保存在连接池中。

2. 开启负载均衡设备与服务器的连接复用功能

(1)     进入系统视图。

system-view

(2)     进入HTTP或MySQL类型的参数模板视图。

parameter-profile profile-name

(3)     开启负载均衡设备与服务器的连接复用功能。

server-connection reuse

缺省情况下,负载均衡设备与服务器的连接复用功能处于关闭状态。

快速HTTP类型的虚服务器不支持本功能。

(4)     退回系统视图。

quit

3. 配置负载均衡设备与服务器之间TCP连接复用的参数

(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类型的参数模板支持本配置。

2.10.19  配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的参数模板视图。

parameter-profile profile-name

(3)     配置对每个HTTP请求或应答报文的首部都执行插入、删除或修改操作。

header modify per-request

缺省情况下,只对每个连接的第一个HTTP请求或应答报文的首部执行插入、删除或修改操作。

2.10.20  配置匹配字符串时对大小写不敏感

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的参数模板视图。

parameter-profile profile-name

(3)     配置匹配字符串时对大小写不敏感。

case-insensitive

缺省情况下,匹配字符串时对大小写敏感。

2.10.21  配置HTTP最大解析长度

(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类型的虚服务器不支持本功能。

2.10.22  配置Secondary Cookie相关参数

(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的起始位置标示字符为“?”。

2.10.23  配置当HTTP请求或应答报文首部超出最大长度时的处理方式

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的参数模板视图。

parameter-profile profile-name

(3)     配置当HTTP请求或应答报文首部超出最大长度时的处理方式。

header exceed-length { continue | drop }

缺省情况下,当HTTP请求或应答报文首部超出最大长度时,继续进行负载均衡处理。

快速HTTP类型的虚服务器不支持本功能。

2.10.24  配置允许通过的HTTP请求报文实体的最大长度

1. 功能简介

若HTTP请求报文实体的长度超出配置的最大长度,设备会丢弃报文。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的参数模板视图。

parameter-profile profile-name

(3)     配置允许通过的HTTP请求报文实体的最大长度。

content request-max-length length

缺省情况下,允许通过的请求报文实体的最大长度不受限制。

2.10.25  配置Cookie加密功能

1. 功能简介

配置本功能后,设备会将服务器发送的HTTP响应报文中Set-Cookie字段加密后发往客户端,以防止保存在Cookie中的用户关键信息泄露。客户端携带加密后的Cookie值访问服务器时,设备会将Cookie字段解密后再发往服务器。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的参数模板视图。

parameter-profile profile-name

(3)     配置Cookie加密功能。

encrypt-cookie name cookie-name key { cipher | simple } string

缺省情况下,不对任何Cookie加密。

快速HTTP类型的虚服务器不支持本功能。

2.10.26  配置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。

2.10.27  配置HTTP统计功能

1. 功能简介

通过配置HTTP统计类型的参数模板,可对访问指定URL的流量进行统计。

若HTTP流量匹配了指定URL,并且HTTP流量的源IP地址匹配了指定的源IP地址对象组,则按照源IP地址对象组进行流量统计。若未匹配指定的源IP地址对象组,则按照单个源IP地址进行流量统计。

设备支持在统计节点视图下配置多条URL类型的统计匹配规则,通过该配置可统计出访问多个URL的总流量。

2. 配置步骤

(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

缺省情况下,未配置统计节点的描述信息。

2.11  配置防护策略

2.11.1  功能简介

防护策略可以对负载均衡设备和服务器进行保护,防止攻击者在短时间内发送大量的虚假请求,致使服务器疲于应付无用信息,无法处理正常的业务。

设备支持在防护策略中指定防护规则,并为在防护周期内匹配防护规则的流量指定防护动作。

2.11.2  配置任务简介

防护策略配置任务如下:

(1)     创建防护策略

(2)     配置防护规则

(3)     配置防护动作

2.11.3  创建防护策略

(1)     进入系统视图。

system-view

(2)     创建HTTP类型的防护策略,并进入防护策略视图。

loadbalance protection-policy policy-name [ type http ]

创建防护策略时必须为其指定类型;而在进入已创建的防护策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置防护策略的描述信息。

description text

缺省情况下,未配置防护策略的描述信息。

2.11.4  配置防护规则

1. 功能简介

防护规则定义了需要保护的URL和防护的阈值(一段时间内用户最多可以访问的次数),在防护周期内,若同一用户访问指定URL的次数超过请求报文数阈值,则执行防护动作。设备支持基于源IP地址或Cookie来判断请求报文是否来自同一用户。

·     基于源IP地址:设备将来自相同源IP地址的请求报文判断为来自同一用户。

·     基于Cookie:若请求报文中对应于指定Cookie名称的Cookie值相同,则认为请求报文来自同一用户。

设备支持在防护策略中配置多条防护规则,转发报文时会按照配置顺序匹配防护规则。若匹配成功且访问指定URL的次数超过请求报文数阈值,则执行相应的防护动作,否则继续匹配下一条防护规则。

2. 配置限制和指导

请根据实际的业务流量配置合适的防护周期。以免防护周期配置较大遗漏攻击报文或者防护周期配置较小频繁产生误报。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的防护策略视图。

loadbalance protection-policy policy-name

(3)     创建防护规则,并进入防护规则视图。

rule rule-id

(4)     配置防护URL。

protected-url url

缺省情况下,不存在防护URL。

(5)     配置防护阈值。请至少选择其中一项进行配置。

¡     配置基于源IP地址的防护阈值。

source-ip request-threshold threshold

¡     配置基于Cookie的防护阈值。

cookie cookie-name request-threshold threshold

缺省情况下,未配置防护阈值。

若同时配置基于源IP地址的防护阈值和基于Cookie的防护阈值,则当携带相同源IP或者相同Cookie值的报文达到配置的阈值时,执行相应的动作。

(6)     配置防护周期。

protection-period period

缺省情况下,防护周期为120秒。

2.11.5  配置防护动作

1. 功能简介

设备支持为匹配防护规则的流量配置以下三种防护动作:

·     输出告警日志:生成告警信息并发送到信息中心。

·     丢弃报文:丢弃请求报文。

·     Cookie验证:设备检测到请求报文个数达到阈值限制时,向客户端返回携带指定Cookie的响应报文。若客户端后续请求报文中携带的Cookie值与设备返回的Cookie值相同,则认为客户端请求报文通过验证。若请求报文中未携带Cookie值或携带的Cookie值与设备返回值不同,则认为客户端请求报文未通过验证,直接丢弃报文。设备支持通过插入HTTP首部和响应JS脚本的方式向客户端返回Cookie值。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP类型的防护策略视图。

loadbalance protection-policy policy-name

(3)     配置防护动作。

protection-action { warning | { drop | verify { insert-header | js } } } *

缺省情况下,未配置防护动作。

2.12  配置负载均衡探测模板

2.12.1  功能简介

服务器负载均衡支持配置TCP RST、TCP zero-window、HTTP passive和自定义监控类型的负载均衡探测模板。

当TCP RST、TCP zero-window或HTTP passive类型的负载均衡探测模板被实服务组引用后,在负载均衡探测模板的监控周期内,设备可以统计出实服务组中每个实服务器发送的RST报文的个数和zero-window(零窗口)报文的个数以及HTTP响应报文中的异常URL次数,以此来判断实服务器的健康状态,并执行相应的保护动作。设备支持配置以下两种保护动作:

·     设置实服务器为繁忙状态:当实服务器发送的RST报文或零窗口报文达到配置的阈值时,系统会将实服务器的状态标记为繁忙,然后以繁忙保护时间为间隔再次对实服务器进行检查。若实服务器在繁忙保护时间内发送的RST报文或零窗口报文未达到配置的阈值,则实服务器恢复正常状态,否则继续以繁忙保护时间为间隔检查实服务器,直到达到实服务器的繁忙保护次数为止。达到繁忙保护次数后,系统会自动关闭实服务器,此时实服务器的状态为Auto shutdown。

·     关闭实服务器:当实服务器发送的RST报文、零窗口报文或异常URL次数达到配置的阈值时,系统会自动关闭实服务器,此时实服务器的状态为Auto shutdown。

当自定义监控类型的负载均衡探测模板被实服务组、实服务组成员或实服务器引用后,在负载均衡探测模板的监控周期内,设备通过调用用户配置的监控脚本文件,完成对实服务器状态的监控。

2.12.2  配置限制和指导

HTTP passive类型的负载均衡探测模板的保护动作只有Auto shutdown且不可配置。

在双机热备的组网环境中,建议通过Web页面上传自定义监控模板引用的脚本文件。

2.12.3  配置TCP RST类型负载均衡探测模板

(1)     进入系统视图。

system-view

(2)     创建RST类型负载均衡探测模板,并进入负载均衡探测模板视图。

loadbalance probe-template tcp-rst template-name

(3)     (可选)配置负载均衡探测模板的描述信息。

description text

缺省情况下,未配置负载均衡探测模板的描述信息。

(4)     配置TCP RST类型负载均衡探测模板的监控周期。

monitor-interval interval-time

缺省情况下,TCP RST类型负载均衡探测模板的监控周期为10秒。

(5)     配置RST报文的上限阈值。

rst threshold number

缺省情况下,RST报文的上限阈值为1000000。

(6)     配置负载均衡探测模板的保护动作。

protect-action { auto-shutdown | busy [ probe-interval interval ] [ probe-times times ] }

缺省情况下,负载均衡探测模板的保护动作为设置实服务器为繁忙状态。

2.12.4  配置TCP zero-window类型负载均衡探测模板

(1)     进入系统视图。

system-view

(2)     创建TCP zero-window类型负载均衡探测模板,并进入负载均衡探测模板视图。

loadbalance probe-template tcp-zero-window template-name

(3)     (可选)配置负载均衡探测模板的描述信息。

description text

缺省情况下,未配置负载均衡探测模板的描述信息。

(4)     配置TCP zero-window类型负载均衡探测模板的监控周期。

monitor-interval interval-time

缺省情况下,TCP zero-window类型负载均衡探测模板的监控周期为10秒。

(5)     配置零窗口报文的上限阈值。

zero-window threshold percentage

缺省情况下,零窗口报文的上限阈值为40%。

(6)     配置负载均衡探测模板的保护动作。

protect-action { auto-shutdown | busy [ probe-interval interval ] [ probe-times times ] }

缺省情况下,负载均衡探测模板的保护动作为设置实服务器为繁忙状态。

2.12.5  配置HTTP passive类型负载均衡探测模板

(1)     进入系统视图。

system-view

(2)     创建HTTP passive类型负载均衡探测模板,并进入负载均衡探测模板视图。

loadbalance probe-template http-passive template-name

(3)     (可选)配置负载均衡探测模板的描述信息。

description text

缺省情况下,未配置负载均衡探测模板的描述信息。

(4)     配置HTTP passive类型负载均衡探测模板的监控周期。

monitor-interval interval-time

缺省情况下,HTTP passive类型负载均衡探测模板的监控周期为1秒。

(5)     配置异常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秒。

2.12.6  配置自定义监控类型负载均衡探测模板

(1)     进入系统视图。

system-view

(2)     创建自定义监控类型负载均衡探测模板,并进入负载均衡探测模板视图。

loadbalance probe-template external-monitor template-name

(3)     (可选)配置负载均衡探测模板的描述信息。

description text

缺省情况下,未配置负载均衡探测模板的描述信息。

(4)     配置自定义监控类型负载均衡探测模板的监控周期。

monitor-interval interval-time

缺省情况下,自定义监控类型负载均衡探测模板的监控周期为5秒。

(5)     配置自定义监控类型负载均衡探测模板引用的脚本文件。

external-script file-name

缺省情况下,未配置自定义监控类型负载均衡探测模板引用的脚本文件。

(6)     配置自定义监控的环境变量。

env-variables variable-name value variable-value

缺省情况下,未配置自定义监控的环境变量。

(7)     配置自定义监控的用户自定义信息。

argument text

缺省情况下,未配置自定义监控的用户自定义信息。

(8)     配置自定义监控类型负载均衡探测模板的响应超时时间。

timeout timeout

缺省情况下,自定义监控类型负载均衡探测模板的响应超时时间为3秒。

(9)     退回系统视图。

quit

(10)     配置设备允许启动的自定义监控进程个数。

loadbalance process-limit number

缺省情况下,设备允许启动的自定义监控进程个数为8个。

2.13  配置SNAT全局策略

2.13.1  功能简介

通过配置SNAT全局策略可将设备收到报文的源地址转换为指定地址。

2.13.2  配置限制和指导

用户既可在系统视图下配置SNAT全局策略,也可在实服务组视图下配置SNAT功能,后者的配置优先级较高。只有在实服务组视图下未配置SNAT功能时,SNAT全局策略才会生效,即所有实服务组均采用SNAT全局策略进行源地址转换。

2.13.3  配置任务简介

SNAT全局策略配置任务如下:

(1)     创建SNAT全局策略

(2)     配置SNAT地址转换方式

(3)     (可选)配置SNAT全局策略匹配优先级

(4)     (可选)配置进行SNAT地址转换的过滤条件

¡     配置进行SNAT地址转换的源IP地址对象组

¡     配置进行SNAT地址转换的目的IP地址对象组

¡     配置进行SNAT地址转换的服务对象组

(5)     开启SNAT全局策略

2.13.4  创建SNAT全局策略

(1)     进入系统视图。

system-view

(2)     创建SNAT全局策略,并进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     (可选)配置SNAT全局策略的描述信息。

description text

缺省情况下,未配置SNAT全局策略的描述信息。

2.13.5  配置SNAT地址转换方式

1. 功能简介

设备支持在SNAT全局策略中配置两种SNAT地址转换方式:

·     自动映射:采用设备与实服务器通信的接口地址进行SNAT地址转换。

·     SNAT地址池:根据配置的SNAT地址池进行SNAT地址转换。设备将报文的源地址修改为SNAT地址池中的地址后再转发出去。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     配置SNAT地址转换方式。

translation-mode { auto-map | snat-pool pool-name }

缺省情况下,未配置SNAT地址转换方式。

2.13.6  配置SNAT全局策略匹配优先级

1. 功能简介

设备允许同时配置多个SNAT全局策略,优先级越大,越优先匹配。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     配置SNAT全局策略的优先级。

priority priority

缺省情况下,SNAT全局策略的优先级为0。

2.13.7  配置进行SNAT地址转换的源IP地址对象组

1. 功能简介

若配置了进行SNAT地址转换的源IP地址对象组,则仅对匹配指定源IP地址的流量进行SNAT地址转换。有关IP地址对象的配置请参见“安全配置指导”中的“对象组”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     配置进行SNAT地址转换的源IP地址对象组。

(4)     source-ip object-group object-group-name

缺省情况下,对所有源IP地址的流量都进行SNAT地址转换。

2.13.8  配置进行SNAT地址转换的目的IP地址对象组

1. 功能简介

若配置了进行SNAT地址转换的目的IP地址对象组,则仅对匹配指定目的IP地址的流量进行SNAT地址转换。有关IP地址对象的配置请参见“安全配置指导”中的“对象组”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     配置进行SNAT地址转换的目的IP地址对象组。

(4)     destination-ip object-group object-group-name

缺省情况下,对所有流量都进行SNAT地址转换。

2.13.9  配置进行SNAT地址转换的服务对象组

1. 功能简介

若配置了进行SNAT地址转换的服务对象组,则仅对匹配指定服务的流量进行SNAT地址转换。有关服务对象组的配置请参见“安全配置指导”中的“对象组”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     配置进行SNAT地址转换的服务对象组。

(4)     service object-group object-group-name

缺省情况下,对所有服务类型的流量都进行SNAT地址转换。

2.13.10  开启SNAT全局策略

(1)     进入系统视图。

system-view

(2)     进入SNAT全局策略视图。

loadbalance snat-global-policy policy-name

(3)     开启SNAT全局策略。

snat enable

缺省情况下, SNAT全局策略处于关闭状态。

2.14  配置负载均衡连接数限制策略

1. 功能简介

通过引用负载均衡连接数限制,可以对设备上建立的连接数进行统计和限制,能够有效解决因某些用户在短时间内经过设备向内部网络发起大量连接,导致设备系统或服务器资源迅速消耗,其它用户无法正常使用网络资源的问题,实现保护内部网络资源(主机或服务器)以及合理分配设备系统资源的目的。

一个连接数限制策略中可配置多条连接数限制规则,每条规则中指定一个连接数限制的用户范围,属于该范围的用户可建立的连接数将受到该规则中指定参数的限制。当某类型的连接数达到上限值(max-amount)时,设备将不接受该类型的新建连接请求,直到设备上已有连接因老化而删除,使得当前该类型的连接数低于连接数下限(min-amount)后,才允许新建连接。对于未匹配连接数限制规则的用户所建立的连接,设备不对其连接数进行限制。

目前,连接数限制支持根据ACL来限定用户范围,对匹配ACL规则的访问虚服务器的连接数进行统计和限制。

2. 配置步骤

(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

缺省情况下,未配置负载均衡连接数限制策略的描述信息。

2.15  配置负载均衡ALG功能

1. 功能简介

负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启指定协议的负载均衡ALG功能。

loadbalance alg { dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }

缺省情况下,ftpdnspptprtspicmp-error协议的负载均衡ALG功能均处于开启状态。

(3)     开启所有协议的负载均衡ALG功能。

loadbalance alg all-enable

缺省情况下,dnsftppptprtspicmp-error协议的负载均衡ALG功能均处于开启状态。

2.16  配置重新加载代答文件

1. 功能简介

若配置了对指定的HTTP请求进行代答或配置了负载均衡处理失败时的代答文件,当指定的代答文件发生变化后,需要通过本配置进行重新加载,否则代答文件无法生效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置重新加载代答文件。

reload http-response { file filename }

2.17  测试负载均衡效果

2.17.1  功能简介

用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。

2.17.2  测试IPv4负载均衡的效果。

可在任意视图下执行本命令,测试IPv4负载均衡的效果。

loadbalance schedule-test ip { 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

2.17.3  测试IPv6负载均衡的效果。

可在任意视图下执行本命令,测试IPv6负载均衡的效果。

loadbalance schedule-test ipv6 { 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

2.18  配置负载均衡告警功能

1. 功能简介

开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

四层和七层服务器负载均衡的负载均衡告警功能配置完全相同。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启负载均衡的告警功能。

snmp-agent trap enable loadbalance

缺省情况下,负载均衡的告警功能处于开启状态。

2.19  配置负载均衡日志功能

2.19.1  功能简介

负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括负载均衡基本日志和负载均衡NAT日志。

通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:

·     实服务器或实服务组的状态变化。

·     实服务器的健康检测结果发生变化。

·     实服务器或虚服务器的连接数达到上限或者恢复到正常范围内。

·     实服务器或虚服务器的连接速率达到上限或者恢复到正常范围内。

·     虚服务器引用的缺省实服务器组主备切换。

·     负载均衡动作引用的实服务器组主备切换。

通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。

2.19.2  配置负载均衡基本日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡基本日志功能。

loadbalance log enable base

缺省情况下,负载均衡基本日志功能处于开启状态。

2.19.3  配置负载均衡NAT日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡NAT日志功能。

loadbalance log enable nat

缺省情况下,负载均衡NAT日志功能处于关闭状态。

2.20  服务器负载均衡显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后服务器负载均衡的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除服务器负载均衡的统计信息。

表2-6 服务器负载均衡显示和维护

配置

命令

显示负载均衡动作的信息

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 } ] ] [ verbose ]

显示外链代理正在查询的域名信息

display loadbalance dns-query

显示负载均衡连接数限制策略配置信息

display loadbalance limit-policy [ name policy-name ]

显示负载均衡策略的信息

display loadbalance policy [ name policy-name ]

显示设备允许启动的自定义监控进程个数

display loadbalance process-limit

显示负载均衡探测模板的信息

display loadbalance probe-template [ name template-name ]

显示防护策略的配置信息

display loadbalance protection-policy [ name policy-name ]

显示SNAT全局策略的信息

display loadbalance snat-global-policy [ name policy-name ]

显示SNAT地址池的信息

display loadbalance snat-pool [ name pool-name ]

显示所有虚服务器的累加统计信息

display loadbalance virtual-server total-statistics

显示参数模板的信息

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 ]

显示实服务组成员的统计信息

display real-server statistics server-farm server-farm-name [ name real-server-name port port-number ]

显示实服务组的信息

display server-farm [ brief | name server-farm-name ]

显示持续性表项的统计信息

display sticky statistics [ dns-proxy | virtual-server ]

显示虚服务器的持续性表项信息

display sticky virtual-server [ virtual-server-name virtual-server-name ] [ [ link { ip ipv4-address | ipv6 ipv6-address | interface { interface-type interface-number | interface-name } } | link-group link-group-name ] * | [ real-server-addr { ipv4-address | ipv6-address } | real-server-port port-number | server-farm server-farm-name | text text ] * ] [ class { class-name | default-class } | client-addr { ipv4-address | ipv6-address } | sticky-type { address-port | http-content | http-cookie | http-header | http-passive | payload | radius | sip | ssl | tcp-payload | udp-passive } [ key sticky-key ] ] * [ brief ]

显示持续性组的信息

display sticky-group [ name group-name ]

显示虚服务器的信息

display virtual-server [ brief | name virtual-server-name ]

显示虚服务器的统计信息

display virtual-server statistics [ name virtual-server-name ]

显示所有协议的负载均衡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 real-server statistics [ real-server-name ]

清除实服务组成员的统计信息

reset real-server statistics server-farm server-farm-name [ name real-server-name port port-number ]

清除虚服务器的持续性表项信息

reset sticky virtual-server [ virtual-server-name virtual-server-name ] [ [ link { ip ipv4-address | ipv6 ipv6-address | interface { interface-type interface-number | interface-name } } | link-group link-group-name ] * | [ real-server-addr { ipv4-address | ipv6-address } | real-server-port port-number | server-farm server-farm-name | text text ] * ] [ class { class-name | default-class } | client-addr { ipv4-address | ipv6-address } | sticky-type { address-port | http-content | http-cookie | http-header | http-passive | payload | radius | sip | ssl | tcp-payload | udp-passive } [ key sticky-key ] ] *

清除虚服务器的统计信息

reset virtual-server statistics [ virtual-server-name ]

 

 


3 出方向链路负载均衡

3.1  出方向链路负载均衡简介

出方向链路负载均衡功能可在多条链路上分担内网用户访问外部互联网的流量。

3.1.1  典型组网

图3-1 出方向链路负载均衡组网图

 

图3-1所示,出方向链路负载均衡包含以下要素:

·     LB device(负载均衡设备):负责将内网用户访问外部互联网的流量分发到多条链路。

·     Link(链路):运营商提供的实体链路。

·     VSIP(Virtual Service IP,虚服务IP):集群对外提供的虚服务IP地址,即内网用户发送报文的目的网段。

·     Server IP(服务器IP):服务器IP地址。

3.1.2  工作流程

出方向链路负载均衡的工作流程如图3-2所示。

图3-2 出方向链路负载均衡工作流程图

 

出方向链路负载均衡工作流程简述如表3-1所示。

表3-1 出方向链路负载均衡工作流程简述

步骤

描述

(1)

负载均衡设备接收来自内网服务器的流量

(2)

负载均衡设备依次根据负载均衡策略、持续性方法、就近性算法、调度算法(通常使用带宽算法或最大带宽算法)来选择最佳链路

(3)

负载均衡设备通过选定的最佳链路将流量转发给外网服务器

(4)

负载均衡设备接收来自外网服务器的流量

(5)

负载均衡设备将流量转发给内网服务器

 

3.2  出方向链路负载均衡配置任务简介

3.2.1  配置项之间的关系

出方向链路负载均衡各配置项之间的配置关系如图3-3所示。

图3-3 出方向链路负载均衡配置关系图

 

·     链路组:将具有相同或相似功能的链路抽象成一个链路组。链路组可被虚服务器或负载均衡动作引用。

·     链路:运营商提供的实体链路。

·     虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。

·     负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。

·     负载均衡动作:制订丢弃、转发或修改报文的具体行为。

·     负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。

·     持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一条链路处理。持续性组可被虚服务器或负载均衡动作引用。

·     参数模板:制订对报文进行更深入处理的模板。参数模板可被虚服务器引用。

3.2.2  配置任务简介

出方向链路负载均衡配置任务如下:

(1)     配置链路组

(2)     配置链路

(3)     配置虚服务器

(4)     (可选)配置负载均衡策略

a.     配置负载均衡类

b.     配置负载均衡动作

c.     配置负载均衡策略

(5)     (可选)配置持续性组

(6)     (可选)配置参数模板

(7)     (可选)配置ISP信息

(8)     (可选)配置负载均衡ALG功能

(9)     (可选)测试负载均衡效果

(10)     (可选)配置负载均衡告警及日志功能

¡     配置负载均衡告警功能

¡     配置负载均衡日志功能

3.3  配置链路组

为了便于对链路进行统一管理,可将具有相同或相似功能的链路抽象成一个组,称为链路组。比如,可按不同的运营商划分为ISP1链路组、ISP2链路组和ISP3链路组等。

3.3.1  配置任务简介

链路组配置任务如下:

(1)     创建链路组

(2)     (可选)添加并配置链路组成员

(3)     配置链路组的调度算法

(4)     配置可用条件

(5)     关闭NAT功能

(6)     (可选)配置SNAT功能

(7)     (可选)配置温暖上线功能

(8)     (可选)配置健康检测功能

(9)     (可选)配置故障处理方式

(10)     (可选)配置就近性功能

3.3.2  创建链路组

(1)     进入系统视图。

system-view

(2)     创建链路组,并进入链路组视图。

loadbalance link-group link-group-name

(3)     (可选)配置链路组的描述信息。

description text

缺省情况下,未配置链路组的描述信息。

3.3.3  添加并配置链路组成员

1. 功能简介

设备支持通过两种方式向链路组中添加成员:

·     在链路组视图下,通过本配置创建链路组成员或添加已存在的链路。

·     在链路视图下,指定其所属的链路组。具体配置请参见“3.4.2  创建链路并指定其所属链路组”。

本配置用来指定链路在链路组内的权值、调用优先级、连接参数、健康检测功能以及慢宕功能。基于链路组成员的调度算法会依据这些配置选出当前链路组中最优的链路。

2. 添加链路组成员

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     创建并添加链路组成员,并进入链路组成员视图。

link link-name

若指定名称的链路已存在,则本命令只是在链路组视图下添加已存在的链路。

(4)     (可选)配置链路组成员的描述信息。

description text

缺省情况下,未配置链路组成员的描述信息。

3. 配置链路组成员的权值和调用优先级

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     进入链路组成员视图。

link link-name

(4)     配置链路组成员的权值。

weight weight-value

缺省情况下,链路组成员的权值为100。

(5)     配置链路组成员的调用优先级

priority priority

缺省情况下,链路组成员的调度优先级为4。

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,即不受限制。

5. 配置链路组成员的健康检测功能

(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 }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

6. 配置链路组成员的慢宕功能

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     进入链路组成员视图。

link link-name

(4)     开启链路组成员的慢宕功能。

slow-shutdown enable

缺省情况下,链路组成员的慢宕功能处于关闭状态。

(5)     关闭链路组成员。

shutdown

缺省情况下,链路组成员处于开启状态。

3.3.4  配置链路组的调度算法

1. 功能简介

设备根据链路组中配置的调度算法,计算出处理用户请求的链路。设备支持以下链路组的调度算法:

·     加权最小连接算法(基于链路):总是将请求分发给加权活动连接数(当前链路在所有链路组中的活动连接总数/权值)最小的链路。该算法中使用的权值为链路视图下配置的权值。

·     加权最小连接算法(基于链路组成员):总是将请求分发给加权活动连接数(链路组成员在指定链路组中的活动连接数/权值)最小的链路组成员。该算法中使用的权值为链路组成员视图下配置的权值。

·     随机算法:将请求随机分发给某条链路。

·     加权轮转算法:根据链路权值的大小将请求依次分发给每条链路,权值越大,分配的请求越多。

·     带宽算法:根据链路的权值与剩余带宽的比例把请求分发给每条链路。

·     最大带宽算法:总是将请求分发给处于空闲状态且剩余带宽最大的链路。

·     源IP哈希算法:根据源IP地址哈希算法将请求分发给链路。

·     源IP及端口哈希算法:根据源IP地址和端口号哈希算法将请求分发给链路。

·     目的IP哈希算法:根据目的IP地址哈希算法将请求分发给链路。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     配置链路组的调度算法。

¡     基于链路:

predictor { least-connection | { 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

缺省情况下,链路组中调用优先级最高的链路全部被调度算法调用。

3.3.5  配置可用条件

1. 功能简介

通过配置链路组的可用条件,可将流量在主用链路组和备用链路组之间进行切换:当主用链路组中的链路可用率低于下限时,将流量切换到备用链路组上,以防止链路受到大流量的冲击;待主用链路组中的链路可用率恢复到上限时,再将流量切换回来。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     配置链路组的可用条件。

activate lower lower-percentage upper upper-percentage

缺省情况下,链路组中只要有一个链路可用,该链路组就被认为可用。

3.3.6  关闭NAT功能

1. 配置限制和指导

出方向链路负载均衡组网通常需要在链路组中关闭NAT功能。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     在链路组中关闭NAT功能。

transparent enable

缺省情况下,链路组中的NAT功能处于开启状态。

3.3.7  配置SNAT功能

1. 功能简介

SNAT地址池被链路组引用之后,负载均衡设备将把收到报文的源IP地址修改为SNAT地址池中的IP地址后再转发出去。

2. 配置限制和指导

一个SNAT地址池由多个地址成员组成,每个地址成员最多包含256个IPv4地址或65536个IPv6地址,且不同SNAT地址成员中的IPv4或IPv6地址不允许重叠。

出方向链路负载均衡的SNAT功能使用场景有限,通常不建议使用。

3. 配置步骤

(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地址池。

3.3.8  配置温暖上线功能

1. 功能简介

当向链路组中添加链路时,某些新增的链路无法立即承担大量业务,此时可以开启温暖上线功能。这样,当链路上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     在链路组中开启链路温暖上线功能。

slow-online [ standby-time standby-time ramp-up-time ramp-up-time ]

缺省情况下,链路组中的链路温暖上线功能处于关闭状态。

3.3.9  配置健康检测功能

1. 功能简介

通过健康检测可以对链路进行检测,保证其能够提供有效的服务。

2. 配置限制和指导

用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。

设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     指定链路组的健康检测方法。

probe template-name

缺省情况下,没有指定链路组的健康检测方法。

(4)     配置链路组健康检测的成功条件。

success-criteria { all | at-least min-number }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

3.3.10  配置故障处理方式

1. 功能简介

通过本配置可以选择链路组的故障处理方式:

·     保持已有连接:不主动断开与故障链路的连接,连接继续保持还是断开将由协议自身的超时机制决定。

·     重定向连接:把连接重定向到链路组中其它可用的链路上。

·     断开已有连接:主动断开与故障链路的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     配置链路组的故障处理方式。

fail-action { keep | reschedule | reset }

缺省情况下,链路组的故障处理方式为保持已有连接。

3.3.11  配置就近性功能

1. 功能简介

就近性功能就是通过对链路进行探测,选出到达目的地的最优链路,从而引导后续流量。具体而言,就是当流量经过负载均衡模块时,如果没有与目的地址相关的就近性信息,则根据调度算法,为该流量选择一条链路,以保证业务的可用性,然后启动就近性探测来生成就近性表项,以引导后续流量。

设备支持在就近性视图下通过引用NQA模板或负载均衡探测模板进行就近性探测,并根据探测结果和就近性参数的配置生成就近性表项。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。

2. 配置限制和指导

配置就近性功能时,需要先在就近性视图下配置就近性参数,然后在链路组中开启就近性功能。

3. 配置负载均衡探测模板

(1)     进入系统视图。

system-view

(2)     创建负载均衡探测模板,并进入负载均衡探测模板视图。

loadbalance probe-template icmp template-name

(3)     配置探测周期。

frequency interval

缺省情况下,探测周期为300秒。

(4)     配置探测报文的应答超时时间。

timeout timeout-value

缺省情况下,探测报文的应答超时时间为3秒。

4. 配置就近性探测方法

(1)     进入系统视图。

system-view

(2)     进入就近性视图。

loadbalance proximity

(3)     为TCP报文指定就近性探测方法。

match [ match-id ] { tcp } { lb-probe lb-template | probe nqa-template }

缺省情况下,未指定就近性探测方法。

(4)     指定缺省就近性探测方法。

match default { lb-probe lb-template | probe nqa-template }

缺省情况下,未指定缺省就近性探测方法。

5. 配置就近性参数

(1)     进入系统视图。

system-view

(2)     进入就近性视图。

loadbalance proximity

(3)     配置IPv4就近性表项的掩码长度。

ip mask { mask-length | mask }

缺省情况下,IPv4就近性表项的掩码长度为24。

(4)     配置IPv6就近性表项的前缀长度。

ipv6 prefix prefix-length

缺省情况下,IPv6就近性表项的前缀长度为96。

(5)     配置就近性计算的网络延迟权值。

rtt weigt rtt-weight

缺省情况下,就近性计算的网络延迟权值为100。

(6)     配置就近性计算的路由跳数权值。

ttl weight ttl-weight

缺省情况下,就近性计算的路由跳数权值为100。

(7)     配置就近性计算的带宽权值。

bandwidth { inbound | outbound } weight bandwidth-weight

缺省情况下,就近性计算的出、入方向带宽权值均为100。

(8)     配置就近性计算的成本权值。

cost weight cost-weight

缺省情况下,就近性计算的成本权值为100。

(9)     配置就近性表项的老化时间。

timeout timeout-value

缺省情况下,就近性表项的老化时间为60秒。

(10)     配置就近性表项的最大个数。

max-number number

缺省情况下,就近性表项的最大个数为65535。

6. 开启就近性功能

(1)     进入系统视图。

system-view

(2)     进入链路组视图。

loadbalance link-group link-group-name

(3)     开启就近性功能。

proximity enable

缺省情况下,链路组的就近性功能处于关闭状态。

3.4  配置链路

链路是运营商提供的实体链路。一条链路可以属于多个链路组,一个链路组也可以包含多条链路。

3.4.1  配置任务简介

链路配置任务如下:

(1)     创建链路并指定其所属链路组

(2)     配置链路的IP地址或出接口

请选择以下一项进行配置:

¡     指定链路出口方向(外网方向)的下一跳IP地址

¡     配置链路对应的出接口

(3)     配置权值和调用优先级

(4)     (可选)配置带宽和连接参数

(5)     (可选)配置健康检测功能

(6)     (可选)配置慢宕功能

(7)     (可选)配置就近性计算的链路成本

(8)     (可选)配置链路的带宽繁忙比与最大期望带宽

3.4.2  创建链路并指定其所属链路组

(1)     进入系统视图。

system-view

(2)     创建链路,并进入链路视图。

loadbalance link link-name

(3)     (可选)配置链路的描述信息。

description text

缺省情况下,未配置链路的描述信息。

(4)     指定链路所属的链路组。

link-group link-group-name

缺省情况下,链路不属于任何链路组。

3.4.3  指定链路出口方向(外网方向)的下一跳IP地址

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     指定链路出口方向(外网方向)的下一跳IP地址。

(IPv4网络)

router ip ipv4-address

(IPv6网络)

router ipv6 ipv6-address

缺省情况下,未配置链路出口方向的下一跳IP地址。

3.4.4  配置链路对应的出接口

1. 功能简介

在出口链路使用PPPoE动态获取IP地址的应用场景下,通过本配置,负载均衡设备可从指定接口动态获取链路通往外网的下一跳IP地址。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     链路对应的出接口。

router interface interface-type interface-number

缺省情况下,未配置链路对应的出接口。

3.4.5  配置权值和调用优先级

1. 功能简介

通过本配置可以调整链路的加权轮转和加权最小连接这两种调度算法所使用的权值,以及链路在链路组中的调用优先级。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     配置链路的权值。

weight weight-value

缺省情况下,链路的权值为100。

(4)     配置链路的调用优先级。

priority priority

缺省情况下,链路的调用优先级为4。

3.4.6  配置带宽和连接参数

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     配置链路所允许的最大带宽。

rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps

缺省情况下,链路所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。

(4)     配置链路所允许的最大连接数。

connection-limit max max-number

缺省情况下,链路所允许的最大连接数为0,即不受限制。

(5)     配置链路所允许的最大连接速率。

rate-limit connection connection-number

缺省情况下,链路所允许的最大连接速率为0,即不受限制。

3.4.7  配置健康检测功能

1. 功能简介

通过健康检测可以对链路进行检测,保证其能够提供有效的服务。

2. 配置限制和指导

用户既可在链路组视图下对组内的所有链路进行配置,也可在链路视图下只对当前链路进行配置,后者的配置优先级较高。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     指定链路的健康检测方法。

probe template-name

缺省情况下,没有指定链路的健康检测方法。

(4)     配置链路健康检测的成功条件。

success-criteria { all | at-least min-number }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

3.4.8  配置慢宕功能

1. 功能简介

通过shutdown命令可以立即中断链路的已有连接,而慢宕则不会立即中断链路的已有连接,而是让其自然老化,并且不再建立新的连接。慢宕功能需要与shutdown命令配合使用,即在开启了慢宕功能之后再关闭链路,该链路会开始慢宕。

2. 配置限制和指导

本命令仅对下一次shutdown命令生效。比如:开启慢宕功能并关闭链路之后,如果再关闭慢宕功能,则该链路将保持慢宕状态,而不会立即中断已有连接。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     开启链路的慢宕功能。

slow-shutdown enable

缺省情况下,链路的慢宕功能处于关闭状态。

(4)     关闭链路。

shutdown

缺省情况下,链路处于开启状态。

3.4.9  配置就近性计算的链路成本

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     配置就近性计算的链路成本。

cost cost-value

缺省情况下,就近性计算的链路成本为0。

3.4.10  配置链路的带宽繁忙比与最大期望带宽

1. 功能简介

通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的链路流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,进入空闲状态,重新参与调度。

链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法、最大带宽算法和就近性中剩余带宽的计算。

2. 配置步骤

(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

缺省情况下,链路所允许的期望最大总带宽、最大上行期望带宽和最大下行期望带宽均为0,即不限制。

3.5  配置虚服务器

虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。

3.5.1  配置限制和指导

链路负载均衡支持的虚服务器类型为LINK-IP。

3.5.2  配置任务简介

虚服务器配置任务如下:

(1)     创建虚服务器

(2)     配置VSIP和端口号

(3)     配置报文处理策略

请至少选择其中一项进行配置:

¡     指定链路组

¡     引用负载均衡策略

(4)     (可选)引用参数模板

(5)     (可选)配置带宽和连接参数

(6)     (可选)配置带宽繁忙保护功能

(7)     (可选)开启链路的接口带宽统计功能

(8)     (可选)引用DPI应用profile

(9)     开启虚服务器

3.5.3  创建虚服务器

(1)     进入系统视图。

system-view

(2)     创建Link-IP类型的虚服务器,并进入虚服务器视图。

virtual-server virtual-server-name type link-ip

(3)     (可选)配置虚服务器的描述信息。

description text

缺省情况下,未配置虚服务器的描述信息。

3.5.4  配置VSIP和端口号

(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(表示任意端口号)。

3.5.5  指定链路组

1. 功能简介

当主用链路组可用(该链路组存在且有可用的链路)时,虚服务器通过主用链路组进行转发;当主用链路组不可用而备用链路组可用时,虚服务器通过备用链路组进行转发。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     指定链路组。

default link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ]

缺省情况下,未指定链路组。

3.5.6  引用负载均衡策略

1. 功能简介

虚服务器引用负载均衡策略,能够细化虚服务器负载均衡的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容进行不同的负载均衡处理,从而有效地丰富了负载均衡的负载功能。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     指定虚服务器引用的负载均衡策略。

lb-policy policy-name

缺省情况下,虚服务器没有引用任何负载均衡策略。

虚服务器只能引用与自身类型相关的策略模板,如:LINK-IP类型的虚服务器,只能引用链路类型的策略模板。

3.5.7  引用参数模板

1. 功能简介

参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     指定虚服务器引用的参数模板。

parameter ip profile-name

缺省情况下,虚服务器没有引用任何参数模板。

3.5.8  配置带宽和连接参数

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     配置虚服务器所允许的最大带宽。

rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps

缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。

(4)     配置虚服务器所允许的最大连接数。

connection-limit max max-number

缺省情况下,虚服务器所允许的最大连接数为0,即不受限制。

(5)     配置虚服务器所允许的最大连接速率。

rate-limit connection connection-number

缺省情况下,虚服务器所允许的最大连接速率为0,即不受限制。

3.5.9  配置带宽繁忙保护功能

1. 功能简介

带宽繁忙保护功能就是对链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比后,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发。

2. 配置限制和指导

带宽繁忙保护功能仅在链路的接口带宽统计功能开启的情况下生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     开启虚链路的带宽繁忙保护功能。

bandwidth busy-protection enable

缺省情况下,链路的带宽繁忙保护功能处于关闭状态。

3.5.10  开启链路的接口带宽统计功能

1. 功能简介

链路的带宽缺省由负载均衡模块自行统计,通过本配置可以使链路的带宽由接口来统计。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server vritual-server-name

(3)     开启链路的接口带宽统计功能。

bandwidth interface statistics enable

缺省情况下,未开启链路的接口带宽统计功能。

3.5.11  引用DPI应用profile

1. 功能简介

通过指定虚服务器引用的DPI应用profile,可以对匹配虚服务的流量进行深度报文检测(包括IPS、防病毒和WAF),识别出网络攻击和安全隐患,从而保护负载均衡设备和内网服务器的安全。有关DPI应用profile的详细介绍,请参见“DPI深度安全配置指导”中的“应用层检测引擎”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     指定虚服务器引用的DPI应用profile。

dpi-app-profile dpi-app-profile-name

缺省情况下,虚服务器未引用任何DPI应用profile。

3.5.12  开启虚服务器

1. 功能简介

配置完虚服务器后,需要将其开启后才能进入工作状态。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器视图。

virtual-server virtual-server-name

(3)     开启虚服务器。

service enable

缺省情况下,虚服务器处于关闭状态。

3.6  配置负载均衡类

负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。

3.6.1  配置任务简介

负载均衡类配置任务如下:

(1)     创建负载均衡类

(2)     创建匹配规则

请至少选择以下一项进行配置:

¡     创建嵌套类的匹配规则

¡     创建源IP地址类型的匹配规则

¡     创建目的IP地址类型的匹配规则

¡     创建ACL类型的匹配规则

¡     创建基于入接口的匹配规则

¡     创建基于用户的匹配规则

¡     创建基于用户组的匹配规则

¡     创建域名类型的匹配规则

¡     创建ISP类型的匹配规则

¡     创建应用类型的匹配规则

3.6.2  创建负载均衡类

(1)     进入系统视图。

system-view

(2)     创建链路类型的负载均衡类,并进入负载均衡类视图。

loadbalance class class-name type link-generic [ match-all | match-any ]

创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡类的描述信息。

description text

缺省情况下,未配置负载均衡类的描述信息。

3.6.3  创建嵌套类的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建嵌套类的匹配规则。

match [ match-id ] class class-name

3.6.4  创建源IP地址类型的匹配规则

(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 ] }

3.6.5  创建目的IP地址类型的匹配规则

(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 ] }

3.6.6  创建ACL类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建ACL类型的匹配规则。

match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }

3.6.7  创建基于入接口的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建基于入接口的匹配规则。

match [ match-id ] interface interface-type interface-number

3.6.8  创建基于用户的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建基于用户的匹配规则。

match [ match-id ] [ identity-domain domain-name ] user user-name

3.6.9  创建基于用户组的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建基于用户组的匹配规则。

match [ match-id ] [ identity-domain domain-name ] user-group user-group-name

3.6.10  创建域名类型的匹配规则

1. 功能简介

负载均衡设备会将域名与IP地址的对应关系记录在DNS缓存表中,当业务流量匹配DNS缓存表中的IP地址时,查找出对应的域名。若查找出的域名与匹配规则中的域名一致,则根据匹配规则将匹配不同域名的报文在不同的负载均衡动作流程中处理。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建域名类型的匹配规则。

match [ match-id ] destination domain-name domain-name

(4)     退回系统视图。

quit

(5)     配置负载均衡DNS缓存表项的老化时间。

loadbalance dns-cache aging-time aging-time

缺省情况下,负载均衡DNS缓存表项的老化时间为60分钟。

3.6.11  创建ISP类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建ISP类型的匹配规则。

match [match-id ] isp isp-name

3.6.12  创建应用类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡类视图。

loadbalance class class-name

(3)     创建应用类型的匹配规则。

match [ match-id ] app-group group-name

3.7  配置负载均衡动作

3.7.1  功能简介

负载均衡动作可分为两大类:

·     转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。

·     修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。

如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。

3.7.2  配置限制和指导

在配置转发类动作时,配置报文的转发模式为转发和配置指导转发的链路组互斥。当配置了其中一条后,另一条的配置将被自动取消。

3.7.3  配置任务简介

负载均衡动作配置任务如下:

(1)     创建负载均衡动作

(2)     (可选)配置转发类动作

请从配置报文的转发模式为转发和指定指导转发的实服务组中选择一项进行配置。

¡     配置报文的转发模式为转发

¡     指定指导转发的链路组

¡     (可选)配置查找链路失败时继续匹配下一条引用规则

¡     (可选)配置繁忙处理方式为继续匹配下一条引用规则

(3)     (可选)配置修改类动作

¡     配置发往服务器的IP报文中的ToS字段

3.7.4  创建负载均衡动作

(1)     进入系统视图。

system-view

(2)     创建链路类型的负载均衡动作,并进入负载均衡动作视图。

loadbalance action action-name type link-generic

创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡动作的描述信息。

description text

缺省情况下,未配置负载均衡动作的描述信息。

3.7.5  配置转发类动作

1. 转发类动作简介

设备支持配置四种转发类动作,包括:

·     报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。

·     指定指导转发的链路组:当主用链路组可用(该链路组存在且有可用的链路)时,使用主用链路组指导转发;当主用链路组不可用而备用链路组可用时,使用备用链路组指导转发。

·     查找链路失败时继续匹配下一条引用规则:当该动作在策略中被引用时,在转发中根据该配置判断当前动作查找可用链路失败时,可继续顺序匹配策略中的下一条引用规则。

·     配置繁忙处理方式为继续匹配下一条引用规则:当该动作在负载均衡策略中被引用时,判断当前动作查找链路全部繁忙时,可继续顺序匹配策略中的下一条引用规则。

2. 配置报文的转发模式为转发

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置报文的转发模式为转发。

forward all

缺省情况下,报文转发模式为丢弃。

3. 指定指导转发的链路组

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     指定指导转发的链路组。

link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ]

缺省情况下,未指定指导转发的链路组。

4. 配置查找链路失败时继续匹配下一条引用规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置查找链路失败时继续匹配下一条引用规则。

fallback-action continue

缺省情况下,根据当前动作查找可用链路失败时,不再继续匹配下一条引用规则。

5. 配置繁忙处理方式为继续匹配下一条引用规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置繁忙处理方式为继续匹配下一条引用规则。

busy-action continue

缺省情况下,繁忙处理方式为强制调度,即无论链路是否繁忙,依然为其分配流量。

3.7.6  配置发往服务器的IP报文中的ToS字段

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置发往服务器的IP报文中的ToS字段。

set ip tos tos-number

缺省情况下,不改变发往服务器的IP报文中的ToS字段。

3.8  配置负载均衡策略

3.8.1  功能简介

将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。

用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。

3.8.2  配置任务简介

负载均衡策略配置任务如下:

(1)     创建负载均衡策略

(2)     指定负载均衡动作

(3)     指定缺省负载均衡动作

3.8.3  创建负载均衡策略

(1)     进入系统视图。

system-view

(2)     创建链路类型的负载均衡策略,并进入负载均衡策略视图。

loadbalance policy policy-name type link-generic

创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡策略的描述信息。

description text

缺省情况下,未配置负载均衡策略的描述信息。

3.8.4  指定负载均衡动作

1. 配置限制和指导

链路类型的负载均衡策略只能引用链路类型的负载均衡类和动作。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入负载均衡策略视图。

loadbalance policy policy-name

(3)     为负载均衡类指定负载均衡动作。

class class-name [ insert-before before-class-name | insert-after [ after-class-name ] ] action action-name

缺省情况下,没有为任何负载均衡类指定负载均衡动作。

不同的负载均衡类可以与同一负载均衡动作组成匹配规则。

3.8.5  指定缺省负载均衡动作

1. 配置限制和指导

链路类型的负载均衡策略只能用链路类型的负载均衡动作作为其缺省动作。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入负载均衡策略视图。

loadbalance policy policy-name

(3)     指定缺省负载均衡动作。

default-class action action-name

缺省情况下,未指定缺省负载均衡动作。

3.9  配置持续性组

持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一链路处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了同一链路之后,后续包都会沿用这个选择结果。

3.9.1  配置任务简介

持续性组配置任务如下:

(1)     创建持续性组

(2)     配置IP持续性方法

(3)     (可选)配置持续性表项超时时间

(4)     (可选)开启匹配持续性表项的会话不受连接数限制影响功能

(5)     (可选)开启持续性处理优先于繁忙功能

3.9.2  创建持续性组

(1)     进入系统视图。

system-view

(2)     创建地址端口类型的持续性组,并进入持续性组视图。

sticky-group group-name type address-port

创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置持续性组的描述信息。

description text

缺省情况下,未配置持续性组的描述信息。

3.9.3  配置IP持续性方法

(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持续性方法。

3.9.4  配置持续性表项超时时间

(1)     进入系统视图。

system-view

(2)     进入持续性组视图。

sticky-group group-name

(3)     配置持续性表项的超时时间。

timeout timeout-value

缺省情况下,持续性表项的超时时间为60秒。

3.9.5  开启匹配持续性表项的会话不受连接数限制影响功能

1. 功能简介

开启该功能后,如果该连接匹配了已有的持续性表项,将不受链路带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入持续性组视图。

sticky-group group-name

(3)     开启匹配持续性表项的会话不受连接数限制影响功能。

override-limit enable

缺省情况下,匹配持续性表项的会话受连接数限制配置的影响。

3.9.6  开启持续性处理优先于繁忙功能

1. 功能简介

开启持续性处理优先于繁忙功能后,在持续性表项老化之前,无论实链路是否处于繁忙状态,设备都会依据持续性表项为其分配流量。

若持续性处理优先于繁忙功能处于关闭状态,则在持续性表项老化之前,设备会依据持续性表项仅为处于正常状态的链路分配流量。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入持续性组视图。

sticky-group group-name

(3)     开启持续性处理优先于繁忙功能。

sticky-over-busy enable

缺省情况下,持续性处理优先于繁忙功能处于关闭状态。

3.10  配置参数模板

3.10.1  功能简介

通过配置参数模板可以制订对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。

3.10.2  创建参数模板

(1)     进入系统视图。

system-view

(2)     创建IP类型的参数模板,并进入参数模板视图。

parameter-profile profile-name type ip

创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置参数模板的描述信息。

description text

缺省情况下,参数模板没有描述信息。

3.10.3  配置发往客户端的IP报文中的ToS字段

(1)     进入系统视图。

system-view

(2)     进入IP类型的参数模板视图。

parameter-profile profile-name

(3)     配置发往客户端的IP报文中的ToS字段。

set ip tos tos-number

缺省情况下,不改变发往客户端的IP报文中的ToS字段。

3.11  配置ISP信息

3.11.1  配置简介

本功能主要配置ISP(Internet Service Provider,互联网服务提供商)的IP地址信息,该地址信息可以在ISP类型的匹配规则中进行引用。当目的地址匹配了指定的ISP地址信息后,可根据配置执行相应的负载均衡动作。设备支持通过以下三种方式配置ISP信息:

·     手工配置ISP信息:由用户手工指定ISP地址信息。

·     自动更新ISP信息:开启ISP自动更新功能后,设备会依据运营商的WHOIS服务器管理标识定期向指定的WHOIS服务器查询ISP地址信息。

·     导入ISP文件:由用户手工导入ISP文件。设备仅允许导入.tp格式的文件。ISP文件可在官方网站获取。

3.11.2  配置限制和指导

配置ISP信息分为手工配置ISP信息、自动更新ISP信息和导入ISP文件,三者既可单独配置,也可同时配置。

3.11.3  手工配置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的描述信息。

3.11.4  导入ISP文件

(1)     进入系统视图。

system-view

(2)     导入ISP文件。

loadbalance isp file isp-file-name

3.12  配置负载均衡ALG功能

1. 功能简介

负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启指定协议的负载均衡ALG功能。

loadbalance alg { dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }

缺省情况下,ftpdnspptprtspicmp-error协议的负载均衡ALG功能均处于开启状态。

(3)     开启所有协议的负载均衡ALG功能。

loadbalance alg all-enable

缺省情况下,dnsftppptprtspicmp-error协议的负载均衡ALG功能均处于开启状态。

3.13  测试负载均衡效果

3.13.1  功能简介

用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。

3.13.2  测试IPv4负载均衡的效果。

可在任意视图下执行本命令,测试IPv4负载均衡的效果。

loadbalance schedule-test ip { 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

3.13.3  测试IPv6负载均衡的效果。

可在任意视图下执行本命令,测试IPv6负载均衡的效果。

loadbalance schedule-test ipv6 { 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

3.14  配置负载均衡告警功能

1. 功能简介

开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启负载均衡的告警功能。

snmp-agent trap enable loadbalance

缺省情况下,负载均衡的告警功能处于开启状态。

3.15  配置负载均衡日志功能

3.15.1  功能简介

负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括基本日志、NAT日志和链路带宽繁忙日志。

通过开启负载均衡链路流量日志功能后,可输出经过链路转发流量的信息。

通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:

·     链路或链路组的状态变化。

·     链路的健康检测结果发生变化。

·     虚服务器或链路的连接数达到上限或者恢复到正常范围内。

·     虚服务器或链路的连接速率达到上限或者恢复到正常范围内。

·     虚服务器引用的缺省链路组主备切换。

·     负载均衡动作引用的链路组主备切换。

通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。

通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。

3.15.2  配置负载均衡基本日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡基本日志功能。

loadbalance log enable base

缺省情况下,负载均衡基本日志功能处于开启状态。

3.15.3  配置负载均衡链路流量日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡链路流量日志功能。

loadbalance log enable base

缺省情况下,负载均衡链路流量日志功能处于开启状态。

3.15.4  配置负载均衡NAT日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡NAT日志功能。

loadbalance log enable nat

缺省情况下,负载均衡NAT日志功能处于关闭状态。

3.15.5  配置负载均衡链路带宽繁忙日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡链路带宽繁忙日志功能。

loadbalance log enable bandwidth-busy

缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。

3.16  出方向链路负载均衡显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后出方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除出方向链路负载均衡的统计信息。

表3-2 链路负载均衡显示和维护

配置

命令

显示负载均衡动作的信息

display loadbalance action [ name action-name ]

显示负载均衡类的信息

display loadbalance class [ name class-name ]

显示ISP的信息

display loadbalance isp [ ip ipv4-address | ipv6 ipv6-address | name isp-name ]

显示负载均衡策略的信息

display loadbalance policy [ name policy-name ]

显示就近性表项的信息

display loadbalance proximity [ ip [ ipv4-address ] | ipv6 [ ipv6-address ] ]

显示参数模板的信息

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 ]

显示链路组成员的统计信息

display loadbalance link statistics link-group link-group-name [ name link-name ]

显示链路出接口的统计信息

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 ]

显示持续性组的信息

display sticky-group [ name group-name ]

显示虚服务器的信息

display virtual-server [ brief | name virtual-server-name ]

显示虚服务器的统计信息

display virtual-server statistics [ name virtual-server-name ]

显示所有协议的负载均衡ALG状态

display loadbalance alg

显示DNS缓存信息

display loadbalance dns-cache [ domain-name domain-name ]

清除就近性表项的信息

reset loadbalance proximity [ 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 [ domain-name domain-name ]

 


4 DNS透明代理

4.1  DNS透明代理简介

4.1.1  应用场景

图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透明代理原理图

 

4.1.2  工作流程

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

 

4.1.3  负载均衡设备上的业务处理流程

负载均衡设备通过改变DNS请求报文的目的地址控制访问流量在多条链路上的转发,为内网用户访问外网服务器选择最佳链路。

图4-3 负载均衡设备上的业务处理流程图

 

图4-3所示,负载均衡设备上包括以下要素:

·     DNS proxy:DNS透明代理。只有当DNS请求的端口号匹配DNS透明代理的端口号时,负载均衡设备才对收到的DNS请求报文进行DNS透明代理。

·     DNS server pool:DNS服务器池。DNS服务器的集合。

·     DNS server:DNS服务器。处理用户DNS请求报文的实体。

·     Link:运营商提供的实体链路。

·     LB class:负载均衡类。将报文分类,以便对不同类型的报文执行不同的负载均衡动作。

·     LB action:负载均衡动作。制定丢弃、转发或修改报文的具体行为。

·     LB policy:负载均衡策略。将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被DNS透明代理引用。

当收到DNS请求的目的地址和端口号均匹配DNS透明代理的IP地址和端口号时,负载均衡设备会对DNS请求报文进行DNS透明代理。首先在DNS透明代理中查找关联的DNS服务器池。再依据池中配置的调度算法选出应将DNS请求分发给哪台DNS服务器。负载均衡设备将选定DNS服务器的IP地址作为目的地址发送DNS请求报文,DNS服务器接收并处理DNS请求报文,将其解析为同网络内外网服务器的IP地址,并返回DNS应答报文。内网用户收到应答报文后,就可以访问该外网服务器了。

4.2  DNS透明代理配置任务简介

DNS透明代理功能配置任务如下:

(1)     配置DNS透明代理

(2)     配置DNS服务器池

(3)     配置DNS服务器池的调度算法

(4)     配置链路

(5)     (可选)配置负载均衡策略

a.     配置负载均衡类

b.     配置负载均衡动作

c.     配置负载均衡策略

(6)     (可选)配置持续性组

(7)     (可选)配置负载均衡日志功能

4.3  配置DNS透明代理

通过配置DNS透明代理,负载均衡可以对匹配上DNS透明代理的DNS请求报文进行负载均衡处理。

4.3.1  配置限制和指导

如果同时指定DNS服务器池和引用负载均衡策略,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给DNS服务器池处理。

4.3.2  配置任务简介

DNS透明代理配置任务如下:

(1)     创建DNS透明代理

(2)     配置DNS透明代理的IP地址和端口号

(3)     配置报文处理策略

请至少选择其中一项进行配置:

¡     指定DNS服务器池

¡     引用负载均衡策略

(4)     (可选)开启带宽繁忙保护功能

(5)     开启DNS透明代理功能

4.3.3  创建DNS透明代理

(1)     进入系统视图。

system-view

(2)     创建DNS透明代理,并进入DNS透明代理视图。

loadbalance dns-proxy dns-proxy-name type udp

4.3.4  配置DNS透明代理的IP地址和端口号

1. 配置限制和指导

在同时配置DNS透明代理功能和服务器负载均衡功能的情况下,为了使DNS透明代理功能正常使用,请避免将DNS透明代理的IP地址和端口号与UDP类型的虚服务器配置为同一IP地址和端口号。

建议将DNS透明代理的IP地址配置为全0地址,即对所有的DNS请求报文均进行DNS透明代理处理。

2. 配置步骤

(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。

4.3.5  指定DNS服务器池

(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服务器池。

4.3.6  引用负载均衡策略

1. 功能简介

通过在DNS透明代理视图下引用负载均衡策略,能够细化DNS请求的粒度。根据策略中的负载均衡类,对不同的报文内容进行不同的负载均衡动作处理,从而有效地丰富了DNS透明代理的负载功能,实现对链路带宽资源的合理利用。有关负载均衡策略的详细配置,请参见“4.9  配置负载均衡策略”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS透明代理视图。

loadbalance dns-proxy dns-proxy-name

(3)     指定DNS透明代理引用的负载均衡策略。

lb-policy policy-name

缺省情况下,DNS透明代理未引用负载均衡策略。

4.3.7  开启带宽繁忙保护功能

1. 功能简介

带宽繁忙保护功能就是对DNS服务器对应链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比(当前带宽与最大带宽的百分比)后,新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发。开启带宽繁忙保护功能后,DNS透明代理设备选择DNS服务器时,会检查DNS服务器使用的链路的带宽繁忙比是否超过配置的带宽繁忙比,如果超出则不选择该DNS服务器。

当DNS服务器池中的所有DNS服务器对应的链路都达到了带宽繁忙比例时,带宽繁忙保护功能自动失效;只要此DNS服务器池中有任何一个DNS服务器对应链路恢复到配置的带宽繁忙比例以下,则该DNS服务器重新参与调度,带宽繁忙保护功能自动生效。有关链路带宽繁忙比的详细配置,请参见“4.6.7  配置链路的带宽繁忙比与最大期望带宽”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS透明代理视图。

loadbalance dns-proxy dns-proxy-name

(3)     开启DNS服务器对应链路的带宽繁忙保护功能。

bandwidth busy-protection enable

缺省情况下,DNS服务器对应的链路带宽繁忙保护功能处于关闭状态。

4.3.8  开启DNS透明代理功能

1. 配置限制和指导

配置完DNS透明代理后,需要将其开启后才能进入工作状态。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS透明代理视图。

loadbalance dns-proxy dns-proxy-name

(3)     开启DNS透明代理功能。

service enable

缺省情况下,DNS透明代理功能处于关闭状态。

4.4  配置DNS服务器池

通过配置DNS服务池,可对具有相同或相似功能的DNS服务器进行统一管理。

4.4.1  创建DNS服务器池

(1)     进入系统视图。

system-view

(2)     创建DNS服务器池,并进入DNS服务器池视图。

loadbalance dns-server-pool pool-name

(3)     (可选)配置DNS服务器池的描述信息。

description text

缺省情况下,未配置DNS服务器池的描述信息。

4.4.2  配置DNS服务器池的调度算法

1. DNS服务器池调度算法简介

负载均衡设备根据DNS服务器池的调度算法,计算出处理用户DNS请求的DNS服务器。设备支持以下几种调度算法:

·     源IP哈希算法:对DNS请求的源IP地址进行哈希运算,依据生成的哈希值决定将DNS请求分发给哪台DNS服务器。该算法可实现将来自相同源IP地址的DNS请求发往同一台DNS服务器进行处理。

·     源IP及端口哈希算法:对DNS请求的源IP地址和端口号共同进行哈希运算,依据生成的哈希值决定将DNS请求发往哪台DNS服务器。该算法可实现将源IP地址和端口号均相同的DNS请求发往同一台DNS服务器进行处理。

·     目的IP哈希算法:对DNS请求的目的IP地址进行哈希运算,依据生成的哈希值决定将DNS请求发往哪台DNS服务器。该算法可实现将目的IP地址相同的DNS请求发往同一台DNS服务器进行处理。

·     随机算法:将DNS请求报文随机分发给某台DNS服务器。

·     加权轮转算法:用户可根据DNS服务器性能的不同,为其分配不同的权值。加权轮转算法根据权值的大小将DNS请求依次分发给每台DNS服务器。例如,DNS服务器Server A和Server B的权值为2和1,按照加权轮转调度算法,负载均衡设备会连续分配两条DNS请求给Server A,再分配DNS请求给Server B。该算法适用于服务器业务处理能力不同,而每一条会话对服务器的负载大致相同的场景。

·     带宽算法:根据DNS服务器的权值与剩余带宽的比例把DNS请求分发给每台DNS服务器。当剩余带宽相同时,该算法等价于加权轮转算法;当DNS服务器权值相同时,总是将用户请求分发给剩余带宽最大的链路所对应的DNS服务器;当DNS服务器权值和剩余带宽均不相同时,两者共同决定DNS服务器的调度。

·     最大带宽算法:总是将DNS请求分发给处于空闲状态且剩余带宽最大的链路所对应的DNS服务器。

2. 配置步骤

(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服务器全部被调度算法调用。

4.4.3  配置健康检测功能

1. 功能简介

通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。

2. 配置限制和指导

用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。

设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。

3. 配置步骤

(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 }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

4.5  配置DNS服务器

通过配置DNS服务器,指定负载均衡设备上处理和响应DNS请求报文的实体。此处配置的DNS服务器对应于运营商网络内的DNS服务器。一个DNS服务器可以属于多个DNS服务器池,一个DNS服务器池也可以包含多个DNS服务器。

4.5.1  配置任务简介

DNS服务器配置如下:

(1)     创建DNS服务器并指定其所属DNS服务器池

(2)     配置DNS服务器的IP地址

请选择以下一项进行配置:

¡     配置DNS服务器的IP地址和端口号

¡     开启动态获取DNS服务器IP地址的功能

(3)     指定与DNS服务器关联的链路

(4)     (可选)配置权值和调用优先级

(5)     (可选)配置健康检测功能

4.5.2  创建DNS服务器并指定其所属DNS服务器池

(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服务器池。

4.5.3  配置DNS服务器的IP地址和端口号

(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(表示继续使用原报文携带的端口号)。

4.5.4  开启动态获取DNS服务器IP地址的功能

1. 功能简介

在出口链路使用PPPoE动态获取IP地址的应用场景下,建议通过本配置动态获取DNS服务器的IP地址。

配置本功能前,需要在链路视图下配置链路对应的出接口。否则不能获取到DNS服务器IP地址。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS服务器视图。

loadbalance dns-server dns-server-name

(3)     开启动态获取DNS服务器IP地址的功能。

auto-alloc address

缺省情况下,动态获取DNS服务器IP地址的功能处于关闭状态。

4.5.5  指定与DNS服务器关联的链路

1. 配置限制和指导

每台DNS服务器仅支持与一条链路相关联,同一条链路可以关联多台DNS服务器。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS服务器视图。

loadbalance dns-server dns-server-name

(3)     指定与DNS服务器关联的链路。

link link-name

缺省情况下,未指定与DNS服务器关联的链路。

4.5.6  配置权值和调用优先级

1. 功能简介

通过在DNS服务器视图下配置权值和调用优先级,可以调整DNS服务器的加权轮转调度算法和带宽调度算法使用的权值,以及DNS服务器在DNS服务器池中的调用优先级。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS服务器视图。

loadbalance dns-server dns-server-name

(3)     配置DNS服务器的权值。

weight weight-value

缺省情况下,DNS服务器的权值为100。

(4)     配置DNS服务器的调用优先级。

priority priority

缺省情况下,DNS服务器的调用优先级为4。

4.5.7  配置健康检测功能

1. 功能简介

通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。

2. 配置限制和指导

用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。

3. 配置步骤

(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 }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

4.6  配置链路

链路是运营商提供的实体链路。通过在链路视图下配置通往外网方向的下一跳IP地址,实现对流量的引流。通过配置最大带宽、健康检测、带宽繁忙比和最大期望带宽等功能为链路性能提供一定的保障。

4.6.1  配置任务简介

链路配置任务如下:

(1)     创建链路

(2)     配置链路的IP地址或出接口

请选择以下一项进行配置:

¡     指定链路通往外网方向的下一跳IP地址

¡     配置链路对应的出接口

(3)     (可选)配置链路所允许的最大带宽

(4)     (可选)配置健康检测功能

(5)     (可选)配置链路的带宽繁忙比与最大期望带宽

4.6.2  创建链路

(1)     进入系统视图。

system-view

(2)     创建链路,并进入链路视图。

loadbalance link link-name

(3)     (可选)配置链路的描述信息。

description text

缺省情况下,未配置链路的描述信息。

4.6.3  指定链路通往外网方向的下一跳IP地址

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     指定链路通往外网方向的下一跳IP地址。

(IPv4网络)

router ip ipv4-address

(IPv6网络)

router ipv6 ipv6-address

缺省情况下,未指定链路通往外网方向的下一跳IP地址。

4.6.4  配置链路对应的出接口

1. 功能简介

在出口链路使用PPPoE动态获取IP地址的应用场景下,通过本配置,负载均衡设备可从指定接口动态获取链路通往外网的下一跳IP地址。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     配置链路对应的出接口。

router interface interface-type interface-number

缺省情况下,未配置链路对应的出接口。

4.6.5  配置链路所允许的最大带宽

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     配置链路所允许的最大带宽。

rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps

缺省情况下,链路所允许的最大带宽不受限制。

4.6.6  配置健康检测功能

1. 功能简介

通过健康检测可以对链路进行检测,保证其能够提供有效的服务。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     指定链路的健康检测方法。

probe template-name

缺省情况下,未指定链路的健康检测方法。

(4)     配置链路健康检测的成功条件。

success-criteria { all | at-least min-number }

缺省情况下,只有全部方法都通过检测才认为健康检测成功。

4.6.7  配置链路的带宽繁忙比与最大期望带宽

1. 功能简介

通过本配置可以调整链路的带宽繁忙比,即当前流量与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的流量超过两者的乘积后,链路进入繁忙状态,新建流量(不包括匹配持续性表项的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。

链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。

2. 配置步骤

(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

缺省情况下,链路最大期望带宽不受限制。

4.7  配置负载均衡类

负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。

4.7.1  配置任务简介

负载均衡类配置任务如下:

(1)     创建负载均衡类

(2)     创建匹配规则

请至少选择以下一项进行配置:

¡     创建嵌套类的匹配规则

¡     创建源IP地址类型的匹配规则

¡     创建目的IP地址类型的匹配规则

¡     创建ACL类型的匹配规则

¡     创建域名类型的匹配规则

4.7.2  创建负载均衡类

(1)     进入系统视图。

system-view

(2)     创建DNS类型的负载均衡类,并进入负载均衡类视图。

loadbalance class class-name type dns [ match-all | match-any ]

创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡类的描述信息。

description text

缺省情况下,未配置负载均衡类的描述信息。

4.7.3  创建嵌套类的匹配规则

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡类视图。

loadbalance class class-name

(3)     创建嵌套类的匹配规则。

match [ match-id ] class class-name

4.7.4  创建源IP地址类型的匹配规则

(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 ] }

4.7.5  创建目的IP地址类型的匹配规则

(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 ] }

4.7.6  创建ACL类型的匹配规则

1. 配置限制和指导

如果指定编号或名称的ACL不存在,此匹配规则将不参与匹配。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡类视图。

loadbalance class class-name

(3)     创建ACL类型的匹配规则。

match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }

4.7.7  创建域名类型的匹配规则

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡类视图。

loadbalance class class-name

(3)     创建域名类型的匹配规则。

match [ match-id ] domain-name domain-name

4.8  配置负载均衡动作

4.8.1  功能简介

负载均衡动作可分为两大类:

·     转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。

·     修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。

如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。

4.8.2  配置限制和指导

在配置转发类动作时,配置报文的转发模式为转发、指定指导转发的DNS服务器池、和配置跳过当前DNS透明代理两两互斥。当配置了其中一条后,其他的配置将被自动取消。

4.8.3  配置任务简介

负载均衡动作配置如下:

(1)     创建负载均衡动作

(2)     (可选)配置转发类动作

请从配置报文的转发模式为转发、指定指导转发的DNS服务器池和配置跳过当前DNS透明代理中选择一项进行配置。

¡     配置报文的转发模式为转发

¡     指定指导转发的DNS服务器池

¡     配置跳过当前DNS透明代理

¡     (可选)配置查找可用DNS服务器失败时继续匹配下一条引用规则

¡     (可选)配置繁忙处理方式为继续匹配下一条引用规则

(3)     (可选)配置修改类动作

¡     配置发往DNS服务器的IP报文中的ToS字段

4.8.4  创建负载均衡动作

(1)     进入系统视图。

system-view

(2)     创建DNS类型的负载均衡动作,并进入负载均衡动作视图。

loadbalance action action-name type dns

创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡动作的描述信息。

description text

缺省情况下,未配置负载均衡动作的描述信息。

4.8.5  配置转发类动作

1. 转发类动作简介

设备支持配置五种转发类动作,包括:

·     报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。

·     指定指导转发的DNS服务器池:当配置本功能的动作在负载均衡策略中被引用时,可将报文转发到指定的DNS服务器池进行处理。

·     跳过当前DNS透明代理:配置报文的转发模式为跳过当前DNS透明代理,可使匹配了DNS透明代理的报文跳过当前DNS透明代理,并重新匹配DNS透明代理或虚服务器。

·     查找DNS服务器失败时继续匹配下一条引用规则:当配置该功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用DNS服务器失败时,可继续顺序匹配策略中的下一条引用规则。

·     配置繁忙处理方式为继续匹配下一条引用规则:当该动作在负载均衡策略中被引用时,判断当前动作查找DNS服务器全部繁忙时,可继续顺序匹配策略中的下一条引用规则。

2. 配置报文的转发模式为转发

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置报文的转发模式为转发。

forward all

缺省情况下,报文转发模式为丢弃。

3. 指定指导转发的DNS服务器池

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡动作视图。

loadbalance action action-name

(3)     指定指导转发的DNS服务器池。

dns-server-pool pool-name

缺省情况下,未指定指导转发的DNS服务器池。

4. 配置跳过当前DNS透明代理

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置报文的转发模式为跳过当前DNS透明代理。

skip current-dns-proxy

缺省情况下,报文的转发模式为丢弃。

5. 配置查找可用DNS服务器失败时继续匹配下一条引用规则

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置查找DNS服务器失败时继续匹配下一条引用规则。

fallback-action continue

缺省情况下,当前动作查找可用DNS服务器失败时,不再继续匹配下一条引用规则,直接丢弃报文。

6. 配置繁忙处理方式为继续匹配下一条引用规则

(1)     进入系统视图。

system-view

(2)     进入负载均衡动作视图。

loadbalance action action-name

(3)     配置繁忙处理方式为继续匹配下一条引用规则。

busy-action continue

缺省情况下,繁忙处理方式为强制调度。

4.8.6  配置发往DNS服务器的IP报文中的ToS字段

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡动作视图。

loadbalance action action-name

(3)     配置发往DNS服务器的IP报文中的ToS字段。

set ip tos tos-number

缺省情况下,不改变发往DNS服务器的IP报文中的ToS字段。

4.9  配置负载均衡策略

4.9.1  配置任务简介

负载均衡策略配置如下:

(1)     创建负载均衡策略

(2)     指定负载均衡动作

(3)     指定缺省负载均衡动作

4.9.2  创建负载均衡策略

(1)     进入系统视图。

system-view

(2)     创建DNS类型的负载均衡策略,并进入负载均衡策略视图。

loadbalance policy policy-name type dns

创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置负载均衡策略的描述信息。

description text

缺省情况下,未配置负载均衡策略的描述信息。

4.9.3  指定负载均衡动作

1. 配置限制和指导

DNS类型的负载均衡策略只能引用DNS类型的负载均衡类和负载均衡动作。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡策略视图。

loadbalance policy policy-name

(3)     为负载均衡类指定负载均衡动作。

class class-name [ insert-before before-class-name | insert-after [ after-class-name ] ] action action-name

缺省情况下,没有为负载均衡类指定负载均衡动作。

4.9.4  指定缺省负载均衡动作

1. 配置限制和指导

通过指定缺省负载均衡动作,可以为未匹配任何负载均衡类的报文指定其执行的缺省动作。

DNS类型的负载均衡策略只能引用DNS类型的负载均衡动作作为其缺省负载均衡动作。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS类型的负载均衡策略视图。

loadbalance policy policy-name

(3)     指定缺省负载均衡动作。

default-class action action-name

缺省情况下,未指定缺省负载均衡动作。

4.10  配置持续性组

持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一台DNS服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了一台DNS服务器之后,后续包都会延用这个选择结果。

4.10.1  配置任务简介

持续性组配置如下:

(1)     创建持续性组

(2)     配置IP持续性方法

(3)     (可选)配置持续性表项的超时时间

4.10.2  创建持续性组

(1)     进入系统视图。

system-view

(2)     创建地址端口类型的持续性组,并进入持续性组视图。

sticky-group group-name type address-port

创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。

(3)     (可选)配置持续性组的描述信息。

description text

缺省情况下,未配置持续性组的描述信息。

4.10.3  配置IP持续性方法

(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持续性方法。

4.10.4  配置持续性表项的超时时间

(1)     进入系统视图。

system-view

(2)     进入地址端口类型的持续性组视图。

sticky-group group-name

(3)     配置持续性表项的超时时间。

timeout timeout-value

缺省情况下,持续性表项的超时时间为60秒。

4.11  配置负载均衡日志功能

4.11.1  功能简介

负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括NAT日志和链路带宽繁忙日志。

通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过地址转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。

通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。

4.11.2  配置负载均衡NAT日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡NAT日志功能。

loadbalance log enable nat

缺省情况下,负载均衡NAT日志功能处于关闭状态。

4.11.3  配置负载均衡链路带宽繁忙日志功能

(1)     进入系统视图。

system-view

(2)     开启负载均衡链路带宽繁忙日志功能。

loadbalance log enable bandwidth-busy

缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。

4.12  DNS透明代理显示和维护

在完成上述配置后,在任意视图下执行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 ]

 

显示DNS服务器池成员的统计信息

display loadbalance dns-server statistics dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ]

 

显示DNS透明代理的信息

display loadbalance dns-proxy [ brief | name dns-proxy-name ]

 

显示DNS透明代理的统计信息

display loadbalance dns-proxy statistics [ name dns-proxy-name ]

 

显示链路的信息

display loadbalance link [ brief | name link-name ]

显示链路的统计信息

display loadbalance link statistics [ name link-name ]

显示负载均衡类的信息

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 dns-proxy-name ] [ class { class-name | default-class } | client-addr { ipv4-address | ipv6-address } | dns-server-addr { ipv4-address | ipv6-address } | dns-server-pool pool-name | dns-server-port port-number | key sticky-key ] * [ brief ]

 

显示持续性组的信息

display sticky-group [ name group-name ]

 

清除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 ]

清除DNS透明代理的持续性表项信息

reset sticky dns-proxy [ dns-proxy-name dns-proxy-name ] [ class { class-name | default-class } | client-addr { ipv4-address | ipv6-address } | dns-server-addr { ipv4-address | ipv6-address } | dns-server-pool pool-name | dns-server-port port-number | key sticky-key ] *

 

 


5 入方向链路负载均衡

5.1  入方向链路负载均衡简介

入方向链路负载均衡功能可在多条链路上分担外网用户访问内网服务器的流量。

5.1.1  应用场景

图5-1所示,企业分别租用不同运营商ISP 1、ISP 2和ISP 3的三条链路Link 1、Link 2和Link 3为外网用户提供服务。通过配置入方向链路负载均衡,可以使外部互联网用户访问内网服务器的流量较为均匀地分配到多条链路上,从而提高流量转发效率,提升服务质量;可以避免出现一条链路拥塞而其他链路闲置的情况;可以在某条链路出现故障时,使外部互联网用户使用其它链路来访问内网服务器,避免因链路故障导致流量转发失败。

图5-1 入方向链路负载均衡组网图

 

5.1.2  工作流程

入方向链路负载均衡是基于DNS解析实现的。负载均衡设备作为权威DNS服务器负责解析外网用户访问内网服务器的DNS请求报文,并为外网用户访问内网服务器选择最佳链路。具体流程如图5-2所示。

图5-2 入方向链路负载均衡工作流程图

 

入方向链路负载均衡工作流程简述如表5-1所示。

表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

 

5.1.3  负载均衡设备上的业务处理流程

入方向链路负载均衡是负载均衡设备通过接收DNS请求报文并返回携带虚服务器IP地址的DNS应答报文实现的。

图5-3 负载均衡设备上的业务处理流程图

 

图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地址后将其作为目的地址,通过该虚服务器关联的链路访问内网服务器。

5.2  入方向链路负载均衡配置限制和指导

在配置入方向链路负载均衡时,管理员需要联系运营商在Local DNS上配置委派域,指定负载均衡设备为处理DNS请求的权威DNS服务器。

5.3  入方向链路负载均衡配置任务简介

入方向链路负载均衡配置任务如下:

(1)     配置DNS监听器

(2)     配置DNS映射

(3)     配置虚服务器

(4)     配置虚服务器池

(5)     配置链路(Link)

(6)     (可选)配置DNS区域

¡     配置DNS正向区域

¡     配置DNS反向区域

(7)     (可选)配置Topology

(8)     (可选)配置Region

(9)     (可选)配置ISP信息

(10)     (可选)配置负载均衡链路带宽繁忙日志功能

(11)     (可选)测试入方向链路负载均衡效果

(12)     (可选)配置可记录的解析失败的DNS请求报文

¡     配置可记录的解析失败的DNS请求报文的最大数目

¡     配置可记录的解析失败的DNS请求报文的类型

5.4  配置DNS监听器

通过配置DNS监听器,指定负载均衡设备提供DNS解析服务的IP地址和端口号等信息。

5.4.1  配置任务简介

DNS监听器配置任务如下:

(1)     创建DNS监听器

(2)     指定DNS监听器的IP地址和端口

(3)     开启DNS监听功能

(4)     (可选)指定DNS监听器查找DNS请求资源记录失败时的处理方式

5.4.2  创建DNS监听器

(1)     进入系统视图。

system-view

(2)     创建DNS监听器,并进入DNS监听器视图。

loadbalance dns-listener dns-listener-name

5.4.3  指定DNS监听器的IP地址和端口

1. 功能简介

通过配置DNS监听器的IPv4地址和端口,指定设备对外提供DNS解析服务的IPv4地址和端口。

2. 配置步骤

(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地址和端口。

5.4.4  开启DNS监听功能

(1)     进入系统视图。

system-view

(2)     进入DNS监听器视图。

loadbalance dns-listener dns-listener-name

(3)     开启DNS监听功能。

service enable

缺省情况下,DNS监听功能处于关闭状态。

5.4.5  指定DNS监听器查找DNS请求资源记录失败时的处理方式

(1)     进入系统视图。

system-view

(2)     进入DNS监听器视图。

loadbalance dns-listener dns-listener-name

(3)     指定DNS监听器查找DNS请求资源记录失败时的处理方式。

fallback { dns-proxy | no-response | reject }

缺省情况下,DNS监听器查找DNS请求资源记录失败时的处理方式为回应DNS拒绝报文。

5.5  配置DNS映射

通过配置DNS映射,可以将DNS域名和虚服务器池关联起来。

5.5.1  配置任务简介

DNS映射配置任务如下:

(1)     创建DNS映射

(2)     添加DNS映射的DNS域名

(3)     指定DNS映射使用的虚服务器池

(4)     (可选)配置缓存DNS域名解析记录的缓存时间

(5)     开启DNS映射

5.5.2  创建DNS映射

(1)     进入系统视图。

system-view

(2)     创建DNS映射,并进入DNS映射视图。

loadbalance dns-map dns-map-name

5.5.3  添加DNS映射的DNS域名

1. 配置限制和指导

同一个DNS映射视图下,可以添加多个DNS映射的DNS域名。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS映射视图。

loadbalance dns-map dns-map-name

(3)     添加DNS映射的DNS域名。

domain-name domain-name

5.5.4  指定DNS映射使用的虚服务器池

(1)     进入系统视图。

system-view

(2)     进入DNS映射视图。

loadbalance dns-map dns-map-name

(3)     指定DNS映射使用的虚服务器池。

virtual-server-pool pool-name

缺省情况下,DNS映射未使用任何虚服务器池。

5.5.5  配置缓存DNS域名解析记录的缓存时间

1. 功能简介

配置的缓存DNS域名解析记录的缓存时间将会填充到DNS应答报文的域名解析记录中。例如,当负载均衡策略或虚服务器配置变化时,用户可以通过配置小一些的缓存时间,使DNS请求客户端尽快获得新的解析记录;而在网络稳定的环境下,用户可将缓存时间设置为更大的值,提高域名的解析稳定性及速度。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNS映射视图。

loadbalance dns-map dns-map-name

(3)     配置缓存DNS域名解析记录的缓存时间。

ttl ttl-value

缺省情况下,域名解析记录的缓存时间缺省值为3600秒。

5.5.6  开启DNS映射

(1)     进入系统视图。

system-view

(2)     进入DNS映射视图。

loadbalance dns-map dns-map-name

(3)     开启DNS映射。

service enable

缺省情况下,DNS映射处于关闭状态。

5.6  配置虚服务器

1. 功能简介

通过配置虚服务器,指定内网服务器对外提供服务的IP地址和端口等信息。此节的配置任务及相关配置,请参见“2.5  配置虚服务器”。

2. 配置限制和指导

·     如果同时配置入方向链路负载均衡功能和服务器负载均衡功能,请配置虚服务器的IP地址与DNS监听器地址为不同的公网地址,以免影响入方向链路负载均衡功能的正常使用。关于DNS监听器IP地址的详细介绍,请参见“5.4.3  指定DNS监听器的IP地址和端口”。

·     配置入方向链路负载均衡使用的虚服务器的IPv4地址时,要求配置32位掩码且为非全0的单播地址。

·     配置入方向链路负载均衡使用的虚服务器的IPv6地址时,要求配置128位掩码且为非全0的单播地址。

5.7  配置虚服务器池

通过配置虚服务器池,可将具有相同或相似功能的虚服务器进行统一管理。

5.7.1  配置任务简介

虚服务器池配置任务如下:

(1)     创建虚服务器池

(2)     添加虚服务或虚IP

请至少选择其中一项进行配置:

¡     添加虚服务器

¡     添加虚IP

(3)     (可选)配置虚服务器池的调度算法

(4)     (可选)开启虚服务器池的繁忙保护功能

5.7.2  创建虚服务器池

(1)     进入系统视图。

system-view

(2)     创建虚服务器池,并进入虚服务器池视图。

loadbalance virtual-server-pool name

5.7.3  添加虚服务器

(1)     进入系统视图。

system-view

(2)     进入虚服务器池视图。

loadbalance virtual-server-pool name

(3)     添加虚服务器。

virtual-server virtual-server-name link link-name [ weight weigth-name ]

缺省情况下,虚服务器池未添加任何虚服务器。

5.7.4  添加虚IP

(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地址。

5.7.5  配置虚服务器池的调度算法

1. 虚服务器池调度算法简介

设备支持以下虚服务器池的调度算法:

·     加权最小连接算法(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请求分发给虚服务器。

配置虚服务器池的调度算法时,可以分别指定首选调度算法、次选调度算法和备选调度算法。其中,首选调度算法优先级最高,当采用首选算法不能选出可用的虚服务器时,采用次选调度算法,备选调度算法优先级最低。

2. 配置步骤

(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.7.6  开启虚服务器池的繁忙保护功能

1. 功能简介

开启繁忙保护功能后,虚服务器池根据用户配置的调度方式选择虚服务器成员时,会查看所选取的虚服务器成员对应的链路是否超过配置的繁忙比例,如果超出则不选择该虚服务器成员。关于配置链路的带宽繁忙比例,具体请参见“5.8.5  配置链路的带宽繁忙比与最大期望带宽

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚服务器池视图。

loadbalance virtual-server-pool name

(3)     开启虚服务器池的繁忙保护功能。

bandwidth busy-protection enable

缺省情况下,虚服务器池繁忙保护功能处于关闭状态。

5.8  配置链路(Link

由于虚服务器池中进行虚服务器调度时,链路可用性是决定虚服务器是否可参与调度的因素之一。可以根据实际需求,通过配置链路的健康检测,所允许的最大期望带宽及带宽繁忙比例等功能来影响链路的可用性。

5.8.1  配置任务简介

链路配置任务如下:

(1)     创建链路

(2)     指定链路通往外网方向的下一跳

(3)     (可选)配置链路的健康检测

(4)     (可选)配置链路的带宽繁忙比与最大期望带宽

5.8.2  创建链路

(1)     进入系统视图。

system-view

(2)     创建链路,并进入链路视图。

loadbalance link link-name

5.8.3  指定链路通往外网方向的下一跳

1. 功能简介

在入方向负载均衡中,链路通往外网方向的下一跳指的是链路对端设备的IP地址,管理员通过配置该地址来指定对哪一条链路进行健康检测和带宽限制。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     指定链路通往外网方向的下一跳。

router ip ipv4-address

缺省情况下,未配置链路通往外网方向的下一跳IP地址。

5.8.4  配置链路的健康检测

1. 功能简介

通过为链路配置健康检测方法,可以对链路的质量、链路的状态等进行检测,保证其可用。链路的健康检测方法通过引用NQA模板来配置。NQA模板的相关配置,请参见“网络管理和监控配置指导”中的“NQA”。

2. 配置限制和指导

同一个链路视图下,可以配置多个链路健康检测方法。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入链路视图。

loadbalance link link-name

(3)     指定链路的健康检测方法。

probe template-name

缺省情况下,未指定任何链路检测方法。

(4)     配置链路检测的成功条件。

success-criteria { all | at-least min-number }

缺省情况下,只有全部方法通过检测才认为健康检测成功。

5.8.5  配置链路的带宽繁忙比与最大期望带宽

1. 功能简介

通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当某条链路流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。

链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。

2. 配置步骤

(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,即不限制。

5.9  配置DNS正向区域

5.9.1  功能简介

在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地址。

图5-4 负载均衡设备上的业务处理流程图

 

5.9.2  配置任务简介

DNS正向区域配置任务如下:

(1)     创建DNS正向区域

(2)     (可选)配置资源记录

¡     (可选)配置指定类型的资源记录

支持配置CNAME、MX、NS、SRV和TXT资源记录。

¡     (可选)配置SOA资源记录

(3)     (可选)配置资源记录的缓存时间

5.9.3  创建DNS正向区域

(1)     进入系统视图。

system-view

(2)     创建DNS正向区域,并进入DNS正向区域视图。

loadbalance zone domain-name

5.9.4  配置指定类型的资源记录

(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 ]

5.9.5  配置SOA资源记录

(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秒。

5.9.6  配置资源记录的缓存时间

(1)     进入系统视图。

system-view

(2)     进入DNS正向区域视图。

loadbalance zone domain-name

(3)     配置资源记录的缓存时间。

ttl ttl-value

缺省情况下,资源记录的缓存时间为3600秒。

5.10  配置DNS反向区域

1. 功能简介

负载均衡设备根据DNS反向区域对收到的报文进行反向DNS解析,即根据IP地址查找对应的域名。DNS反向区域中设置的PTR(Pointer Record,指针记录)用来记录域名和IP地址的映射关系。

DNS反向地址解析通常用于解决网络中的垃圾邮件攻击,即对邮件发送方的合法性进行检查,来拒绝转发或接收非法邮件。例如,当邮件服务器收到来自外网用户的邮件时,向负载均衡设备发送反向解析请求,负载均衡设备收到来自邮件服务器的反向解析请求后,查找在DNS反向区域中配置的PTR资源记录,将邮件发送方的源IP地址解析为域名并将解析结果返回给邮件服务器。邮件服务器将收到的域名与邮件报文中的发送方域名进行比较,结果一致则接收该邮件,否则认为该邮件为垃圾邮件并将其丢弃。

2. 配置步骤

(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资源记录。

5.11  配置Topology

1. 功能简介

当虚服务器池中指定调度算法为静态就近性调度算法(topology)时,则需要配置Topology。关于虚服务器池的调度算法的具体配置,请参见“5.7.5  配置虚服务器池的调度算法”。

若DNS请求匹配多个Topology记录时,优先选择优先级值高的记录。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置Topology。

topology region region-name { ip ipv4-address { mask-length | mask } | ipv6 ipv6-address prefix-length } [ priority priority ]

5.12  配置Region

1. 功能简介

区域对象中包含根据不同ISP信息(运营商类别)划分的地址段。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建区域对象,并进入区域对象视图。

loadbalance region region-name

(3)     添加ISP信息。

isp isp-name

5.13  配置ISP信息

入方向链路负载均衡使用的ISP信息为出方向链路负载均衡下的ISP信息。此节的配置任务及相关配置,请参见“3.11  配置ISP信息”。

5.14  配置负载均衡链路带宽繁忙日志功能

1. 功能简介

通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启负载均衡链路带宽繁忙日志功能。

loadbalance log enable bandwidth-busy

缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。

5.15  测试入方向链路负载均衡效果

5.15.1  功能简介

可以通过指定DNS请求报文的类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试入方向链路负载均衡的解析结果。

5.15.2  测试IPv4入方向链路负载均衡的解析结果。

可在任意视图下执行本命令,测试IPv4入方向链路负载均衡的解析结果。

loadbalance local-dns-server schedule-test ip 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 } }

5.15.3  测试IPv6入方向链路负载均衡的解析结果。

可在任意视图下执行本命令,测试IPv6入方向链路负载均衡的解析结果。

loadbalance local-dns-server schedule-test ipv6 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 } }

5.16  配置可记录的解析失败的DNS请求报文的最大数目

(1)     进入系统视图。

system-view

(2)     配置可记录的解析失败的DNS请求报文的最大数目。

loadbalance local-dns-server parse-fail-record max-number max-number

缺省情况下,可记录的解析失败的DNS请求报文的最大数目为10000条。

5.17  配置可记录的解析失败的DNS请求报文的类型

(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请求报文的类型为全部类型。

5.18  入方向链路负载均衡显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后入方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除链路负载均衡的统计信息。

表5-2 入方向链路负载均衡显示和维护

配置

命令

显示负载均衡DNS监听器的信息

display loadbalance dns-listener [ name listener-name ]

显示负载均衡DNS监听器的统计信息

display loadbalance dns-listener statistics [ name dns-listener-name ]

显示负载均衡DNS映射的信息

display loadbalance dns-map [ name dns-map-name ]

显示负载均衡DNS映射的统计信息

display loadbalance dns-map statistics [ name dns-map-name ]

显示虚服务器池的信息

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 } ] ]

清除DNS监听器的统计信息

reset loadbalance dns-listener statistics [ dns-listener-name ]

清除DNS映射的统计信息

reset loadbalance dns-map statistics [ dns-map-name ]

清除当前记录的解析失败的DNS请求报文的信息

reset loadbalance local-dns-server parse-fail-record

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们