01-负载均衡配置
本章节下载: 01-负载均衡配置 (523.94 KB)
目 录
LB(Load Balance,负载均衡)是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。
本特性的支持情况与设备型号有关,请以设备实际情况为准。
|
型号 |
说明 |
|
MSR610 |
不支持 |
|
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
|
MSR810-LMS、MSR810-LUS |
不支持 |
|
MSR810-SI、MSR810-LM-SI |
不支持 |
|
MSR810-LMS-EA、MSR810-LME |
支持 |
|
MSR1004S-5G、MSR1004S-5G-CN |
支持 |
|
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
支持 |
|
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
|
MSR2600-10-X1 |
支持 |
|
MSR2630-G-X1 |
支持 |
|
MSR 2630 |
支持 |
|
MSR3600-28、MSR3600-51 |
支持 |
|
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
|
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
|
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
|
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
支持 |
|
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
|
MSR-iMC |
支持 |
|
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
|
MSR3610、MSR3620、MSR3620-DP、MSR3640、MSR3660 |
支持 |
|
MSR3610-G、MSR3620-G |
支持 |
|
MSR3640-G |
支持 |
|
MSR3640-X1-HI |
支持 |
|
型号 |
说明 |
|
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
|
MSR830-4LM-WiNet |
支持 |
|
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
|
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
|
MSR2600-6-WiNet |
支持 |
|
MSR2600-10-X1-WiNet |
支持 |
|
MSR2630-WiNet |
支持 |
|
MSR3600-28-WiNet |
支持 |
|
MSR3610-X1-WiNet |
支持 |
|
MSR3620-X1-WiNet |
支持 |
|
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
|
型号 |
说明 |
|
MSR860-6EI-XS |
支持 |
|
MSR860-6HI-XS |
支持 |
|
MSR2600-15-X1-XS |
支持 |
|
MSR2630-XS |
支持 |
|
MSR3600-28-XS |
支持 |
|
MSR3610-XS |
支持 |
|
MSR3620-XS |
支持 |
|
MSR3610-I-XS |
支持 |
|
MSR3610-IE-XS |
支持 |
|
MSR3620-X1-XS |
支持 |
|
MSR3640-XS |
支持 |
|
MSR3660-XS |
支持 |
|
型号 |
说明 |
|
MSR810-LM-GL |
支持 |
|
MSR810-W-LM-GL |
支持 |
|
MSR830-6EI-GL |
支持 |
|
MSR830-10EI-GL |
支持 |
|
MSR830-6HI-GL |
支持 |
|
MSR830-10HI-GL |
支持 |
|
MSR1004S-5G-GL |
支持 |
|
MSR2600-6-X1-GL |
支持 |
|
MSR3600-28-SI-GL |
不支持 |
负载均衡技术具有以下优势:
· 高性能:通过将业务较均衡地分配到多台设备或多条链路上,提高了系统的整体性能。
· 可扩展性:可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。
· 高可靠性:单个甚至多个设备或链路发生故障也不会导致业务中断,提高了系统的整体可靠性。
· 可管理性:大量的管理工作都集中在应用了负载均衡技术的设备上,集群中的设备或链路只需要进行普通的配置和维护。
· 透明性:对用户而言,集群等同于一个可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构。增减集群中的设备或链路不会影响正常业务。
如图2-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服务器,从而使内网用户访问外网服务器的流量较为均匀地分配到多条链路上,提高流量转发效率,提升服务质量;可以避免出现一条链路拥塞而其他链路闲置的情况;也可以在某条链路出现故障时,使用其他链路来访问外网服务器,避免因链路故障导致访问失败。
图2-1 DNS透明代理原理图
DNS透明代理功能是通过改变DNS请求报文的目的地址实现的。具体工作流程如图2-2所示。
图2-2 DNS透明代理工作流程图
DNS透明代理工作流程简述如表2-1所示。
表2-1 DNS透明代理工作流程简述
|
步骤 |
描述 |
源IP地址 |
目的IP地址 |
|
(1) |
内网用户向负载均衡设备发送DNS请求报文 |
Host IP |
DNS server A's IP |
|
(2) |
负载均衡设备收到DNS请求报文后根据调度算法选出应将此请求分发给哪台DNS服务器 |
- |
- |
|
(3) |
负载均衡设备将DNS请求报文的目的IP地址修改为选定的DNS服务器的IP地址 |
Host IP |
DNS server IP |
|
(4) |
DNS服务器接收并处理DNS请求报文,返回DNS应答报文 |
DNS server IP |
Host IP |
|
(5) |
负载均衡设备收到DNS应答报文后,将其源IP地址修改为DNS请求报文中的目的IP地址后转发给内网用户 |
DNS server A's IP |
Host IP |
|
(6) |
内网用户根据DNS应答报文中的IP地址访问外网服务器 |
Host IP |
External server |
|
(7) |
外网服务器应答内网用户 |
External server |
Host IP |
负载均衡设备通过改变DNS请求报文的目的地址控制访问流量在多条链路上的转发,为内网用户访问外网服务器选择最佳链路。
如图2-3所示,负载均衡设备上包括以下要素:
· DNS proxy:DNS透明代理。只有当DNS请求的端口号匹配DNS透明代理的端口号时,负载均衡设备才对收到的DNS请求报文进行DNS透明代理。
· DNS server pool:DNS服务器池。DNS服务器的集合。
· DNS server:DNS服务器。处理用户DNS请求报文的实体。
· Link:运营商提供的实体链路。
· LB class:负载均衡类。将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· LB action:负载均衡动作。制定丢弃、转发或修改报文的具体行为。
· LB policy:负载均衡策略。将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被DNS透明代理引用。
当收到DNS请求的目的地址和端口号均匹配DNS透明代理的IP地址和端口号时,负载均衡设备会对DNS请求报文进行DNS透明代理。首先在DNS透明代理中查找关联的DNS服务器池。再依据池中配置的调度算法选出应将DNS请求分发给哪台DNS服务器。负载均衡设备将选定DNS服务器的IP地址作为目的地址发送DNS请求报文,DNS服务器接收并处理DNS请求报文,将其解析为同网络内外网服务器的IP地址,并返回DNS应答报文。内网用户收到应答报文后,就可以访问该外网服务器了。
DNS透明代理功能配置任务如下:
(1) 配置DNS透明代理
(2) 配置DNS服务器池
(3) 配置DNS服务器池的调度算法
(4) 配置链路
(5) (可选)配置负载均衡策略
a. 配置负载均衡类
b. 配置负载均衡动作
c. 配置负载均衡策略
(6) (可选)配置持续性组
(7) (可选)配置负载均衡日志功能
通过配置DNS透明代理,负载均衡可以对匹配上DNS透明代理的DNS请求报文进行负载均衡处理。
如果同时指定DNS服务器池和引用负载均衡策略,报文会被优先交给负载均衡策略处理,当负载均衡策略无法处理时才交给DNS服务器池处理。
DNS透明代理配置任务如下:
(1) 创建DNS透明代理
(3) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 引用负载均衡策略
(4) (可选)指定DNS透明代理所属的VPN实例
(5) (可选)开启带宽繁忙保护功能
(6) (可选)配置热备份功能
(7) 开启DNS透明代理功能
(1) 进入系统视图。
system-view
(2) 创建DNS透明代理,并进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name type udp
在同时配置DNS透明代理功能和服务器负载均衡功能的情况下,为了使DNS透明代理功能正常使用,请避免将DNS透明代理的IP地址和端口号与UDP类型的虚服务器配置为同一IP地址和端口号。
建议将DNS透明代理的IP地址配置为全0地址,即对所有的DNS请求报文均进行DNS透明代理处理。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 配置DNS透明代理的IP地址。
(IPv4网络)
ip address ipv4-address [ mask-length | mask ]
(IPv6网络)
ipv6 address ipv6-address [ prefix-length ]
缺省情况下,未配置DNS透明代理的IP地址。
(4) 配置DNS透明代理的端口号。
port port-number
缺省情况下,DNS透明代理的端口号为53。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 指定DNS透明代理引用的缺省DNS服务器池。
default dns-server-pool pool-name [ sticky sticky-name ]
缺省情况下,未指定DNS透明代理引用的缺省DNS服务器池。
通过在DNS透明代理视图下引用负载均衡策略,能够细化DNS请求的粒度。根据策略中的负载均衡类,对不同的报文内容进行不同的负载均衡动作处理,从而有效地丰富了DNS透明代理的负载功能,实现对链路带宽资源的合理利用。有关负载均衡策略的详细配置,请参见“2.9 配置负载均衡策略”。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 指定DNS透明代理引用的负载均衡策略。
lb-policy policy-name
缺省情况下,DNS透明代理未引用负载均衡策略。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 指定DNS透明代理所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DNS透明代理所属的VPN实例为公网。
带宽繁忙保护功能就是对DNS服务器对应链路的带宽繁忙比进行限制。当流量超过某条链路的带宽繁忙比(当前带宽与最大带宽的百分比)后,新建流量将不再向该链路分发,而原有流量则仍由该链路继续分发。开启带宽繁忙保护功能后,DNS透明代理设备选择DNS服务器时,会检查DNS服务器使用的链路的带宽繁忙比是否超过配置的带宽繁忙比,如果超出则不选择该DNS服务器。
当DNS服务器池中的所有DNS服务器对应的链路都达到了带宽繁忙比例时,带宽繁忙保护功能自动失效;只要此DNS服务器池中有任何一个DNS服务器对应链路恢复到配置的带宽繁忙比例以下,则该DNS服务器重新参与调度,带宽繁忙保护功能自动生效。有关链路带宽繁忙比的详细配置,请参见“2.6.8 配置链路的带宽繁忙比与最大期望带宽”。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 开启DNS服务器对应链路的带宽繁忙保护功能。
bandwidth busy-protection enable
缺省情况下,DNS服务器对应的链路带宽繁忙保护功能处于关闭状态。
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在DNS透明代理下开启会话扩展信息备份功能和持续性信息备份功能。会话扩展信息备份功能主要备份负载均衡业务的会话表项;持续性信息备份功能主要备份持续性表项。
在开启DNS透明代理的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
若设备的配置发生以下变化,则设备会删除当前已有的持续性表项,后续流量将会重新触发生成新的持续性表项。
· 关闭持续性表项备份功能
· 持续性表项备份由组间备份切换为全局备份
· 持续性表项备份由全局备份切换为组间备份
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 开启DNS透明代理的会话扩展信息备份功能。
connection-sync enable
缺省情况下,DNS透明代理的会话扩展信息备份功能处于关闭状态。
(4) 开启DNS透明代理的持续性信息备份功能。
sticky-sync enable
缺省情况下,DNS透明代理的持续性信息备份功能处于关闭状态。
配置完DNS透明代理后,需要将其开启后才能进入工作状态。
(1) 进入系统视图。
system-view
(2) 进入DNS透明代理视图。
loadbalance dns-proxy dns-proxy-name
(3) 开启DNS透明代理功能。
service enable
缺省情况下,DNS透明代理功能处于关闭状态。
通过配置DNS服务池,可对具有相同或相似功能的DNS服务器进行统一管理。
(1) 进入系统视图。
system-view
(2) 创建DNS服务器池,并进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) (可选)配置DNS服务器池的描述信息。
description text
缺省情况下,未配置DNS服务器池的描述信息。
设备支持通过两种方式向DNS服务器池中添加成员:
· 在DNS服务器池视图下,通过本配置创建DNS服务器池成员或添加已存在的DNS服务器。
· 在DNS服务器视图下,指定其所属的DNS服务器池。具体配置请参见“2.5.2 创建DNS服务器并指定其所属DNS服务器池”。
本配置用来指定DNS服务器在DNS服务器池内的权值、调用优先级、连接参数、健康检测功能以及慢宕功能。基于DNS服务器池成员的调度算法会依据这些配置选出当前DNS服务器池中最优的DNS服务器。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 创建并添加DNS服务器池成员,并进入DNS服务器池成员视图。
dns-server dns-server-name port port-number
若指定名称的DNS服务器已存在,则本命令只是在DNS服务器池视图下添加已存在的DNS服务器。
(4) (可选)配置DNS服务器池成员的描述信息。
description text
缺省情况下,未配置DNS服务器池成员的描述信息。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 进入DNS服务器池成员视图。
dns-server dns-server-name port port-number
(4) 配置DNS服务器池成员的权值。
weight weight-value
缺省情况下,DNS服务器池成员的权值为100。
(5) 配置DNS服务器池成员的调用优先级。
priority priority
缺省情况下,DNS服务器池成员的调度优先级为4。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 进入DNS服务器池成员视图。
dns-server dns-server-name port port-number
(4) 指定DNS服务器池成员的健康检测方法。
probe template-name
缺省情况下,未指定DNS服务器池成员的健康检测方法。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(5) 配置DNS服务器池成员健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
负载均衡设备根据DNS服务器池的调度算法,计算出处理用户DNS请求的DNS服务器。设备支持以下几种调度算法:
· 源IP哈希算法:对DNS请求的源IP地址进行哈希运算,依据生成的哈希值决定将DNS请求分发给哪台DNS服务器。该算法可实现将来自相同源IP地址的DNS请求发往同一台DNS服务器进行处理。
· 源IP及端口哈希算法:对DNS请求的源IP地址和端口号共同进行哈希运算,依据生成的哈希值决定将DNS请求发往哪台DNS服务器。该算法可实现将源IP地址和端口号均相同的DNS请求发往同一台DNS服务器进行处理。
· 目的IP哈希算法:对DNS请求的目的IP地址进行哈希运算,依据生成的哈希值决定将DNS请求发往哪台DNS服务器。该算法可实现将目的IP地址相同的DNS请求发往同一台DNS服务器进行处理。
· 随机算法:将DNS请求报文随机分发给某台DNS服务器。
· 加权轮转算法:用户可根据DNS服务器性能的不同,为其分配不同的权值。加权轮转算法根据权值的大小将DNS请求依次分发给每台DNS服务器。例如,DNS服务器Server A和Server B的权值为2和1,按照加权轮转调度算法,负载均衡设备会连续分配两条DNS请求给Server A,再分配DNS请求给Server B。该算法适用于服务器业务处理能力不同,而每一条会话对服务器的负载大致相同的场景。
· 带宽算法:根据DNS服务器的权值与剩余带宽的比例把DNS请求分发给每台DNS服务器。当剩余带宽相同时,该算法等价于加权轮转算法;当DNS服务器权值相同时,总是将用户请求分发给剩余带宽最大的链路所对应的DNS服务器;当DNS服务器权值和剩余带宽均不相同时,两者共同决定DNS服务器的调度。
· 最大带宽算法:总是将DNS请求分发给处于空闲状态且剩余带宽最大的链路所对应的DNS服务器。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 配置DNS服务池的调度算法。
¡ predictor hash address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ]
¡ predictor { random | round-robin | { bandwidth | max-bandwidth } [ inbound | outbound ] }
缺省情况下,DNS服务器池的调度算法为加权轮转算法。
(4) 配置DNS服务器池可被调度算法调用的DNS服务器数量限制。
selected-server min min-number max max-number
缺省情况下,DNS服务器池中调用优先级最高的DNS服务器全部被调度算法调用。
通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。
用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器池视图。
loadbalance dns-server-pool pool-name
(3) 指定DNS服务器池的健康检测方法。
probe template-name
缺省情况下,未指定DNS服务器池的健康检测方法。
(4) 配置DNS服务器池健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过配置DNS服务器,指定负载均衡设备上处理和响应DNS请求报文的实体。此处配置的DNS服务器对应于运营商网络内的DNS服务器。一个DNS服务器可以属于多个DNS服务器池,一个DNS服务器池也可以包含多个DNS服务器。
DNS服务器配置如下:
(2) 配置DNS服务器的IP地址
请选择以下一项进行配置:
(3) 指定DNS服务器所属的VPN实例
(4) 指定与DNS服务器关联的链路
(5) (可选)配置权值和调用优先级
(6) (可选)配置健康检测功能
(1) 进入系统视图。
system-view
(2) 创建DNS服务器,并进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) (可选)配置DNS服务器的描述信息。
description text
缺省情况下,DNS服务器未配置描述信息。
(4) 指定DNS服务器所属的DNS服务器池。
dns-server-pool pool-name
缺省情况下,未指定DNS服务器所属的DNS服务器池。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 配置DNS服务器的IP地址。
(IPv4网络)
ip address ipv4-address
(IPv6网络)
ipv6 address ipv6-address
缺省情况下,未配置DNS服务器IP地址。
(4) 配置DNS服务器的端口号。
port port-number
缺省情况下,DNS服务器的端口号为0(表示继续使用原报文携带的端口号)。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 指定DNS服务器所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DNS服务器所属的VPN实例为公网。
在出口链路使用PPPoE动态获取IP地址的应用场景下,建议通过本配置动态获取DNS服务器的IP地址。
配置本功能前,需要在链路视图下配置链路对应的出接口。否则不能获取到DNS服务器IP地址。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 开启动态获取DNS服务器IP地址的功能。
auto-alloc address
缺省情况下,动态获取DNS服务器IP地址的功能处于关闭状态。
每台DNS服务器仅支持与一条链路相关联,同一条链路可以关联多台DNS服务器。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 指定与DNS服务器关联的链路。
link link-name
缺省情况下,未指定与DNS服务器关联的链路。
通过在DNS服务器视图下配置权值和调用优先级,可以调整DNS服务器的加权轮转调度算法和带宽调度算法使用的权值,以及DNS服务器在DNS服务器池中的调用优先级。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 配置DNS服务器的权值。
weight weight-value
缺省情况下,DNS服务器的权值为100。
(4) 配置DNS服务器的调用优先级。
priority priority
缺省情况下,DNS服务器的调用优先级为4。
通过健康检测可以对DNS服务器进行检测,保证其能够提供有效的服务。
用户既可在DNS服务器池视图下对池内的所有DNS服务器进行配置,也可在DNS服务器视图下只对当前DNS服务器进行配置,后者的配置优先级较高。
(1) 进入系统视图。
system-view
(2) 进入DNS服务器视图。
loadbalance dns-server dns-server-name
(3) 指定DNS服务器的健康检测方法。
probe template-name
缺省情况下,未指定DNS服务器的健康检测方法。
(4) 配置DNS服务器健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
链路是运营商提供的实体链路。通过在链路视图下配置通往外网方向的下一跳IP地址,实现对流量的引流。通过配置最大带宽、健康检测、带宽繁忙比和最大期望带宽等功能为链路性能提供一定的保障。
链路配置任务如下:
(1) 创建链路
(2) 配置链路的IP地址或出接口
请选择以下一项进行配置:
(3) (可选)指定链路所属的VPN实例
(4) (可选)配置链路所允许的最大带宽
(5) (可选)配置健康检测功能
(6) (可选)配置链路的带宽繁忙比与最大期望带宽
(1) 进入系统视图。
system-view
(2) 创建链路,并进入链路视图。
loadbalance link link-name
(3) (可选)配置链路的描述信息。
description text
缺省情况下,未配置链路的描述信息。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路通往外网方向的下一跳IP地址。
(IPv4网络)
router ip ipv4-address
(IPv6网络)
router ipv6 ipv6-address
缺省情况下,未指定链路通往外网方向的下一跳IP地址。
在出口链路使用PPPoE动态获取IP地址的应用场景下,通过本配置,负载均衡设备可从指定接口动态获取链路通往外网的下一跳IP地址。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路对应的出接口。
router interface interface-type interface-number
缺省情况下,未配置链路对应的出接口。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,链路属于公网。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路所允许的最大带宽不受限制。
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路的健康检测方法。
probe template-name
缺省情况下,未指定链路的健康检测方法。
(4) 配置链路健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过本配置可以调整链路的带宽繁忙比,即当前流量与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的流量超过两者的乘积后,链路进入繁忙状态,新建流量(不包括匹配持续性表项的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法和最大带宽算法中剩余带宽的计算。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路的带宽繁忙比。
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,链路的总带宽繁忙比为70。
(4) 配置链路最大期望带宽。
max-bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路最大期望带宽不受限制。
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
负载均衡类配置任务如下:
(1) 创建负载均衡类
(2) 创建匹配规则
请至少选择以下一项进行配置:
(1) 进入系统视图。
system-view
(2) 创建DNS类型的负载均衡类,并进入负载均衡类视图。
loadbalance class class-name type dns [ match-all | match-any ]
创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡类的描述信息。
description text
缺省情况下,未配置负载均衡类的描述信息。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建嵌套类的匹配规则。
match [ match-id ] class class-name
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建源IP地址类型的匹配规则。
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建目的IP地址类型的匹配规则。
match [ match-id ] destination { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
如果指定编号或名称的ACL不存在,此匹配规则将不参与匹配。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建ACL类型的匹配规则。
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡类视图。
loadbalance class class-name
(3) 创建域名类型的匹配规则。
match [ match-id ] domain-name domain-name
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
在配置转发类动作时,配置报文的转发模式为转发、指定指导转发的DNS服务器池、和配置跳过当前DNS透明代理两两互斥。当配置了其中一条后,其他的配置将被自动取消。
负载均衡动作配置如下:
(1) 创建负载均衡动作
(2) (可选)配置转发类动作
请从配置报文的转发模式为转发、指定指导转发的DNS服务器池和配置跳过当前DNS透明代理中选择一项进行配置。
¡ (可选)配置查找可用DNS服务器失败时继续匹配下一条引用规则
¡ (可选)配置繁忙处理方式为继续匹配下一条引用规则
(3) (可选)配置修改类动作
(1) 进入系统视图。
system-view
(2) 创建DNS类型的负载均衡动作,并进入负载均衡动作视图。
loadbalance action action-name type dns
创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡动作的描述信息。
description text
缺省情况下,未配置负载均衡动作的描述信息。
设备支持配置五种转发类动作,包括:
· 报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。
· 指定指导转发的DNS服务器池:当配置本功能的动作在负载均衡策略中被引用时,可将报文转发到指定的DNS服务器池进行处理。
· 跳过当前DNS透明代理:配置报文的转发模式为跳过当前DNS透明代理,可使匹配了DNS透明代理的报文跳过当前DNS透明代理,并重新匹配DNS透明代理或虚服务器。
· 查找DNS服务器失败时继续匹配下一条引用规则:当配置该功能的动作在负载均衡策略中被引用时,在转发中根据该配置判断当前动作查找可用DNS服务器失败时,可继续顺序匹配策略中的下一条引用规则。
· 配置繁忙处理方式为继续匹配下一条引用规则:当该动作在负载均衡策略中被引用时,判断当前动作查找DNS服务器全部繁忙时,可继续顺序匹配策略中的下一条引用规则。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为转发。
forward all
缺省情况下,报文转发模式为丢弃。
本命令对于SIP类型的虚服务不生效。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 指定指导转发的DNS服务器池。
dns-server-pool pool-name
缺省情况下,未指定指导转发的DNS服务器池。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为跳过当前DNS透明代理。
skip current-dns-proxy
缺省情况下,报文的转发模式为丢弃。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置查找DNS服务器失败时继续匹配下一条引用规则。
fallback-action continue
缺省情况下,当前动作查找可用DNS服务器失败时,不再继续匹配下一条引用规则,直接丢弃报文。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置繁忙处理方式为继续匹配下一条引用规则。
busy-action continue
缺省情况下,繁忙处理方式为强制调度。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡动作视图。
loadbalance action action-name
(3) 配置发往DNS服务器的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往DNS服务器的IP报文中的ToS字段。
负载均衡策略配置如下:
(1) 创建负载均衡策略
(2) 指定负载均衡动作
(3) 指定缺省负载均衡动作
(1) 进入系统视图。
system-view
(2) 创建DNS类型的负载均衡策略,并进入负载均衡策略视图。
loadbalance policy policy-name type dns
创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡策略的描述信息。
description text
缺省情况下,未配置负载均衡策略的描述信息。
DNS类型的负载均衡策略只能引用DNS类型的负载均衡类和负载均衡动作。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡策略视图。
loadbalance policy policy-name
(3) 为负载均衡类指定负载均衡动作。
class class-name [ insert-before before-class-name | insert-after [ after-class-name ] ] action action-name
缺省情况下,没有为负载均衡类指定负载均衡动作。
通过指定缺省负载均衡动作,可以为未匹配任何负载均衡类的报文指定其执行的缺省动作。
DNS类型的负载均衡策略只能引用DNS类型的负载均衡动作作为其缺省负载均衡动作。
(1) 进入系统视图。
system-view
(2) 进入DNS类型的负载均衡策略视图。
loadbalance policy policy-name
(3) 指定缺省负载均衡动作。
default-class action action-name
缺省情况下,未指定缺省负载均衡动作。
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一台DNS服务器处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了一台DNS服务器之后,后续包都会延用这个选择结果。
持续性组配置如下:
(1) 创建持续性组
(2) 配置IP持续性方法
(3) (可选)配置持续性表项的超时时间
(1) 进入系统视图。
system-view
(2) 创建地址端口类型的持续性组,并进入持续性组视图。
sticky-group group-name type address-port
创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置持续性组的描述信息。
description text
缺省情况下,未配置持续性组的描述信息。
(1) 进入系统视图。
system-view
(2) 进入地址端口类型的持续性组视图。
sticky-group group-name
(3) 配置IP持续性方法。
(IPv4网络)
ip [ port ] { both | destination | source } [ mask mask-length ]
(IPv6网络)
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ]
缺省情况下,未配置IP持续性方法。
(1) 进入系统视图。
system-view
(2) 进入地址端口类型的持续性组视图。
sticky-group group-name
(3) 配置持续性表项的超时时间。
timeout timeout-value
缺省情况下,持续性表项的超时时间为60秒。
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括NAT日志和链路带宽繁忙日志。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过地址转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
(1) 进入系统视图。
system-view
(2) 开启负载均衡NAT日志功能。
loadbalance log enable nat
缺省情况下,负载均衡NAT日志功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡链路带宽繁忙日志功能。
loadbalance log enable bandwidth-busy
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DNS透明代理的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DNS透明代理的统计信息。
表2-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 ] (IRF模式) display loadbalance dns-server statistics [ name dns-server-name ] [ slot slot-number ] |
|
|
显示DNS服务器池成员的统计信息 |
(独立运行模式) display loadbalance dns-server statistics dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ] (IRF模式) display loadbalance dns-server statistics dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ] [ slot slot-number ] |
|
|
显示DNS透明代理的信息 |
display loadbalance dns-proxy [ brief | name dns-proxy-name ] |
|
|
显示DNS透明代理的统计信息 |
(独立运行模式) display loadbalance dns-proxy statistics [ name dns-proxy-name ] (IRF模式) display loadbalance dns-proxy statistics [ name dns-proxy-name ] [ slot slot-number ] |
|
|
显示链路的信息 |
display loadbalance link [ brief | name link-name ] |
|
|
显示链路的统计信息 |
(独立运行模式) display loadbalance link statistics [ name link-name ] (IRF模式) display loadbalance link statistics [ name link-name ] [ slot slot-number ] |
|
|
显示负载均衡类的信息 |
display loadbalance class [ name class-name ] |
|
|
显示负载均衡动作的信息 |
display loadbalance action [ name action-name ] |
|
|
显示负载均衡策略的信息 |
display loadbalance policy [ name policy-name ] |
|
|
显示DNS透明代理的持续性表项信息 |
(独立运行模式) display sticky dns-proxy [ dns-proxy-name 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 ] (IRF模式) 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 ] [ slot slot-number ] |
|
|
显示持续性组的信息 |
display sticky-group [ name group-name ] |
|
|
显示负载均衡热备份的统计信息 |
(IRF模式) display loadbalance hot-backup statistics [ slot slot-number ] |
|
|
清除DNS服务器的统计信息 |
reset loadbalance dns-server statistics [ dns-server-name ] |
|
|
清除DNS服务器池成员的统计信息 |
reset loadbalance dns-server statistics dns-server-pool dns-server-pool-name [ name dns-server-name port port-number ] |
|
|
清除DNS透明代理的统计信息 |
reset loadbalance dns-proxy statistics [ dns-proxy-name ] |
|
|
清除链路的统计信息 |
reset loadbalance link statistics [ link-name ] |
|
|
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
|
|
清除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 ] * (IRF模式) 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 ] * [ slot slot-number ] |
|
用户从两个运营商ISP 1和ISP 2处分别租用了带宽相同的两条链路Link 1和Link 2。属于ISP 1 DNS服务器的IP地址为10.1.2.100,属于ISP 2的DNS服务器的IP地址为20.1.2.100。
当内网用户通过域名www.example.com访问外网的Web服务器Web Server A和Web Server B时,使上网流量均匀地分布在不同的链路上。
图2-4 DNS透明代理基本组网配置组网图
(1) 配置接口IP地址
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] ip address 192.168.1.100 24
[Device-GigabitEthernet1/0/1] quit
[Device] interface gigabitethernet 1/0/2
[Device-GigabitEthernet1/0/2] ip address 10.1.1.1 24
[Device-GigabitEthernet1/0/2] quit
[Device] interface gigabitethernet 1/0/3
[Device-GigabitEthernet1/0/3] ip address 20.1.1.1 24
[Device-GigabitEthernet1/0/3] quit
(2) 配置链路
# 创建名为link1的链路,指定链路出方向的下一跳IP地址为10.1.1.2
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] quit
# 创建名为link2的链路,指定链路出方向的下一跳IP地址为20.1.1.2。
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] quit
(3) 配置DNS服务器池
# 创建名为dsp的DNS服务器池
[Device] loadbalance dns-server-pool dsp
[Device-lb-dspool-dsp] quit
(4) 配置DNS服务器
# 创建名为ds1的DNS服务器,配置其IPv4地址为10.1.2.100,所属DNS服务器池为dsp,并指定ds1对应的链路为link1。
[Device] loadbalance dns-server ds1
[Device-lb-ds-ds1] ip address 10.1.2.100
[Device-lb-ds-ds1] dns-server-pool dsp
[Device-lb-ds-ds1] link link1
[Device-lb-ds-ds1] quit
# 创建名为ds2的DNS服务器,配置其IPv4地址为20.1.2.100,所属DNS服务器池为dsp,并指定ds2对应的链路为link2。
[Device] loadbalance dns-server ds2
[Device-lb-ds-ds2] ip address 20.1.2.100
[Device-lb-ds-ds2] dns-server-pool dsp
[Device-lb-ds-ds2] link link2
[Device-lb-ds-ds2] quit
(5) 配置DNS透明代理
# 创建名为dns-proxy1的UDP类型的DNS透明代理,配置其IPv4地址为0.0.0.0,指定DNS服务器池为dsp,并开启DNS透明代理功能。
[Device] loadbalance dns-proxy dns-proxy1 type udp
[Device-lb-dp-udp-dp] ip address 0.0.0.0 0
[Device-lb-dp-udp-dp] default dns-server-pool dsp
[Device-lb-dp-udp-dp] service enable
[Device-lb-dp-udp-dp] quit
# 显示所有DNS服务器的简要信息。
[Device] display loadbalance dns-server brief
DNS server Address Port Link State DNS server pool
ds1 10.1.2.100 0 link1 Active dsp
ds2 20.1.2.100 0 link2 Active dsp
# 显示所有DNS服务器池的详细信息。
[Device] display loadbalance dns-server-pool
DNS server pool: dsp
Description:
Predictor: Round robin
Selected server: Disabled
Probe information:
Probe success criteria: All
Probe method:
Total DNS servers: 2
Active DNS servers: 2
DNS server list:
Name State Address port Link Weight Priority
ds1 Active 10.1.2.100 0 link1 100 4
ds2 Active 20.1.2.100 0 link2 100 4
# 显示所有DNS透明代理的详细信息。
[Device] display loadbalance dns-proxy
DNS proxy: dns-proxy1
Type: UDP
State: Active
Service state: Enabled
VPN instance:
IPv4 address: 0.0.0.0/0
IPv6 address: --
Port: 53
DNS server pool: dsp
Sticky:
LB policy:
Connection synchronization: Enabled
Sticky synchronization: Enabled
Bandwidth busy protection: Disabled
完成上述配置后,负载均衡设备可以将DNS请求报文均匀地分发到DNS Server A和DNS Server B上,从而将内网用户访问外网Web服务器的流量均匀地分配到Link 1和Link 2上。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
