03-出方向链路负载均衡配置
本章节下载: 03-出方向链路负载均衡配置 (686.19 KB)
目 录
企业网环境下,为了提高出口链路的带宽和可靠性,管理员通常会在其网络出口部署多条链路。在传统多链路方案中,网络出口设备在转发流量时,会在已部署的多条链路中随机选择一条链路进行转发。链路选择的随机性使得诸如链路的网络延迟、繁忙情况以及其他链路质量要素无法充分作为有效的判断因素,所选链路往往并非当前网络环境下的最优选。
出方向链路负载均衡可以依据流量的源/目的IP地址、链路质量以及链路权重等要素,从备选链路中动态选择最优链路进行流量转发,实现多出口链路的流量均衡转发。
出方向链路负载均衡功能包含以下基本概念:
· 负载均衡设备:进行出方向链路负载均衡的设备,负责将内网用户访问外部互联网的流量均衡地分发到多条链路。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 链路:运营商提供的实体链路。
· 链路组:将具有相同或相似功能的链路抽象成一个链路组。
如图1-1所示,在负载均衡设备(LB device)上配置出方向链路负载均衡后,设备会根据健康检测方法、持续性方法、负载均衡策略、调度算法等,综合计算出将来自内网的Flow A和Flow B转发到ISP 1和ISP 3提供的实体链路上。
如图1-1所示,出方向链路负载均衡包含以下要素:
· LB device(负载均衡设备):负责将内网用户访问外部互联网的流量分发到多条链路。
· Link(链路):运营商提供的实体链路。
· VSIP(Virtual Service IP,虚服务IP):集群对外提供的虚服务IP地址,即内网用户发送报文的目的网段。
· Server IP(服务器IP):服务器IP地址。
出方向链路负载均衡的工作流程如图1-2所示。
出方向链路负载均衡工作流程简述如下。
(1) 负载均衡设备接收来自内网服务器的流量。
(2) 负载均衡设备依次根据负载均衡策略、持续性方法、就近性算法、调度算法(通常使用带宽算法或最大带宽算法)来选择最佳链路。
(3) 负载均衡设备通过选定的最佳链路将流量转发给外网服务器。
(4) 负载均衡设备接收来自外网服务器的流量。
(5) 负载均衡设备将流量转发给内网服务器。
管理员通过配置不同的链路组调度算法,可依据不同的分配原则,将用户流量均衡地分配到多个出链路进行转发。设备支持以下链路组的调度算法:
随机算法是将请求随机分发给链路组内的某条链路。经过一段时间后,各条链路的连接数大致相同。
管理员可为每条参与调度的链路配置权值。加权轮转算法根据链路权值的大小将请求依次分发给每条链路,权值越大,分配的请求越多。
将具有相同源IP地址、源IP地址+端口或目的IP地址的流量由相同的链路发出,具体包括如下算法。
· 源IP哈希算法:对报文的源IP地址进行哈希运算。
· 源IP及端口哈希算法:对报文的源IP地址和端口号进行哈希运算。
· 目的IP哈希算法:对报文的目的IP地址进行哈希运算。
根据链路的活动连接数决定流量分发,具体包括如下算法。
· 基于链路的加权最小连接算法:总是将请求分发给加权活动连接数(当前链路在所有链路组中的活动连接总数/权值)最小的链路。该算法中使用的权值为链路视图下配置的权值。
· 基于链路组成员的加权最小连接算法:总是将请求分发给加权活动连接数(链路组成员在指定链路组中的活动连接数/权值)最小的链路组成员。该算法中使用的权值为链路组成员视图下配置的权值。
根据链路的网络延迟、路由跳数和丢包率综合计算出链路的质量,根据链路质量把新连接依次分发给每条链路,链路质量越好,分配的新连接越多。若配置调度算法为链路质量算法,则需要在就近性视图下配置就近性探测方法、网络延迟权值、路由跳数权值以及丢包率权值。
根据链路的权值与剩余带宽乘积后的比例把请求分发给每条链路。例如,对于链路lk1和链路lk2,如果其剩余带宽分别为150kbps和250kbps,而权值分别为5和6,最终lk1和lk2的请求流量分配比例为150×5:250×6,即1:2。
总是将请求分发给处于空闲状态且剩余带宽最大的链路。例如,对于链路lk1和链路lk2,如果其剩余带宽分别为150kbps和250kbps,两条链路带宽差值为100kbps,此时,当请求流量少于100kbps时,则流量都将分配给lk2;当请求流量大于100kbps时,如130kbps,其中100kbps分配给lk2,其余30kbps流量将平均分配给两条链路。
将负载均衡类和动作关联起来就构成了负载均衡策略。通过负载均衡策略,用户可以为匹配特定规则的报文指定执行的负载均衡动作,从而实现更加灵活的负载均衡。
管理员可以在一个负载均衡策略中指定多条匹配规则,设备会按照配置顺序进行匹配。
· 当匹配方式为匹配任意一条规则时,与某条匹配规则匹配成功就执行调度动作,否则继续匹配下一条匹配规则,若所有匹配规则均未匹配成功,则不执行调度动作。
· 当匹配方式为匹配所有规则时,仅当所有规则都匹配成功时,才会执行调度动作,否则不执行调度动作。
对于规则匹配成功的报文,设备会为其执行指定的负载均衡动作,动作分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
持续性组的作用是根据某持续性方法将具有一定相关性的会话都分配给同一链路处理,这个分配规则就称为持续性表项。在一个会话中,当其首包通过持续性方法选择了同一链路之后,后续包都会沿用这个选择结果,减少了调度算法的重复运算,提升了转发效率。
持续性组的详细处理流程如下:
(6) 当设备首次收到具有某种特征的请求时,会根据调度算法将请求分发给某条链路。同时根据管理员配置的持续性方法生成持续性表项。
(7) 在持续性表项老化之前,若设备再次收到具有相同特征的请求,不会再根据调度算法进行计算,而是根据已生成的持续性表项,选择对应的链路进行转发。
健康检测功能可以对链路进行检测,保证其能够提供有效的服务。负载均衡设备主动向链路发送探测报文,实时探测链路的状态,当探测到某链路发生故障时,设备立即停止向其分配流量,并将流量调度给其他处于正常状态的链路。一段时间后,若故障的链路状态恢复正常,设备会修改该链路的健康检测状态,使其重新参与调度。
健康检测功能通过NQA探测模板实现。有关NQA探测模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
出方向链路负载均衡各配置项之间的配置关系如图1-3所示。
· 链路组:将具有相同或相似功能的链路抽象成一个链路组。链路组可被虚服务器或负载均衡动作引用。
· 链路:运营商提供的实体链路。
· 虚服务器:负载均衡设备上面向用户业务的虚拟载体,只有匹配上虚服务器的报文才需要进行负载均衡处理。
· 负载均衡类:将报文分类,以便对不同类型的报文执行不同的负载均衡动作。
· 负载均衡动作:制定丢弃、转发或修改报文的具体行为。
· 负载均衡策略:将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略可被虚服务器引用。
· 持续性组:根据某持续性方法将具有一定相关性的会话都分配给同一条链路处理。持续性组可被虚服务器或负载均衡动作引用。
· 参数模板:制定对报文进行更深入处理的模板。参数模板可被虚服务器引用。
出方向链路负载均衡配置任务如下:
(1) 配置链路组
(2) 配置链路
(3) 配置虚服务器
(4) (可选)配置负载均衡策略
a. 配置负载均衡类
b. 配置负载均衡动作
c. 配置负载均衡策略
(5) (可选)配置持续性组
(6) (可选)配置参数模板
(7) (可选)配置ISP信息
(8) (可选)配置负载均衡ALG功能
(9) (可选)配置健康检测失败信息的记录功能
(10) (可选)测试负载均衡效果
(11) (可选)配置负载均衡告警及日志功能
为了便于对链路进行统一管理,可将具有相同或相似功能的链路抽象成一个组,称为链路组。比如,可按不同的运营商划分为ISP1链路组、ISP2链路组和ISP3链路组等。
链路组由一条或多条链路组成,且一条链路可以加入多个链路组。负载均衡设备通过负载均衡调度算法决定如何分配流量给各条链路。为了保证流量被分配给可用的链路,可以使用健康检测功能对链路组成员进行检查,及时排除故障的链路。
链路组配置任务如下:
(12) 创建链路组
(13) (可选)配置链路组成员
¡ 添加链路组成员
(14) 配置链路组的调度算法
(15) 配置链路组的可用条件
(16) 关闭链路组的NAT功能
(17) (可选)配置链路组的SNAT功能
(18) (可选)配置链路组的温暖上线功能
(19) (可选)配置链路组的健康检测功能
(20) (可选)配置链路组的故障处理方式
(21) (可选)配置就近性功能
(1) 进入系统视图。
system-view
(2) 创建链路组,并进入链路组视图。
loadbalance link-group link-group-name
(3) (可选)配置链路组的描述信息。
description text
缺省情况下,未配置链路组的描述信息。
链路组成员是一个抽象的概念,它表示链路在链路组中的一部分。而链路是一个整体,是该链路在所有链路组中的成员总和。管理员可在不同链路组视图中,将同一条链路添加为各自的链路组成员,这样就可以分别对每个链路组成员的权值、调用优先级和连接参数等进行管理。
设备支持通过两种方式向链路组中添加成员:
· 在链路组视图下,通过本配置创建链路组成员或添加已存在的链路。
· 在链路视图下,指定其所属的链路组。具体配置请参见“创建链路并指定其所属链路组”。
当管理员向链路组中添加链路时,若链路已存在,通过配置本功能可将链路添加为链路组成员;若链路不存在,设备会自动关联创建相同名称的链路。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 创建并添加链路组成员,并进入链路组成员视图。
link link-name
若指定名称的链路已存在,则本命令只是在链路组视图下添加已存在的链路。
(4) (可选)配置链路组成员的描述信息。
description text
缺省情况下,未配置链路组成员的描述信息。
通过本配置可以调整链路组成员的调度算法所使用的权值,以及链路组成员的调用优先级。
用户可在链路组成员视图下只对当前链路组成员进行配置,也可在链路视图下只对当前链路进行配置,前者的配置优先级较高。
(5) 进入系统视图。
system-view
(6) 进入链路组视图。
loadbalance link-group link-group-name
(7) 进入链路组成员视图。
link link-name
(8) 配置链路组成员的权值。
weight weight-value
缺省情况下,链路组成员的权值为100。
(9) 配置链路组成员的调用优先级
priority priority
缺省情况下,链路组成员的调度优先级为4。
通过本配置可以调整链路组成员所允许的最大连接数和最大连接速率。这些参数值都是判断链路组成员是否繁忙的依据。只要访问链路组成员的连接数或每秒连接数超过配置的数值,则链路组成员进入繁忙状态。设备不再将用户请求分配给处于繁忙状态的链路组成员,直到判断繁忙状态的连接参数全部小于配置的值为止。
一般情况下,建议链路组成员的连接参数使用缺省值,即不限制链路的最大连接数和最大连接速率。管理员也可以根据实际业务需求和链路带宽,灵活调整这些参数的取值,从而有效地管理链路组成员的负载。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 配置链路组成员所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,链路组成员所允许的最大连接速率为0,即不受限制。
(5) 配置链路组成员所允许的最大连接数。
connection-limit max max-number
缺省情况下,链路组成员所允许的最大连接数为0,即不受限制。
通过健康检测可以对链路组成员进行检测,保证其能够提供有效的服务。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
用户可在链路组视图下对组内的所有链路组成员进行配置,也可在链路组成员视图下只对当前链路组成员进行配置,或者在链路视图下只对当前链路进行配置,后两者的配置优先级相同且高于链路组视图下的健康检测配置。建议优先在链路组视图下配置健康检测。
链路的健康检测结果影响链路组成员的使用,链路组成员的健康检测结果不影响链路的使用。
(6) 进入系统视图。
system-view
(7) 进入链路组视图。
loadbalance link-group link-group-name
(8) 进入链路组成员视图。
link link-name
(9) 指定链路组成员的健康检测方法。
probe template-name
缺省情况下,未指定链路组成员的健康检测方法。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(10) 配置链路组成员健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过配置本功能,可以指定链路组成员的工作状态:
· 当链路组成员处于开启状态时,链路组成员可正常参与调度。
· 当链路组成员处于关闭状态时,设备会立即中断链路组成员的已有连接。
· 当链路组成员处于慢宕状态时,链路组成员首先不再建立新的连接,而等待已有连接自然老化,从而实现链路组成员平滑关闭。
当链路组成员需要进行维护时,为了避免突然中断连接导致用户体验下降,可以选择启用慢宕功能。
单独执行shutdown命令将会立即关闭链路组成员,链路组成员将处于关闭状态。
慢宕功能需要与shutdown命令配合使用,即仅对下一次shutdown命令生效。比如:开启慢宕功能并关闭链路之后,该链路才会开始慢宕;如果再关闭慢宕功能,则该链路将保持慢宕状态,而不会立即中断已有连接。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 开启链路组成员的慢宕功能。
a. 开启慢宕功能。
slow-shutdown enable
b. 关闭链路组成员。
shutdown
缺省情况下,链路组成员的慢宕功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 进入链路组成员视图。
link link-name
(4) 关闭链路组成员。
shutdown
缺省情况下,链路组成员处于开启状态。
设备根据链路组中配置的调度算法,计算出处理用户请求的链路。对于调度算法的详细介绍,请参见“调度算法”。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 配置链路组的调度算法。
¡ 基于链路:
predictor { least-connection | link-quality | { bandwidth | max-bandwidth } [ inbound | outbound ] }
¡ 基于链路组成员:
predictor hash address { destination | source | source-ip-port } [ mask mask-length ] [ prefix prefix-length ]
predictor { least-connection member | random | round-robin }
缺省情况下,链路组的调度算法为加权轮转算法。
(4) 配置链路组中可被调度算法调用的实链路数量限制。
selected-link min min-number max max-number
缺省情况下,链路组中调用优先级最高的链路全部被调度算法调用。
通过配置链路组的可用条件,可将流量在主用链路组和备用链路组之间进行切换:当主用链路组中的链路可用率低于下限时,将流量切换到备用链路组上,以防止链路受到大流量的冲击;待主用链路组中的链路可用率恢复到上限时,再将流量切换回来。
当虚服务器上未配置备用链路组时,本配置无效。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 配置链路组的可用条件。
activate lower lower-percentage upper upper-percentage
缺省情况下,链路组中只要有一个链路可用,该链路组就被认为可用。
出方向链路负载均衡组网通常需要在链路组中关闭NAT功能。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 在链路组中关闭NAT功能。
transparent enable
缺省情况下,链路组中的NAT功能处于开启状态。
SNAT地址池被链路组引用之后,负载均衡设备将把收到报文的源IP地址修改为SNAT地址池中的IP地址后再转发出去。
一个SNAT地址池由多个地址成员组成,每个地址成员最多包含256个IPv4地址或65536个IPv6地址,且不同SNAT地址成员中的IPv4或IPv6地址不允许重叠。
出方向链路负载均衡的SNAT功能使用场景有限,通常不建议使用。
(1) 进入系统视图。
system-view
(2) 创建SNAT地址池,并进入SNAT地址池视图。
loadbalance snat-pool pool-name
(3) (可选)配置SNAT地址池的描述信息。
description text
缺省情况下,未配置SNAT地址池的描述信息。
(4) 添加SNAT地址池的IP地址成员。
(IPv4网络)
ip range start start-ipv4-address end end-ipv4-address
(IPv6网络)
ipv6 range start start-ipv6-address end end-ipv6-address
缺省情况下,未配置SNAT地址池的IP地址成员。
(5) (可选)配置SNAT地址池所属VPN实例。
vpn-instance vpn-instance-name
缺省情况下,SNAT地址池属于公网。
本命令仅用作配置隔离。当存在多个地址池出现地址资源重叠时,可以通过配置各个地址池属于不同的VPN实例进行配置隔离。
在使用源地址池地址进行转发时,建议将源地址池对应的VPN实例与其对应的链路的VPN实例配置一致。
(6) 退回系统视图。
quit
(7) 进入链路组视图。
loadbalance link-group link-group-name
(8) 指定链路引用的SNAT地址池。
snat-pool pool-name
缺省情况下,链路组没有引用任何SNAT地址池。
当向链路组中添加链路时,某些新增的链路无法立即承担大量业务,此时可以开启温暖上线功能。这样,当链路上线后,在准备时间内,负载均衡设备不会向其分配任何业务;准备时间超时后,负载均衡设备在爬升时间内会逐步增加向其分配的业务量;爬升时间超时后,负载均衡设备开始向其正常分配业务。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 在链路组中开启链路温暖上线功能。
slow-online [ standby-time standby-time ramp-up-time ramp-up-time ]
缺省情况下,链路组中的链路温暖上线功能处于关闭状态。
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有成员进行配置,也可在链路组成员视图下只对当前链路组成员进行配置,或者在链路视图下只对当前链路进行配置,后两者的配置优先级相同,且高于链路组视图下的健康检测配置。建议优先在链路组视图下配置健康检测。
设备支持通过引用NQA模板进行健康检测。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 指定链路组的健康检测方法。
probe template-name
缺省情况下,没有指定链路组的健康检测方法。
(4) 配置链路组健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过本配置可以选择链路组中链路的故障处理方式:
· 保持已有连接:不主动断开与故障链路的连接,连接继续保持还是断开将由协议自身的超时机制决定。
· 重定向连接:把连接重定向到链路组中其它可用的链路上。
· 断开已有连接:主动断开与故障链路的连接。对于TCP报文,将发送RST报文;对于其它类型的报文,将发送ICMP不可达报文。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 配置链路组中链路的故障处理方式。
fail-action { keep | reschedule | reset }
缺省情况下,链路组中链路的故障处理方式为保持已有连接。
就近性功能就是通过对链路进行探测,选出到达目的地的最优链路,从而引导后续流量。具体而言,就是当流量经过负载均衡模块时,如果没有与目的地址相关的就近性信息,则根据调度算法,为该流量选择一条链路,以保证业务的可用性,然后启动就近性探测来生成就近性表项,以引导后续流量。
设备支持在就近性视图下通过引用NQA模板或负载均衡探测模板进行就近性探测,并根据探测结果(网络延迟、路由跳数、丢包率等)和就近性参数的配置生成就近性表项。有关NQA模板的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
用户可以为TCP协议类型的报文指定就近性探测方法,为非TCP类型的报文指定缺省就近性探测方法。如果未指定TCP报文的就近性探测方法,仅指定了缺省就近性探测方法,TCP类型报文将会根据缺省就近性探测方法进行处理。
就近性计算涉及到的因素包括:链路的剩余带宽、路由跳数、网络延迟、成本、丢包率等。在复杂多变的网络情况下,通过合理调整就近性因素的权值,以计算出当前网络最优的链路,实现网络流量的最优分配。
例如,在某些网络环境下关键指标为网络跳数,但各链路下的剩余带宽不同,此时可以通过减小带宽的计算权值,提高路由跳数的计算权值,以减少带宽的影响,突出TTL的结果,从而实现更精准的链路选择。
配置就近性功能时,需要先配置探测模板和在就近性视图下配置就近性参数,然后在链路组中开启就近性功能。
负载均衡探测模板类型的就近性探测方法不支持对IPv6流量进行就近性探测。针对IPv6业务流量建议指定NQA模板进行就近性探测。
当链路组配置链路质量算法时,则需要在就近性视图下配置就近性探测方法、网络延迟权值、路由跳数权值以及丢包率权值。
(1) 进入系统视图。
system-view
(2) 创建负载均衡探测模板,并进入负载均衡探测模板视图。
loadbalance probe-template icmp template-name
(3) 配置探测周期。
frequency interval
缺省情况下,探测周期为300秒。
(4) 配置探测报文的应答超时时间。
timeout timeout-value
缺省情况下,探测报文的应答超时时间为3秒。
(1) 进入系统视图。
system-view
(2) 进入就近性视图。
loadbalance proximity [ vpn-instance vpn-instance-name ]
(3) 为TCP报文指定就近性探测方法。
match [ match-id ] { tcp } { lb-probe lb-template | probe nqa-template }
缺省情况下,未指定就近性探测方法。
(4) 指定缺省就近性探测方法。
match default { lb-probe lb-template | probe nqa-template }
缺省情况下,未指定缺省就近性探测方法。
(5) 进入系统视图。
system-view
(6) 进入就近性视图。
loadbalance proximity [ vpn-instance vpn-instance-name ]
(7) 配置IPv4就近性表项的掩码长度。
ip mask { mask-length | mask }
缺省情况下,IPv4就近性表项的掩码长度为24。
(8) 配置IPv6就近性表项的前缀长度。
ipv6 prefix prefix-length
缺省情况下,IPv6就近性表项的前缀长度为96。
(9) 配置就近性计算的网络延迟权值。
rtt weight rtt-weight
缺省情况下,就近性计算的网络延迟权值为100。
(10) 配置就近性计算的路由跳数权值。
ttl weight ttl-weight
缺省情况下,就近性计算的路由跳数权值为100。
(11) 配置就近性计算的带宽权值。
bandwidth { inbound | outbound } weight bandwidth-weight
缺省情况下,就近性计算的出、入方向带宽权值均为100。
(12) 配置就近性计算的成本权值。
cost weight cost-weight
缺省情况下,就近性计算的成本权值为100。
(13) 配置就近性表项的老化时间。
timeout timeout-value
缺省情况下,就近性表项的老化时间为60秒。
(14) 配置就近性表项的最大个数。
max-number number
缺省情况下,就近性表项的最大个数为65535。
(1) 进入系统视图。
system-view
(2) 进入链路组视图。
loadbalance link-group link-group-name
(3) 开启就近性功能。
proximity enable
缺省情况下,链路组的就近性功能处于关闭状态。
链路是运营商提供的实体链路。一条链路可以属于多个链路组,一个链路组也可以包含多条链路。
在HA联动VRRP的组网环境中,建议将链路出接口的接口IP地址与VRRP备份组的虚拟IP地址配置为同一网段。有关HA联动VRRP组网的详细介绍,请参见“高可靠性配置指导”的“双机热备(RBM)”。
链路配置任务如下:
(4) 创建链路并指定其所属链路组
(5) 配置链路的IP地址或出接口
请选择以下一项进行配置:
(6) 配置权值和调用优先级
(7) (可选)配置带宽和连接参数
(8) (可选)配置健康检测功能
(9) (可选)配置链路的工作状态
(10) (可选)配置就近性计算的链路成本
(11) (可选)配置链路的带宽繁忙比与最大期望带宽
(12) (可选)关闭链路所属VPN实例的继承功能
(1) 进入系统视图。
system-view
(2) 创建链路,并进入链路视图。
loadbalance link link-name
(3) (可选)配置链路的描述信息。
description text
缺省情况下,未配置链路的描述信息。
(4) 指定链路所属的链路组。
link-group link-group-name
缺省情况下,链路不属于任何链路组。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路出口方向(外网方向)的下一跳IP地址。
(IPv4网络)
router ip ipv4-address
(IPv6网络)
router ipv6 ipv6-address
缺省情况下,未配置链路出口方向的下一跳IP地址。
在出口链路使用PPPoE动态获取IP地址的应用场景下,通过本配置,负载均衡设备可从指定接口动态获取链路通往外网的下一跳IP地址。
(4) 进入系统视图。
system-view
(5) 进入链路视图。
loadbalance link link-name
(6) 配置链路对应的出接口。
router interface interface-type interface-number
缺省情况下,未配置链路对应的出接口。
通过本配置可以调整链路的加权轮转和加权最小连接这两种调度算法所使用的权值,以及链路在链路组中的调用优先级。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路的权值。
weight weight-value
缺省情况下,链路的权值为100。
(4) 配置链路的调用优先级。
priority priority
缺省情况下,链路的调用优先级为4。
通过本配置可以调整链路所允许的最大带宽、最大连接数和最大连接速率。这三个参数值都是判断链路是否繁忙的依据。若访问链路的带宽、连接数、每秒连接数超过配置的数值,则链路进入繁忙状态。
一般情况下,建议链路的带宽和连接参数使用缺省值,即不限制链路的最大带宽、最大连接数和最大连接速率。管理员也可以根据实际业务需求和链路带宽,灵活调整这些参数的取值,从而有效地管理链路的负载。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置链路所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置链路所允许的最大连接数。
connection-limit max max-number
缺省情况下,链路所允许的最大连接数为0,即不受限制。
(5) 配置链路所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,链路所允许的最大连接速率为0,即不受限制。
通过健康检测可以对链路进行检测,保证其能够提供有效的服务。
用户既可在链路组视图下对组内的所有成员进行配置,也可在链路组成员视图下只对当前链路组成员进行配置,或者在链路视图下只对当前链路进行配置,后两者的配置优先级相同,且高于链路组视图下的健康检测配置。建议优先在链路组视图下配置健康检测。
链路的健康检测结果影响链路组成员的使用,链路组成员的健康检测结果不影响链路的使用。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 指定链路的健康检测方法。
probe template-name
缺省情况下,没有指定链路的健康检测方法。
(4) 配置链路健康检测的成功条件。
success-criteria { all | at-least min-number }
缺省情况下,只有全部方法都通过检测才认为健康检测成功。
通过配置本功能,可以指定链路的工作状态:
· 当链路处于开启状态时,链路可正常参与调度。
· 当链路处于关闭状态时,设备会立即中断链路的已有连接。
· 当链路处于慢宕状态时,链路首先不再建立新的连接,而等待已有连接自然老化,从而实现链路平滑关闭。
当链路需要进行维护时,为了避免突然中断连接导致用户体验下降,可以选择启用慢宕功能。
单独执行shutdown命令将会立即关闭链路,链路将处于关闭状态。
慢宕功能需要与shutdown命令配合使用,即仅对下一次shutdown命令生效。比如:开启慢宕功能并关闭链路之后,该链路才会开始慢宕;如果再关闭慢宕功能,则该链路将保持慢宕状态,而不会立即中断已有连接。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 开启链路的慢宕功能。
a. 开启慢宕功能。
slow-shutdown enable
b. 关闭链路。
shutdown
缺省情况下,链路的慢宕功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 关闭链路。
shutdown
缺省情况下,链路处于开启状态。
链路成本参与就近性的计算,成本越高,链路越不优先被选用。通过本功能可手动配置链路的成本。
例如,当某条链路带宽小、状况较差时,管理员可以通过cost手动提高该链路的成本值,也可以通过cost weight将成本权值调低来规避链路成本的计算影响。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 配置就近性计算的链路成本。
cost cost-value
缺省情况下,就近性计算的链路成本为0。
通过本配置可以调整链路的带宽繁忙比,即当前带宽与最大带宽的百分比值,以及最大期望带宽。当访问某个链路的流量超过该链路的带宽繁忙比与最大期望带宽的乘积后,链路进入繁忙状态,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;当该链路流量低于该链路的带宽繁忙恢复比与最大期望带宽的乘积后,链路解除繁忙状态,进入空闲状态,重新参与调度。
链路的最大期望带宽不仅用于繁忙保护功能,还用于带宽算法、最大带宽算法和就近性中剩余带宽的计算。
(4) 进入系统视图。
system-view
(5) 进入链路视图。
loadbalance link link-name
(6) 配置链路的带宽繁忙比。
bandwidth [ inbound | outbound ] busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,链路的总带宽繁忙比为70。
(7) 配置链路最大期望带宽。
max-bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,链路所允许的期望最大总带宽、最大上行期望带宽和最大下行期望带宽均为0,即不限制。
若在链路视图下执行vpn-instance命令指定了链路所属的VPN实例,则链路属于该VPN实例。若未指定链路所属的VPN实例,当链路所属VPN实例的继承功能处于开启状态时,链路所属的VPN实例与虚服务器所属的VPN实例一致;当该功能处于关闭状态时,链路属于公网。
一般情况下建议链路所属VPN实例的继承功能保持开启状态,链路将拥有与虚服务器相同的网络环境,确保链路在VPN环境中的安全和隔离性。
(1) 进入系统视图。
system-view
(2) 进入链路视图。
loadbalance link link-name
(3) 关闭链路所属VPN实例的继承功能。
inherit vpn-instance disable
缺省情况下,链路所属VPN实例的继承功能处于开启状态。
虚服务器是负载均衡设备上面向用户业务的虚拟载体,是为了判断是否需要对进入负载均衡设备的报文进行负载均衡而引入的概念。只有匹配上虚服务器的报文才会被进行负载均衡处理。
链路负载均衡支持的虚服务器类型为LINK-IP。
配置虚服务器需要指定链路组或引用负载均衡策略,否则匹配上虚服务器的报文将被丢弃。
虚服务器配置任务如下:
(1) 创建虚服务器
(2) 配置VSIP和端口号
(3) (可选)指定虚服务器所属的VPN
(4) 配置报文处理策略
请至少选择其中一项进行配置:
¡ 指定链路组
¡ 引用负载均衡策略
(5) (可选)引用参数模板
(6) (可选)配置带宽和连接参数
(7) (可选)配置带宽繁忙保护功能
(8) (可选)开启链路的接口带宽统计功能
(9) (可选)配置热备份功能
(10) (可选)指定发送免费ARP报文或ND报文的接口
(11) 开启虚服务器
(1) 进入系统视图。
system-view
(2) 创建Link-IP类型的虚服务器,并进入虚服务器视图。
virtual-server virtual-server-name type link-ip
(3) (可选)配置虚服务器的描述信息。
description text
缺省情况下,未配置虚服务器的描述信息。
若虚服务器的IP地址与设备连接客户端的接口IP地址在同一网段,则必须配置虚服务器IPv4地址的掩码长度为32位或IPv6前缀长度为128,且必须指定发送免费ARP报文或ND报文的接口。否则,无需指定发送免费ARP报文或ND报文的接口。
(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 [ to port-number ] } &<1-32>
缺省情况下,LINK-IP类型虚服务器的端口号为0(表示任意端口号)。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器所属的VPN。
vpn-instance vpn-instance-name
缺省情况下,虚服务器属于公网。
当主用链路组可用(该链路组存在且有可用的链路)时,虚服务器通过主用链路组进行转发;当主用链路组不可用而备用链路组可用时,虚服务器通过备用链路组进行转发。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定链路组。
default link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ]
缺省情况下,未指定链路组。
虚服务器引用负载均衡策略,能够细化虚服务器的粒度。根据策略中的匹配规则,使命中虚服务器的报文根据不同的报文内容执行指定的动作,从而有效地丰富了负载均衡的负载功能。
虚服务器只能引用与自身类型相关的策略模板,如:LINK-IP类型的虚服务器,只能引用链路类型的策略模板。
(4) 进入系统视图。
system-view
(5) 进入虚服务器视图。
virtual-server virtual-server-name
(6) 指定虚服务器引用的负载均衡策略。
lb-policy policy-name
缺省情况下,虚服务器没有引用任何负载均衡策略。
参数模板用来对虚服务器上的流量进行比较深入的解析、处理和优化。虚服务器引用了参数模板后,就要根据该参数模板的配置对匹配流量进行相应的处理。
LINK-IP类型的虚服务器,只能引用IP类型的参数模板。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定虚服务器引用的参数模板。
parameter ip profile-name
缺省情况下,虚服务器没有引用任何参数模板。
通过本配置可以调整虚服务器所允许的最大带宽、最大连接数和最大连接速率。这三个参数值都是判断虚服务器是否繁忙的依据。若访问虚服务器的带宽、连接数或每秒连接数超过配置的数值,则负载均衡设备就会判断虚服务器进入繁忙状态,停止新建连接。
一般情况下,建议虚服务器的带宽和连接参数使用缺省值,即不限制虚服务器的最大带宽、最大连接数及最大连接速率。管理员也可根据具体业务需求和网络负载情况,合理选配带宽和连接参数大小。
例如,当虚服务器承载的服务流量较大且需保证高可用性时,可以适当提高带宽和连接参数的限制,以确保及时处理大量请求并降低服务延迟。而在流量较小或者设备性能不高需要限制访问数量时,则可以降低这些参数值,以节省资源并保障系统运行效率。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 配置虚服务器所允许的最大带宽。
rate-limit bandwidth [ inbound | outbound ] bandwidth-value kbps
缺省情况下,虚服务器所允许的最大总带宽、最大入带宽和最大出带宽均为0,即不受限制。
(4) 配置虚服务器所允许的最大连接数。
connection-limit max max-number
缺省情况下,虚服务器所允许的最大连接数为0,即不受限制。
(5) 配置虚服务器所允许的最大连接速率。
rate-limit connection connection-number
缺省情况下,虚服务器所允许的最大连接速率为0,即不受限制。
链路出方向或入方向带宽繁忙就是出方向或入方向流量超过该方向的带宽繁忙比,带宽繁忙保护功能就是对超过链路出方向带宽繁忙比的报文进行限制。当某条链路只有出方向的状态为繁忙时,新建流量(非匹配持续性的流量)将不再向该链路分发,而原有流量则仍由该链路继续分发;如果只有链路入方向的状态为繁忙,而出方向的状态不为繁忙时,此时新建流量会继续往该链路分担。链路的带宽繁忙比的详细介绍,请参考“配置链路的带宽繁忙比与最大期望带宽”。
某条链路只要一个方向(出方向或入方向)的状态变为繁忙,该条链路状态就会显示为繁忙;只有当两个方向的状态都为正常时,该条链路的状态才会显示为正常。
带宽繁忙保护功能仅在链路的接口带宽统计功能开启的情况下生效。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚链路的带宽繁忙保护功能。
bandwidth busy-protection enable
缺省情况下,链路的带宽繁忙保护功能处于关闭状态。
缺省情况下,链路的带宽是由负载均衡模块自行统计,带宽相关的统计直接使用当前LLB自身的链路统计值进行算法计算和限速。开启链路的接口带宽统计功能后,可以使链路的带宽由接口实时统计,接口带宽统计周期通过flow-interval命令来配置。二者相比之下,建议采用链路的接口带宽统计功能,更能精确地体现链路的实时带宽情况。
接口带宽统计周期过小会影响设备整机性能,请谨慎配置。
(4) 进入系统视图。
system-view
(5) 进入虚服务器视图。
virtual-server virtual-server-name
(6) 开启链路的接口带宽统计功能。
bandwidth interface statistics enable
缺省情况下,未开启链路的接口带宽统计功能。
配置热备份功能时,为达到主备切换时业务不中断的目的,需要在虚服务器下开启会话扩展信息和持续性表项的备份功能。
在开启虚服务器的持续性表项备份功能之前,请确保主用和备用设备上均不存在持续性表项。可以通过先开启持续性表项备份功能,再引用持续性组,保证备份前设备上不存在持续性表项。
在VRRP组网中,开启虚服务器的持续性表项备份功能时必须指定global参数,否则配置不生效。
若设备的配置发生以下变化,则设备会删除当前已有的持续性表项,后续流量将会重新触发生成新的持续性表项。
· 关闭持续性表项备份功能。
· 持续性表项备份由组间备份切换为全局备份。
· 持续性表项备份由全局备份切换为组间备份。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器的会话扩展信息备份功能。
connection-sync enable
缺省情况下,虚服务器的会话扩展信息备份功能处于关闭状态。
(4) 开启虚服务器的持续性表项备份功能。
sticky-sync enable [ global ]
缺省情况下,虚服务器的持续性表项备份功能处于关闭状态。
通过本配置可从设备的指定接口发送免费ARP报文和ND报文。有关免费ARP的详细介绍,请参见“三层技术-IP业务配置指导网络互通配置指导”中的“ARP”。有关ND报文的详细介绍,请参见“三层技术-IP业务配置指导网络互通配置指导”中的“IPv6基础”。
若虚服务器的IP地址与设备连接客户端的接口IP地址在同一网段,则必须配置虚服务器IPv4地址的掩码长度为32位或IPv6前缀长度为128,且必须指定发送免费ARP报文或ND报文的接口。否则,无需指定发送免费ARP报文或ND报文的接口。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 指定发送免费ARP报文或者ND报文的接口。
arp-nd interface interface-type interface-number
缺省情况下,未指定发送免费ARP报文或者ND报文的接口。
配置完虚服务器后,需要将其开启后才能进入工作状态。
(1) 进入系统视图。
system-view
(2) 进入虚服务器视图。
virtual-server virtual-server-name
(3) 开启虚服务器。
service enable
缺省情况下,虚服务器处于关闭状态。
负载均衡类的作用是将报文分类,即通过匹配规则将报文按照一定条件进行匹配,以便将不同类型的报文在不同的负载均衡动作流程中处理。一个负载均衡类中最多允许创建65535条匹配规则。
负载均衡类配置任务如下:
(1) 创建负载均衡类
(2) 创建匹配规则
请至少选择以下一项进行配置:
设备支持如下匹配规则:
· 源IP地址类型的匹配规则
管理员可配置匹配用户源IP地址的IP地址范围或子网。若用户流量的源IP地址属于指定的地址范围或子网,则认为成功匹配该规则。
· 目的IP地址类型的匹配规则
管理员可配置匹配用户目的IP地址的IP地址范围或子网。若用户流量的目的IP地址属于指定的地址范围或子网,则认为成功匹配该规则。
· ACL类型的匹配规则
管理员可通过配置指定匹配的ACL。若用户流量匹配上指定的ACL,则认为成功匹配该规则。有关ACL的详细介绍,请参考“ACL和QoS配置指导”中的“ACL”。
· 基于入接口的匹配规则
管理员可通过配置指定流量的入接口。若用户流量从指定接口进入设备,则认为成功匹配该规则。
· 基于用户的匹配规则
管理员可通过配置指定匹配的用户。若指定用户的请求流量进入设备,则认为成功匹配该规则。有关用户的详细介绍,请参见“安全配置指导”中的“用户身份识别与管理”。
· 基于用户组的匹配规则
管理员可通过配置指定匹配的用户组。若指定用户组的请求流量进入设备,则认为成功匹配该规则。有关用户组的详细介绍,请参见“安全配置指导”中的“用户身份识别与管理”。
· 域名类型的匹配规则
管理员可通过配置指定匹配的域名。当用户流量匹配上指定的域名之后,则认为成功匹配该规则。如果指定的域名不存在,此匹配规则将不参与匹配。
· ISP类型的匹配规则
管理员可通过配置指定匹配的ISP。当用户流量匹配上指定的ISP之后,则认为成功匹配该规则。
· 应用类型的匹配规则
管理员可通过配置指定匹配的应用。当用户流量匹配上指定的应用之后,则认为成功匹配该规则。有关应用的详细介绍,请参考“安全配置指导”中的“APR”。
(1) 进入系统视图。
system-view
(2) 创建链路类型的负载均衡类,并进入负载均衡类视图。
loadbalance class class-name type link-generic [ match-all | match-any ]
创建负载均衡类时必须为其指定类型;而在进入已创建的负载均衡类视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡类的描述信息。
description text
缺省情况下,未配置负载均衡类的描述信息。
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建嵌套类的匹配规则。
match [ match-id ] class class-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建源IP地址类型的匹配规则。
match [ match-id ] source { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建目的IP地址类型的匹配规则。
match [ match-id ] destination { ip address ipv4-address [ mask-length | mask ] | ipv6 address ipv6-address [ prefix-length ] }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建ACL类型的匹配规则。
match [ match-id ] acl [ ipv6 ] { acl-number | name acl-name }
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建基于入接口的匹配规则。
match [ match-id ] interface interface-type interface-number
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建基于用户的匹配规则。
match [ match-id ] [ identity-domain domain-name ] user user-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建基于用户组的匹配规则。
match [ match-id ] [ identity-domain domain-name ] user-group user-group-name
负载均衡设备会将域名与IP地址的对应关系记录在DNS缓存表中,当业务流量匹配DNS缓存表中的IP地址时,查找出对应的域名。若查找出的域名与匹配规则中的域名一致,则根据匹配规则将匹配不同域名的报文在不同的负载均衡动作流程中处理。
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建域名类型的匹配规则。
match [ match-id ] destination domain-name domain-name
(4) 退回系统视图。
quit
(5) 配置负载均衡DNS缓存表项的老化时间。
loadbalance dns-cache aging-time aging-time
缺省情况下,负载均衡DNS缓存表项的老化时间为60分钟。
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建ISP类型的匹配规则。
match [match-id ] isp isp-name
(1) 进入系统视图。
system-view
(2) 进入负载均衡类视图。
loadbalance class class-name
(3) 创建应用类型的匹配规则。
match [ match-id ] app-group group-name
负载均衡动作可分为两大类:
· 转发类动作:确定是否转发以及如何转发报文。如果没有配置转发类动作,报文将被丢弃处理。
· 修改类动作:对报文执行一些修改行为。修改类动作应配合转发类动作使用,否则修改后的报文终将被丢弃。
如果用户想对报文进行丢弃处理,则可在创建负载均衡动作后,不为其指定任何上述动作。
在配置转发类动作时,配置报文的转发模式为转发和配置指导转发的链路组互斥。当配置了其中一条后,另一条的配置将被自动取消。
负载均衡动作配置任务如下:
(1) 创建负载均衡动作
(2) (可选)配置转发类动作
请从配置报文的转发模式为转发和指定指导转发的实服务组中选择一项进行配置。
¡ (可选)配置查找链路失败时继续匹配下一条引用规则
¡ (可选)配置繁忙处理方式为继续匹配下一条引用规则
(3) (可选)配置修改类动作
(1) 进入系统视图。
system-view
(2) 创建链路类型的负载均衡动作,并进入负载均衡动作视图。
loadbalance action action-name type link-generic
创建负载均衡动作时必须为其指定类型;而在进入已创建的负载均衡动作视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡动作的描述信息。
description text
缺省情况下,未配置负载均衡动作的描述信息。
设备支持配置四种转发类动作,包括:
· 报文的转发模式为转发:当配置本功能的动作在负载均衡策略中被引用时,直接对匹配当前策略的报文进行转发。
· 指定指导转发的链路组:当主用链路组可用(该链路组存在且有可用的链路)时,使用主用链路组指导转发;当主用链路组不可用而备用链路组可用时,使用备用链路组指导转发。
· 查找链路失败时继续匹配下一条引用规则:当该动作在策略中被引用时,在转发中根据该配置判断当前动作查找可用链路失败时,可继续顺序匹配策略中的下一条引用规则。
· 配置繁忙处理方式为继续匹配下一条引用规则:当该动作在负载均衡策略中被引用时,判断当前动作查找链路全部繁忙时,可继续顺序匹配策略中的下一条引用规则。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置报文的转发模式为转发。
forward all
缺省情况下,报文转发模式为丢弃。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 指定指导转发的链路组。
link-group link-group-name [ backup backup-link-group-name ] [ sticky sticky-name ]
缺省情况下,未指定指导转发的链路组。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置查找链路失败时继续匹配下一条引用规则。
fallback-action continue
缺省情况下,根据当前动作查找可用链路失败时,不再继续匹配下一条引用规则。
本命令对于SIP类型的虚服务不生效。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置繁忙处理方式为继续匹配下一条引用规则。
busy-action continue
缺省情况下,繁忙处理方式为强制调度,即无论链路是否繁忙,依然为其分配流量。
通过配置ToS字段值,可以设置发往服务器的报文优先级。当报文流量较大时,服务器可以优先处理优先级高的报文。
(1) 进入系统视图。
system-view
(2) 进入负载均衡动作视图。
loadbalance action action-name
(3) 配置发往服务器的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往服务器的IP报文中的ToS字段。
将负载均衡类和负载均衡动作关联起来就构成了负载均衡策略。负载均衡策略是指导报文转发的一种方式,用户可以为匹配特定负载均衡类的报文指定执行的负载均衡动作,以及为未匹配任何负载均衡类的报文指定缺省负载均衡动作。
用户可以在一个负载均衡策略中指定多个负载均衡类,转发报文时会按照配置顺序来匹配负载均衡类,匹配成功则执行相应的负载均衡动作,否则继续匹配下一条负载均衡类。如果所有负载均衡类均未匹配,则执行缺省负载均衡动作。
负载均衡策略配置任务如下:
(1) 创建负载均衡策略
(2) 指定负载均衡动作
(3) 指定缺省负载均衡动作
(1) 进入系统视图。
system-view
(2) 创建链路类型的负载均衡策略,并进入负载均衡策略视图。
loadbalance policy policy-name type link-generic
创建负载均衡策略时必须为其指定类型;而在进入已创建的负载均衡策略视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置负载均衡策略的描述信息。
description text
缺省情况下,未配置负载均衡策略的描述信息。
链路类型的负载均衡策略只能引用链路类型的负载均衡类和动作。
(1) 进入系统视图。
system-view
(2) 进入负载均衡策略视图。
loadbalance policy policy-name
(3) 为负载均衡类指定负载均衡动作。
class class-name [ insert-before before-class-name | insert-after [ after-class-name ] ] action action-name
缺省情况下,没有为任何负载均衡类指定负载均衡动作。
不同的负载均衡类可以与同一负载均衡动作组成匹配规则。
链路类型的负载均衡策略只能用链路类型的负载均衡动作作为其缺省动作。
(1) 进入系统视图。
system-view
(2) 进入负载均衡策略视图。
loadbalance policy policy-name
(3) 指定缺省负载均衡动作。
default-class action action-name
缺省情况下,未指定缺省负载均衡动作。
持续性组是一个优化流量分配和提高处理效率的技术,它的主要作用是确保具有相同特征的流量被连续地分配到同一条链路上处理,保持了用户会话的连续性,同时避免了重复的调度运算。
当设备首次收到具有某种特征的访问请求时,会基于配置的持续性方法生成持续性表项。该表项在老化之前用于将来自同一用户的后续请求直接转发到先前选定的链路,从而跳过调度算法的重复计算。
设备的处理流程如下:
(1) 当设备首次收到具有某种特征的用户请求时,会根据调度算法将请求分发给某条链路,并且生成持续性表项;
(2) 在持续性表项老化之前,设备再次收到具有相同特征的用户请求时,将直接转发到先前选定的链路,跳过重复的调度计算。
持续性方法是生成持续性表项的依据。管理员可以根据需要在持续性组中指定持续性方法。
持续性组配置任务如下:
(1) 创建持续性组
(2) 配置IP持续性方法
(3) (可选)配置持续性表项超时时间
(4) (可选)开启匹配持续性表项的会话不受连接数限制影响功能
(5) (可选)开启持续性处理优先于繁忙功能
(1) 进入系统视图。
system-view
(2) 创建地址端口类型的持续性组,并进入持续性组视图。
sticky-group group-name type address-port
创建持续性组时必须为其指定类型;而在进入已创建的持续性组视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置持续性组的描述信息。
description text
缺省情况下,未配置持续性组的描述信息。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 配置IP持续性方法。
(IPv4网络)
ip [ port ] { both | destination | source } [ mask mask-length ]
(IPv6网络)
ipv6 [ port ] { both | destination | source } [ prefix prefix-length ]
缺省情况下,未配置IP持续性方法。
本功能允许管理员灵活调整持续性表项的超时时间,超时时间定义了一个持续性表项在被自动清除前可以保持活跃的最长时间。通过正确配置超时时间,管理员可以确保系统在维持必要的会话持久性的同时,避免资源浪费和潜在的性能瓶颈。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 配置持续性表项的超时时间。
timeout timeout-value
缺省情况下,持续性表项的超时时间为60秒。
开启该功能后,如果该连接匹配了已有的持续性表项,将不受链路带宽及连接参数的影响,也不受虚服务器上引用的负载均衡策略连接数限制的影响。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 开启匹配持续性表项的会话不受连接数限制影响功能。
override-limit enable
缺省情况下,匹配持续性表项的会话受连接数限制配置的影响。
开启持续性处理优先于繁忙功能后,在持续性表项老化之前,无论实链路是否处于繁忙状态,设备都会依据持续性表项为其分配流量。
若持续性处理优先于繁忙功能处于关闭状态,则在持续性表项老化之前,设备会依据持续性表项仅为处于正常状态的链路分配流量。
(1) 进入系统视图。
system-view
(2) 进入持续性组视图。
sticky-group group-name
(3) 开启持续性处理优先于繁忙功能。
sticky-over-busy enable
缺省情况下,持续性处理优先于繁忙功能处于关闭状态。
通过配置参数模板可以制定对报文进行更深入处理的模板。这样,当参数模板被虚服务器引用之后,可以对虚服务器的业务流量进行更深入的解析、处理和优化。
管理员配置了参数模板后,通常需要在虚服务器配置中引用模板才能生效。
(1) 进入系统视图。
system-view
(2) 创建IP类型的参数模板,并进入参数模板视图。
parameter-profile profile-name type ip
创建参数模板时必须为其指定类型;而在进入已创建的参数模板视图时可以不指定类型,但若要指定类型,则必须与创建时的类型一致。
(3) (可选)配置参数模板的描述信息。
description text
缺省情况下,参数模板没有描述信息。
(1) 进入系统视图。
system-view
(2) 进入IP类型的参数模板视图。
parameter-profile profile-name
(3) 配置发往客户端的IP报文中的ToS字段。
set ip tos tos-number
缺省情况下,不改变发往客户端的IP报文中的ToS字段。
本功能主要配置ISP(Internet Service Provider,互联网服务提供商)的IP地址信息,该地址信息可以在ISP类型的匹配规则中进行引用。当目的地址匹配了指定的ISP地址信息后,可根据配置执行相应的负载均衡动作。设备支持通过以下三种方式配置ISP信息:
· 手工配置ISP信息:由用户手工指定ISP地址信息。
· 自动更新ISP信息:开启ISP自动更新功能后,设备会依据运营商的WHOIS服务器管理标识定期向指定的WHOIS服务器查询ISP地址信息。
· 导入ISP文件:由用户手工导入ISP文件。设备仅允许导入.tp格式的文件。ISP文件可在官方网站获取。
配置ISP信息分为手工配置ISP信息、自动更新ISP信息和导入ISP文件,三者既可单独配置,也可同时配置。
(1) 进入系统视图。
system-view
(2) 创建ISP,并进入ISP视图。
loadbalance isp name isp-name
(3) 配置ISP的IP地址信息。
(IPv4网络)
ip address ipv4-address { mask-length | mask }
(IPv6网络)
ipv6 address ipv6-address prefix-length
缺省情况下,未配置ISP的IP地址信息。
同一ISP中不允许配置完全相同的网段。
(4) (可选)配置ISP的描述信息。
description text
缺省情况下,未配置ISP的描述信息。
在配置本功能前,请先完成WHOIS服务器的相关配置。
(1) 进入系统视图。
system-view
(2) 创建ISP,并进入ISP视图。
loadbalance isp name isp-name
(3) 配置当前ISP的WHOIS服务器管理标识。
whois-mntner mntner-name
缺省情况下,未配置当前ISP的WHOIS服务器管理标识。
同一ISP下,最多允许手动配置10个WHOIS服务器管理标识。
(4) 退回系统视图。
quit
(5) 开启ISP自动更新功能。
loadbalance isp auto-update enable
缺省情况下,ISP自动更新功能处于关闭状态。
(6) 配置ISP自动更新的频率。
loadbalance isp auto-update frequency { per-day | per-week | per-month }
缺省情况下,ISP自动更新的频率为每周一次。
(7) 配置ISP自动更新所查询的WHOIS服务器。
loadbalance isp auto-update whois-server { domain domain-name | ip ip-address }
缺省情况下,未配置ISP自动更新所查询的WHOIS服务器。
在配置本功能前,请先准备好ISP文件。
当导入的文件不存在、文件名不合法或文件解密失败时,系统将维持已有的导入内容不变。
当导入文件解析IP地址失败而退出导入操作时,系统将清空上次导入的内容,只保存本次已导入成功的内容。
(1) 进入系统视图。
system-view
(2) 导入ISP文件。
loadbalance isp file isp-file-name
负载均衡ALG(Application Level Gateway,应用层网关)功能用于将父、子会话分发到同一条链路上。
SIP分片报文不支持负载均衡ALG功能。
(1) 进入系统视图。
system-view
(2) 开启指定协议的负载均衡ALG功能。
loadbalance alg { dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }
缺省情况下,DNS、FTP、PPTP、RTSP和ICMP-error协议的负载均衡ALG功能均处于开启状态。
(3) 开启所有协议的负载均衡ALG功能。
loadbalance alg all-enable
缺省情况下,DNS、FTP、PPTP、RTSP和ICMP-error协议的负载均衡ALG功能均处于开启状态。
开启本功能后,设备开始记录链路健康检测失败的信息。通过执行display loadbalance probe failed-record命令,可查看健康检测失败的历史记录。
(1) 进入系统视图。
system-view
(2) 开启健康检测失败信息的记录功能。
loadbalance probe failed-record enable
缺省情况下,健康检测失败信息的记录功能处于关闭状态。
(3) 配置可记录的健康检测失败信息的最大条数。
loadbalance probe failed-record max-number max-number
缺省情况下,可记录的健康检测失败信息的最大条数为50000条。
用户可以通过指定报文的协议类型、源IPv4/IPv6地址、源端口、目的IPv4/IPv6地址和目的端口,测试报文的负载均衡效果。
可在任意视图下执行本命令,测试IPv4负载均衡的效果。
loadbalance schedule-test ip [ vpn-instance vpn-instance-name ] { application http { message-file file-name | method { get | post } url url [ header header ]&<1-10> [ content content-value ] } | protocol { protocol-number | icmp | tcp | udp } } destination destination-address destination-port destination-port source source-address source-port source-port
可在任意视图下执行本命令,测试IPv6负载均衡的效果。
loadbalance schedule-test ipv6 [ vpn-instance vpn-instance-name ] { application http { message-file file-name | method { get | post } url url [ header header ]&<1-10> [ content content-value ] } | protocol { protocol-number | icmpv6 | tcp | udp } } destination destination-address destination-port destination-port source source-address source-port source-port
开启了负载均衡的告警功能之后,负载均衡会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启负载均衡的告警功能。
snmp-agent trap enable loadbalance
缺省情况下,负载均衡的告警功能处于开启状态。
负载均衡日志是为了满足网络管理员安全审计的需要,对负载均衡相关信息进行的记录,包括基本日志、NAT日志和链路带宽繁忙日志。
通过开启负载均衡链路流量日志功能后,可输出经过链路转发流量的信息。
通过开启负载均衡基本日志功能,可在以下几种情况下输出日志信息:
· 链路或链路组的状态变化。
· 链路的健康检测结果发生变化。
· 虚服务器或链路的连接数达到上限或者恢复到正常范围内。
· 虚服务器或链路的连接速率达到上限或者恢复到正常范围内。
· 虚服务器引用的缺省链路组主备切换。
· 负载均衡动作引用的链路组主备切换。
通过开启负载均衡NAT日志功能,可以实现对源或目的地址进行过NAT转换的连接信息进行记录,包括IP地址及端口的转换信息、用户的访问信息等。
通过开启负载均衡链路带宽繁忙日志功能,可以实现对所有链路的繁忙状态进行记录。
(1) 进入系统视图。
system-view
(2) 开启负载均衡基本日志功能。
loadbalance log enable base
缺省情况下,负载均衡基本日志功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡链路流量日志功能。
loadbalance log enable link-flow
缺省情况下,负载均衡链路流量日志功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡NAT日志功能。
loadbalance log enable nat
缺省情况下,负载均衡NAT日志功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启负载均衡链路带宽繁忙日志功能。
loadbalance log enable bandwidth-busy
缺省情况下,负载均衡链路带宽繁忙日志功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后出方向链路负载均衡的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除出方向链路负载均衡的统计信息。
表1-1 链路负载均衡显示和维护
配置 |
命令 |
显示负载均衡动作的信息 |
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 probe failed-record link [ name name ] |
显示就近性表项的信息 |
display loadbalance proximity [ vpn-instance vpn-instance-name ] [ ip [ ipv4-address ] | ipv6 [ ipv6-address ] ] [ traffic-group traffic-group-id ] |
显示参数模板的信息 |
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 ] [ traffic-group traffic-group-id ] |
显示持续性组的信息 |
display sticky-group [ name group-name ] |
显示虚服务器的信息 |
display virtual-server [ brief | name virtual-server-name ] |
显示虚服务器的统计信息 |
display virtual-server statistics [ name virtual-server-name ] |
显示所有协议的负载均衡ALG状态 |
|
显示DNS缓存信息 |
display loadbalance dns-cache [ vpn-instance vpn-instance-name ] [ domain-name domain-name ] [ traffic-group traffic-group-id ] |
清除负载均衡热备份的统计信息 |
reset loadbalance hot-backup statistics |
清除就近性表项的信息 |
reset loadbalance proximity [ vpn-instance vpn-instance-name ] [ ip [ ipv4-address ] | ipv6 [ ipv6-address ] ] [ traffic-group traffic-group-id ] |
清除链路健康检测失败的历史记录 |
reset loadbalance probe failed-record link [ name name ] |
清除负载均衡下的所有七层连接 |
reset loadbalance connections |
清除链路的统计信息 |
reset loadbalance link statistics [ link-name ] |
清除链路组成员的统计信息 |
reset loadbalance link statistics link-group link-group-name [ name link-name ] |
清除虚服务器的统计信息 |
reset virtual-server statistics [ virtual-server-name ] |
清除DNS缓存信息 |
reset loadbalance dns-cache [ vpn-instance vpn-instance-name ] [ domain-name domain-name ] [ traffic-group traffic-group-id ] |
用户从两个运营商ISP 1和ISP 2处分别租用了链路Link 1和Link 2,这两条链路的路由跳数、带宽和成本均相同,但Link 1的网络延迟小于Link 2。通过配置链路负载均衡,使Host访问Server时优先选择这两条链路中的最优链路。
图1-4 出方向链路负载均衡基本组网配置组网图
(3) 配置接口IP地址
<Device> system-view
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[Device-GigabitEthernet1/0/1] quit
[Device] interface gigabitethernet 1/0/2
[Device-GigabitEthernet1/0/2] ip address 20.1.1.1 24
[Device-GigabitEthernet1/0/2] quit
(4) 配置链路组
# 创建ICMP类型的NQA模板t1,并配置每次探测结果发送机制。
[Device] nqa template icmp t1
[Device-nqatplt-icmp-t1] reaction trigger per-probe
[Device-nqatplt-icmp-t1] quit
# 指定缺省就近性探测方法为t1,并配置就近性计算的网络延迟权值为200。
[Device] loadbalance proximity
[Device-lb-proximity] match default probe t1
[Device-lb-proximity] rtt weight 200
[Device-lb-proximity] quit
# 创建链路组lg,并开启就近性功能。
[Device] loadbalance link-group lg
[Device-lb-lgroup-lg] proximity enable
# 关闭NAT功能。
[Device-lb-lgroup-lg] transparent enable
[Device-lb-lgroup-lg] quit
(5) 配置链路
# 创建链路link1,配置其下一跳IPv4地址为10.1.1.2,加入链路组lg。
[Device] loadbalance link link1
[Device-lb-link-link1] router ip 10.1.1.2
[Device-lb-link-link1] link-group lg
[Device-lb-link-link1] quit
# 创建链路link2,配置其下一跳IPv4地址为20.1.1.2,并加入链路组lg。
[Device] loadbalance link link2
[Device-lb-link-link2] router ip 20.1.1.2
[Device-lb-link-link2] link-group lg
[Device-lb-link-link2] quit
(6) 配置虚服务器
# 创建LINK-IP类型的虚服务器vs,配置其VSIP为通配0.0.0.0/0,指定其缺省主用链路组为lg,并开启此虚服务器。
[Device] virtual-server vs type link-ip
[Device-vs-link-ip-vs] virtual ip address 0.0.0.0 0
[Device-vs-link-ip-vs] default link-group lg
[Device-vs-link-ip-vs] service enable
[Device-vs-link-ip-vs] quit
# 显示所有链路的简要信息。
[Device] display loadbalance link brief
Link Router IP/Interface State VPN instance Link group
link1 10.1.1.2 Active lg
link2 20.1.1.2 Active lg
# 显示所有链路组的详细信息。
[Device] display loadbalance link-group
Link group: lg
Description:
Predictor: Round robin
Proximity: Enabled
NAT: Disabled
SNAT pool:
Failed action: Keep
Active threshold: Disabled
Slow-online: Disabled
Selected link: Disabled
Probe information:
Probe success criteria: All
Probe method:
t1
Total link: 2
Active link: 2
Link list:
Name State VPN instance Router IP/Interface Weight Priority
link1 Active 10.1.1.2 100 4
link2 Active 20.1.1.2 100 4
# 显示所有虚服务器的详细信息。
[Device] display virtual-server
Virtual server: vs
Description:
Type: LINK-IP
State: Active
VPN instance:
Virtual IPv4 address: 0.0.0.0/0
Virtual IPv6 address: --
Port: 0 (any port)
Primary link group: lg (in use)
Backup link group:
Sticky:
LB policy:
LB limit-policy:
Connection limit: --
Rate limit:
Connections: --
Bandwidth: --
Inbound bandwidth: --
Outbound bandwidth: --
Connection synchronization: Disabled
Sticky synchronization: Disabled
Bandwidth busy protection: Disabled
Interface bandwidth statistics: Disabled
Route advertisement: Disabled
# 显示所有IPv4就近性表项的简要信息。
[Device] display loadbalance proximity ip
(*) - Real server object
Slot 1:
IPv4 address/Mask length Timeout Best link
------------------------------------------------------------
10.1.0.0/24 50 link1
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!