01-应用负载均衡典型配置
本章节下载: 01-应用负载均衡典型配置 (29.29 MB)
目 录
4.2 SNAT应用场景应用负载均衡(虚IP与客户端地址同网段)
7.3 NAT64负载分担【四层AFT IPv4--IPv6】
7.4 NAT64负载分担【四层AFT ipv6--ipv4】
本文档介绍4-7层应用负载均衡的配置案例。
本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请参考相关产品手册,或以设备实际情况为准。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文档假设您已了解LB(Load Balance,负载均衡)特性。
应用负载均衡支持的虚服务器类型包括:IP、TCP、UDP、RADIUS、HTTP、MySQL、SIP-TCP、SIP-UDP,其中IP、TCP和UDP类型统称为四层应用负载均衡,HTTP、RADIUS等类型称为七层应用负载均衡:
· 四层应用负载均衡:是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。四层应用负载均衡对基于HTTP的七层业务无法做到按内容分发,从而限制了负载均衡的业务适用范围。
· 七层应用负载均衡:是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的应用负载均衡。
如图所示,外网用户经过负载均衡设备访问内网服务器。三台服务器Server A、Server B和Server C均可提供HTTP服务。通过配置应用负载均衡,让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图1 SNAT应用场景应用负载均衡组网图
为实现SNAT应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务器。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· 入方向交换机配置二层透传,Host到LB路由可达,出方向交换机配置三层路由,LB到server路由可达,server到LB路由可达,下一跳都是在交换机上进行配置。
· 注意本举例中SNAT地址池地址跟出接口地址一个网段,需要在SNAT地址池中开启ARP功能。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图2 新建健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址是192.168.1.11,结束IP地址是192.168.1.14,配置发送免费ARP或ND报文的接口,如下图所示。
图3 新建源地址池
单击<确定>,完成操作。
图4 源地址池信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,并引用源地址池snat1,如下图所示。
图5 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6 添加实服务组成员
图7 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图8 实服务组信息
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,引用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图9 新建虚服务器
单击<确定>按钮,完成操作。
图10 虚服务器统计信息
图11 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
loadbalance snat-pool snat1
ip range start 192.168.1.11 end 192.168.1.14
arp-nd interface Route-Aggregation1.20
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,外网用户经过负载均衡设备访问内网服务器。三台服务器Server A、Server B和Server C均可提供HTTP服务。通过配置应用负载均衡,让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。与4.1的主要区别是为了解决客户端与虚服务同网段时的路由问题。
图12 SNAT应用场景应用负载均衡组网图
为实现SNAT应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务器。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· 入方向交换机配置二层透传,Host到LB路由可达,出方向交换机配置三层路由,LB到server路由可达,server到LB路由可达,下一跳都是在交换机上进行配置。
· 注意本举例中SNAT地址池地址跟出接口地址一个网段,需要在SNAT地址池中开启ARP功能。
· 本举例中虚服务IP与客户端出接口地址同网段,需要在虚服务上开启响应ARP功能。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图13 新建健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址是192.168.1.11,结束IP地址是192.168.1.14,配置发送免费ARP或ND报文的接口,如下图所示。
图14 新建源地址池
单击<确定>,完成操作。
图15 源地址池信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,并引用源地址池snat1,如下图所示。
图16 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图17 添加实服务组成员
图18 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图19 实服务组信息
创建TCP类型的虚服务器vs,配置其VSIP为10.0.0.8,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务器IP为10.0.0.8,指定默认实服务组sf1,开启响应ARP功能,并开启虚服务,如下图所示。
图20 新建虚服务器
单击<确定>按钮,完成操作。
图21 虚服务器统计信息
图22 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
loadbalance snat-pool snat1
ip range start 192.168.1.11 end 192.168.1.14
arp-nd interface Route-Aggregation1.20
#
virtual-server vs type tcp
virtual ip address 10.0.0.8
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
arp-nd interface Route-Aggregation1.10
service enable
#
如图所示,用户经过负载均衡设备访问服务器。三台服务器Server A、Server B和Server C均可提供HTTP服务。通过配置应用负载均衡,让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图23 基于源地址应用负载均衡组网图
为实现源地址应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务器。
· 配置策略。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图24 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,如下图所示。
图25 新建实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
图26 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图27 添加实服务组成员
图28 新建实服务器
单击<确定>按钮,完成操作。
图29 实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,添加成员列表,参照上图步骤创建实服务器rs2,配置其IPv4地址为192.168.1.2。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf3,添加成员列表,参照上图步骤创建实服务器rs3,配置其IPv4地址为192.168.1.3。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>,新建流量特征名称为lc1,类型为通用,匹配方式为匹配任意一条规则,Match ID为1,类型选择源IPv4,IPv4地址为10.0.4.0,掩码长度为26,单击<确定>按钮,如下图所示。
图30 新建流量特征信息
单击<确定>按钮,完成操作。
图31 流量特征信息
单击<确定>按钮,完成操作。
创建lc2与lc1步骤相同,lc2匹配规则IPv4地址是10.0.4.64,掩码长度26。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,新建动作名称为la1,类型选择通用,主用实服务组sf1,如下图所示。
图32 新建动作信息
单击<确定>,完成操作。
创建la2、la3与la1步骤相同,la2主用实服务组是sf2,la3主用实服务组是sf3。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,新建策略名称为lp1,类型选择通用,规则单击<新建>,流量特征选择lc1,动作选择la1,单击<确定>;再次单击<新建>,流量特征选择lc2,动作选择la2,单击<确定>;默认动作选择la3,如下图所示。
图33 新建策略lp1信息
单击<确定>,完成操作。
图34 策略lp1配置信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,负载均衡策略为lp1,如下图所示。
图35 新建虚服务器
单击<确定>,完成操作。
Host发起源地址分别为10.0.4.1、10.0.4.65、10.0.4.129的HTTP请求共3个,通过虚服务 61.159.4.100地址访问HTTP服务器,访问成功,可以在web上查看到虚服务器和实服务器的统计信息。源10.0.4.0/26的HTTP请求分给rs1,源10.0.4.64/26的HTTP请求分给rs2,其他源地址的HTTP请求分给rs3
图36 查看虚服务器统计信息
当源地址为10.0.4.1发起HTTP访问请求时,匹配策略lc1,选中rs1,查看实服务器统计,此时只有rs1有流量统计:
图37 查看实服务器统计信息
当源地址为10.0.4.65发起HTTP访问请求时,匹配策略lc2,选中rs2,查看实服务器统计,此时只有rs2有流量统计:
图38 查看实服务器统计信息
当源地址为10.0.4.129发起HTTP访问请求时,匹配策略lc3,选中rs3,查看实服务器统计,此时只有rs3有流量统计:
图39 查看实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf3
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
loadbalance class lc1 type generic match-any
match 1 source ip address 10.0.4.0 26
#
loadbalance class lc2 type generic match-any
match 1 source ip address 10.0.4.64 26
#
loadbalance action la1 type generic
server-farm sf1
#
loadbalance action la2 type generic
server-farm sf2
#
loadbalance action la3 type generic
server-farm sf3
#
loadbalance policy lp1 type generic
class lc1 action la1
class lc2 action la2
default-class action la3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
lb-policy lp1
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,三台服务器Server A、Server B和Server C均可提供HTTP服务,用户通过访问虚服务地址经过负载均衡设备访问真实服务器,由于服务器回应反向流量比较大,为了减轻负载均衡设备的压力,服务器回程的流量不再经过负载均衡设备,直接通过交换机转发,此时要求服务器回应报文的源地址为虚服务器的地址,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器状态。
图40 三角传输组网图
为实现三角传输的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务器。
· 由于服务器回应报文通过交换机直接转发,所以服务器回应报文的源地址要为虚服务器的地址,因此除了配置各自网卡地址外,还需要三台真实服务器侧单独配置loopback口,并且地址设置为虚服务器的地址61.159.4.100。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· 入方向交换机配置三层,入方向网关在交换机上,Host到交换机直连路由可达,交换机到LB直连路由可达,Host到LB路由可达,下一跳在交换机上,出方向交换机配置三层路由,LB到server路由可达,server到Host路由可达,下一跳都是在交换机上。
· 流量正向走LB,反向不走LB,服务器回Host路由可达。
· 实服务组中关闭DNAT功能。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图41 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,关闭目的地址转换功能,如下图所示。
图42 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图43 添加实服务组成员
图44 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图45 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。单击<新建>,新建虚服务器名称为vs,类型选择TCP,61.159.4.100 /32,指定默认实服务组sf1,开启虚服务功能,如下图所示。
图46 新建虚服务器
单击<确定>,完成操作。
图47 虚服务器统计信息
图48 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
transparent enable
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,外网用户经过负载均衡设备访问内网服务器。三台服务器Server A、Server B和Server C均可提供FTP服务,Host访问服务器的流量会根据三台服务器的优先级进行选择,如果实服务组中配置了限制调度的个数,实服务器优先级和调度个数会共同对实服务器进行调度,实现负载分担。
图49 基于优先级调度应用负载均衡组网图
为实现基于优先级调度的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 若需要将流量只分配给优先级最高的服务器时,实服务组中配置可选择的实服务器的数量为1,实服务器配置不同的优先级分别为4、8、1。
· 若需要将流量分配给其中两台服务器时,实服务组中配置可选择的实服务器的数量为2,实服务器配置不同的优先级分别为4、8、1。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组中配置可选择的实服务器数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为21,如下图所示。
图50 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,勾选“限制可被调度算法调用的实服务器数量”,最小数量与最大数量均配置成1,如下图所示。
图51 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,优先级为4,实服务组选择sf1,如下图所示。
图52 添加实服务组成员
图53 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
图54 实服务组信息
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图55 新建虚服务器
单击<确定>按钮,完成操作。
图56 虚服务器统计信息
图57 实服务器统计信息
图58 虚服务器统计信息
图59 实服务器统计信息
#
nqa template tcp t1
destination port 21
#
server-farm sf1
predictor hash address source
selected-server min 1 max 1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
priority 8
success-criteria at-least 1
real-server rs3 port 0
priority 1
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service enable
#
随着互联网以及各行各业数字化转型的蓬勃发展,网络承载的业务越来越多,越来越重要。如何保证网络的可靠性、业务的不间断传输成为网络建设中必须要解决的问题。
在网络关键位置上如果只使用一台设备的情况下,无论其可靠性多高,都会存在因设备单点故障而导致网络中断的风险。因此,通常会在网络的关键位置部署两台设备,以提升网络的可靠性和业务运行稳定性,使用两台负载均衡设备进行高可靠性主备组网,Device A作为主设备,Device B作为备设备。当Device A设备或其他链路出现故障时,业务能够被Device B设备接替继续运行业务,保证业务不中断(业务流量默认不主动回切)。
图60 高可靠性组网图
为实现两台负载均衡设备其中一台故障时,另外一台能够接替运行业务,需要完成如下配置:
· 接口下的地址、VRRP相关配置需要在两台设备上分别进行配置下发,接口下配置VRRP备份组和VRRP虚IP地址。
· 高可靠性相关配置也需要在两台设备上分别进行配置下发,将两台设备之间直连的接口聚合作为高可靠性控制通道接口和数据通道接口。配置高可靠性,指定主从管理设备角色,指定控制通道和数据通道,开启配置自动备份和热备功能。
· 路由,健康检测等不备份的基础配置需要在两台设备上分别进行配置下发。
本举例是在L5000-AD520-G的Release 9900P21上进行配置和验证的。
· 对负载均衡业务相关可备份的配置进行删除、修改操作时,需要在高可靠性主管理设备上进行操作,同步给高可靠性的备设备,切勿在高可靠性备管理设备上进行修改删除操作,防止两个设备上的配置不一致。主管理设备上已有的负载均衡配置,会在开启自动同步配置信息功能后进行一次批量备份,或通过手动同步配置信息到高可靠性的备设备上。对于路由等不备份但需要保持一致的配置,需要在两个设备上分别进行操作配置下发。
· 接口IP地址,路由等相关配置,需要在主管理设备和从管理设备上同时手动配置并各自保存为基本配置。负载均衡相关的ISP文件,自定义监控所需的脚本文件等文件类操作需要在两台设备上分别进行导入下发,并进行各自保存。
· 目前支持配置信息同步的业务模块如下:
¡ 资源类:VPN实例、ACL(acl copy命令不支持同步)、对象组、时间段、安全域、会话管理、APR、AAA。
¡ DPI相关模块:应用层检测引擎、IPS、URL过滤、数据过滤、文件过滤、防病毒、数据分析中心、WAF。
¡ 策略类:安全策略、ASPF、攻击检测与防范(blacklist ip命令不支持同步)、连接数限制、NAT、AFT、负载均衡、带宽管理、应用审计与管理、共享上网管理、代理策略。
¡ 日志类:快速日志输出(customlog host source命令不支持同步)、Flow日志(userlog flow export source-ip命令不支持同步)。
¡ VPN类:SSL VPN。
¡ 其他类:VLAN、信息中心(info-center loghost source命令不支持同步)
· 高可靠性数据通道和控制通道推荐使用动态聚合。
· 基础配置和业务配置配置完成后分别save保存配置。
· 高可靠性组网中主备组网中,主设备故障时,流量自动切换到对端设备进行处理。缺省情况下,当原主设备恢复正常时,流量不回切。这时如果需要流量再次回到原主设备进行处理,可以开启主动抢占功能,并设置延迟切换时间保证业务能够平滑切回,延迟回切时间为0表示不回切。
· 负载均衡配置snat地址池时,基于地址拆分。SNAT地址池中的地址与设备连接服务器端接口的IP地址在同一网段时,必须在该SNAT地址池下配置指定免费发送ARP或ND报文接口,指定的接口是设备连接服务器的接口。不在同一网段时,则SNAT地址池下无需指定免费发送ARP或ND报文接口。
· 负载均衡配置虚服务器时,虚服务器IP地址与设备连接客户端接口的IP地址在同一网段,必须在该虚服务器下指定免费发送ARP或ND报文接口,指定的接口是设备连接客户端的接口。不在同一网段时,虚服务器下无需指定发送免费ARP或ND报文接口。
· 负载均衡配置虚服务器绑定VRRP备份组,同时存在IPv4和IPv6地址时,需要各自绑定VRRP备份组。
· 与负载均衡设备在同一个局域网里面的其他设备如果起VRRP的话,要VRID各不相同,如果相同,导致交换机MAC地址表震荡引发丢包问题。
以下验证过程在LB设备上进行。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,管理角色选择主管理设备,本端地址为1.1.1.1,对端IP地址为1.1.1.2,数据通道选择三层聚合口1,数据通道报文传输模式选择二层,配置信息一致性检查开启,时间间隔为12小时。
如下图所示。
图61 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>VRRP”,进入VRRP列表页面。
单击<新建>按钮,选择备份组所在的接口为三层聚合子接口10.1,备份组号为1,联动高可靠性VRRP active组,虚拟IP地址为10.0.0.1/32。
如下图所示。
图62 配置VRRP备份组
单击<确定>按钮,完成操作。
创建VRRP备份组所在三层聚合子接口10.2与创建VRRP备份组所在三层聚合子接口10.1步骤相同。
在导航栏中选择“系统>高可靠性>VRRP”,单击添加VRRP备份组,参照上图创建VRRP备份组所在接口为三层聚合子接口10.2,备份组号为1,联动高可靠性为VRRP active组,虚拟IP地址为192.168.1.254/32。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,管理角色选择从管理设备,本端地址为1.1.1.2,对端IP地址为1.1.1.1,数据通道选择三层聚合口1,数据通道报文传输模式选择二层,配置信息一致性检查开启,时间间隔为12小时。
如下图所示。
图63 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>VRRP”,进入VRRP列表页面。
单击<新建>按钮,选择备份组所在的接口为三层聚合子接口10.1,备份组号为1,联动高可靠性VRRP standby组,虚拟IP地址为10.0.0.1/32。
如下图所示。
图64 配置VRRP备份组
单击<确定>按钮,完成操作。
创建VRRP备份组所在三层聚合子接口10.2与创建VRRP备份组所在三层聚合子接口10.1步骤相同。
在导航栏中选择“系统>高可靠性>VRRP”,单击添加VRRP备份组,参照上图创建VRRP备份组所在接口为三层聚合子接口10.2,备份组号为1,联动高可靠性为VRRP standby组,虚拟IP地址为192.168.1.254/32。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为icmp,类型为ICMP的健康检测模板。
如下图所示。
图65 添加健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池列表页面。
单击<新建>按钮,新建基于地址拆分的源地址池snat,配置地址范围为192.168.1.101~192.168.1.112,配置发送免费ARP或ND报文的接口。
如下图所示。
图66 添加源地址池
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测选择icmp,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图67 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.3,如下图所示。
图68 添加实服务组成员
图69 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.4和192.168.1.5。
如图所示。
图70 实服务组成员列表
单击<确定>按钮,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择TCP,引用实服务组sf1,配置虚服务器绑定VRRP备份组1关联接口三层聚合子接口10.1,并开启虚服务。
如下图所示。
图71 新建虚服务器
单击<确定>,完成操作。
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如图所示。
图72 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Backup。
如图所示。
图73 备设备上高可靠性
Host向地址61.159.4.100发起FTP的请求,访问成功后,在设备上在导航栏“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。
如图所示。
图74 主设备上的虚服务器统计
图75 备设上的虚服务器统计
(1) 使用icmp ping业务测试高可靠性
主设备状态正常时,Host向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图76 icmp ping业务状态
a. 手动切换主备状态
在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。点击<状态切换>即可手动切换主备状态。如下图所示。
图77 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Backup。如下图所示。
图78 主设备上高可靠性状态
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master。如下图所示。
图79 备设备上高可靠性状态
业务切换到备设备上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图80 icmp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图81 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图82 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图83 icmp ping业务状态
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Initialize。如下图所示。
图84 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master。如下图所示。
图85 备设备上高可靠性
业务切换到备机上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图86 icmp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图87 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图88 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。如下图所示。
图89 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。如下图所示。
图90 备设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图91 icmp ping业务状态
c. 设备重启
当主设备重启时,在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为异常,VRRP虚拟地址状态异常,为Master。如下图所示。
图92 备设备上高可靠性
业务切换到备机上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图93 icmp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图94 备设备上会话列表
主设备启动成功后,在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图95 主设备上会话列表
主设备启动成功后,当备设备重启时,在主设备上,在导航栏中选择“系统 > 高可靠性 >高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为异常,VRRP虚拟地址状态异常,为Master。如下图所示。
图96 主设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图97 icmp ping业务状态
(2) 使用tcp ping业务测试高可靠性
主设备状态正常时,Host向地址61.159.4.100发起tcp ping请求,没有丢包,如下图所示。
图98 tcp ping业务状态
a. 手动切换主备状态
在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。点击<状态切换>即可手动切换主备状态。如下图所示。
图99 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Backup。如下图所示。
图100 主设备上高可靠性状态
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master。如下图所示。
图101 备设备上高可靠性状态
业务切换到备设备上,Host继续向地址61.159.4.100发起tcp ping请求,没有丢包,如下图所示。
图102 tcp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生tcp会话,如下图所示。
图103 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的tcp会话,如下图所示。
图104 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图105 tcp ping业务状态
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Initialize。如下图所示。
图106 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master。如下图所示。
图107 备设备上高可靠性
业务切换到备机上,Host继续向地址61.159.4.100发起tcp ping请求,没有丢包,如下图所示。
图108 tcp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生tcp会话,如下图所示。
图109 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的tcp会话,如下图所示。
图110 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。如下图所示。
图111 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。如下图所示。
图112 备设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图113 tcp ping业务状态
c. 设备重启
当主设备重启时,在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为异常,VRRP虚拟地址状态异常,为Master。如下图所示。
图114 备设备上高可靠性
业务切换到备机上,Host继续向地址61.159.4.100发起tcp ping请求,没有丢包如图所示。
图115 tcp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生tcp会话,如下图所示。
图116 备设备上会话列表
主设备启动成功后,在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的tcp会话,如下图所示。
图117 主设备上会话列表
主设备启动成功后,当备设备重启时,在主设备上,在导航栏中选择“系统 > 高可靠性 >高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为异常,VRRP虚拟地址状态异常,为Master。如下图所示。
图118 主设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图119 tcp ping业务状态
(3) 使用ftp业务测试高可靠性
Host向地址61.159.4.100发起FTP的请求,访问成功后,下载test file.ipe文件到Host上,下载过程没有异常。
图120 Host向地址61.159.4.100发起FTP的请求成功
图121 test file.ipe文件下载过程
a. 手动切换主备状态
在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。点击<状态切换>即可手动切换主备状态。如下图所示。
图122 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Backup。如下图所示。
图123 主设备上高可靠性状态
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master。如下图所示。
图124 备设备上高可靠性状态
业务切换到备设备上,文件下载成功,没有异常,如下图所示。
图125 test file.ipe文件下载成功
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生ftp会话,如下图所示。
图126 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的ftp会话,如下图所示。
图127 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,文件下载成功,没有异常,如下图所示。
图128 test file.ipe文件下载成功
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Initialize。如下图所示。
图129 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master。如下图所示。
图130 备设备上高可靠性
业务切到备设备上,文件下载成功,没有异常,如下图所示。
图131 test file.ipe文件下载成功
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生ftp会话,如下图所示。
图132 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的ftp会话,如下图所示。
图133 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。如下图所示。
图134 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。如下图所示。
图135 备设备上高可靠性
业务切回主设备上,文件下载成功,没有异常,如下图所示。
图136 test file.ipe文件下载成功
c. 设备重启
当主设备重启时,在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为异常,VRRP虚拟地址状态异常,为Master。如下图所示。
图137 备设备上高可靠性
业务切换到备机上,文件下载成功,没有异常,如下图所示。
图138 test file.ipe文件下载成功
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生ftp会话,如下图所示。
图139 备设备上会话列表
主设备启动成功后,在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的ftp会话,如下图所示。
图140 主设备上会话列表
主设备启动成功后,当备设备重启时,在主设备上,在导航栏中选择“系统 > 高可靠性 >高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为异常,VRRP虚拟地址状态异常,为Master。如下图所示。
图141 主设备上高可靠性
业务切回主设备上,文件下载成功,没有异常,如下图所示。
图142 test file.ipe文件下载成功
业务接口正常,设配状态正常、负载均衡设备到网关或中间网络三层设配ping不通,可能用到此方式
高可靠性环境搭建和负载均衡业务配置请参见4.6.5 配置步骤
以下配置均需要在主备机上分别配置
(1) 配置NQA
在导航栏中选择“系统 > 高可靠性 > NQA”,进入NQA页面。
单击<新建>按钮,进入NQA配置页面, 添加测试组管理员名称为admin,操作标签为ping,测试类型为ICMP-echo,目的地址为10.0.0.10 测试时间间隔为3000毫秒,勾选开启历史记录保存功能,保存历史记录的个数为10,启动测试选择立即启动,测试持续时间选择永久。如下图所示。
图143 创建NQA
为NQA添加告警监控组
单击<新建>按钮,添加告警组编号为1,监控对象选择probe-fail,阈值类型选择连续次数,失败次数为3,触发的动作选择触发其他模块联动。如下图所示。
图144 添加NQA告警监控组
点击<确定>按钮后,再次点击<确定>按钮完成操作。
(2) 配置Track
在导航栏中选择“系统 > 高可靠性 > Track”,进入Track页面。
单击<新建>按钮,进入Track配置页面,添加Track项为1,检测模块选择NQA,测试组管理员名称为admin,操作标签为ping,联动xiang序号为1。如下图所示。
图145 创建Track项
点击<确定>按钮,完成操作。
(3) 配置高可靠性监控项
在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,在监控项处选择联动Track项,点击<引用>选择Track项为1。
图146 主设备上配置高可靠性监控项
点击<确定>按钮后,再次点击<确定>按钮完成操作。
当主设备到NQA目的地址10.0.0.10链路出现故障时,在主设备上在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上运行模式是主备模式,配置管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Backup,监控项TRACK1状态异常,为Negative。如下图所示。
图147 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态异常,为Master,监控项TRACK1状态正常,为Positive。如下图所示。
图148 备设备上高可靠性
主设备到NQA目的地址10.0.0.10链路恢复正常后,当备设备到NQA目的地址10.0.0.10链路出现故障时,在主设备上在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在主设备上,运行模式是主备模式,配置管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master,监控项TRACK1状态正常,为Positive。如图所示。
图149 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
在备设备上,运行模式是主备模式,配置管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Backup,监控项TRACK1状态异常,为Negative。如下图所示。
图150 备设备上高可靠性
#
nqa template icmp icmp
#
interface Route-Aggregation10.1
ip address 10.0.0.253 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.0.1 active
vlan-type dot1q vid 3001
#
interface Route-Aggregation10.2
ip address 192.168.1.1 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.254 active
vlan-type dot1q vid 3002
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
local-ip 1.1.1.1
remote-ip 1.1.1.2
device-role primary
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.3
#
real-server rs2
ip address 192.168.1.4
#
real-server rs3
ip address 192.168.1.5
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
vrrp vrid 1 interface Route-Aggregation10.1
service enable
#
#
nqa template icmp icmp
#
interface Route-Aggregation10.1
ip address 10.0.0.254 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.0.1 standby
vlan-type dot1q vid 3001
#
interface Route-Aggregation10.2
ip address 192.168.1.2 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.254 standby
vlan-type dot1q vid 3002
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
local-ip 1.1.1.2
remote-ip 1.1.1.1
device-role secondary
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.3
#
real-server rs2
ip address 192.168.1.4
#
real-server rs3
ip address 192.168.1.5
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
vrrp vrid 1 interface Route-Aggregation10.1
service enable
#
随着互联网以及各行各业数字化转型的蓬勃发展,网络承载的业务越来越多,越来越重要。如何保证网络的可靠性、业务的不间断传输成为网络建设中必须要解决的问题。
在网络关键位置上如果只使用一台设备的情况下,无论其可靠性多高,都会存在因设备单点故障而导致网络中断的风险。因此,通常会在网络的关键位置部署两台设备,以提升网络的可靠性和业务运行稳定性,使用两台负载均衡设备进行高可靠性主备组网,Device A作为主设备,Device B作为备设备。当Device A设备或其他链路出现故障时,业务能够被Device B设备接替继续运行业务,保证业务不中断(业务流量默认不主动回切)。
图151 高可靠性组网图
为实现两台负载均衡设备其中一台故障时,另外一台能够接替运行业务,需要完成如下配置:
· 接口下的地址、VRRP相关配置需要在两台设备上分别进行配置下发,接口下配置VRRP备份组和VRRP虚IP地址。
· 高可靠性相关配置也需要在两台设备上分别进行配置下发,将两台设备之间直连的接口聚合作为高可靠性控制通道接口和数据通道接口。配置高可靠性,指定主从管理设备角色,指定控制通道和数据通道,开启配置自动备份和热备功能。
· 路由,健康检测等不备份的基础配置需要在两台设备上分别进行配置下发。
本举例是在L5000-AD520-G1的 Release 9900P36上进行配置和验证的。
· 对负载均衡业务相关可备份的配置进行删除、修改操作时,需要在高可靠性主管理设备上进行操作,同步给高可靠性的备设备,切勿在高可靠性备管理设备上进行修改删除操作,防止两个设备上的配置不一致。主管理设备上已有的负载均衡配置,会在开启自动同步配置信息功能后进行一次批量备份,或通过手动同步配置信息到高可靠性的备设备上。对于路由等不备份但需要保持一致的配置,需要在两个设备上分别进行操作配置下发。
· 接口IP地址,路由等相关配置,需要在主管理设备和从管理设备上同时手动配置并各自保存为基本配置。负载均衡相关的ISP文件,SSL卸载相关的证书文件,自定义监控所需的脚本文件等文件类操作需要在两台设备上分别进行导入下发,并进行各自保存。
· 目前支持配置信息同步的业务模块如下:
¡ 资源类:VPN实例、ACL(acl copy命令不支持同步)、对象组、时间段、安全域、会话管理、APR、AAA。
¡ DPI相关模块:应用层检测引擎、IPS、URL过滤、数据过滤、文件过滤、防病毒、数据分析中心、WAF。
¡ 策略类:安全策略、ASPF、攻击检测与防范(blacklist ip命令不支持同步)、连接数限制、NAT、AFT、负载均衡、带宽管理、应用审计与管理、共享上网管理、代理策略。
¡ 日志类:快速日志输出(customlog host source命令不支持同步)、Flow日志(userlog flow export source-ip命令不支持同步)。
¡ VPN类:SSL VPN。
¡ 其他类:VLAN、信息中心(info-center loghost source命令不支持同步)
· 高可靠性数据通道和控制通道推荐使用动态聚合。
· 基础配置和业务配置配置完成后分别save保存配置。
· 高可靠性组网中主备组网中,主设备故障时,流量自动切换到对端设备进行处理。缺省情况下,当原主设备恢复正常时,流量不回切。这时如果需要流量再次回到原主设备进行处理,可以开启主动抢占功能,并设置延迟切换时间保证业务能够平滑切回,延迟回切时间为0表示不回切。
· 负载均衡配置snat地址池时,基于地址拆分。SNAT地址池中的地址与设备连接服务器端接口的IP地址在同一网段时,必须在该SNAT地址池下配置指定免费发送ARP或ND报文接口,指定的接口是设备连接服务器的接口。不在同一网段时,则SNAT地址池下无需指定免费发送ARP或ND报文接口。
· 负载均衡配置虚服务器时,虚服务器IP地址与设备连接客户端接口的IP地址在同一网段,必须在该虚服务器下指定免费发送ARP或ND报文接口,指定的接口是设备连接客户端的接口。不在同一网段时,虚服务器下无需指定发送免费ARP或ND报文接口。
· 负载均衡配置虚服务器绑定VRRP备份组,同时存在IPv4和IPv6地址时,需要各自绑定VRRP备份组。
以下验证过程在LB设备上进行。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,管理角色选择主管理设备,本端地址为1.1.1.1,对端IP地址为1.1.1.2,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为12小时。
如下图所示。
图152 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>VRRP”,进入VRRP列表页面。
单击<新建>按钮,选择备份组所在的接口为三层聚合子接口10.1,备份组号为1,类型选择ipv6,联动双机热备选择VRRP active组,虚拟IP地址为FE80::2001:1/64、2001::1/64。
如下图所示。
图153 配置VRRP备份组
单击<确定>按钮,完成操作。
创建VRRP备份组所在三层聚合子接口10.2与创建VRRP备份组所在三层聚合子接口10.1步骤相同。
在导航栏中选择“系统>高可靠性>VRRP”,单击添加VRRP备份组,参照上图创建VRRP备份组所在接口为三层聚合子接口10.2,备份组号为1,类型选择ipv6,联动双机热备选择VRRP active组,虚拟IP地址为FE80::2003:254/64、2003::254/64。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,选择开启高可靠性,管理角色选择从管理设备,本端地址为1.1.1.2,对端IP地址为1.1.1.1,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为12小时。
如下图所示。
图154 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>VRRP”,进入VRRP列表页面。
单击<新建>按钮,选择备份组所在的接口为三层聚合子接口10.1,备份组号为1,类型选择ipv6联动双机热备选择VRRP standby组,虚拟IP地址为FE80::2001:1/64、2001::1/64。
如下图所示。
图155 配置VRRP备份组
单击<确定>按钮,完成操作。
创建VRRP备份组所在三层聚合子接口10.2与创建VRRP备份组所在三层聚合子接口10.1步骤相同。
在导航栏中选择“系统>高可靠性>VRRP”,单击添加VRRP备份组,参照上图创建VRRP备份组所在接口为三层聚合子接口10.2,备份组号为1,类型选择ipv6联动双机热备选择VRRP standby组,虚拟IP地址为FE80::2003:254/64、2003::254/64。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为icmp,类型为ICMP的健康检测模板,配置两次探测开始时间的时间间隔3000ms,配置连续探测成功的次数为1。
如下图所示。
图156 添加健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池列表页面。
单击<新建>按钮,新建基于地址拆分的源地址池snat,配置地址范围为2003::101~2003::112,配置发送免费ARP或ND报文的接口。
如下图所示。
图157 添加源地址池
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测选择icmp,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图158 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为2003::3,如下图所示。
图159 添加实服务组成员
图160 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv6地址为2003::4和2003::5。
如图所示。
图161 实服务组成员列表
单击<确定>按钮,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为2030::2030,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择TCP,引用实服务组sf1,配置虚服务器绑定VRRP iPv6备份组1关联接口三层聚合子接口10.1,并开启虚服务。
如下图所示。
图162 新建虚服务器
单击<确定>,完成操作。
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如图所示。
图163 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Backup。
如图所示。
图164 备设备上高可靠性
Host向地址2030::2030发起FTP的请求,访问成功后,在设备上在导航栏“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。
如图所示。
图165 主设备上的虚服务器统计
图166 备设上的虚服务器统计
(1) 使用icmp ping业务测试高可靠性
主设备状态正常时,Host向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图167 icmp ping业务状态
a. 手动切换主备状态
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图168 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Backup。
如下图所示。
图169 主设备上高可靠性状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图170 备设备上高可靠性状态
业务切换到备设备上,Host继续向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图171 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图172 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图173 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图174 icmp ping业务状态
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Initialize。
如下图所示。
图175 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图176 备设备上高可靠性
业务切换到备机上,Host继续向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图177 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图178 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图179 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如下图所示。
图180 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。
如下图所示。
图181 备设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图182 icmp ping业务状态
c. 设备重启
当主设备重启时,在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为非正常,VRRP虚拟地址状态非正常,为Master。如下图所示。
图183 备设备上高可靠性
业务切换到备机上,Host继续向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图184 icmp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图185 备设备上会话列表
主设备启动成功后,在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图186 主设备上会话列表
主设备启动成功后,当备设备重启时,在主设备上,在导航栏中选择“系统 > 高可靠性 >高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为非正常,VRRP虚拟地址状态非正常,为Master。如下图所示。
图187 主设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图188 icmp ping业务状态
(2) 使用tcp ping业务测试高可靠性
主设备状态正常时,Host向地址2030::2030发起tcp ping请求,没有丢包,如下图所示。
图189 tcp ping业务状态
a. 手动切换主备模式
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图190 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Backup。
如下图所示。
图191 主设备上高可靠性状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图192 备设备上高可靠性状态
业务切换到备设备上,Host继续向地址2030::2030发起tcp ping请求,没有丢包,如下图所示。
图193 tcp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生tcp会话,如下图所示。
图194 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的tcp会话,如下图所示。
图195 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图196 tcp ping业务状态
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Initialize。
如下图所示。
图197 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图198 备设备上高可靠性
业务切换到备机上,Host继续向地址2030::2030发起tcp ping请求,没有丢包,如下图所示。
图199 tcp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生tcp会话,如下图所示。
图200 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的tcp会话,如下图所示。
图201 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如下图所示。
图202 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。
如下图所示。
图203 备设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图204 tcp ping业务状态
c. 设备重启
当主设备重启时,在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为非正常,VRRP虚拟地址状态非正常,为Master。如下图所示。
图205 备设备上高可靠性
业务切换到备机上,Host继续向地址2030::2030发起tcp ping请求,没有丢包如图所示。
图206 tcp ping业务状态
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生tcp会话,如下图所示。
图207 备设备上会话列表
主设备启动成功后,在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的tcp会话,如下图所示。
图208 主设备上会话列表
主设备启动成功后,当备设备重启时,在主设备上,在导航栏中选择“系统 > 高可靠性 >高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为非正常,VRRP虚拟地址状态非正常,为Master。如下图所示。
图209 主设备上高可靠性
业务切回主设备上,没有丢包,如下图所示。
图210 tcp ping业务状态
(3) 使用ftp业务测试高可靠性
Host向地址2030::2030发起FTP的请求,访问成功后,下载test file.ipe文件到Host上,下载过程没有异常。
图211 Host向地址2030::2030发起FTP的请求成功
图212 test file.ipe文件下载过程
在设备上在导航栏“监控 > 应用负载 > 虚服务器 > 实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。如下图所示。
图213 主设备上的虚服务器统计
图214 备设备上的虚服务器统计
a. 手动切换主备
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图215 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Backup。
如下图所示。
图216 主设备上高可靠性状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图217 备设备上高可靠性状态
业务切换到备设备上,文件下载成功,没有异常,如下图所示。
图218 test file.ipe文件下载成功
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生ftp会话,如下图所示。
图219 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的ftp会话,如下图所示。
图220 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,文件下载成功,没有异常,如下图所示。
图221 test file.ipe文件下载成功
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Initialize。
如下图所示。
图222 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图223 备设备上高可靠性
业务切到备设备上,文件下载成功,没有异常,如下图所示。
图224 test file.ipe文件下载成功
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生ftp会话,如下图所示。
图225 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的ftp会话,如下图所示。
图226 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如下图所示。
图227 主设备上高可靠性
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。
如下图所示。
图228 备设备上高可靠性
业务切回主设备上,文件下载成功,没有异常,如下图所示。
图229 test file.ipe文件下载成功
c. 设备重启
当主设备重启时,在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为非正常,VRRP虚拟地址状态非正常,为Master。如下图所示。
图230 备设备上高可靠性
业务切换到备机上,文件下载成功,没有异常,如下图所示。
图231 test file.ipe文件下载成功
在备设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生ftp会话,如下图所示。
图232 备设备上会话列表
在主设备上,在导航栏中选择“监控 > 会话监控 > 会话列表”,进入会话列表页面。
主设备上备份备设备上的ftp会话,如下图所示。
图233 主设备上会话列表
主设备启动成功后,当备设备重启时,在主设备上,在导航栏中选择“系统 > 高可靠性 >高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为非正常,VRRP虚拟地址状态非正常,为Master。如下图所示。
图234 主设备上高可靠性
业务切回主设备上,文件下载成功,没有异常,如下图所示。
图235 test file.ipe文件下载成功
业务接口正常,设配状态正常、负载均衡设备到网关或中间网络三层设配ping不通,可能用到此方式
高可靠性环境搭建和负载均衡业务配置请参见4.6.5 配置步骤
(1) 主设备上配置NQA
在导航栏中选择“系统 > 高可靠性 > NQA”,进入NQA页面。
单击<新建>按钮,进入NQA配置页面, 添加测试组管理员名称为admin,操作标签为ping,测试类型为ICMP-echo,目的地址为2001::100 测试时间间隔为3000毫秒,勾选开启历史记录保存功能,保存历史记录的个数为10,启动测试选择立即启动,测试持续时间选择永久。如下图所示。
图236 创建NQA
为NQA添加告警监控组
单击<新建>按钮,添加告警组编号为1,监控对象选择probe-fail,阈值类型选择连续次数,失败次数为3,触发的动作选择触发其他模块联动。如下图所示。
图237 添加NQA告警监控组
点击<确定>按钮后,再次点击<确定>按钮完成操作。
(2) 主设备上配置Track
在导航栏中选择“系统 > 高可靠性 > Track”,进入Track页面。
单击<新建>按钮,进入Track配置页面,添加Track项为1,检测模块选择NQA,测试组管理员名称为admin,操作标签为ping,联动xiang序号为1。如下图所示。
图238 创建Track项
点击<确定>按钮,完成操作。
(3) 主设备上配置高可靠性监控项
在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,在监控对象处选择联动Track项,点击<新建>选择Track项为1。
图239 主设备上配置高可靠性监控项
点击<确定>按钮后,再次点击<确定>按钮完成操作。
(4) 备设备上配置NQA
在导航栏中选择“系统 > 高可靠性 > NQA”,进入NQA页面。
单击<新建>按钮,进入NQA配置页面, 添加测试组管理员名称为admin,操作标签为ping,测试类型为ICMP-echo,目的地址为2001::100 测试时间间隔为3000毫秒,勾选开启历史记录保存功能,保存历史记录的个数为10,启动测试选择立即启动,测试持续时间选择永久。如下图所示。
图240 创建NQA
为NQA添加告警监控组
单击<新建>按钮,添加告警组编号为1,监控对象选择probe-fail,阈值类型选择连续次数,失败次数为3,触发的动作选择触发其他模块联动。如下图所示。
图241 添加NQA告警监控组
点击<确定>按钮后,再次点击<确定>按钮完成操作。
(5) 备设备上配置Track
在导航栏中选择“系统 > 高可靠性 > Track”,进入Track页面。
单击<新建>按钮,进入Track配置页面,添加Track项为1,检测模块选择NQA,测试组管理员名称为admin,操作标签为ping,联动xiang序号为1。如下图所示。
图242 创建Track项
点击<确定>完成配置。
(6) 备设备上配置高可靠性监控项
在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
单击<配置>按钮,进入高可靠性配置页面,在监控对象处选择联动Track项,点击<新建>选择Track项为1。
图243 主设备上配置高可靠性监控项
点击<确定>后,再次点击<确定>完成配置。
当主设备到NQA目的地址2001::100链路出现故障时,在主设备上在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Backup,监控项TRACK1状态非正常,为Negative。如下图所示。
图244 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master,监控项TRACK1状态正常,为Positive。如下图所示。
图245 备设备上高可靠性
主设备到NQA目的地址2001::100链路恢复正常后,当备设备到NQA目的地址2001::100链路出现故障时,在主设备上在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master,监控项TRACK1状态正常,为Positive。如图所示。
图246 主设备上高可靠性
在备设备上,在导航栏中选择“系统 > 高可靠性 > 高可靠性”,进入高可靠性页面。
高可靠性建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Backup,监控项TRACK1状态非正常,为Negative。如下图所示。
图247 备设备上高可靠性
#
nqa template icmp icmp
frequency 3000
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.1 255.255.255.0
#
interface Route-Aggregation10.1
vlan-type dot1q vid 951
ipv6 address 2001::253/64
vrrp ipv6 vrid 1 virtual-ip FE80::2001:1 64 link-local active
vrrp ipv6 vrid 1 virtual-ip 2001::1 64
#
interface Route-Aggregation10.2
vlan-type dot1q vid 952
ipv6 address 2003::1/64
vrrp ipv6 vrid 1 virtual-ip FE80::2003:254 64 link-local active
vrrp ipv6 vrid 1 virtual-ip 2003::254 64
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
local-ip 1.1.1.1
remote-ip 1.1.1.2
device-role primary
#
loadbalance snat-pool snat
ipv6 range start 2003::101 end 2003::112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ipv6 address 2003::3
#
real-server rs2
ipv6 address 2003::4
#
real-server rs3
ipv6 address 2003::5
#
virtual-server vs type tcp
virtual ipv6 address 2030::2030
default server-farm sf1
connection-sync enable
sticky-sync enable global
vrrp ipv6 vrid 1 interface Route-Aggregation10.1
service enable
#
#
nqa template icmp icmp
frequency 3000
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.2 255.255.255.0
#
interface Route-Aggregation10.1
vlan-type dot1q vid 951
ipv6 address 2001::254/64
vrrp ipv6 vrid 1 virtual-ip FE80::2001:1 64 link-local standby
vrrp ipv6 vrid 1 virtual-ip 2001::1 64
#
interface Route-Aggregation10.2
vlan-type dot1q vid 952
ipv6 address 2003::2/64
vrrp ipv6 vrid 1 virtual-ip FE80::2003:254 64 link-local standby
vrrp ipv6 vrid 1 virtual-ip 2003::254 64
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
local-ip 1.1.1.2
remote-ip 1.1.1.1
device-role secondary
#
loadbalance snat-pool snat
ipv6 range start 2003::101 end 2003::112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ipv6 address 2003::3
#
real-server rs2
ipv6 address 2003::4
#
real-server rs3
ipv6 address 2003::5
#
virtual-server vs type tcp
virtual ipv6 address 2030::2030
default server-farm sf1
connection-sync enable
sticky-sync enable global
vrrp ipv6 vrid 1 interface Route-Aggregation10.1
service enable
#
随着互联网以及各行各业数字化转型的蓬勃发展,网络承载的业务越来越多,越来越重要。如何在保证网络可靠性、业务不间断传输的基础上优化网络性能、灵活扩展网络成为网络建设中必须要解决的问题。
在网络关键位置上如果只使用一台设备的情况下,无论其可靠性多高,都会存在因设备单点故障而导致网络中断的风险。因此,通常会在网络的关键位置部署两台设备,同时组建OSPF(Open Shortest Path First,路由选择的开放性协议)组网,在提升网络可靠性和业务运行稳定性的基础上,优化网络性能以及灵活扩展网络结构。使用两台负载均衡设备搭建高可靠性OSPF主备组网,Device A作为主设备,Device B作为备设备。当Device A设备或其他链路出现故障时,业务能够被Device B设备接替继续运行业务,保证业务不中断(业务流量默认不主动回切),提升网络性能。
图248 高可靠性OSPF组网图
为实现两台负载均衡设备其中一台故障时,另外一台能够接替运行业务,需要完成如下配置:
· 接口下的地址、OSPF相关配置需要在两台设备上分别进行配置下发。
· 高可靠性相关配置需要在两台设备上分别进行配置下发,将两台设备之间直连的接口聚合作为高可靠性控制通道接口和数据通道接口。配置高可靠性,指定主从管理设备角色,指定控制通道和数据通道,开启配置自动备份和热备功能。
· 路由,健康检测等不备份的基础配置需要在两台设备上分别进行配置下发。
本举例是在L5000-AD540-G1的Release 9900P36上进行配置和验证的。
· 对负载均衡业务相关可备份的配置进行删除、修改操作时,需要在高可靠性主管理设备上进行操作,同步给高可靠性从管理设备,切勿在高可靠性从管理设备上进行修改删除操作,防止两个设备上的配置不一致。主管理设备上已有的负载均衡配置,会在开启自动同步配置信息功能后进行一次批量备份,或通过手动同步配置信息到高可靠性从管理设备上。对于路由、健康检测等不备份但需要保持一致的配置,需要在两个设备上分别进行操作配置下发。
· 接口IP地址,路由等相关配置,需要在主管理设备和从管理设备上同时手动配置并各自保存为基本配置。负载均衡相关的ISP文件,自定义监控所需的脚本文件等文件类操作需要在两台设备上分别进行导入下发,并各自进行保存。
· 目前支持配置信息同步的业务模块如下:
¡ 资源类:VPN实例、ACL(acl copy命令不支持同步)、对象组、时间段、安全域、会话管理、APR、AAA。
¡ DPI相关模块:应用层检测引擎、IPS、URL过滤、数据过滤、文件过滤、防病毒、数据分析中心、WAF。
¡ 策略类:安全策略、ASPF、攻击检测与防范(blacklist ip命令不支持同步)、连接数限制、NAT、AFT、负载均衡、带宽管理、应用审计与管理、共享上网管理、代理策略。
¡ 日志类:快速日志输出(customlog host source命令不支持同步)、Flow日志(userlog flow export source-ip命令不支持同步)。
¡ VPN类:SSL VPN。
¡ 其他类:VLAN、信息中心(info-center loghost source命令不支持同步)
· 高可靠性数据通道和控制通道推荐使用动态聚合。
· 基础配置和业务配置配置完成后分别save保存配置。
· 高可靠性组网中主备组网中,主设备故障时,流量自动切换到对端设备进行处理。缺省情况下,当原主设备恢复正常时,流量不回切。这时如果需要流量再次回到原主设备进行处理,可以开启主动抢占功能,并设置延迟切换时间保证业务能够平滑切回,延迟回切时间为0表示不回切。
· 负载均衡配置snat地址池时,基于地址拆分。SNAT地址池中的地址与设备连接服务器端接口的IP地址在同一网段时,必须在该SNAT地址池下配置指定免费发送ARP或ND报文接口,指定的接口是设备连接服务器的接口。不在同一网段时,如果SNAT需要通过外部路由发布出去,也需要指定免费发送ARP或ND报文接口。
以下验证过程在LB设备上进行。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,管理角色模式选择手动模式,管理角色选择主管理设备,本端地址为1.1.1.1,对端IP地址为1.1.1.2,数据通道选择三层聚合口64,配置信息一致性检查开启,时间间隔为24小时,路由联动中OSPF cost绝对值设置为6000。
如下图所示。
图249 配置双机热备
单击<确定>按钮,完成操作。
在导航栏中选择“网络>路由>OSPF”,进入OSPF列表页面。
单击<新建>按钮,选择版本为OSPFv2,实例名称为1,路由器标识为41.1.1.1。
如下图所示。
图250 配置OSPF实例
单击<确定>按钮,完成操作。
图1-4 配置OSPF区域
单击<OSPF区域数目>,进入区域配置页面。
单击<新建>,添加区域ID为0.0.0.0,网段地址为10.0.0.1/24、192.168.2.1/24的OSPFv2区域。
单击<确定>按钮,完成操作。
OSPF下引入外部路由(该功能需要在命令行下配置,web暂不支持),将源地址池和虚服务的地址发布出去,供链路交换机能学习到路由。
#
ip prefix-list prefix_list_v4_to_vs_snat index 60 permit 61.159.4.100 32
ip prefix-list prefix_list_v4_to_vs_snat index 70 permit 192.168.4.1 32
ip prefix-list prefix_list_v4_to_vs_snat index 80 permit 192.168.4.2 32
ip prefix-list prefix_list_v4_to_vs_snat index 90 permit 192.168.4.3 32
ip prefix-list prefix_list_v4_to_vs_snat index 100 permit 192.168.4.4 32
#
route-policy v4_to_vs_snat permit node 10
if-match ip address prefix-list prefix_list_v4_to_vs_snat
#
ospf 1 router-id 41.1.1.1
import-route direct route-policy v4_to_vs_snat
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 192.168.2.0 0.0.0.255
#
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,选择开启双机热备,管理角色模式选择手动模式,管理角色选择从管理设备,本端地址为1.1.1.2,对端IP地址为1.1.1.1,数据通道选择三层聚合口64,配置信息一致性检查开启,时间间隔为24小时,路由联动中OSPF cost绝对值设置为6000。。
如下图所示。
图251 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“网络>路由>OSPF”,进入OSPF列表页面。
单击<新建>按钮,选择版本为OSPFv2,实例名称为1,路由器标识为41.1.1.2。
如下图所示。
图252 配置OSPF实例
单击<确定>按钮,完成操作。
图1-6 配置OSPF区域
单击<OSPF区域数目>,进入区域配置页面。
单击<新建>,添加区域ID为0.0.0.0,网段地址为10.0.0.2/24、192.168.2.2/24的OSPFv2区域。
单击<确定>按钮,完成操作。
OSPF下引入外部路由(该功能需要在命令行下配置,web暂不支持),将源地址池和虚服务的地址发布出去,供链路交换机能学习到路由。
#
ip prefix-list prefix_list_v4_to_vs_snat index 60 permit 61.159.4.100 32
ip prefix-list prefix_list_v4_to_vs_snat index 70 permit 192.168.4.1 32
ip prefix-list prefix_list_v4_to_vs_snat index 80 permit 192.168.4.2 32
ip prefix-list prefix_list_v4_to_vs_snat index 90 permit 192.168.4.3 32
ip prefix-list prefix_list_v4_to_vs_snat index 100 permit 192.168.4.4 32
#
route-policy v4_to_vs_snat permit node 10
if-match ip address prefix-list prefix_list_v4_to_vs_snat
#
ospf 1 router-id 41.1.1.2
import-route direct route-policy v4_to_vs_snat
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 192.168.2.0 0.0.0.255
#
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为icmp,类型为ICMP的健康检测模板,配置两次探测开始时间的时间间隔5000ms,配置连续探测成功的次数为1。
如下图所示。
图253 添加健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池列表页面。
单击<新建>按钮,新建基于地址拆分的源地址池snat,配置地址范围为192.168.4.1~192.168.4.4,配置发送免费ARP或ND报文的接口。
如下图所示。
图254 添加源地址池
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测选择icmp,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图255 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.2.3,如下图所示。
图256 添加实服务组成员
图257 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.2.4和192.168.2.5。
如图所示。
图258 实服务组成员列表
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择TCP,引用实服务组sf1,并开启虚服务。
如下图所示。
图259 新建虚服务器
单击<确定>,完成操作。
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如图所示。
图260 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如图所示。
图261 备设备上高可靠性
在主设备上,在导航栏中选择“网络>路由>OSPF”,进入OSPF页面。
OSPF组网建立成功后,在主设备上,显示已启用接口数目为2,邻居数目为4。
如图所示。
图1-15 主设备上OSPF状态
主设备上查看ospf组网邻居状态,其中41.1.1.2、41.1.1.3和41.1.1.4为备机和对端交换机的router id。
RBM_P[Sysname]display ospf peer
OSPF Process 1 with Router ID 41.1.1.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
41.1.1.2 10.0.0.1 1 36 Full/DROther RAGG10.1
41.1.1.3 10.0.0.3 1 33 Full/DR RAGG10.1
41.1.1.2 192.168.2.1 1 35 Full/DROther RAGG10.2
41.1.1.4 192.168.2.254 1 39 Full/DR RAGG10.2
备设备上,在导航栏中选择“网络>路由>OSPF”,进入OSPF页面。
OSPF组网建立成功后,在备设备上,显示已启用接口数目为2,邻居数目为4。
如图所示。
图1-15 备设备上OSPF状态
备设备上查看ospf组网邻居状态,其中41.1.1.1、41.1.1.3和41.1.1.4为主机和对端交换机的router id。
RBM_S[Sysname]display ospf peer
OSPF Process 1 with Router ID 41.1.1.2
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
41.1.1.1 10.0.0.2 1 32 Full/BDR RAGG10.1
41.1.1.3 10.0.0.3 1 38 Full/DR RAGG10.1
41.1.1.1 192.168.2.2 1 31 Full/BDR RAGG10.2
41.1.1.4 192.168.2.254 1 34 Full/DR RAGG10.2
Host向地址61.159.4.100发起FTP的请求,访问成功后,在设备上在导航栏“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。
如图所示。
图262 主设备上的虚服务器统计
图263 备设上的虚服务器统计
(1) 使用icmp ping业务测试高可靠性
主设备状态正常时,Host向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图264 icmp ping业务状态
a. 手动切换主备状态
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图265 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图266 主设备上双机热备状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如下图所示。
图267 备设备上双机热备状态
业务切换到备设备上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图268 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图269 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图270 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图271 icmp ping业务状态
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图272 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如下图所示。
图273 备设备上双机热备
业务切换到备机上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图274 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图275 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图276 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如下图所示。
图277 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图278 备设备上双机热备
业务切回主设备上,没有丢包,如下图所示。
图279 icmp ping业务状态
#
ip prefix-list prefix_list_v4_to_vs_snat index 60 permit 61.159.4.100 32
ip prefix-list prefix_list_v4_to_vs_snat index 70 permit 192.168.4.1 32
ip prefix-list prefix_list_v4_to_vs_snat index 80 permit 192.168.4.2 32
ip prefix-list prefix_list_v4_to_vs_snat index 90 permit 192.168.4.3 32
ip prefix-list prefix_list_v4_to_vs_snat index 100 permit 192.168.4.4 32
#
route-policy v4_to_vs_snat permit node 10
if-match ip address prefix-list prefix_list_v4_to_vs_snat
#
interface LoopBack1
ip address 41.1.1.1 255.255.255.255
#
ospf 1 router-id 41.1.1.1
import-route direct route-policy v4_to_vs_snat
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 192.168.2.0 0.0.0.255
#
interface Route-Aggregation10.1
ip address 10.0.0.1 255.255.255.0
ospf bfd enable
vlan-type dot1q vid 336
#
interface Route-Aggregation10.2
ip address 192.168.2.1 255.255.255.0
ospf bfd enable
vlan-type dot1q vid 337
#
nqa template icmp icmp
reaction trigger probe-pass 1
#
interface Route-Aggregation64
ip address 1.1.1.1 255.255.255.0
link-aggregation mode dynamic
#
track 1 interface Route-Aggregation10 physical
#
remote-backup group
data-channel interface Route-Aggregation64
adjust-cost ospf enable absolute 6000
track 1
local-ip 1.1.1.1
remote-ip 1.1.1.2
device-role primary
#
loadbalance snat-pool snat
ip range start 192.168.4.1 end 192.168.4.4
arp-nd interface Route-Aggregation10.2
#
real-server rs1
ip address 192.168.2.3
#
real-server rs2
ip address 192.168.2.4
#
real-server rs3
ip address 192.168.2.5
#
server-farm sf1
predictor hash address source
snat-pool snat
probe icmp
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service enable
#
#
ip prefix-list prefix_list_v4_to_vs_snat index 60 permit 61.159.4.100 32
ip prefix-list prefix_list_v4_to_vs_snat index 70 permit 192.168.4.1 32
ip prefix-list prefix_list_v4_to_vs_snat index 80 permit 192.168.4.2 32
ip prefix-list prefix_list_v4_to_vs_snat index 90 permit 192.168.4.3 32
ip prefix-list prefix_list_v4_to_vs_snat index 100 permit 192.168.4.4 32
#
route-policy v4_to_vs_snat permit node 10
if-match ip address prefix-list prefix_list_v4_to_vs_snat
#
interface LoopBack1
ip address 41.1.1.2 255.255.255.255
#
ospf 1 router-id 41.1.1.2
import-route direct type 1 route-policy v4_to_vs_snat
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 192.168.2.0 0.0.0.255
#
nqa template icmp icmp
reaction trigger probe-pass 1
#
interface Route-Aggregation64
ip address 1.1.1.2 255.255.255.0
link-aggregation mode dynamic
#
remote-backup group
data-channel interface Route-Aggregation64
adjust-cost ospf enable absolute 6000
track 1
local-ip 1.1.1.2
remote-ip 1.1.1.1
device-role secondary
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation10.2
#
loadbalance snat-pool snat
ip range start 192.168.4.1 end 192.168.4.4
arp-nd interface Route-Aggregation10.2
#
real-server rs1
ip address 192.168.2.3
#
real-server rs2
ip address 192.168.2.4
#
real-server rs3
ip address 192.168.2.5
#
server-farm sf1
predictor hash address source
snat-pool snat
probe icmp
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service enable
#
随着互联网以及各行各业数字化转型的蓬勃发展,网络承载的业务越来越多,越来越重要。如何在保证网络可靠性、业务不间断传输的基础上优化网络性能、灵活扩展网络成为网络建设中必须要解决的问题。
在网络关键位置上如果只使用一台设备的情况下,无论其可靠性多高,都会存在因设备单点故障而导致网络中断的风险。因此,通常会在网络的关键位置部署两台设备,同时组建OSPFv3(Open Shortest Path First,开放最短路径优先版本3的简称,主要提供对IPv6的支持)组网,在提升网络可靠性和业务运行稳定性的基础上,优化网络性能以及灵活扩展网络结构。使用两台负载均衡设备搭建高可靠性OSPFv3主备组网,Device A作为主设备,Device B作为备设备。当Device A设备或其他链路出现故障时,业务能够被Device B设备接替继续运行业务,保证业务不中断(业务流量默认不主动回切),提升网络性能。
图280 高可靠性OSPFv3组网图
为实现两台负载均衡设备其中一台故障时,另外一台能够接替运行业务,需要完成如下配置:
· 接口下的地址、OSPFv3相关配置需要在两台设备上分别进行配置下发。
· 高可靠性相关配置需要在两台设备上分别进行配置下发,将两台设备之间直连的接口聚合作为高可靠性控制通道接口和数据通道接口。配置高可靠性,指定主从管理设备角色,指定控制通道和数据通道,开启配置自动备份和热备功能。
· 路由,健康检测等不备份的基础配置需要在两台设备上分别进行配置下发。
本举例是在L5000-AD540-G1的Release 9900P36上进行配置和验证的。
· 对负载均衡业务相关可备份的配置进行删除、修改操作时,需要在高可靠性主管理设备上进行操作,同步给高可靠性从管理设备,切勿在高可靠性从管理设备上进行修改删除操作,防止两个设备上的配置不一致。主管理设备上已有的负载均衡配置,会在开启自动同步配置信息功能后进行一次批量备份,或通过手动同步配置信息到高可靠性从管理设备上。对于路由、健康检测等不备份但需要保持一致的配置,需要在两个设备上分别进行操作配置下发。
· 接口IP地址,路由等相关配置,需要在主管理设备和从管理设备上同时手动配置并各自保存为基本配置。负载均衡相关的ISP文件,自定义监控所需的脚本文件等文件类操作需要在两台设备上分别进行导入下发,并各自进行保存。
· 目前支持配置信息同步的业务模块如下:
¡ 资源类:VPN实例、ACL(acl copy命令不支持同步)、对象组、时间段、安全域、会话管理、APR、AAA。
¡ DPI相关模块:应用层检测引擎、IPS、URL过滤、数据过滤、文件过滤、防病毒、数据分析中心、WAF。
¡ 策略类:安全策略、ASPF、攻击检测与防范(blacklist ip命令不支持同步)、连接数限制、NAT、AFT、负载均衡、带宽管理、应用审计与管理、共享上网管理、代理策略。
¡ 日志类:快速日志输出(customlog host source命令不支持同步)、Flow日志(userlog flow export source-ip命令不支持同步)。
¡ VPN类:SSL VPN。
¡ 其他类:VLAN、信息中心(info-center loghost source命令不支持同步)
· 高可靠性数据通道和控制通道推荐使用动态聚合。
· 基础配置和业务配置配置完成后分别save保存配置。
· 高可靠性组网中主备组网中,主设备故障时,流量自动切换到对端设备进行处理。缺省情况下,当原主设备恢复正常时,流量不回切。这时如果需要流量再次回到原主设备进行处理,可以开启主动抢占功能,并设置延迟切换时间保证业务能够平滑切回,延迟回切时间为0表示不回切。
· 负载均衡配置snat地址池时,基于地址拆分。SNAT地址池中的地址与设备连接服务器端接口的IP地址在同一网段时,必须在该SNAT地址池下配置指定免费发送ARP或ND报文接口,指定的接口是设备连接服务器的接口。不在同一网段时,如果SNAT需要通过外部路由发布出去,也需要指定免费发送ARP或ND报文接口。
以下验证过程在LB设备上进行。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,管理角色模式选择手动模式,管理角色选择主管理设备,本端地址为1.1.1.1,对端IP地址为1.1.1.2,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为24小时,为监控链路异常时能够进行主备切换需配置监控项,路由联动中OSPFv3 cost绝对值设置为6000。
如下图所示。
图281 配置双机热备
单击<确定>按钮,完成操作。
在导航栏中选择“网络>路由>OSPF”,进入OSPF列表页面。
单击<新建>按钮,选择版本为OSPFv3,实例名称为1,路由器标识为192.168.9.1。
如下图所示。
图282 配置OSPF实例
单击<确定>按钮,完成操作。
图1-4 配置OSPF区域
单击<OSPF区域数目>,进入区域配置页面。
单击<新建>,添加区域ID为0.0.0.0的OSPFv3区域。
单击<确定>按钮,完成操作。
图1-7配置OSPFv3接口
单击<已启用端口数目>
单击<新建>,添加区域id为0.0.0.0,接口分别是2个业务口RAGG10.1和RAGG10.2
单击<确定>按钮,完成操作。
OSPFv3下引入外部路由(该功能需要在命令行下配置,web暂不支持),将源地址池和虚服务的地址发布出去,供链路交换机能学习到路由。
#
ipv6 prefix-list prefix_list_v6_to_vs_snat index 10 permit 2030::2030 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 20 permit 2004::100 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 30 permit 2004::101 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 40 permit 2004::102 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 50 permit 2004::103 128
#
route-policy v6_to_vs_snat permit node 10
if-match ipv6 address prefix-list prefix_list_v6_to_vs_snat
#
ospfv3 1
router-id 192.168.9.1
import-route static type 1 route-policy v6_to_vs_snat
area 0.0.0.0
#
接口下配置OSPFv3 bfd,为OSPFv3邻居之间的链路提供快速检测功能,当邻居之间的链路出现故障时,加快OSPFv3协议的收敛速度。(该功能需要在命令行下配置,web暂不支持)
#
interface Route-Aggregation10.1
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 336
ipv6 address 2001::1/64
#
interface Route-Aggregation10.2
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 337
ipv6 address 2003::1/64
#
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,选择开启双机热备,管理角色模式选择手动模式,管理角色选择从管理设备,本端地址为1.1.1.2,对端IP地址为1.1.1.1,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为24小时,路由联动中OSPFv6 cost绝对值设置为6000。。
如下图所示。
图283 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“网络>路由>OSPF”,进入OSPF列表页面。
单击<新建>按钮,选择版本为OSPFv3,实例名称为1,路由器标识为192.168.9.2。
如下图所示。
图284 配置OSPFv3实例
单击<确定>按钮,完成操作。
图1-6 配置OSPFv3区域
单击<OSPF区域数目>,进入区域配置页面。
单击<新建>,添加区域ID为0.0.0.0的OSPFv3区域。
单击<确定>按钮,完成操作。
图1-7配置OSPFv3接口
单击<已启用端口数目>
单击<新建>,添加区域id为0.0.0.0,接口分别是2个业务口RAGG10.1和RAGG10.2
单击<确定>按钮,完成操作。
OSPFv3下引入外部路由(当前配置不支持web,需要在命令行下配置),将源地址池和虚服务的地址发布出去,供链路交换机能学习到路由。
#
ipv6 prefix-list prefix_list_v6_to_vs_snat index 10 permit 2030::2030 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 20 permit 2004::100 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 30 permit 2004::101 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 40 permit 2004::102 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 50 permit 2004::103 128
#
route-policy v6_to_vs_snat permit node 10
if-match ipv6 address prefix-list prefix_list_v6_to_vs_snat
#
ospfv3 1
router-id 192.168.9.2
import-route static type 1 route-policy v6_to_vs_snat
area 0.0.0.0
#
接口下配置OSPFv3 bfd,为OSPFv3邻居之间的链路提供快速检测功能,当邻居之间的链路出现故障时,加快OSPFv3协议的收敛速度。(该功能需要在命令行下配置,web暂不支持)
#
interface Route-Aggregation10.1
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 336
ipv6 address 2001::2/64
#
interface Route-Aggregation10.2
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 337
ipv6 address 2003::2/64
#
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为icmp,类型为ICMP的健康检测模板,配置两次探测开始时间的时间间隔5000ms,配置连续探测成功的次数为1。
如下图所示。
图285 添加健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池列表页面。
单击<新建>按钮,新建基于地址拆分的源地址池snat,配置地址范围为2004::100~2004::103,配置发送免费ARP或ND报文的接口。
如下图所示。
图286 添加源地址池
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测选择icmp,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图287 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为2003::10,如下图所示。
图288 添加实服务组成员
图289 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv6地址为2003::11和2003::12。
如图所示。
图290 实服务组成员列表
单击<确定>按钮,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为2030::2030,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择TCP,引用实服务组sf1,并开启虚服务。
如下图所示。
图291 新建虚服务器
单击<确定>,完成操作。
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPFv3当前状态为高可靠性未调整路由开销值。
如图所示。
图292 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPFv3的当前状态为高可靠性调整路由开销的绝对值为6000。
如图所示。
图293 备设备上高可靠性
在主设备上,在导航栏中选择“网络>路由>OSPF”,进入OSPF页面。
OSPF组网建立成功后,在主设备上,显示已启用接口数目为2,邻居数目为4。
如图所示。
图1-15 主设备上OSPFv3状态
主设备上查看ospfv3组网邻居状态,其中192.168.9.2、192.168.9.3、192.168.9.7为备设备和对端交换机的router id。
RBM_P[Sysname]display ospfv3 peer
OSPFv3 Process 1 with Router ID 192.168.9.1
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
192.168.9.2 1 Full/BDR 00:00:33 0 RAGG10.1
192.168.9.3 1 Full/DR 00:00:32 0 RAGG10.1
192.168.9.2 1 Full/BDR 00:00:30 0 RAGG10.2
192.168.9.7 1 Full/DR 00:00:40 0 RAGG10.2
在备设备上,在导航栏中选择“网络>路由>OSPF”,进入OSPF页面。
OSPF组网建立成功后,在备设备上,显示已启用接口数目为2,邻居数目为4。
如图所示。
图1-15 备设备上OSPF状态
备设备上查看ospf组网邻居状态,其中192.168.9.1、192.168.9.3、192.168.9.7为主设备和对端交换机的router id。
RBM_S[Sysname]display ospfv3 peer
OSPFv3 Process 1 with Router ID 192.168.9.2
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
192.168.9.1 1 Full/DROther 00:00:32 0 RAGG10.1
192.168.9.3 1 Full/DR 00:00:40 0 RAGG10.1
192.168.9.1 1 Full/DROther 00:00:35 0 RAGG10.2
192.168.9.7 1 Full/DR 00:00:38 0 RAGG10.2
Host向地址2030::2030发起FTP的请求,访问成功后,在设备上在导航栏“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。
如图所示。
图294 主设备上的虚服务器统计
图295 备设上的虚服务器统计
(1) 使用icmp ping业务测试高可靠性
主设备状态正常时,Host向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图296 icmp ping业务状态
a. 手动切换主备状态
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图297 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPFV3的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图298 主设备上双机热备状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPFV3当前状态为高可靠性未调整路由开销值。
如下图所示。
图299 备设备上双机热备状态
业务切换到备设备上,Host继续向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图300 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图301 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图302 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图303 icmp ping业务状态
b. 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPFV3的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图304 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPFV3当前状态为高可靠性未调整路由开销值。
如下图所示。
图305 备设备上双机热备
业务切换到备机上,Host继续向地址2030::2030发起icmp ping请求,没有丢包,如下图所示。
图306 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图307 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图308 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPFV3当前状态为高可靠性未调整路由开销值。
如下图所示。
图309 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPFV3的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图310 备设备上双机热备
业务切回主设备上,没有丢包,如下图所示。
图311 icmp ping业务状态
#
ipv6 prefix-list prefix_list_v6_to_vs_snat index 10 permit 2030::2030 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 20 permit 2004::100 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 30 permit 2004::101 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 40 permit 2004::102 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 50 permit 2004::103 128
#
route-policy v6_to_vs_snat permit node 10
if-match ipv6 address prefix-list prefix_list_v6_to_vs_snat
#
interface LoopBack1
ip address 192.168.9.1 255.255.255.255
#
ospfv3 1
router-id 192.168.9.1
import-route static type 1 route-policy v6_to_vs_snat
area 0.0.0.0
#
interface Route-Aggregation10.1
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 336
ipv6 address 2001::1/64
#
interface Route-Aggregation10.2
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 337
ipv6 address 2003::1/64
#
nqa template icmp icmp
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.1 255.255.255.0
link-aggregation mode dynamic
#
track 1 interface Route-Aggregation10 physical
#
remote-backup group
data-channel interface Route-Aggregation1
adjust-cost ospfv3 enable absolute 6000
track 1
local-ip 1.1.1.1
remote-ip 1.1.1.2
device-role primary
#
loadbalance snat-pool snat
ipv6 range start 2004::100 end 2004::103
arp-nd interface Route-Aggregation10.2
#
real-server rs1
ipv6 address 2003::10
success-criteria at-least 1
#
real-server rs2
ipv6 address 2003::11
success-criteria at-least 1
#
real-server rs3
ipv6 address 2003::12
success-criteria at-least 1
#
server-farm sf1
predictor hash address source
snat-pool snat
probe icmp
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
virtual-server vs type tcp
virtual ipv6 address 2030::2030
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service enable
#
#
ipv6 prefix-list prefix_list_v6_to_vs_snat index 10 permit 2030::2030 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 20 permit 2004::100 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 30 permit 2004::101 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 40 permit 2004::102 128
ipv6 prefix-list prefix_list_v6_to_vs_snat index 50 permit 2004::103 128
#
route-policy v6_to_vs_snat permit node 10
if-match ipv6 address prefix-list prefix_list_v6_to_vs_snat
#
interface LoopBack1
ip address 192.168.9.2 255.255.255.255
#
ospfv3 1
router-id 192.168.9.2
import-route static type 1 route-policy v6_to_vs_snat
area 0.0.0.0
#
interface Route-Aggregation10.1
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 336
ipv6 address 2001::2/64
#
interface Route-Aggregation10.2
ospfv3 1 area 0.0.0.0
ospfv3 bfd enable
vlan-type dot1q vid 337
ipv6 address 2003::2/64
#
nqa template icmp icmp
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.2 255.255.255.0
link-aggregation mode dynamic
#
remote-backup group
data-channel interface Route-Aggregation1
adjust-cost ospfv3 enable absolute 6000
track 1
local-ip 1.1.1.2
remote-ip 1.1.1.1
device-role secondary
#
loadbalance snat-pool snat
ipv6 range start 2004::100 end 2004::103
arp-nd interface Route-Aggregation10.2
#
real-server rs1
ipv6 address 2003::10
success-criteria at-least 1
#
real-server rs2
ipv6 address 2003::11
success-criteria at-least 1
#
real-server rs3
ipv6 address 2003::12
success-criteria at-least 1
#
server-farm sf1
predictor hash address source
snat-pool snat
probe icmp
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
virtual-server vs type tcp
virtual ipv6 address 2030::2030
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将在三台服务器之间负载分担,LB设备上配置源地址哈希算法,每一个用户的请求必须分配到同一个服务器上。当其中一个实服务器出现健康检测震荡,建立在其他服务器上的相同源地址的用户依然要分配到同一个服务器上面去。此时源地址哈希算法必须和源地址持续性一起使用,以防止已有的用户业务出现闪断。
图312 基于源地址哈希与源地址持续性的七层负载组网图
为实现基于源地址哈希与源地址持续性的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置地址端口类型的持续性组,持续性方法为源地址。。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 配置持续性方法为源地址持续性。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图313 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,如下图所示。
图314 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图315 添加实服务组成员
图316 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图317 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>按钮,创建地址端口类型的持续性sg-add,源地址持续性方法。
图318 新建地址端口类型的持续性组,源地址持续性方法
单击<确定>,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务IP为61.159.4.100,实服务组为sf1,引用地址端口类型的持续性sg-add,开启虚服务,如下图所示。
图319 新建虚服务器
单击<确定>按钮,完成操作。
图320 查看实服务组sf状态
客户端向服务器发起一个源地址多个端口的HTTP请求,查看实服务器统计信息,只有rs1有流量:
图321 查看实服务器统计信息
图322 查看实服务组sf1状态
查看实服务器统计信息:由于虚服务配置了源地址持续性方法,当实服务器出现健康检测失败后又成功时,同一源地址,不同端口的请求仍然分配到同一台实服务器上。查看实服务器统计信息,仍然只有rs1有流量。
图323 查看实服务器统计信息
#
nqa template tcp t1
destination port 80
#
sticky-group sg-add type address-port
ip source
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1 sticky sg-add
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将在三台服务器之间负载分担。LB设备上配置最小连接算法和源地址持续性,在服务器负载分担不均匀的场景下,要求每一个用户发送的请求必须分配到同一个服务器上。配置温暖上线功能,当其中一个实服务器出现健康检测失败后又成功的情况下,所有的新建流量不会全部突发到这个服务器上,避免服务器出现反复up、down的问题。
图324 基于最小连接算法+源地址持续性+温暖上线的七层负载组网图
为实现基于最小连接算法+源地址持续性+温暖上线的七层应用负载均衡,需要在LB设备上完成如下配置:
· 实服务组上配置温暖上线功能。最小连接算法必须要和温暖上线一起使用的原因:如果出现服务器健康检测失败后又UP起来,所有的新建都会突发到这个服务器上面去,又导致这个服务器down掉,这样就会导致服务器反复UP,down。
· 配置地址端口类型的持续性组,持续性方法为源地址。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组需要开启温暖上线功能。
· 持续性方法为源地址。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图325 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为基于成员的加权最小连接算法,开启温暖上线功能,健康检测方法选择t1,如下图所示。
图326 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图327 添加实服务组成员
图328 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图329 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>按钮,创建地址端口类型的持续性sg-add,源地址持续性方法。
图330 新建地址端口类型的持续性组,源地址持续性方法
单击<确定>,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡> 应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务IP为61.159.4.100,实服务组为sf1,引用地址端口类型的持续性sg-add,开启虚服务,如下图所示。
图331 新建虚服务器
单击<确定>按钮,完成操作。
图332 实服务器统计信息
图333 实服务器统计信息
客户端再次发起这个源地址的访问,查看实服务器流量统计,流量仍然分配到rs3上
图334 实服务器统计信息
图335 实服务组sf1状态
客户端向服务器发起HTTP请求,查看实服务器统计信息,rs1和rs2均匀分担流量:
图336 实服务器统计信息
图337 实服务组sf1状态
查看实服务器统计信息:由于实服务组配置温暖上线,当rs3健康检测成功后,所有的新建流量不会全部分配到rs3上面,查看三台实服务器,都有新建流量分配。查看rs3流量统计,rs3健康检测成功后,流量计数缓慢增加。
图338 实服务器统计信息
单击<刷新>按钮。
图339 实服务器统计信息
图340 实服务组sf1状态
客户端向服务器发起HTTP请求,查看实服务器统计信息,rs1和rs2均匀分担流量。
图341 实服务器统计信息
图342 实服务组sf1状态
查看实服务器统计信息:由于实服务组配置了最小连接算法,实服务组密钥配置温暖上线功能,当rs3健康检测成功后,所有的新建流量都会分配到rs3上面,查看rs3流量统计,rs3健康检测成功后,流量计数迅速增加。
图343 查看实服务器统计信息
单击<刷新>按钮。
图344 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor least-connection member
probe t1
success-criteria at-least 1
slow-online standby-time 15 ramp-up-time 30
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
sticky-group sg-add type address-port
ip source
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1 sticky sg-add
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,Host通过LB设备对6台服务器进行访问,6台服务器Server A、Server B、Server C、Server D、Server E、Server F均可提供HTTP服务;Host访问服务器的流量会根据Host访问的URL在六台服务器之间负载分担:URL中含有sports、government、news的请求分给Server A和Server D,URL中含有finance、technology、shopping的请求分给Server B和ServerE,其他URL的请求分给ServerC和Server F。
图345 基于URL的七层负载组网图
为实现基于URL的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置策略,类和动作,类中配置匹配URL的规则,使得URL中含有sports、government、news的请求分给Server A和Server D,URL中含有finance、technology、shopping的请求分给Server B和Server E,其他URL的请求分给Server C和Server F。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 如果一个HTTP带有多个请求,请配置逐请求负载均衡。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图346 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,如下图所示。
图347 新建实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
图348 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图349 添加实服务组成员
图350 新建实服务器
单击<确定>按钮,完成操作。
图351 实服务器信息
单击<确定>按钮,完成操作。
创建其余5个实服务器与配置rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs11,配置其IPv4地址为192.168.1.11。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,添加成员列表,参照上图步骤创建实服务器rs2和rs12,分别配置其IPv4地址为192.168.1.2和192.168.1.12。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf3,添加成员列表,参照上图步骤创建实服务器rs3和rs13,分别配置其IPv4地址为192.168.1.3和192.168.1.13。
创建HTTP Cookie类型的持续性组。配置持续性方法为Cookie插入,名字为cookie1。(Cookie插入,即在服务器发送的HTTP应答报文中插入Set-cookie字段用于持续性处理)。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>,新建持续组名称为sg1,类型为http-cookie,Cookie持续性方法:Cookie插入,Cookie名称为cookie1,如下图所示。
图352 新建持续性组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>,新建流量特征名称为lc1,类型选择HTTP,匹配方式为匹配任意一条规则:
· match ID为1,类型选择URL,URL为sports,单击<确定>。
· match ID为2,类型选择URL,URL为news,单击<确定>。
· match ID为3,类型选择URL,URL为government,单击<确定>。
图353 新建流量特征lc1
单击<确定>按钮,完成操作。
单击<确定>按钮,完成操作。
单击<确定>,完成操作。
图354 流量特征信息
创建lc2与lc1步骤相同,配置参数如下图所示。
图355 流量特征lc2信息
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,新建动作名称为la1,类型选择HTTP,主用实服务组sf1,持续性组为sg1,如下图所示。
图356 新建动作信息
单击<确定>,完成操作。
负载均衡动作la2、la3与la1创建步骤相同,la2主用实服务组sf2,la3主用实服务组sf3,la2、la3配置参数分别如图6-13、图6-14所示。
图357 la2配置参数
图358 la3配置参数
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,新建策略名称为lp1,类型选择HTTP,规则单击<新建>,流量特征选择lc1,动作选择la1,单击<确定>;再次单击<新建>,流量特征选择lc2,动作选择la2,单击<确定>;默认动作选择la3,如下图所示。
图359 新建策略信息
单击<确定>,完成操作。
图360 策略lp1配置信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为pp1,类型选择HTTP,开启逐请求负载均衡,如下图所示。
图361 新建参数模板信息
单击<确定>,完成操作。
创建HTTP类型的虚服务vs,配置其VSIP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务,如下图所示。
图362 新建虚服务器
单击<确定>,完成操作。
虚服务有统计信息:
图363 虚服务统计信息
当发起URL中包含sports、news、government的请求时,流量特征匹配lc1,此时rs11有流量统计:
图364 实服务统计信息
当发起URL中包含finance、technology、shopping的请求时,流量特征匹配lc2,此时rs12有流量统计:
图365 实服务统计信息
当发起URL中包含aaa的请求时,流量特征匹配不上lc1和lc2,走默认的lc3,此时rs13有流量统计:
图366 实服务统计信息
同时发起URL中包含aaa、sports、news、government、 finance、technology、shopping的请求,统计如下:
图367 虚服务统计信息
图368 实服务组统计信息
图369 实服务统计信息
图370 客户端抓包报文
查看实服务器统计只有rs11命中:
图371 实服务统计信息
再次发起带有这个Cookie值的报文请求:Cookie: cookie1=2.8.3267f431.0,查看持续性生效,只有rs11有统计:
图372 实服务统计信息
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
server-farm sf3
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
real-server rs13 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs11
ip address 192.168.1.11
#
real-server rs2
ip address 192.168.1.2
#
real-server rs12
ip address 192.168.1.12
#
real-server rs3
ip address 192.168.1.3
#
real-server rs13
ip address 192.168.1.13
#
loadbalance class lc1 type http match-any
match 1 url sports
match 2 url news
match 3 url government
#
loadbalance class lc2 type http match-any
match 1 url finance
match 2 url technology
match 3 url shopping
#
loadbalance action la1 type http
server-farm sf1 sticky sg1
#
loadbalance action la2 type http
server-farm sf2 sticky sg1
#
loadbalance action la3 type http
server-farm sf3 sticky sg1
#
loadbalance policy lp1 type http
class lc1 action la1
class lc2 action la2
default-class action la3
#
sticky-group sg1 type http-cookie
cookie insert name cookie1
check all-packet
#
parameter-profile pp1 type http
rebalance per-request
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
sticky-sync enable global
service enable
#
如图所示,Host访问域名,通过DNS server将域名解析出虚服务器地址,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担。
图373 基于host的七层负载组网图
为实现基于host的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置策略,类和动作,类中配置匹配host的规则,使得host是www.1.example.com的请求分给Server A,host是www.2.example.com的请求分给Server B,host是www.3.example.com的请求分给Server C。
· DNS server提供解析DNS域名的服务,解析域名后的地址返回给Host。
· LB虚服务地址是DNS域名解析后的地址,使得Host再次发起请求时是对虚服务的请求。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host与DNS server路由可达,Host可以直接将DNS服务器指向DNS server。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
· DNS server解析域名的地址跟LB上虚服务的地址一致。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图374 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,如下图所示。
图375 新建实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
图376 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图377 添加实服务组成员
图378 新建实服务器
单击<确定>按钮,完成操作。
图379 实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,添加成员列表,参照上图步骤创建实服务器rs2,配置其IPv4地址为192.168.1.2。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf3,添加成员列表,参照上图步骤创建实服务器rs3,配置其IPv4地址为192.168.1.3。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面,单击<新建>新建
流量特征名称为lc1,类型选择HTTP,匹配方式为匹配所有规则,Match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.1.example.com,如下图所示。
图380 新建流量特征
单击<确定>按钮,完成操作。
图381 流量特征信息
按照lc1的步骤依次分别新建lc2、lc3:
新建流量特征名称为lc2,类型选择HTTP,匹配方式为匹配所有规则,match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.2.example.com。
新建流量特征名称为lc3,类型选择HTTP,匹配方式为匹配所有规则,match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.3.example.com。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,新建动作名称为la1,类型选择HTTP,主用实服务组sf1,如下图所示。
图382 新建动作信息
单击<确定>,完成操作。
创建la2、la3与la1步骤相同,la2主用实服务组是sf2,la3主用实服务组是sf3。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,新建策略名称为lp1,类型选择HTTP,规则单击<新建>,流量特征选择lc1,动作选择la1,单击<确定>。再次单击<新建>,流量特征选择lc2,动作选择la2,单击<确定>。再次单击<新建>,流量特征选择lc3,动作选择la3,单击<确定>,如下图所示。
图383 新建策略
图384 新建策略信息
单击<确定>,完成操作。
创建HTTP类型的虚服务vs,配置其VSIP为61.159.4.100,应用负载均衡策略lp1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,并开启虚服务,如下图所示。
图385 新建虚服务器
单击<确定>,完成操作。
图386 虚服务器统计信息
当发起访问www.1.example.com请求时,流量特征匹配lc1,此时rs1有流量统计:
图387 实服务器统计信息
当发起访问www.2.example.com请求时,流量特征匹配lc2,此时rs2有流量统计:
图388 查看实服务器统计信息
当发起访问www.3.example.com请求时,流量特征匹配lc3,此时rs3有流量统计:
图389 查看实服务器统计信息
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf3
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http
match 1 header host value www.1.example.com
#
loadbalance class lc2 type http
match 1 header host value www.2.example.com
#
loadbalance class lc3 type http
match 1 header host value www.3.example.com
#
loadbalance action la1 type http
server-farm sf1
#
loadbalance action la2 type http
server-farm sf2
#
loadbalance action la3 type http
server-farm sf3
#
loadbalance policy lp1 type http
class lc1 action la1
class lc2 action la2
class lc3 action la3
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
lb-policy lp1
sticky-sync enable global
service enable
#
如图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务;Host访问服务器的流量会根据三台服务器的优先级进行选择,如果实服务组中配置了限制调度的个数,实服务器优先级跟调度个数会共同对实服务器进行调度,实现负载分担。
图390 基于优先级调度七层服务器负载组网图
为实现基于优先级调度的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 若需要将流量只分配给优先级最高的服务器时,实服务组中配置可选择的实服务器的数量为1,实服务器配置不同的优先级分别为4、8、1。
· 若需要将流量分配给其中两台服务器时,实服务组中配置可选择的实服务器的数量为2,实服务器配置不同的优先级分别为4、8、1。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组中配置可选择的实服务器数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图391 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,勾选“限制可被调度算法调用的实服务器数量”,最小数量与最大数量均配置成1,如下图所示。
图392 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,优先级为4,实服务组选择sf1,如下图所示。
图393 添加实服务组成员
图394 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
图395 实服务组信息
创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图396 新建虚服务器
单击<确定>按钮,完成操作。
图397 虚服务统计信息
图398 实服务器统计信息
图399 虚服务器统计信息
图400 实服务器统计信息
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
selected-server min 1 max 1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
priority 8
success-criteria at-least 1
real-server rs3 port 0
priority 1
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
default server-farm sf1
sticky-sync enable global
service enable
#
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
如图所示,内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换,且其中将访问URL含关键字government的客户端地址透传给实服务器C,以便实服务器甄别客户端做进一步安全性处理;其它URL流量在实服务器A和B之间负载分担。
图401 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建负载均衡策略,其中对于URL包含government的访问请求,动作中启用插入X-Forwarded-For字段以便携带客户端源地址;其它URL直接负载分担到实服务器。
· 创建HTTP类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址
本举例是在L5000-AD520-G的Release 9900P21版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· SNAT地址池的地址与出接口同网段时,需要在地址池上配置免费发送ARP。
· HTTP报文中的首部内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%is:源IP地址或源IPv6地址。%ps:源端口号。%id:目的IP地址或目的IPv6地址。%pd:目的端口号。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图402 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,配置起始地址和结束地址为接口同网段公网地址192.168.1.253,配置发送免费ARP或ND报文的接口,如下图所示。
图403 新建源地址池
单击<确定>,完成操作。
图404 源地址池信息
单击<确定>,完成操作。
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
负载均衡>应用负载>实服务组,单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,源地址池选择snat1。
图405 新建实服务组sf1
单击<确定>按钮,完成操作。
# 创建实服务组sf2,采用的调度算法为加权轮转,选择源地址池snat1。
负载均衡>应用负载>实服务组,新建实服务组sf2,调度算法选择加权轮转,健康检测方法选择t1,源地址池选择snat1,单击<确定>。
图406 新建实服务组sf2
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器rs1,IP地址为192.168.1.1,。单击<确定>。
图407 添加实服务组成员
图408 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2和rs3与创建rs1步骤相同
负载均衡>应用负载>实服务组,编辑实服务组sf1,添加成员列表,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2。
负载均衡>应用负载>实服务组,编辑实服务组sf2,添加成员列表,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3。
图409 实服务组信息
负载均衡>应用负载>高级策略>流量特征,新建HTTP类型的流量特征名称为lc1,识别访问请求中URL含government关键字的用户。
图410 新建流量特征
单击<确定>按钮,完成操作。
图411 流量特征信息
# 新建HTTP类型的动作名称为la1,为转发到实服务组sf2,并启用插入X-Forwarded-For字段。
负载均衡>应用负载>高级策略>动作,新建HTTP类型的动作名称为la1为转发到实服务组sf2,并启用插入X-Forwarded-For字段。
图412 新建动作
# 新建HTTP类型的动作名称为la2,为转发到实服务组sf1
负载均衡>应用负载>高级策略>动作,新建HTTP类型的动作名称为la2为转发到实服务组sf1。
图413 新建动作
# 创建HTTP类型的负载均衡策略lp1,配置默认动作为la2,流量特征为lc1的动作为为la1。
负载均衡>应用负载>高级策略>负载均衡策略,新建HTTP类型的策略名称为lp1,默认动作为la2,新建规则流量特征为lc1动作为la1。
图414 新建策略
单击<确定>,完成操作。
图415 新建策略信息
创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“负载均衡>应用负载>参数模板”,单击<新建>,创建HTTP类型参数模板pp1,开启每请求执行动作。
图416 新建参数模板
创建HTTP类型的虚服务vs,配置其VSIP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务,如下图所示。
图417 新建虚服务器
图418 虚服务统计信息
图419 实服务统计信息
图420 虚服务统计信息
图421 实服务统计信息
3.大量Host通过http:// 61.159.4.100访问HTTP服务器,访问成功,在服务器端抓包可以看到URL中含government的请求,且请求报文中含有名字为x-forwarded-for、值为客户源地址的Header
#
nqa template http t1
expect status 200
#
loadbalance snat-pool snat1
ip range start 192.168.1.252 end 192.168.1.252
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf2
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http
match 1 url government
#
loadbalance action la1 type http
server-farm sf2
header insert request name X-Forwarded-For value %is
#
loadbalance action la2 type http
server-farm sf1
#
loadbalance policy lp1 type http
class lc1 action la1
default-class action la2
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
parameter-profile pp1 type http
header modify per-request
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
sticky-sync enable global
service enable
#
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
如图所示,内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换。
图422 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建HTTP类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图423 新建健康检测模板

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,配置起始地址和结束地址为接口同网段公网地址7::6和7::6,配置发送免费ARP或ND报文的接口,如下图所示。
图424 新建源地址池


单击<确定>,完成操作。
图425 源地址池信息

单击<确定>,完成操作。
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
负载均衡>应用负载>实服务组,单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,源地址池选择snat1。
图426 新建实服务组sf1


单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器rs1,IP地址为7::2。单击<确定>。
图427 添加实服务组成员

图428 新建实服务器

单击<确定>按钮,完成操作。
参照上图在实服务组sf1下创建实服务器rs2,配置其IPv6地址为7::3,创建实服务器rs3, 配置其IPv6地址为7::4。
图429 实服务组信息

创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“负载均衡>应用负载>参数模板”,单击<新建>,创建HTTP类型参数模板pp1,开启每请求执行动作。
图430 新建参数模板


创建HTTP类型的虚服务vs,配置其VSIP为200::1,应用实服务组sf1,以及参数模板pp1,开启插入X-Forwarded-For功能,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为200::1,指定默认实服务组sf1,参数模板pp1,开启插入X-Forwarded-For功能,并开启虚服务,如下图所示。
图431 新建虚服务器



#
nqa template http t1
expect status 200
#
parameter-profile pp1 type http
rebalance per-request
header modify per-request
#
loadbalance snat-pool snat1
ipv6 range start 7::6 end 7::7
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ipv6 address 7::2
#
real-server rs2
ipv6 address 7::3
#
real-server rs3
ipv6 address 7::4
#
virtual-server vs type http
virtual ipv6 address 200::1
parameter http pp1
default server-farm sf1
sticky-sync enable global
service-down-action reset
insert-xff enable
service enable
#
根据请求中的URL分类,将HTTP请求重定向为HTTPS请求。
Host通过LB设备对3台服务器进行访问。服务器上配置HTTP协议和HTTPS协议。
三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
针对如下URL,要求配置HTTP请求自动重定向到HTTPS请求。
|
原请求路径 |
重定向路径 |
|
http://61.159.4.100/login/index.html |
https://61.159.4.100:443/login/index.html |
图432 LB设备基于URL重定向组网图
为了实现基于URL的策略重定向功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、负载均衡策略。
· 将CA证书和本地证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置虚服务,并在虚服务下应用策略。
· 根据请求中的URL分类,将HTTP请求重定向为HTTPS请求。
· 创建HTTP类型的参数模板,开启逐请求负载均衡。
· 如果HTTP类型的虚服务器端口号非80或者重定后的端口号非443,负载均衡动作需要配置为redirect relocation https://%h:端口号%p,举例https://%h:端口号%p。
· 如果HTTP类型的虚服务器端口号为80且重定后的端口号为443,负载均衡动作需可以配置为redirect relocation https://%h%p。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· HTTPS类型虚服务器对应的实服务器使用端口号为80。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图433 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图434 新建实服务组

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口为80,如下图所示。
图435 添加实服务组成员

图436 新建实服务器

单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,端口均为80。
图437 实服务组信息

匹配http://61.159.4.100/login/index.html等URL中带有/login关键字的HTTP请求流量
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面,新建流量特征名称为lc-http,新建规格match ID为1,类型为URL,URL为/login。
图438 新建流量特征lc-http



将HTTP请求报文重定向为HTTPS请求报文的动作http-https。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面,新建动作名称为http-https,类型为HTTP重定向,重定向URL为https://%{host}%p。
图439 新建动作

将上述流量特征和动作关联实现如下功能:
(1) 策略lp1将URL中带有/login的HTTP报文重定向为HTTPS报文
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建负载均衡策略lp1,类型为HTTP,新建规则流量特征为lc-http,动作为http-https
图440 新建负载均衡策略lp1



在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图441 新建PKI域

单击<确定>按钮,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图442 导入证书

证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图443 导入CA证书

点击<确定>后点击<是>确认指纹信息。
图444 证书指纹信息

证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图445 导入本地证书

单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,如下图所示。
图446 新建SSL服务器端策略

单击<确定>按钮,完成操作。
创建HTTP类型的参数模板,开启逐请求负载均衡。
在导航栏中选择“负载均衡>应用负载>参数模板”,单击<新建>,创建HTTP类型参数模板pp1,开启逐请求负载均衡。
图447 新建参数模板


#配置两个虚服务,分别响应HTTP请求报文和HTTPS请求报文
负载均衡>应用负载>虚服务器,新建虚服务器vs1,类型为HTTP,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为80,应用负载均衡策略lp1以及参数模板pp1,并开启虚服务单击<确定>。
图448 新建虚服务器vs1


单击<确定>按钮,完成操作。
负载均衡>应用负载>虚服务器,新建虚服务器vs2,类型为HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用SSL服务端策略ssl,参数模板pp1,并开启虚服务。
图449 新建虚服务器vs2


单击<确定>按钮,完成操作。
输入:http://61.159.4.100/login/index.html回车之后将会重定向为https://61.159.4.100/login/index.html。
图450 HOST端抓包如下:
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
#
ssl server-policy ssl
pki-domain ca
ciphersuite ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256 ecdhe_rsa_aes_256_gcm_sha384 rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha
ciphersuite ecdhe_ecdsa_aes_256_cbc_sha
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
parameter-profile pp1 type http
rebalance per-request
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
loadbalance class lc-http type http match-any
match 1 url /login
#
loadbalance action http-https type http
redirect relocation https://%{host}:8080%p
#
loadbalance policy lp1 type http
class lc-http action http-https
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs1 type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
default server-farm sf1
sticky-sync enable global
service-down-action reset
service enable
#
virtual-server vs2 type http
port 443
virtual ip address 61.159.4.100
parameter http pp1
default server-farm sf1
ssl-server-policy ssl
sticky-sync enable global
service-down-action reset
service enable
#
将实服务器返回的重定向报文中的location内容修改成指定内容。
Host通过LB设备对四台服务器进行访问。四台服务器均可提供HTTP服务,其中一组服务器提供8080端口的HTTP服务,另外一组服务器提供80端口的HTTP服务,根据不同的用户请求,将实服务器返回的重定向报文中的location内容修改成指定内容。Host访问服务器的流量会在四台服务器之间负载分担,LB设备向用户提供的端口为80。
实服务器上配置有重定向功能:用户URL为【/test1】时重定向的地址为【服务器IP+服务器端口】、用户URL为【/test2】时重定向的地址为【虚服务IP+服务器端口】、用户URL为【/test3】时重定向的地址为【域名+服务器端口】。LB设备需要将这些重定向报文修改成【虚服务IP+虚服务端口】发给用户。
用户的请求和回应有如下对应关系:
|
用户请求 |
RealServer回应 |
|
http://VIP/test1 |
重定向location:http://RS_IP:8080/ |
|
http://VIP/test2 |
重定向location:http://VIP:8080/ |
|
http://VIP/test3 |
重定向location:http://HOST:8080/ |
|
http://VIP/ |
200 OK |
对于RealServer回应的重定向报文有如下转换:
|
原重定向报文 |
修改后的重定向报文 |
|
location:http://RS_IP:8080/ |
location:http://VIP/ |
|
location:http://VIP:8080/ |
location:http://VIP/ |
|
location:http://HOST:8080/ |
location:http://VIP/ |
图451 LB设备HTTP重定向内容改写组网图
用户访问URL中含test1时,三个RS均会回应重定向location:http://RS_IP:8080/;用户访问URL中含test2时,三个RS均会回应重定向location:http://VIP:8080/;用户访问URL中含test3时,三个RS均会回应重定向location:http://HOST:8080/。LB需要将所有重定向报文中的location修改为统一的location:http://VIP/。当用户再次以该URL进行访问时,实服务器将正常回应OK报文。
RS上如何配置重定向在此举例中忽略。
为了修改实服务器返回的重定向报文中的location,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· 配置负载均衡策略,区分含有test1、test2或者test3的URL,与不携带这些字符串的URL;利用动作来修改RS回应的重定向报文中的location。
· 配置虚服务,并在虚服务下应用策略。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 相应的实服务器使用端口号为8080。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
本例中采用两个RS分别回应重定向或200 OK报文,用户也可以根据实际情况在一台RS上进行设置
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图452 新建健康检测模板t1

单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测选择t1的实服务组,如下图所示。
图453 新建实服务组

单击<确定>按钮,完成操作。
再以同样方法添加实服务组sf2,用于客户端根据重定向内容重新发起请求的分配。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口号为8080,如下图所示。
图454 添加实服务组成员

图455 新建实服务器

单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为8080。
负载均衡>应用负载>实服务组,编辑实服务组sf2,单击添加实服务组成员,参照上图新建实服务器rs11、rs12,分别配置其IPv4地址为192.168.1.11和192.168.1.12、实服务器端口为80。
图456 实服务组信息

匹配URL中带有test1、test2或者test3关键字的HTTP请求流量。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面,新建流量特征名称为lc1,类型为HTTP,选择匹配任意一条规则,新建匹配规则match ID为1、类型为URL、URL为test1,新建匹配规则match ID为2、类型为URL、URL为test2,新建匹配规则match ID为3、类型为URL、URL为test3。
图457 新建流量特征


图458 流量特征lc1参数

将用户URL中含test1、test2或者test3的请求报文发送给实服务组sf1。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面,新建动作名称为la1,类型为HTTP,主用实服务组为sf1。在Header重写处,新建Header重写,将实服务器回应的重定向报文中的location修改为http://VIP/。其中Header名称为location,Header值为“.*:8080(.*)”,替换成的资源串为http://61.159.4.100%1。注:【%1代表的是将(.*)内容照抄,即不改变url】
图459 新建动作




将用户重新按照重定向内容发出的请求报文发送给实服务组sf2。
负载均衡>应用负载>高级策略>动作>新建:动作名称为la2,类型为HTTP,主用实服务组为sf2。
图460 新建动作

将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test1、test2或者test3)的请求报文,动作为la1(即发送给实服务组sf1,并将返回的重定向报文中的location改写为http://VIP/);其它不匹配流量特征lc1的请求报文,动作为la2(即发送给实服务组sf2)。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建应用负载均衡策略名称为lp1,类型为HTTP,默认动作为la2,新建规则流量特征为lc1、动作为la1。
图461 新建策略



在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面
新建HTTP类型的参数模板名称为pp1,类型选择HTTP,并开启逐请求负载均衡。
图462 新建参数模板


配置HTTP类型的虚服务VS,端口为80
负载均衡>应用负载>虚服务器,新建HTTP类型的虚服务器vs,IP为61.159.4.100,端口号为80,引用lb策略lp1,绑定参数模板pp1,并开启虚服务,单击<确定>。
图463 新建虚服务器


客户端以http://61.159.4.100/test1.html 访问LB设备,实服务器回应重定向报文,其中location为http://192.168.1.1:8080/,经过LB后返给客户端的重定向location为http://60.159.4.100/,客户端随即用该URL访问虚服务成功。
客户端以http://61.159.4.100/test2.html 访问LB设备,实服务器回应重定向报文,其中location为http://61.159.4.100:8080/,经过LB后返给客户端的重定向location为http://61.159.4.100/,客户端随即用该URL访问虚服务成功。
客户端以http://61.159.4.100/test3.html 访问LB设备,实服务器回应重定向报文,其中location为http://www.hello.com:8080/,经过LB后返给客户端的重定向location为http://61.159.4.100/,客户端随即用该URL访问虚服务成功。
#
nqa template http t1
expect status 200
#
parameter-profile pp1 type http
rebalance per-request
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 8080
success-criteria at-least 1
real-server rs2 port 8080
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs11 port 80
success-criteria at-least 1
real-server rs12 port 80
success-criteria at-least 1
#
loadbalance class lc1 type http match-any
match 1 url test1
match 2 url test2
match 3 url test3
#
loadbalance action la1 type http
server-farm sf1
header rewrite response name Location value .*:8080(.*) replace http://61.159.4
.100%1
#
loadbalance action la2 type http
server-farm sf2
#
loadbalance policy lp1 type http
class lc1 action la1
default-class action la2
#
real-server rs1
ip address 192.168.1.1
#
real-server rs11
ip address 192.168.1.11
#
real-server rs12
ip address 192.168.1.12
#
real-server rs2
ip address 192.168.1.2
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
sticky-sync enable global
service enable
#
如图所示,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,通过在LB设备上配置HTTP类型的负载均衡动作,实现对HTTP的Header进行插入、重写、删除操作。
图464 HTTP的Header插入、重写、删除组网图
为实现HTTP的Header插入、重写、删除功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务、负载均衡策略。
· LB设备可以对HTTP的Header进行插入、重写、删除的操作
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· Host端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· Action中需要引用实服务组。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图465 新建健康检测模板

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图466 新建实服务组

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图467 添加实服务组成员

图468 新建实服务器

单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图469 实服务组信息

匹配URL中带有test关键字的HTTP请求流量
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面,新建流量特征名称为lc1,类型为HTTP,选择匹配任意一条规则,新建匹配规则Match ID为1、类型为URL、URL为test。
图470 新建流量特征



在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面,新建动作名称为la1,类型为HTTP,主用实服务器为sf1。
Header删除,新建方向为应答,Header名称为content-type。
Header插入,新建方向为双向,Header名称为header-insert-name,Header值为21
Header重写,新建方向为请求,Header名称为host,Header值为61.159.4.100,替换成的资源串为host.com。
图471 新建动作








单击<确定>,新建动作
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test)的请求报文,动作为la1(即发送给实服务组sf1,并将处理http头部)。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建负载均衡策略为lp1,类型为HTTP,新建规则流量特征为lc1、动作为la1。
图472 新建负载均衡策略



配置HTTP类型的虚服务vs1,端口为80
负载均衡>应用负载>虚服务器,新建虚服务名称为vs1,类型HTTP,IP为61.159.4.100,端口号为80,其默认实服务组为sf1,引用lb策略lp1,并开启虚服务,单击<确定>。
图473 新建虚服务器


查看客户端及服务器端的抓包
(1) 客户端request报文
图474 Header 插入的客户端request报文

(2) 服务器端request报文
图475 Header 插入的服务器端request报文

(3) 服务器端response报文
图476 Header 插入的服务器端response报文

(4) 客户端response报文
图477 Header 插入的客户端response报文

(1) 客户端request报文
图478 Header 重写的客户端request报文

(2) 服务器端request报文
图479 Header 重写的服务器端request报文

客户端抓包,相对于服务器端抓包,应答方向的HTTP报文中的Header内容content-type被删除。
(1) 服务器端response报文
图480 Header 删除的服务器端response报文

(2) 客户端response报文
图481 Header 删除的客户端response报文

#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http match-any
match 1 url test
#
loadbalance action la1 type http
server-farm sf1
header delete response name Content-Type
header insert both name header-insert-name value 21
header rewrite request name Host value 61.159.4.100 replace host.com
#
loadbalance policy lp1 type http
class lc1 action la1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs1 type http
virtual ip address 61.159.4.100
lb-policy lp1
default server-farm sf1
sticky-sync enable global
service-down-action reset
service enable
#
HOST通过LB设备对三台服务器进行访问,两台服务器均可提供HTTP服务,可对HTTP的Cookie进行插入、重写、截取操作。
insert表示持续性方法为Cookie插入,即在服务器发送的HTTP应答报文中插入Set-Cookie字段用于持续性处理。
rewrite表示持续性方法为Cookie重写,即改写服务器发送的HTTP应答报文所携带的Set-Cookie字段用于持续性处理。
get表示持续性方法为Cookie截取,即在服务器发送的HTTP应答报文中截取Set-Cookie字段用于持续性处理。
图482 HTTP的Cookie插入、重写、截取组网图
为实现HTTP的Cookie插入、重写、截取功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务、持续性组。
· LB设备可以对HTTP的Cookie进行插入、重写、截取的操作,并可通过持续性的处理,来控制业务分配给具体的服务器。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· HOST端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· 虚服务中需要引用持续性组
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图483 新建健康检测模板

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图484 新建实服务组

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图485 添加实服务组成员

图486 新建实服务器

单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图487 实服务组信息

在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>按钮,新建持续性组名称为cookie_insert,类型为HTTP-Cookie,Cookie持续性方法为Cookie插入,Cookie名称为X-LB。
图488 新建持续性组cookie_insert

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>按钮,新建持续性组名称为cookie_rewrite,类型为HTTP-Cookie,Cookie持续性方法为Cookie重写,Cookie名称为cookie_rewrite
图489 新建持续性组cookie_rewrite

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>按钮,新建持续性组cookie_get,类型为HTTP-Cookie,Cookie持续性方法为Cookie截取,Cookie名称为cookie_get。
图490 新建持续性组cookie_get

单击<确定>按钮,完成操作。
匹配URL中带有test1或test2关键字的HTTP请求流量
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>按钮,新建流量特征名称为lc1,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test1。
图491 新建流量特征lc1



单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>按钮,新建流量特征名称为lc2,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test2。
图492 新建流量特征lc2



单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>按钮,新建动作名称为la1,类型为HTTP,主用实服务组为sf1,持续性组为cookie_insert。
图493 新建动作la1

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>按钮,新建动作名称为la2,类型为HTTP,主用实服务组为sf1,持续性组为cookie_rewrite。
图494 新建动作la2

单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>按钮,新建动作名称为la3,类型为HTTP,主用实服务组为sf1,持续性组为cookie_get。
图495 新建动作la2

单击<确定>按钮,完成操作。
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test1)的请求报文,动作为la1(即发送给实服务组sf1),并将处理HTTP头部。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建负载均衡策略名称为lp1,类型为HTTP,新建规则流量特征为lc1、动作为la1,新建规则流量特征为lc2、动作为la2,默认动作为la3。
图496 新建负载均衡策略


单击<确定>按钮,完成操作。
图497 负载均衡策略信息

#配置虚服务虚服务,响应HTTP请求报文
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面,新建虚服务器vs1,类型为HTTP,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为80,并开启虚服务单击<确定>。
图498 新建虚服务器vs1


单击<确定>按钮,完成操作。
<Sysname>display sticky virtual-server
Virtual server name: vs1
Server-farm name: sf1
Class: lc1
Sticky group name: cookie-insert
Sticky type: HTTP cookie
Sticky method: Cookie Insert
Sticky Key: 2.1.19ba92e3.0
Real server addr: 192.168.1.1:0
Cookie name: X-LB
Cookie domain:
Cookie path: /
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc1
Sticky group name: cookie-insert
Sticky type: HTTP cookie
Sticky method: Cookie Insert
Sticky Key: 2.4.8013df67.0
Real server addr: 192.168.1.2:0
Cookie name: X-LB
Cookie domain:
Cookie path: /
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc1
Sticky group name: cookie-insert
Sticky type: HTTP cookie
Sticky method: Cookie Insert
Sticky Key: 2.7.8af0cfe3.0
Real server addr: 192.168.1.3:0
Cookie name: X-LB
Cookie domain:
Cookie path: /
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc2
Sticky group name: cookie-rewrite
Sticky type: HTTP cookie
Sticky method: Cookie Rewrite
Sticky Key: 2.2.d33a6d02.0
Real server addr: 192.168.1.1:0
Cookie name: X-LB
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc2
Sticky group name: cookie-rewrite
Sticky type: HTTP cookie
Sticky method: Cookie Rewrite
Sticky Key: 2.5.6fefc028.0
Real server addr: 192.168.1.2:0
Cookie name: X-LB
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc2
Sticky group name: cookie-rewrite
Sticky type: HTTP cookie
Sticky method: Cookie Rewrite
Sticky Key: 2.8.8263842.0
Real server addr: 192.168.1.3:0
Cookie name: X-LB
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
可在验证前先清理实服务和虚服务的统计数据,免得干扰判断,清理后,再打流量,进行验证。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面,单击<清除>。
图499 清除虚服务器统计

在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面,单击<清除>。
图500 清除实服务器统计

HOST发起请求,http://61.149.4.100/test1,在HOST端抓包,相对于server端,应答方向的HTTP报文中Cookie内容被插入(被LB设备插入Cookie为Set-Cookie: X-LB=2.e.7707dba7.0)。
(1) server端,response方向的HTTP报文抓包情况,如下:
图501 server端response方向的HTTP报文

(2) HOST端抓包,response方向的HTTP报文如下:
图502 HOST端response方向的HTTP报文

持续性验证:
第一次打流量,确认LB返回HOST端一个Cookie值(Set-Cookie: X-LB=2.1.19ba92e3.0)-rs1对应的cookie,此时查看实服务器流量负载分担情况,rs1、rs2、rs3均有统计数据。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
在第二次请求中携带插入的Cookie值(2.1.19ba92e3.0),打流验证持续性生效,所有的请求分配给了同一个实服务rs1。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
HOST发起请求http://61.149.4.100/test2, HOST端抓包,相对于server端,应答方向的HTTP报文中Cookie内容被重写(由2.e.7707dba7.0,被LB设备重写为2.b.8af0cfe3.0)。
(1) server端,response方向的HTTP报文抓包情况,如下:
图503 server端response方向的HTTP报文

(2) HOST端,response方向的HTTP报文抓包情况,如下:
图504 HOST端response方向的HTTP报文

持续性验证:第一次打流量,server端携带Cookie值(Set-Cookie: X-LB=2.1.19ba92e3.0)被设备改写cookie值为2.2.d33a6d02.0即rs1对应的,查看实服务器流量负载分担情况,rs1、rs2、rs3均有统计数据。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
在第二次请求中携带改写后的Cookie值(2.2.d33a6d02.0),打流验证持续性生效,所有的请求分配给了同一个实服务rs1。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
HOST发起请求http://61.149.4.100/test3, HOST端和server端抓包,携带cookie字段(cookie-get=2.e.6608dba7.0)报文中可以看出Cookie没有变化。
图505 server端应答方向的HTTP报文

图506 HOST端应答方向的HTTP报文

持续性验证:
第一次打流量,确认server端携带Cookie值(Set-Cookie: cookie-get=6.6.b092d037.0)-rs1对应的cookie,此时查看实服务器流量负载分担情况,rs1、rs2、rs3均有统计数据。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
在第二次请求中携带插入的Cookie值(6.6.b092d037.0,打流验证持续性生效,所有的请求分配给了同一个实服务rs1。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
#
nqa template http t1
expect status 200
#
sticky-group cookie_get type http-cookie
cookie get name cookie-get
check all-packet
#
sticky-group cookie_insert type http-cookie
cookie insert
check all-packet
#
sticky-group cookie_rewrite type http-cookie
cookie rewrite
check all-packet
#
server-farm sf1
predictor hash address source
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http match-any
match 1 url test1
#
loadbalance class lc2 type http match-any
match 1 url test2
#
loadbalance action la1 type http
server-farm sf1 sticky cookie_insert
#
loadbalance action la2 type http
server-farm sf1 sticky cookie_rewrite
#
loadbalance action la3 type http
server-farm sf1 sticky cookie_get
#
loadbalance policy lp1 type http
class lc1 action la1
class lc2 action la2
default-class action la3
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs1 type http
virtual ip address 61.159.4.100
lb-policy lp1
sticky-sync enable global
service-down-action reset
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图507 SSL卸载组网图
为了实现SSL卸载功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备,并在LB设备上新建SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS访问server端HTTP服务器,可成功访问。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· 配置完虚服务后,需要开启虚服务。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图508 新建PKI域
单击<确定>,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图509 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图510 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图511 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图512 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,如下图所示。
图513 新建SSL服务器端策略
单击<确定>,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图514 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图515 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图516 添加实服务组成员
图517 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图518 实服务组信息
新建HTTPS类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf1,端口号为443,引用ssl策略ssl。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl,并开启虚服务,如下图所示。
图519 新建虚服务器
单击<确定>,完成操作。
虚服务统计
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl
sticky-sync enable global
service enable
#
当前网络安全越来越受到重视,现在网络也普遍采用了HTTPS协议。SSL客户端证书认证是SSL服务器对客户端的证书进行校验,通过SSL客户端证书认证,服务器确定所接收到的访问是否来自可信的客户端。
Host发起HTTPS访问,通过LB设备解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。负载均衡设备开启验证SSL客户端功能,并在客户端请求报文中插入证书的常用字段。
图520 SSL客户端证书透传组网图
为了实现SSL客户端证书透传功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备,并在LB设备上新建SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS访问Server端HTTP服务器,可成功访问。
· 配置负载均衡动作,插入证书的常用字段。
· 插入证书的常用字段内容为1~255个字符的字符串,也可以使用以下特定含义的字符串:%{x509v}:证书的版本;%{x509snum}:证书的序列号;%{x509sigalgo}:证书的签名算法;%{x509issuer}:证书的签发者。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· SSL服务器端策略开启验证客户端功能,客户端需要导入正确的CA证书与本地证书。
· 虚服务器端口号需要配置为443,实服务器端口号配置为80。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图521 新建PKI域
单击<确定>,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图522 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图523 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图524 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图525 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,开启验证客户端功能,如下图所示。
图526 新建SSL服务器端策略
单击<确定>,完成操作。
在WEB上配置SSL协商时SSL服务器端发送完整的证书链的功能,单击<确定>,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图527 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图528 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图529 添加实服务组成员
图530 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图531 实服务组信息
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,添加HTTP类型的负载均衡动作,主用实服务组为sf1,新建Header插入,插入方向为请求,插入字段http-certification-insert,值为%{x509v},表示插入证书的版本,如下图所示。
图532 新建负载均衡动作la1
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,添加HTTP类型的负载均衡策略名称为lp,默认动作la1,如下图所示。
图533 新建负载均衡策略
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,端口号为443,引用SSL服务端策略ssl和负载均衡策略lp,并开启虚服务,如下图所示。
图534 新建虚服务器
单击<确定>,完成操作。
虚服务统计
图535 Host端抓包信息
图536 Host端抓包信息
图537 服务器端抓包信息
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha
client-verify enable
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
loadbalance action la1 type http
server-farm sf1
header insert request name http-certification-insert value %{x509v}
#
loadbalance policy lp type http
default-class action la1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
lb-policy lp
default server-farm sf1
ssl-server-policy ssl
route-advertisement enable
sticky-sync enable global
service enable
#
SSL双向代理是指LB设备为用户和内网的HTTPS服务器提供SSL双向认证服务,需要服务端与Host端提供身份认证,只能是服务端允许的客户去访问。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTPS服务,Host访问服务器的流量会在三台服务器之间负载分担。
图538 SSL双向代理组网图
为了实现SSL双向代理功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备。
· 在LB设备上新建SSL服务端策略和SSL客户端策略。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP或web导入上传到LB设备上。
· 配置完虚服务后,需要开启虚服务。
· 虚服务器端口号需要配置为443,实服务器端口号配置为443。
· 服务器上导入与设备相同的本地证书。
· SSL服务器端策略和SSL客户端策略无法和虚服务器进行联动,当修改SSL服务器端策略或SSL客户端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
· 新建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图539 新建PKI域
单击<确定>,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图540 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图541 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图542 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书的口令,如下图所示。
图543 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为ssl_server,PKI域选择ca的SSL服务器端策略,如下图所示。
图544 新建SSL服务器端策略
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>客户端策略”,进入SSL客户端策略页面。
单击<新建>按钮,添加策略名称为ssl_client, PKI域选择ca的SSL客户端策略,如下图所示。
图545 新建SSL客户端策略
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTPS的健康检测模板,SSL客户端策略选择ssl_client,预期接收状态码为200,如下图所示。
图546 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择nqa_https的实服务组,如下图所示。
图547 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为443,,如下图所示。
图548 添加实服务组成员
图549 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为443。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为443。
图550 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用SSL服务端策略ssl_server,SSL客户端策略ssl_client,并开启虚服务,如下图所示。
图551 新建虚服务器
单击<确定>,完成操作。
虚服务统计
图552 Host端抓包信息
图553 服务器端抓包信息
#
nqa template https t1
expect status 200
ssl-client-policy ssl_client
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
ssl client-policy ssl_client
pki-domain ca
prefer-cipher ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
prefer-cipher ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha
undo server-verify enable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 443
success-criteria at-least 1
real-server rs2 port 443
success-criteria at-least 1
real-server rs3 port 443
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl
ssl-client-policy ssl_client
route-advertisement enable
sticky-sync enable global
service enable
#
在SSL卸载的使用场景下,SSL证书之前普遍使用的是RSA加密算法的证书,目前ECC 证书具有卓越的加密性能正在替代RSA,客户需要陆续将ECC证书替换为RSA,但是客户的实际网络部署中,会存在有的C/S模式下的Host 端不支持ECC,或者是Host 端存在RSA证书双向认证的需求,要求过渡时期内已有业务不能间断,因此需要设备支持同时部署 RSA 和 ECC 证书,Host 端使用 RSA 或者 ECC 加密算法都可以与设备同一个虚服务器建立 SSL 连接传输加密数据,通过设备后解密为明文HTTP报文发送到后端真实服务器进行处理。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图554 SSL服务器端策略加载双证书组网图
为了实现SSL服务器端策略加载双证书功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书(RSA证书及ECC证书)导入到LB设备,LB设备上创建SSL服务器端策略,引用两个证书对应的PKI域。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS分别以RSA加密算法和ECC加密算法访问虚服务,均可成功访问。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP或web上传到LB设备上。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca_rsa,不使能检查证书是否已经被CA吊销功能,如下图所示。
图555 新建PKI域
单击<确定>,完成操作。
同理再添加一个PKI域,其名称为ca_ecc,步骤同上所示。
选中新建的PKI域ca_rsa,单击<导入证书>按钮,如下图所示。
图556 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图557 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图558 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,导入RSA证书,输入证书口令,如下图所示。
图559 导入本地证书
单击<确定>,完成操作。
同理选中新建的PKI域ca_ecc,分别导入CA证书和本地证书(ECC证书),步骤如上所示。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为ssl,PKI域选择ca_rsa的SSL服务器端策略,再点击PKI域一栏末尾的加号键,出现第二行PKI域后选择ca_ecc,如下图所示。
图560 新建SSL服务器端策略
图561 选择第二个PKI域
单击<确定>,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图562 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图563 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,如下图所示。
图564 添加实服务组成员
图565 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“策略>负载均衡>服务器负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“策略>负载均衡>服务器负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图566 实服务组信息
在导航栏中选择“策略>负载均衡>服务器负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl,并开启虚服务,如下图所示。
图567 新建虚服务器
单击<确定>,完成操作。
虚服务统计
图568 Host端抓包信息
图569 Host端抓包信息
#
nqa template http t1
expect status 200
#
pki domain ca_ecc
public-key ecdsa name ca-ecc secp256r1
undo crl check enable
#
pki domain ca_rsa
public-key rsa general name ca-rsa length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca_rsa ca_ecc
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_gcm_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl
route-advertisement enable
sticky-sync enable global
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。通过支持SSL的SNI扩展字段,为用户在一个服务器使用不同域名时提供返回不同证书的功能。将域名插入到SSL握手报文中,使服务器能够切换到正确的域名并给客户端返回相应的证书。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图570 SSL根据SNI信息选取证书组网图
为了实现根据SNI信息选取证书功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备,LB设备上创建默认SSL服务器端策略,并配置匹配SNI信息的SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· Host端使用携带不同SNI信息的HTTPS流量访问虚服务,可成功访问,并返回对应证书。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。分别为每个SNI对应的SSL服务器端策略导入相应的证书。
· 在相同视图下,不允许配置多个相同的SSL服务器端策略。
· 在相同视图下,不允许配置SNI相同的多个SSL服务器端策略。
· 当配置了默认的SSL服务器端策略,当访问的域名没有匹配上SNI信息后,会使用该默认的SSL服务器端策略。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
· 新建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
· 新建SSL服务器端策略后,需要手工在命令行下配置SNI及其对应的SSL服务器端策略。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建PKI域>,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图571 新建PKI域
单击<确定>,完成操作。
同理再添加两个PKI域,其名称为ca_rsa和ca_ecc,步骤同上所示。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图572 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图573 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图574 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图575 导入本地证书
单击<确定>,完成操作。
同理选中新建的PKI域ca_rsa和ca_ecc,分别导入CA证书和本地证书,步骤如上所示。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为ssl,PKI域选择ca的SSL服务器端策略,并开启发送完整的证书链的功能,如下图所示。
图576 新建SSL服务器端策略
单击<确定>,完成操作。
同理新建SSL服务器策略ssl_rsa、ssl_ecc,分别引用PKI域ca_rsa和ca_ecc,步骤如上所示。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图577 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图578 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图579 添加实服务组成员
图580 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图581 实服务组信息
新建HTTPS类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf1,端口号为443,引用ssl策略ssl。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl,配置ssl服务器扩展策略(引用ssl服务器端策略ssl_rsa并且添加服务器指示名称为 1.example.com;引用ssl服务器端策略ssl_ecc并且添加服务器指示名称为 2.example.com ),并开启虚服务,如下图所示。
图582 新建虚服务器
单击<确定>,完成操作。
新建服务器端扩展策略ssl_ecc并且添加服务器指示名称为 www.2.example.com与上述步骤相同:
图583 新建虚服务器
两个服务器端扩展策略均添加完成后,单击<确定>,完成操作。
查看虚服务器、实服务组、实服务器状态均为可用
虚服务统计
Host通过https://61.159.4.100访问虚服务,不携带SNI信息,访问成功,查看Host端抓包,Client Hello报文中没有SNI信息,Server Hello报文中显示使用的是默认SSL服务器端策略ssl_default的证书;查看Server Hello报文的subjectPublicKey与对象>公钥管理>本地密钥对ca_default的公钥一致,表示使用的是ssl服务器端策略ssl_default对应的证书。
图584 Host端抓包信息(Client Hello)
图585 Host端抓包信息(Server Hello)
图586 Host端抓包信息(subjectPublicKey)
图587 设备公钥
Host通过https://1.example.com访问虚服务,携带SNI信息1.example.com ,访问成功,查看Host端抓包,Client Hello报文中有SNI信息1.example.com ,Server Hello报文中显示使用的是匹配SNI 1.example.com 的SSL服务器端策略ssl_rsa的证书;查看Server Hello报文的subjectPublicKey与对象>公钥管理>本地密钥对ca_rsa的公钥一致,表示使用的是ssl服务器端策略ssl_rsa对应的证书。
图588 Host端抓包信息(Client Hello)
图589 Host端抓包信息(Server Hello)
图590 Host端抓包信息(subjectPublicKey)
图591 设备公钥
Host通过https:// 2.example.com 访问虚服务,携带SNI信息2.example.com ,访问成功,查看Host端抓包,Client Hello报文中有SNI信息2.example.com ,Server Hello报文中显示使用的是匹配SNI 2.example.com 的SSL服务器端策略ssl_ecc的证书;查看Server Hello报文的subjectPublicKey与对象>公钥管理>本地密钥对ca_ecc的公钥一致,表示使用的是ssl服务器端策略ssl_ecc对应的证书。
图592 Host端抓包信息(Client Hello)
图593 Host端抓包信息(subjectPublicKey)
图594 设备公钥
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
pki domain ca_ecc
public-key ecdsa name ca-ecc secp256r1
undo crl check enable
#
pki domain ca_rsa
public-key rsa general name ca-rsa length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_gcm_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
ssl server-policy ssl_ecc
pki-domain ca_ecc
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_gcm_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
ssl server-policy ssl_rsa
pki-domain ca_rsa
ciphersuite ecdhe_rsa_aes_128_gcm_sha256 rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version tls1.1 disable
version tls1.3 disable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl
ssl-server-policy ssl_ecc sni 2.example.com
ssl-server-policy ssl_rsa sni 1.example.com
route-advertisement enable
sticky-sync enable global
service enable
#
连接复用的功能通过使用连接池缓存技术,对于暂时没有数据传输的服务器一侧连接放入缓存池中,允许公用。这样可以将前端大量的客户HTTP请求复用到后端与服务器建立的少量的TCP长连接上,大大减小服务器的性能负载,减小与服务器之间新建TCP连接所带来的延时,并最大限度减少后端服务器的并发连接数,降低服务器资源的占用。
Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,开启连接复用功能,在负载均衡设备与服务器之间建立一条长时间不会老化的连接,使多个客户端复用同一条与服务器的TCP连接。
图595 负载均衡连接复用配置组网图
为了实现HTTP连接复用功能,需要在LB设备上完成如下配置:
· 配置HTTP类型的参数模板和OneConnect类型的参数模板,并在HTTP类型的虚服务下引用这2个参数模板,使得HTTP连接复用功能生效。
· 为探测HTTP服务器基本功能是否正常,需配置HTTP类型健康检测模板。
· 为保证HTTP业务基本运行,需配置实服务组,添加实服务器成员,并引用HTTP类型健康检测模板,HTTP类型虚服务器中引用实服务组。
本举例是在L5000-AD540-G1的Release 9900P36版版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 实服务组可引用源地址池。
· 在LB设备上配置的实服务器地址要与相应的真实服务器地址保持一致。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为http,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图596 创建健康检测模板http
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建HTTP类型的参数模板,名称为connection multiplexing,类型选择HTTP,并开启连接复用功能。如下图所示。
图597 新建HTTP类型参数模板http
单击<确定>按钮,完成操作。
单击<新建>,新建OneConnect类型的参数模板,名称为oneconnect,类型选择OneConnect,空闲超时时间为3秒。如下图所示。
图598 新建OneConnect类型参数模板oneconnect
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat,拆分方式为基于地址拆分,添加地址范围列表,起始IP地址填入192.168.1.210,结束IP地址填入192.168.1.220,发送免费ARP或ND报文的接口选RAGG1.20,如下图所示。
图599 新建源地址池snat
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为server-farm,调度算法为加权轮转,健康检测选择http,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图600 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf,单击成员列表的添加按钮,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图601 添加实服务组成员
图602 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf,单击成员列表的添加按钮,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图603 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务页面。
单击<新建>, 新建虚服务器名称为vs,类型为HTTP,配置虚服务IP为61.159.4.100,指定其实服务组为sf,引用HTTP类型的参数模板connection multiplexing和OneConnect类型的参数模板oneconnect。如下图所示。
图604 新建虚服务器
单击<确定>,完成操作。
虚服务取消连接复用时,大量Host通过http:// 61.159.4.100访问HTTP服务器,访问成功,可以在LB设备上查看到虚服务统计信息中连接数新建速率等于实服务组成员统计信息中的连接数新建速率。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面查看虚服务总的新建连接速率。
图605 虚服务器统计
在导航栏中选择“监控>应用负载>实服务组>实时统计>”,单击右侧<详细>,进入实服务组成员统计页面查看实服务组成员总的新建连接速率。
图606 实服务组成员统计
查看服务端抓包,一个tcp连接中只有1个请求。
图607 服务端抓包
虚服务配置连接复用时,大量Host通过http:// 61.159.4.100访问HTTP服务器,访问成功,可以在LB设备上查看到虚服务统计信息中连接数新建速率远大于实服务组成员统计信息中的连接数新建速率。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面进行查看虚服务总的新建连接速率。
图608 虚服务器统计
在导航栏中选择“监控>应用负载>实服务组>实时统计>”,单击右侧<详细>,进入实服务组成员统计页面查看实服务组成员总的新建连接速率。
图609 实服务组成员统计
查看服务端抓包,一个tcp连接中有多个请求。
图610 服务端抓包
#
nqa template http http
expect status 200
url /1k.html
#
parameter-profile "connection multiplexing" type http
server-connection reuse
#
parameter-profile oneconnect type oneconnect
idle-time 3
#
loadbalance snat-pool snat
ip range start 192.168.1.210 end 192.168.1.220
arp-nd interface Route-Aggregation1.20
#
server-farm server-farm
snat-pool snat
probe http
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
success-criteria at-least 1
#
real-server rs2
ip address 192.168.1.2
success-criteria at-least 1
#
real-server rs3
ip address 192.168.1.3
success-criteria at-least 1
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http "connection multiplexing"
parameter oneconnect oneconnect
default server-farm server-farm
sticky-sync enable global
service enable
#
HTTP压缩功能可以用于减少网络传输中的数据量,从而提高传输速度和降低带宽消耗。比如对于需要传输大量图片或媒体文件的网站,使用HTTP压缩功能可以有效减少传输的数据量,减少带宽的消耗,并提高用户的访问体验。
LB设备使用HTTP压缩功能时,是LB对server端回应报文进行压缩,且HOST端需携带头部Accept-Encoding。如下图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务。服务器端设置回复大报文,LB设备上配置带压缩参数的参数模板,服务器端报文经过LB设备返回给HOST,大报文被压缩。
图611 HTTP压缩组网图
为实现HTTP压缩功能,需要在LB设备上完成如下配置:
· 配置HTTP压缩类型的参数模板,并在HTTP类型的虚服务下引用这个参数模板,使得HTTP压缩功能生效。
· 为探测HTTP服务器基本功能是否正常,需配置HTTP类型健康检测模板。
· 为保证HTTP业务基本运行,需配置实服务组,添加实服务器成员,并引用HTTP类型健康检测模板,HTTP类型虚服务器中引用实服务组。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 确保Host访问头部携带Accept-Encoding: gzip,deflate字段。
· 在LB设备上配置的实服务器地址要与相应的真实服务器地址保持一致。
以下验证过程在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为http,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图612 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf,调度算法为加权轮转,健康性检测选择http的实服务组,如下图所示。
图613 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf,单击成员列表的添加按钮,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图614 添加实服务组成员
图615 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf,成员列表的添加按钮,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图616 实服务组信息
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为compre,类型选择HTTP-Compression,压缩级别为9,首选方法为deflate,服务器端报文最小内容长度大于1024字节。如下图所示。
图617 新建参数模板信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务页面。
单击<新建>, 新建虚服务器名称为vs,类型为HTTP,配置虚服务IP为61.159.4.100,指定其实服务组为sf,引用HTTP压缩类型的参数模板compre。如下所示。
图618 新建虚服务器
单击<确定>,完成操作。
HOST端浏览器访问Server端,浏览器默认携带头部Accept-Encoding: gzip,deflate,服务器端设置回复一个大文件,大小为512000bytes,抓取客户端的报文,查看LB设备返回给客户端的200 OK报文的长度为压缩后报文长度1501bytes,如下图标红处所示;而服务器端200 OK报文的长度为原始大小512000bytes。
图619 HOST端抓包
图620 服务端侧抓包
#
nqa template http http
expect status 200
reaction trigger probe-pass 1
#
parameter-profile compre type http-compression
compression level 9
prefer-method deflate
#
server-farm sf
probe http
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http-compression compre
default server-farm sf
sticky-sync enable global
service-down-action reset
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,信息量呈几何爆发式增长,信息的丰富性也带来了信息的冗余,网路间的损耗越发的突出,用户对于网络服务有了的更高要求,面对服务质量良莠不齐的网络服务端和用户对高速稳定网络的需求,可以使用网络缓存解决服务器与客户端间的这种访问方式。
在服务器与客户端间搭建缓存设备,将用户访问或下载的热点内容中大于1K的,在存储设备中保存一个副本,当内容再次被用户访问或下载时,不必连接到驻留(源)网站,而是由Cache中保留的副本直接提供,以达到极速访问或下载,降低网间带宽的依赖目的。
图621 web缓存应用负载均衡组网图
为实现对经过LB的业务流量做缓存,需要在LB设备上完成如下配置:
· 配置缓存策略。
· 虚服务器引用缓存策略。
本举例是在L5000-AD520-G1的 Release 9900P36版本上进行配置和验证的。
· 配置缓存策略。
· 请求文件大于1K才能缓存。
在导航栏中选择“负载均衡>应用负载>高级策略>缓存策略”,单击<新建>,新建HTTP类型的缓存策略名称为cache,进行如下配置:
图622 新建缓存策略
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图623 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图624 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图625 添加实服务组成员
图626 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图627 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,61.159.4.100,指定实服务组sf1,开启虚服务功能,缓存策略为cache,如下图所示。
图628 新建虚服务器
单击<确定>按钮,完成操作。
客户端发起请求http://61.159.4.100/download,访问成功
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,点击详情进入虚服务器统计页面。
图629 查看虚服务器的统计数据
在导航栏中选择“监控>应用负载>实服务器>实时统计”,点击详情进入实服务器统计页面。
图630 查看实服务器的统计数据
在导航栏中选择“负载均衡>应用负载>高级策略>缓存策略”,查看缓存策略匹配请求次数。
图631 查看缓存策略的统计数据
客户端发起请求http://61.159.4.100/download,访问成功。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,点击详情进入虚服务器统计页面。
图632 查看虚服务器的统计数据
在导航栏中选择“监控>应用负载>实服务器>实时统计”,点击详情进入实服务器统计页面。
图633 查看实服务器的统计数据
在导航栏中选择“负载均衡>应用负载>高级策略>缓存策略”,查看缓存策略匹配请求次数。
图634 查看缓存策略的统计数据
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
default server-farm sf1
sticky-sync enable global
lb-cache-policy cache
service-down-action reset
service enable
#
cache-policy cache type http
match 1 uri /download
#
WebSocket是一种客户端与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。具体来说,客户端通过HTTP请求与WebSocket服务端协商升级协议。协议升级完成后,后续的数据交换则遵照WebSocket的协议。
Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。首先,客户端发起协议升级请求,采用的是标准的HTTP报文格式,且只支持GET方法,协议版本为1.1。接下来,服务器端响应协议升级,返回状态码101表示协议切换。
图635 websocket组网图
· 与其他普通七层负载均衡基本功能一样。
· 本例使用客户端websocket. html小程序和服务器端server.py小软件进行模拟测试,实际测试结果请以客户的真实业务为主。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
服务器端需要支持Python程序运行,确保可以正常调用server.py程序。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为TCP的健康检测模板,其目的端口号为8000,如下图所示。
图636 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图637 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口号:8000,如下图所示。
图638 添加实服务组成员
图639 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,端口号均为8000。
图640 实服务组信息
配置HTTP类型的虚服务vs,端口为8000
负载均衡>应用负载>虚服务器,新建虚服务名称为vs,类型HTTP,IP为61.159.4.100,端口号为8000,引用实服务组sf1,并开启虚服务,单击<确定>。
图641 新建虚服务器
图642 运行server.py文件
打开Host端websocket.html文件,与虚服务地址:61.159.4.100,端口号:8000建立连接,并发送websocket信息,可以看到连接建立成功,信息发送成功。
图643 发送websocket信息
图644 Host端抓包信息
图645 服务器端抓包信息
#
nqa template tcp t1
destination port 8000
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 8000
success-criteria at-least 1
real-server rs2 port 8000
success-criteria at-least 1
real-server rs3 port 8000
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 8000
virtual ip address 61.159.4.100
default server-farm sf1
sticky-sync enable global
service enable
#
如图所示,LB设备后接多台RADIUS服务器组成的RADIUS服务器群。Host通过NAS向现有3台RADIUS服务器为外网用户提供RADIUS服务,3台RADIUS服务器地址为192.168.1.1~192.168.1.3。
图646 LB支持RADIUS配置组网图
用户通过NAS设备认证计费时,负载均衡设备会将RADIUS认证计费的请求报文转发到不同的RADIUS服务器上,从而使RADIUS请求报文均匀地分布在不同的RADIUS服务器上。
在NAS设备的数目较少场景下,使用 UDP强制负载均衡,RADIUS server负担更均匀;使用user-name的RADIUS持续性,保证同一用户名的认证报文发送至同一台认证服务器上;使用ICMP与UDP端口检测组合,做到业务的健康检查,保证业务的可靠性。
通过配置七层RADIUS类型虚服务实现该功能。
· 配置路由,保证RADIUS Server与NAS Clinet、LB device之间路由可达。
· 配置UDP强制负载均衡,保证业务负载分担
· 配置ICMP类型健康检测,配置UDP类型1812和1813端口的健康检测,保证业务可靠性
· 配置user-name持续性组,保证同一用户名的认证报文发送至同一台认证服务器上
用户通过NAS设备认证计费时,负载均衡设备会将RADIUS认证计费的请求报文转发到不同的RADIUS服务器上,从而使RADIUS请求报文均匀地分布在不同的RADIUS服务器上。
在NAS设备的数目较少场景下,使用 UDP强制负载均衡,RADIUS server负担更均匀;使用user-name的RADIUS持续性,保证同一用户名的认证报文发送至同一台认证服务器上;开启持续性跨虚服务匹配,使同一会话的认证消息和计费消息都分发到同一个radius服务器上;使用ICMP与UDP端口检测组合,做到业务的健康检查,保证业务的可靠性。
通过配置七层RADIUS类型虚服务实现该功能。
· 配置路由,保证RADIUS Server与NAS Clinet、LB device之间路由可达。
· 配置UDP强制负载均衡,保证业务负载分担
· 配置ICMP类型健康检测,配置UDP类型1812和1813端口的健康检测,保证业务可靠性
· 配置user-name持续性组并开启跨虚服务器匹配,保证同一用户名的认证报文和计费报文发送至同一台认证服务器上
用户通过NAS设备主动结束计费时,负载均衡设备会将RADIUS主动结束计费的请求报文转发到不同的RADIUS服务器上,从而使RADIUS请求报文均匀地分布在不同的RADIUS服务器上。
服务器强制复位用户时,结束计费的请求报文发到负载均衡设备上,走三层转发流程,并在出接口做nat转换到达客户端。
在NAS设备的数目较少场景下,使用 UDP强制负载均衡,RADIUS server负担更均匀;使用ICMP与UDP端口检测组合,做到业务的健康检查,保证业务的可靠性。
通过配置七层RADIUS类型虚服务实现该功能。
· 配置路由,保证RADIUS Server与NAS Clinet、LB device之间路由可达。
· 配置UDP强制负载均衡,保证业务负载分担
· 配置ICMP类型健康检测,配置UDP类型3799端口的健康检测,保证业务可靠性
· 配置NAT出方向动态转换(基于acl),对外网用户隐藏真实服务器地址
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
该案例RADIUS持续性老化时间配置为3600s,推荐配置值需要根据现场使用场景结合具体业务调节
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为ICMP的健康检测模板,新建健康模板名称为t2、t3、t4,类型为UDP的健康检测模板,配置raw格式的数据填充,配置端口探测功能,如下图所示。
图647 新建健康检测模板
单击<确定>按钮,完成操作。
图648 新建健康检测模板
单击<确定>按钮,完成操作。
图649 新建健康检测模板
单击<确定>按钮,完成操作。
图650 新建健康检测模板
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击新建,新建实服务组名称为sf1,调度算法为加权轮转,,并绑定健康检测t1、t2,且需验证所有健康检测,如下图所示。
图651 新建实服务组
单击<确定>按钮,完成操作。
参照上图步骤创建sf2,关联健康检测t1、t3。创建sf3,关联健康检测t1、t4。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图652 添加实服务组成员
图653 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图654 实服务组信息
参照上述步骤为实服务组sf2和sf3添加实服务器rs1、rs2、rs3。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击新建,新建持续组名称为radius,类型为RADIUS,持续性方法:user-name,超时时间为3600s,开启跨虚服务器匹配。
图655 新建持续性组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击新建,新建虚服务器名称为vs1,类型选择RADIUS,VSIP地址为61.159.4.100,端口为1812,绑定实服务组sf1和持续性组radius,开启UDP强制负载均衡,开启虚服务功能,如下图所示。
图656 新建虚服务器
单击<确定>按钮,完成操作。
参照新建vs1步骤,新建虚服务器名称为vs2,类型选择RADIUS,VSIP地址为61.159.4.100,端口为1813,绑定实服务组sf2和持续性组radius,开启UDP强制负载均衡,开启虚服务功能。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击新建,新建虚服务器名称为vs3,类型选择RADIUS,VSIP地址为61.159.4.100,端口为3799,绑定实服务组sf3,开启UDP强制负载均衡,开启虚服务功能,如下图所示。
图657 新建虚服务器
单击<确定>按钮,完成操作。
在导航栏中选择对象>ACL>IPV4,进入acl页面,创建高级acl3001,点击确定并添加规则
图658 新建ACL
新建规则,协议类型选择ip,匹配条件选择匹配源IP地址/通配符掩码,地址配置为实服务器地址192.168.1.1,通配符掩码为0.0.0.0。
图659 新建规则
单击<确定>按钮,完成操作。
如上,依次配置匹配所有实服务器地址的规则
在导航栏中选择对象>对象组>NAT地址组,创建NAT地址组,指定地址组编号为5,名称为AAA_SNAT_POOL,起始ip与结束ip均为虚服务器地址61.159.4.100
图660 新建NAT地址组
单击<确定>按钮,完成操作。
在导航栏中选择网络>接口NAT>IPV4> NAT出方向动态转换(基于ACL),创建NAT出方向动态转换,接口选择客户端侧接口RAGG10.1288,ACL选择3001,转换后源地址选择NAT地址组5
图661 新建NAT出方向动态转换(基于ACL)
单击<确定>按钮,完成操作。
用户上线,通过NAS Client向LB设备发送RADIUS认证请求计费报文,报文经由LB设备做负载均衡处理分发给后端的RADIUS服务器处理,同时生成持续性表项;
(1) 查看虚服务器、实服务组、实服务器状态均为可用
虚服务器统计
(2) 用户通过NAS发起认证计费
(3) 查看持续性表项,查看相应用户名分配到的实服务器:
<Sysname>display sticky virtual-server
Slot 2 CPU 1:
Virtual server name: vs
Server-farm name: sf1
Sticky type: RADIUS
Sticky method: Attribute ID
Sticky Key: 0192023a7bbd73250516f069df18b500
Text: admin123
Virtual server addr: 61.159.4.100:1812
Real server addr: 192.168.1.2:0
Client addr: 10.0.0.2:57212
Timeout: 3600 sec
Expiration time: 3600 sec
Matching sessions: 0
(4) 发起RADIUS流量,实服务器负载分担
图662 实服务统计信息
(1) 查看虚服务器、实服务组、实服务器状态均为可用
虚服务器统计
(2) 用户通过NAS发起认证 ,设备客户端侧抓包
(3) 设备上生成vs1的持续性表项,查看持续性表项,查看相应用户名分配到的实服务器:
<Sysname>display sticky virtual-server
Slot 2 CPU 1:
Virtual server name: vs1
Server-farm name: sf1
Sticky type: RADIUS
Sticky method: Attribute ID
Sticky Key: 7e58d63b60197ceb55a1c487989a3720
Text: user2
Virtual server addr: 61.159.4.100:1812
Real server addr: 192.168.1.3:0
Client addr: 10.0.0.2:63901
Timeout: 3600 sec
Expiration time: 3600 sec
Matching sessions: 0
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Sticky type: RADIUS
Sticky method: Attribute ID
Sticky Key: 24c9e15e52afc47c225b757e7bee1f9d
Text: user1
Virtual server addr: 61.159.4.100:1812
Real server addr: 192.168.1.1:0
Client addr: 10.0.0.2:35084
Timeout: 3600 sec
Expiration time: 3600 sec
Matching sessions: 0
(4) 用户通过NAS发起计费,设备客户端侧抓包
(5) 查看设备持续性表项以及服务器侧报文,vs2没有生成新的表项,计费报文匹配上了vs1的持续性表项
(1) 查看虚服务器、实服务组、实服务器状态均为可用
虚服务器统计
(2) 用户通过NAS发起结束计费请求 ,服务器收到结束计费请求后进行回应。设备客户端侧抓包如下
(3) 服务器向客户端发送停止计费请求,通过设备两侧抓包查看到该请求可以被转发到客户端
服务器侧报文
客户端侧报文
#
nqa template icmp t1
reaction trigger probe-pass 1
#
nqa template udp t2
data-fill "default send string" raw
destination port 1812
port-detect enable
reaction trigger probe-pass 1
#
nqa template udp t3
data-fill "default send string" raw
destination port 1813
port-detect enable
reaction trigger probe-pass 1
#
nqa template udp t4
data-fill "default send string" raw
destination port 3799
port-detect enable
reaction trigger probe-pass 1
#
real-server rs1
ip address 192.168.1.1
success-criteria at-least 1
#
real-server rs2
ip address 192.168.1.2
success-criteria at-least 1
#
real-server rs3
ip address 192.168.1.3
success-criteria at-least 1
#
server-farm sf1
probe t1
probe t2
real-server rs1 port 0
real-server rs2 port 0
real-server rs3 port 0
#
server-farm sf2
probe t1
probe t3
real-server rs1 port 0
real-server rs2 port 0
real-server rs3 port 0
#
server-farm sf3
probe t1
probe t4
real-server rs1 port 0
real-server rs2 port 0
real-server rs3 port 0
#
sticky-group radius type radius
match-across-virtual-server enable
radius-attribute user-name
timeout 3600
#
virtual-server vs1 type radius
port 1812
virtual ip address 61.159.4.100
default server-farm sf1 sticky radius
udp per-packet
connection-sync enable
sticky-sync enable global
service enable
#
virtual-server vs2 type radius
port 1813
virtual ip address 61.159.4.100
default server-farm sf2 sticky radius
udp per-packet
connection-sync enable
sticky-sync enable global
service enable
#
virtual-server vs3 type udp
port 3799
virtual ip address 61.159.4.100
default server-farm sf3
udp per-packet
connection-sync enable
sticky-sync enable global
service enable
#
nat address-group 5 name AAA_SNAT_POOL
address 61.159.4.100 61.159.4.100
#
acl advanced 3001
rule 0 permit ip source 192.168.1.1 0
rule 1 permit ip source 192.168.1.2 0
rule 2 permit ip source 192.168.1.3 0
#
interface Route-Aggregation10.1288
ip address 10.0.0.1 255.255.255.0
nat outbound 3001 address-group 5
vlan-type dot1q vid 1288
#
如图所示,LB设备后接多台SIP服务器组成的SIP服务器群。现有3台SIP服务器为外网用户提供SIP服务,3台SIP服务器地址为192.168.1.1~192.168.1.3。负载均衡设备会将HOST发送的SIP请求报文进行分配,使SIP请求报文均匀地分布在不同的SIP服务器上。如果SIP客户端的数目过少,可以保证服务器分担均匀,同时可以使同一CALL-ID的SIP请求发送至同一台服务器上。
图663 LB支持SIP组网图
为了实现LB支持SIP功能,需要在LB设备上完成如下配置:
· 为使同一CALL-ID的SIP请求发送至同一台服务器上,需配置SIP类型持续性组
· 为探测SIP服务器基本功能是否正常,需配置SIP类型健康检测模板
· 为保证SIP业务基本运行,需配置实服务组,添加实服务器成员,并引用SIP类型健康检测模板,需配置SIP-UDP(或SIP-TCP)类型虚服务器,并引用实服务组和SIP类型持续性组
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 健康检测使用sip类型健康检测模板
· 本典配以SIP-UDP类型虚服务器为例,SIP-TCP类型虚服务可类似参考进行配置验证
· SIP-UDP类型虚服务建议开启UDP强制负载均衡功能
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测配置页面。
单击<新建>,添加健康检测名称为sip,传输协议为UDP,如下图所示。
图664 新建sip类型健康检测模板
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf,调度算法为加权轮转,健康检测方法选择sip的实服务组,如下图所示。
图665 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图666 添加实服务组成员
图667 新建实服务器
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图668 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>,持续性组名称为sip,类型为SIP,SIP持续性方法为Call-ID,如下图所示。
图669 新建持续性组sip
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,新建虚服务器名称为vs,类型SIP-UDP,地址为61.159.4.100,端口号为5060,开启UDP强制负载均衡,实服务组为sf,实服务组的持续性为sip,并开启虚服务,单击<确定>。如下图所示。
图670 新建SIP-UDP类型服务器
单击<确定>,完成操作。
验证前先清除实服务组成员的统计数据,以免干扰判断,清除后,再打流量进行验证。
在导航栏中选择“监控>应用负载>实服务组>实时统计>”,单击右侧<详细>,进入实服务组成员统计页面,单击<清除>下的清除全部数据以清除所有实服务组成员的统计。
图671 清除实服务组成员统计
通过点击实服务组成员统计页面右侧的详细查看每个实服务组成员的详细统计信息。
图672 查看每个实服务组成员的详细统计信息
HOST大量地址向虚服务vs发起SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求被平均分配到三台服务器。查看服务器端报文,可以看到sip会话成功建立,并发送RTP媒体流。
图673 实服务组成员统计结果
图674 查看服务器端报文,可以看到sip会话成功建立,并发送RTP媒体流。
虚服务开启UDP强制负载均衡功能时,清除实服务组成员的统计,HOST一个用户向虚服务vs发起SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求被平均分配到三台服务器。
图675 开启UDP强制负载均衡时实服务器统计页面
虚服务关闭UDP强制负载均衡功能时,清除实服务组成员的统计,HOST一个用户向虚服务vs发起SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求只分配到一台服务器。
图676 虚服务关闭UDP强制负载均衡功能
图677 关闭UDP强制负载均衡功能实服务器统计
清除实服务组成员的统计,HOST向虚服务器vs发起同一CALL-ID的SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求被分配到同一台服务器。查看报文,可以看到不同源地址但CALL-ID相同被分配到相同的实服务器。
图678 实服务器统计页面
图679 查看服务端报文,不同源IP相同CALL-ID的流量被分配到同一服务器
#
server-farm sf
probe sip
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
nqa template sip sip
reaction trigger probe-pass 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
sticky-group sip type sip
header call-id
#
virtual-server vs type sip-udp
virtual ip address 61.159.4.100
default server-farm sf sticky sip
udp per-packet
connection-sync enable
sticky-sync enable global
service enable
#
如图所示,在两台集群前置机上分别有队列管理器QMGR.S0X_1、QMGR.P0X_1和QMGR.S0X_2、QMGR.P0X_2四个队列管理器。两台前置机上队列管理器除了ip地址和队列管理器名字不同,其他配置完全相同。对外暴露的队列管理器名称为QMGR.S0X、QMGR.P0X。负载均衡在接收到报文的时候,需解析报文,根据集群前置机的情况替换队列管理器名称,加上后缀_1或者_2,使得厂商的请求发送到内部的集群前置机上。
· 请求响应模式:请求响应模式使用端口号5001、5002和5003,客户请求报文携带QMGR.S01,对于请求的消息要1:1的分发在两台前置机上,经过设备后需要在队列管理器名称后添加_1或_2,然后进行负载均衡,服务器端返回响应报文的队列管理器名称QMGR.S01_1或QMGR.S01_2,经过设备后替换成QMGR.S01。当前置机1中某个队列管理故障时,则只有该队列管理器的请求分发给前置机2对应的管理器处理,其他队列管理器的业务不做切换。例如QMGR.S01_1队列管理器出现问题后,会将携带QMGR.S01的请求全部发送至QMGR.S01_2的队列管理器,QMGR.S02_1队列管理器仍然由前置机1处理。同时QMGR.S01_1队列管理器故障恢复后,则自动恢复负载均衡的功能。
· 推送模式:推送模式使用端口号4001、4002和4003,客户端请求报文携带QMGR.P01,在前置机正常工作的情况下,所有的推送都固化在一台前置机1上。负载均衡需要将收到的报文进行解析,在队列管理器名称后添加_1,服务器端返回响应报文携带队列管理器名称QMGR.P01_1,经过设备后替换成QMGR.P01。当前置机1中某个队列管理器故障时,则所有推送模式下的请求都分发给前置机2,并且当故障队列管理器恢复后也不进行切回。
· 对于请求中不携带队列管理器名称的请求则根据访问控制列表acl设置匹配端口号。
图680 负载均衡组网图
为实现项目需求,需要在LB设备上完成如下配置:
· 分别配置请求响应模式和推送模式下的实服务组,添加实服务器,并配置实服务器的变量
· 分别配置请求响应模式和推送模式下的负载均衡流量特征,匹配请求中所携带的队列管理器名称。对于请求中不携带队列管理器名称的,配置ACL端口过滤策略。
· 推送模式下,当前置机1的某个队列管理故障,所有业务需要整体切换,只需配置一个实服务组,并配置所引用的实服务器端口号为0,配置一条acl规则,匹配目的端口号4001、4002和4003;请求响应模式下,当前置机1的某个队列管理器故障时,只切换该队列管理器,其他业务不做切换,需要分别配置三个实服务组,分别配置每个实服务组所引用的实服务器端口号为5001、5002和5002,配置三条acl规则,分别匹配目的端口号5001、5002和5003.
· 配置负载均衡动作,请求方向,对于匹配队列管理器或者acl规则的请求中的队列管理器名称,在队列管理器名称后添加相应的实服务器的变量值。响应方向,替换成真实请求方向所携带的队列管理器名称。
· 推送模式下需要配置一台服务器的优先级高于另一台服务器的优先级,并配置目的地址持续性。配置目的地址持续性的目的是当一台前置机A故障业务切换值前置机B,当前置机A又恢复时,业务不回切。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5000-AD520-G1的 Release 9900P36版本上进行配置和验证的。
· 本项目使用TCP类型四层虚服务切换到七层模式,同时虚服务下要配置端口号,当前版本最多支持200个端口,32个端口段。若TCP类型的虚服务配置的端口号大于200个,通常情况下只能够监听配置的前200个端口号。
· 推送模式下要使用基于目的地址的持续性同时需要开启持续性不老化
· 对于请求不携带队列管理器名字时,服务器应答也需要进行改写,该种情况需求用acl进行端口过滤
· 注意实服务器回LB设备上路由可达,可将SNAT地址池中的地址跟出接口地址一个网段,地址池中开启响应arp功能;如果不是一个网段,需要在实服务器上配置回SNAT地址池的路由。本举例中SNAT地址池地址跟出接口地址一个网段,实服务器上不用再配置到SNAT路由了。(如果使用分布式设备,SNAT的地址池数目要大于板卡数目)
· 本文中负载均衡类匹配规则采用了正则表达式QMGR.P0(\\d{1,3}),其中\d表示匹配任意一个数字,{1,3}表示匹配1次到3次。(\\d{1,3})表示匹配任意一个数字1到3次,所以该正则表达式的范围为QMGR.P00-- QMGR.P0999,如对正则表达式有疑问,请上网搜索更多相关资料。
· 动作中保证内容改写长度前后一致,对于动作中改写内容要知道改写后的长度,从而配置被改写的内容确认添加几个空格;例如” QMGR.P01 ”(添加2个空格)改写后是QMGR.P01_1 保证改写前后长度一致,双引号需要使用英文输入法。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为4001,类型为TCP的健康检测模板,目的端口号为4001,如下图所示。
图681 新建健康检测模板
单击<确定>按钮,完成操作。
新建健康检测模板4002、4003、5001、5002、5003与4001步骤相同
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,参照上图新建健康检测模板名称为4002,类型为TCP的健康检测模板,目的端口号为4002 ;
单击<新建>,参照上图新建健康检测模板名称为4003,类型为TCP的健康检测模板,目的端口号为4003 ;
单击<新建>,参照上图新建健康检测模板名称为5001,类型为TCP的健康检测模板,目的端口号为5001 ;
单击<新建>,参照上图新建健康检测模板名称为5002,类型为TCP的健康检测模板,目的端口号为5002 ;
单击<新建>,参照上图新建健康检测模板名称为5003,类型为TCP的健康检测模板,目的端口号为5003 ;
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat,如下图所示。
图682 新建IPv4源地址池
单击<确定>,完成操作。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>,新建持续性组名称为dip,配置持续性永不老化,持续性方法为目的地址
如下图所示。
图683 新建持续性组
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为rq5001,调度算法为源IP地址哈希,引用snat地址池snat,开启实服务故障处理方式为重定向,如下图所示。
图684 新建实服务组
单击<确定>按钮,完成操作。
新建实服务组rq5002、rq5003、push与rq5001步骤相同
单击<新建>,参照上图新建实服务组名称为rq5002,调度算法为源IP地址哈希,引用snat地址池snat,开启实服务故障处理方式为重定向连接;
单击<新建>,参照上图新建实服务组名称为rq5003,调度算法为源IP地址哈希,引用snat地址池snat,开启实服务故障处理方式为重定向连接;
单击<新建>,参照上图新建实服务组名称为push,调度算法为源IP地址哈希,引用snat地址池snat,开启实服务故障处理方式为重定向连接;
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组rq5001,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口号为5001,引用健康检测5001,配置变量名var1、变量值_1.
如下图所示。
图685 添加实服务组成员
图686 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组rq5001,单击新建成员列表,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2,端口号为5001,引用健康检测5001,配置变量名var1、变量值_2
图687 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组rq5002,单击添加成员列表,参照上图添加已存在的实服务器rs1和rs2,配置其端口号均为5002,健康检测均引用5002,配置变量名均为var1、变量值分别为_1和_2
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组rq5003,单击添加成员列表,参照上图添加已存在的实服务器rs1和rs2,配置其端口号均为5003,健康检测均引用5003,配置变量名均为var1、变量值分别为_1和_2
如下图所示
图688 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组push,单击添加成员列表,参照上图添加已存在的实服务器rs1,健康检测引用4001、4002、4003,配置变量名为var1、变量值为_1,并配置实服务器rs1的优先级较高,值为8
如下图所示。
图689 添加实服务组成员
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组push,单击添加成员列表,参照上图添加已存在的实服务器rs2,健康检测引用4001、4002、4003,配置变量名为var1、变量值为_2
图690 实服务组信息
在导航栏中选择“对象>ACL>IPv4”,进入ACL页面。
单击<新建>,创建高级ACL port400X,新建三条规则,匹配端口号4001、4002和4003
图691 创建ACL
单击<确定并添加规则>,进入新建IPv4高级ACL规则的页面
图692 第一条规则
单击<确定并继续添加>,参照上图创建第二条和第三条ACL规则,配置IP协议类型为tcp,匹配目的端口号分别等于4002和4003
单击<确定>,完成ACL port400X的规则创建
图693 ACLport400X的规则内容
参照上图创建第二条和第三条ACL规则,配置IP协议类型为tcp,匹配目的端口号分别等于4002和4003
在导航栏中选择“对象>ACL>IPv4”,进入ACL页面。
单击<新建>,参照上图创建高级ACL rq5001,新建一条规则,配置IP协议类型为tcp,匹配目的端口号等于5001
单击<新建>,参照上图创建高级ACL rq5002,新建一条规则,配置IP协议类型为tcp,匹配目的端口号等于5002
单击<新建>,参照上图创建高级ACL rq5003,新建一条规则,配置IP协议类型为tcp,匹配目的端口号等于5003
如下图所示
图694 ACL信息
在导航栏中选择“负载均衡>应用负载>高级策略”,点击流量特征,进入流量特征页面。
单击<新建>,新建流量特征名称为rq5001,类型选择通用,匹配acl规则rq5001,如下图所示。
图695 新建流量特征
单击<确定>,完成配置。
配置流量特征rq5002、rq5003、push#步骤与rq5001一致,参照上图分别配置流量特征名称为rq5002、rq5003和push#,类型为通用,分别匹配acl规则rq5002、rq5003、port400X
配置流量特征名称为push匹配TCP载荷中带有QMGR.P0X的内容
图696 新建流量特征
单击<确定>,完成配置。
图697 流量特征信息
在导航栏中选择“负载均衡>应用负载>高级策略”,点击动作,进入动作页面。
单击<新建>,新建动作名称为rq5001,类型选择通用,主用实服务组rq5001并配置TCP载荷重写,如下图所示。
图698 新建动作
单击<确定>,完成配置。
配置动作rq5002、rq5003步骤与rq5001一致,参照上图分别配置动作名称为rq5002、rq5003,类型为通用,分别TCP载荷重写如下图所示
图699 新建动作rq5002
图700 新建动作rq5003
单击<新建>,新建动作名称为push,类型选择通用,主用实服务组push引用持续性组dip并配置TCP载荷重写,如下图所示。
图701 新建动作push
单击<确定>,完成配置。
在导航栏中选择“负载均衡>应用负载>高级策略”,点击负载均衡策略,进入负载均衡策略页面。
单击<新建>,新建负载均衡策略名称为mq,类型选择通用,配置规则,如下图所示。
图702 新建负载均衡策略
单击<确定>,完成配置。
在导航栏中选择“负载均衡>应用负载>虚服务器”进入虚服务器页面。
单击<新建>,新建虚服务器名称为tcp,类型选择tcp,配置端口号4001-4003,5001-5003,负载分担模式为七层模式,引用负载均衡策略mq,如下图所示。
图703 新建虚服务器
查看实服务器流量分担情况,只有rs1有流量分担。
在导航栏中选择“监控>实服务组>实时统计”,点击详情,查看实服务组成员统计。
图704 实服务器rs1统计
当前置机1故障时,所有请求切换到前置机2上,查看当rs1健康检测失败,rs2健康检测成功时,所有的流量切换到rs2上。
图705 实服务器rs2统计
前置机1故障恢复,流量不回切,查看rs1健康检测成功,流量仍然有rs2分担,不会回切到rs1上。
图706 实服务器rs2统计
在客户端和服务器端分别捕获报文,查看请求和响应方向的TCP载荷改写成功。
Client端查看抓包信息如下:Request方向请求报文TCP载荷QMGR.P01 ,(P01后有两位空格)
图707 Client端抓包信息
server端查看抓包信息如下:Request方向请求报文TCP载荷QMGR.P01_1,请求方向TCP载荷改写成功。
图708 server端抓包信息
Server端查看抓包信息如下: Response方向回应报文,TCP载荷为QMGR.P01_1
图709 server端抓包信息
client端查看抓包信息如下: Response方向回应报文,TCP载荷为QMGR.P01 (P01后有两位空格),响应方向TCP载荷改写成功。
图710 Client端抓包信息
在导航栏中选择“监控>实服务组>实时统计”,点击详情,查看实服务组成员统计。
图711 实服务器rs1和rs2统计
在客户端和服务器端捕获报文,查看请求和响应方向的TCP载荷改写成功。
Client端查看抓包信息如下: Request方向请求报文,携带的TCP载荷QMGR.S01 (S01后有两位空格)
图712 Client端抓包信息
Server端查看抓包信息如下: request方向请求报文,TCP载荷为QMGR.S01_2,请求方向TCP载荷改写成功。
图713 Server端抓包信息
Server端查看抓包信息: Response方向回应报文,报文所携带的TCP载荷为QMGR.S01_2
图714 Server端抓包信息
client端查看抓包信息如下: Response方向回应报文,TCP载荷为QMGR.S01 (S01后有两位空格)。Response方向TCP载荷改写成功。
图715 Client端抓包信息
[L1000E]dis sticky virtual-server tcp
Slot 1:
Virtual server name: tcp
Sticky zone type: Class
Class name: push
Sticky group name: dip
Sticky method: Destination IP
Timeout: Indefinite
Sticky entry Real server Expiration time Count
--------------------------------------------------------------------------------
2.10.0.100 2.11.0.1/5003 0
Slot 2:
Virtual server name: tcp
Sticky zone type: Class
Class name:push
Sticky group name: dip
Sticky method: Destination IP
Timeout: Indefinite
Sticky entry Real server Expiration time Count
--------------------------------------------------------------------------------
2.10.0.100 2.11.0.1/5003 117
#
nqa template tcp 4001
destination port 4001
reaction trigger probe-pass 1
#
nqa template tcp 4002
destination port 4002
reaction trigger probe-pass 1
#
nqa template tcp 4003
destination port 4003
reaction trigger probe-pass 1
#
nqa template tcp 5001
destination port 5001
reaction trigger probe-pass 1
#
nqa template tcp 5002
destination port 5002
reaction trigger probe-pass 1
#
nqa template tcp 5003
destination port 5003
reaction trigger probe-pass 1
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation1.20
#
sticky-group dip type address-port
ip destination
timeout indefinite
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
server-farm rq5001
fail-action reschedule
snat-pool snat
real-server rs1 port 5001
probe 5001
variable var1 value _1
real-server rs2 port 5001
probe 5001
variable var1 value _2
#
server-farm rq5002
fail-action reschedule
snat-pool snat
real-server rs1 port 5002
probe 5002
variable var1 value _1
real-server rs2 port 5002
probe 5002
variable var1 value _2
#
server-farm rq5003
fail-action reschedule
snat-pool snat
real-server rs1 port 5003
probe 5003
variable var1 value _1
real-server rs2 port 5003
probe 5003
variable var1 value _2
#
server-farm push
fail-action reschedule
snat-pool snat
real-server rs1 port 0
priority 8
probe 4001
probe 4002
probe 4003
variable var1 value _1
real-server rs2 port 0
probe 4001
probe 4002
probe 4003
variable var1 value _2
#
acl advanced name port400X
rule 0 permit tcp destination-port eq 4001
rule 5 permit tcp destination-port eq 4002
rule 10 permit tcp destination-port eq 4003
#
acl advanced name rq5001
rule 0 permit tcp destination-port eq 5001
#
acl advanced name rq5002
rule 0 permit tcp destination-port eq 5002
#
acl advanced name rq5003
rule 0 permit tcp destination-port eq 5003
#
loadbalance class rq5001 type generic
match 1 acl name rq5001
#
loadbalance class rq5002 type generic
match 1 acl name rq5002
#
loadbalance class rq5003 type generic
match 1 acl name rq5003
#
loadbalance class push type generic
match 1 payload QMGR.P0(\\d{1,3})
#
loadbalance class push# type generic
match 1 acl name port400X
#
loadbalance action rq5001 type generic
server-farm rq5001
payload rewrite request value "QMGR.S01 " replace QMGR.S01%[var1]
payload rewrite response value QMGR.S01_1 replace "QMGR.S01 "
payload rewrite response value QMGR.S01_2 replace "QMGR.S01 "
#
loadbalance action rq5002 type generic
server-farm rq5002
payload rewrite request value "QMGR.S02 " replace QMGR.S02%[var1]
payload rewrite response value QMGR.S02_1 replace "QMGR.S02 "
payload rewrite response value QMGR.S02_2 replace "QMGR.S02 "
#
loadbalance action rq5003 type generic
server-farm rq5003
payload rewrite request value "QMGR.S03 " replace QMGR.S03%[var1]
payload rewrite response value QMGR.S03_1 replace "QMGR.S03 "
payload rewrite response value QMGR.S03_2 replace "QMGR.S03 "
#
loadbalance action push type generic
server-farm push sticky dip
payload rewrite request value "QMGR.P01 " replace QMGR.P01%[var1]
payload rewrite request value "QMGR.P02 " replace QMGR.P02%[var1]
payload rewrite request value "QMGR.P03 " replace QMGR.P03%[var1]
payload rewrite response value QMGR.P01_1 replace "QMGR.P01 "
payload rewrite response value QMGR.P01_2 replace "QMGR.P01 "
payload rewrite response value QMGR.P02_1 replace "QMGR.P02 "
payload rewrite response value QMGR.P02_2 replace "QMGR.P02 "
payload rewrite response value QMGR.P03_1 replace "QMGR.P03 "
payload rewrite response value QMGR.P03_2 replace "QMGR.P03 "
#
loadbalance policy policy type generic
class push action push
class push# action push
class rq5001 action rq5001
class rq5002 action rq5002
class rq5003 action rq5003
#
virtual-server tcp type tcp
port 4001 to 4003 5001 to 5003
virtual ip address 2.10.0.100
lb-policy mq
service enable
route-advertisement enable
connection-sync enable
sticky-sync enable
application-mode enable
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络。以往只靠单台MySQL数据库服务器就能满足用户的服务需求,随着用户访问人数增多,同时读写导致性能渐渐开始下降,对于用户的直观感受就是响应慢,对于开发人员来说是长时间处于等待MySQL数据库的响应中,极大了影响用户体验。解决这个问题的一种简单实用方案是使用数据库负载均衡,将用户的请求分担到不同机器上执行,减轻单台数据库压力,从而提高响应能力。同时,要求把读数据库的操作发到读服务器上,把写数据库的操作发到写服务器上。如图所示,HOST经过负载均衡设备访问Mysql服务器,服务器Server A、Server B提供读请求的服务,Server C提供写请求的服务,在读写请求切换服务器时不断开连接,后续的请求可以复用之前读写的连接,以减小服务器的压力。
图716 MySQL负载均衡组网图
为实现MySQL负载均衡的功能,需要在LB设备上完成如下配置:
· 分别配置读实服务组、写实服务组、读实服务器,写实服务器,把读实服务器新建到读实服务组,把写实服务器新建到写实服务组。
· 配置MySQL类型的虚服务,开启读写分离功能,分别引用读实服务组和写实服务组,数据库的用户名密码配置需和真实MySQL服务器保持一致,数据库的版本号小于等于真实服务器的版本号,建议保持一致。
· 配置MySQL类型的参数模板,开启连接复用功能,引用到MySQL虚服务下。
· Snat
· 用户发起对MySQL数据库的请求命中虚服务后,读写的请求分别被调度到读写实服务组的实服务器上。MySQL的参数模板应用到虚服务下,保证在读写请求切换读写实服务组时,和服务器的连接不断开。
本举例是在L5000-AD540-G1的Release 9900P36版本上进行配置和验证的。
· 在MySQL类型的虚服务下,数据库的用户名密码需和真实MySQL服务器保持一致,数据库的版本号小于等于真实服务器的版本号,建议保持一致。
· 需要在MySQL的虚服务下引用开启连接复用功能的MySQL参数模板。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为3306,如下图所示。
图717 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>公共配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入1.1.1.11,结束IP地址填入1.1.1.20,如下图所示。
图718 新建源地址池
图719 源地址池信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,分别新建读实服务组sf_read,写实服务组sf_write,调度算法为加权轮转算法,健康性检测选择t1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图720 新建读实服务组sf_read
单击<确定>按钮,完成操作。
图721 新建写实服务组sf_write
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf_read,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图722 添加实服务组成员
图723 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf_read,单击新建成员列表,参照上图创建实服务器rs2,分别配置其IPv4地址为192.168.1.2。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf_write,单击新建成员列表,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3。
图724 实服务组sf_read信息
图725 实服务组sf_write信息
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为mysql,类型选择MySQL,开始连接复用功能,如下图所示:
图726 新建参数模板
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择MySQL,地址为61.159.4.100/32,端口号为3306,开启读写分离功能,指定读实服务组为sf_read,写实服务组为sf_write,配置用户名和密码以及MySQL的版本号(本例服务端的用户名和密码为root/123456,版本号为5.7),引用MySQL类型的参数模板mysql,并开启虚服务功能,如下图所示。
图727 新建虚服务器
图728 新建用户
单击<确定>,完成操作。
图729 客户端抓包报文分析
可以看到读写的请求各建了一个连接。
图730 实服务器抓包报文分析
可以看到读请求选择了一个读实服务器,写请求选择了一个写实服务器。在读写请求切换实服务的时候没有断开已有连接。
在有流量的情况下,在导航栏中选择“监控>会话监控>代理会话”,可以看到流量的会话记录,如下图所示。
图731 代理会话信息
#
nqa template tcp t1
destination port 3306
#
parameter-profile mysql type mysql
server-connection reuse
#
loadbalance snat-pool snat1
ip range start 1.1.1.11 end 1.1.1.20
arp-nd interface Route-Aggregation1.20
#
server-farm sf_read
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server sf2 port 0
success-criteria at-least 1
#
server-farm sf_write
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs3
ip address 192.168.1.3
#
real-server sf2
ip address 192.168.1.2
#
virtual-server vs type mysql
virtual ip address 61.159.4.100
parameter mysql mysql
sticky-sync enable global
version 5.7
username root password cipher U1FMABVVvBCOQGelh2yW3A==
readwrite-separation read-server-farm sf_read write-server-farm sf_write
service enable
#
因实际业务需要,需要支持Oracle数据库服务器的负载均衡分担,如图所示,Host经过负载均衡设备访问Oracle数据库服务器。三台服务器Server A、Server B和Server C均可提供Oracle数据库的服务。通过配置应用负载均衡,让这三台服务器联合提供Oracle数据库的服务,并通过健康检测来监控这些服务器是否可达。
图732 TCP SPLIT组网图
为实现LB支持TCP SPLIT功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· TCP类型的虚服务器,并开启七层分担功能。
· 用户发起对Oracle数据库的请求命中虚服务后,通过实服务组的负载分担方法分担到实服务器。需要配置虚服务监听的端口号为Oracle服务的端口号。
本举例是在L5000-AD520-G1的 Release 9900P36版本上进行配置和验证的。
· 需要配置虚服务的端口号为Oracle服务的端口号。
· 需要打开TCP类型虚服务的七层负担分担模式开关。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为1521,如下图所示。
图733 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>公共配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入1.1.1.11,结束IP地址填入1.1.1.20,如下图所示。
图734 新建源地址池
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
新建实服务组名称为sf1,调度算法为加权轮转,健康检测选择t1,源地址池为snat1,如下图所示。
图735 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图736 添加实服务组成员
图737 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图738 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为1521,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图739 新建虚服务器
单击<确定>按钮,完成操作。
图740 Host发起Oracle请求
图741 客户端抓包报文分析
图742 实服务器抓包报文分析
在有流量的情况下,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面可以看到流量的会话记录,如下图所示。
图743 设备会话列表
#
nqa template tcp t1
destination port 1521
#
loadbalance snat-pool snat1
ip range start 1.1.1.11 end 1.1.1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
port 1521
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
service enable
#
测试应用交付控制器在改变用户的源地址后,需要将用户的真实地址插入到TCP包中,以便后台服务器获取客户端源地址;此外由于客户端的时间戳选项不同,若经过源地址转换成同一个地址到后台服务器,有可能由于时间戳不同,后台服务器会丢弃比已接受报文时间戳早的报文,所以需要清除LB设备发送到服务器端TCP报文的时间戳选项。如图所示,HOST经过负载均衡设备访问web服务器,三台服务器Server A、Server B和Server C均可提供HTTP的服务。通过配置应用负载均衡,引用snat地址池,把报文的源地址转换成snat地址池中的地址发给服务端,同时在发往服务端的TCP报文中在TCP Option 28字段插入用户的真实源地址,并且清除LB设备发送到服务器端TCP报文中TCP Option 8字段时间戳选项。
图744 TCP源地址插入和TCP Option清除组网图
为实现TCP源地址插入和TCP Option清除功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· 配置snat地址池,并在实服务组下引用。
· 配置TCP的参数模板,插入TCP Option的28字段(源地址),以及删除TCP Option 的8字段(时间戳)。
· 配置TCP类型的虚服务器,开启七层负载分担功能,并在此虚服务下引用TCP参数模板。
· 用户发起的HTTP请求命中虚服务后,把报文的源地址转换成snat地址池中的地址发给服务端,同时在发往服务端的TCP报文中在TCP Option 28字段插入用户的真实源地址,并且清除LB设备发送到服务器端TCP报文中TCP Option 8字段时间戳选项。
本举例是在L5000-AD540-G1的 Release 9900P36版本上进行配置和验证的。
· TCP类型的虚服务需要配置服务端口号(配置具体的服务端口号,不能为0),并打开七层负载分担功能。
· 配置TCP类型的参数模板,使number为28的TCP Option中插入真实的客户端源地址,以及清除TCP Option中number为8的时间戳选项。
· 同时支持七层HTTP类型的虚服务。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图745 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>公共配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入192.168.1.201,结束IP地址填入192.168.1.210,发送免费ARP或ND报文的接口选RAGG1.20,如下图所示。
图746 新建源地址池
图747 源地址池信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
新建实服务组名称为sf1,调度算法为加权轮转,健康检测选择t1,源地址池为snat1,如下图所示。
图748 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图749 添加实服务组成员
图750 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图751 实服务组信息
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为tcp_option,类型选择TCP,
图752 新建参数模板
单击<确定>按钮,完成操作。
图753 参数模板信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为80,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图754 新建虚服务器
单击<确定>按钮,完成操作。
在服务器端可以看到报文number为28的TCP Option中插入真实的客户端源地址:从1c 06 0a 00 00 14 计算,1c代表是option编号28,06代表这个option的长度,0a 00 00 14 代表地址源地址是10.0.0.20,并且清除了tcp报文中TCP Option 8字段时间戳选项。如下图所示:
图755 服务器端插入真实的客户端源地址,删除了时间戳
图756 虚服务器不引用参数模板的服务器端抓包
#
nqa template tcp t1
destination port 80
#
parameter-profile tcp_option type tcp
tcp option remove 8
tcp option insert 28 value %{is}
#
loadbalance snat-pool snat1
ip range start 192.168.1.201 end 192.168.1.210
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
real-server sf2 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs3
ip address 192.168.1.3
#
real-server sf2
ip address 192.168.1.2
#
virtual-server vs1 type tcp
port 80
virtual ip address 61.159.4.100
parameter tcp tcp_option server-side
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
service enable
#
在SLB四层部署SNAT业务情况下,如果服务器端需要基于客户端的地址做数据统计,且要求使用非TOA方式透传源IP,则可使用代理协议(Proxy-protocol)方式透传源IP。 该方式会将客户端的真实IP 地址、端口号、协议版本等信息传递给后端服务器,使服务器能够获取并记录真实客户端信息。
图757 Protocol源地址插入组网图
为实现Protocol源地址插入功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· 配置snat地址池,并在实服务组下引用。
· 配置TCP类型的虚服务器,开启七层负载分担功能,并在此虚服务下启用代理协议,根据兼容性和需求选择代理协议版本。
本举例是在L5000-AD540-G1的 Release 9900P36版本上进行配置和验证的。
· TCP类型的虚服务需要配置服务端口号(配置具体的服务端口号,不能为0),并打开七层负载分担功能。
· 选择版本时建议:
¡ Version 1:基于文本的格式,需要更好的兼容性选择v1;
¡ Version 2:基于二进制的格式,需要更高效率或IPv6等扩展信息选择v2。
· 后端服务器必须支持并开启Proxy Protocol解析。若服务器未启用解析,可能会将Proxy Protocol头部当作业务数据,导致应用层报文异常(如HTTP报文解析失败、连接失败等)。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图758 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>公共配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入192.168.1.201,结束IP地址填入192.168.1.210,发送免费ARP或ND报文的接口选RAGG1.20,如下图所示。
图759 新建源地址池
图760 源地址池信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
新建实服务组名称为sf1,调度算法为加权轮转,健康检测选择t1,源地址池为snat1,如下图所示。
图761 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图762 添加实服务组成员
图763 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图764 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为80,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图765 新建虚服务器
开启七层负载分担,根据兼容性和需求配置代理协议
代理协议版本1:
开启七层负载分担,代理协议版本2:
单击<确定>按钮,完成操作。
在服务器端可以看到报文中插入真实的客户端源地址,而非snat转换后的地址,代理协议v1报文如下图所示:
图766 服务器端插入了proxyv1包,报文中存在需要插入的源地址
在服务器端可以看到报文中插入真实的客户端源地址,而非snat转换后的地址,代理协议v2报文如下图所示:
图767 虚服务器端插入了proxyv2包,报文中存在需要插入的源地址
图768
#
nqa template tcp t1
destination port 80
#
loadbalance snat-pool snat1
ip range start 192.168.1.201 end 192.168.1.210
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
real-server sf2 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs3
ip address 192.168.1.3
#
real-server sf2
ip address 192.168.1.2
#proxyv1的虚服务
virtual-server vs1 type tcp
port 80
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
proxy-protocol enable
service enable
#proxyv2的虚服务
virtual-server vs1 type tcp
port 80
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
proxy-protocol enable v2
service enable
#
实现IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器,并在LB设备上查看nat64和nat46的会话日志。如图所示,为实现客户端IPv4地址访问IPv6地址的服务器,LB设备上配置IPv6地址的snat地址池,Host通过IPv4地址的LB虚服务IP,发起对IPv6地址的服务器的访问,并在LB设备上查看nat46的会话日志。为实现客户端IPv6地址访问IPv4地址的服务器,LB设备上配置IPv4地址的snat地址池,Host通过IPv6地址的LB虚服务IP,发起对IPv4地址的服务器的访问,并在LB设备上查看nat64的会话日志。
图769 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 分别配置nat64和nat46的源地址池
· LB设备配置nat日志功能
本举例是在 L5000-AD520-G1的Release 9900P36版本上进行配置和验证的。
· 虚服务器地址与snat-pool的匹配
· NAT 64只支持HTTP类型虚服务
· 举例版本不支持web配置nat日志,使用命令行配置
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,如下图所示。
图770 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,如下图所示。
图771 新建IPv4源地址池
单击<确定>,完成操作。
新建snat2步骤与snat1相同,snat2配置信息如下图所示。
图772 新建IPv6源地址池信息
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1、sf2分别绑定地址池snat1、snat2,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图773 新建实服务组
单击<确定>按钮,完成操作。
图774 新建实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图775 添加IPv4实服务组成员
图776 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2与rs1步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,新建实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为7.0.0.3。
图777 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf2,单击新建成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图778 添加IPv6实服务组成员
图779 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs12与rs11步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,新建实服务组成员,参照上图新建实服务器rs12,配置其IPv6地址为7::3。
图780 实服务组信息
单击<确定>按钮,完成操作。
新建HTTP类型的虚服务器vs1,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定实服务组sf1、sf2,类型选择HTTP,并开启虚服务,如下图所示。
图781 新建虚服务器vs1
单击<确定>,完成操作。
图782 新建虚服务器vs2
单击<确定>,完成操作。
目前LB设备暂不支持web界面开启nat日志功能,使用命令行进行举例。
[Sysname] loadbalance log enable nat
[Sysname] userlog flow syslog
(1) 在导航栏选择“监控>应用负载”,可以在LB设备上查看到虚服务和实服务的统计信息,此处不赘述
(2) 在导航栏选择“监控>事件类日志>系统日志”,查看NAT64日志
图783 NAT64的日志
在导航栏选择“监控>会话监控>代理会话”,查看
图784 代理会话信息
(1) 在导航栏选择“监控>应用负载”,可以在LB设备上查看到虚服务和实服务的统计信息,此处不赘述
(2) 在导航栏选择“监控>设备日志>系统日志”,查看NAT64日志
图785 NAT46的日志
在导航栏选择“监控>会话监控>代理会话””,查看
图786 代理会话信息
#
nqa template http t1
expect status 200
#
loadbalance snat-pool snat1
ip range start 7.0.0.101 end 7.0.0.110
arp-nd interface Route-Aggregation1.20
#
loadbalance snat-pool snat2
ipv6 range start 7::101 end 7::10A
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
snat-pool snat2
probe t1
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
real-server rs1
ip address 7.0.0.2
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
real-server rs2
ip address 7.0.0.3
#
virtual-server vs1 type http
virtual ipv6 address 200::1
default server-farm sf1
sticky-sync enable global
service-down-action reset
service enable
#
virtual-server vs2 type http
virtual ip address 61.159.4.100
default server-farm sf2
sticky-sync enable global
service-down-action reset
service enable
#
loadbalance log enable nat
#
userlog flow syslog
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,ipv4使用32位地址,因此地址空间中只有4,294,967,296(2的32次方)个地址, IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍,在相当长的一段时间内,ipv4和ipv6将共存 ,需要IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器。ipv4用户10.0.0.2能访问ipv6的http服务器7::2/7::3,ipv6的用户300::2访问ipv4的HTTP服务器7.0.0.2/7.0.0.3。
图787 NAT64配置组网图
为实现四层的NAT64功能,需要在LB设备上完成如下配置:
· 在TCP类型的虚服务器下,负载分担模式选择七层
本举例是在 L5000-AD520-G1的Release 9900P36版本上进行配置和验证的。
· 实服务组引用源地址池。
· 在TCP类型的虚服务器下,负载分担模式选择七层。
· TCP类型的虚服务器下端口非0,要配置具体的端口值。
· 不支持多通道的协议,例如ftp。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图788 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,如下图所示。
图789 新建IPv4源地址池
单击<确定>,完成操作。
新建snat2步骤与snat1相同,snat2配置信息如下图所示。
图790 新建IPv6源地址池信息
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1、sf2分别绑定地址池snat1、snat2,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图791 新建实服务组
单击<确定>按钮,完成操作。
图792 新建实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图793 添加IPv4实服务组成员
图794 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2与rs1步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,新建实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为7.0.0.3。
图795 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf2,单击新建成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图796 添加IPv6实服务组成员
图797 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs12与rs11步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,新建实服务组成员,参照上图新建实服务器rs12,配置其IPv6地址为7::3。
图798 实服务组信息
单击<确定>按钮,完成操作。
新建TCP类型的虚服务器vs1,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定实服务组sf1、sf2,类型选择TCP,虚服务器端口号为80,负载分担模式为七层,并开启虚服务,如下图所示。
图799 新建虚服务器vs1
单击<确定>按钮,完成操作。
图800 新建虚服务器vs2
单击<确定>按钮,完成操作。
Host通过http://61.159.4.100、http://200::1访问HTTP服务器,访问成功,可以在LB设备上查看到虚服务和实服务的统计信息。
图801 查看负载均衡会话
#
nqa template tcp t1
destination port 80
#
loadbalance snat-pool snat1
ip range start 7.0.0.101 end 7.0.0.110
arp-nd interface Route-Aggregation1.20
#
loadbalance snat-pool snat2
ipv6 range start 7::101 end 7::10A
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
snat-pool snat2
probe t1
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
real-server rs1
ip address 7.0.0.2
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
real-server rs2
ip address 7.0.0.3
#
virtual-server vs1 type tcp
port 80
virtual ipv6 address 200::1
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
service-down-action reset
service enable
#
virtual-server vs2 type tcp
port 80
virtual ip address 61.159.4.100
default server-farm sf2
connection-sync enable
sticky-sync enable global
application-mode enable
service-down-action reset
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,IPv4使用32位地址,最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍,在相当长的一段时间内,ipv4和ipv6将共存 ,需要IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器。Internet上的服务器升级到了IPv6,某公司内部的ipv4用户10.0.0.0/24能访问ipv6的ftp服务器7::2/7::3。
图802 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 配置IPv6到IPv4的源地址静态转换策略,用于将报文的目的地址转换为IPv6地址。
· 配置NAT64前缀将报文源IPv4地址转换为IPv6地址。
· 配置IPv4到IPv6源地址动态转换策略,将匹配允许的源地址根据NAT64前缀转换为IPv6地址。
本举例是在 L5000-AD520-G1的Release 9900P36版本上进行配置和验证的。
· 接口下使能AFT
· 用NAT64前缀或General前缀之前,需要先进行NAT64前缀或General前缀的配置,转换策略才能生效。
· 虚服务器下开启响应ARP。
· 虚服务器下必须配置具体的IP,不能是网段。
· 仅四层支持LB和AFT组合使用。
· AFT转换必须有目的地址为转换后地址的路由,才能进行正常的AFT转换。
在导航栏中选择“网络>接口NAT>AFT”,点击接口设置,进入接口设置页面。
勾选使用的接口,单击<开启>
图803 接口开启AFT
图804 接口开启AFT后查看
(1) 配置ACL 2000,仅允许IPv4网络中10.0.0.0/24网段的用户访问IPv6的internet
在导航栏中选择“对象>ACL>IPv4”,进入ACL页面。
单击<新建>,创建基本ACL 2000,新建两条规则,允许10.0.0.0/24,其余则拒绝。
图805 创建ACL
单击<确定并添加规则>,进入新建IPv4基本ACL规则的页面
图806 第一条规则
单击<确定并继续添加>,创建第二条ACL规则
图807 第二条规则
单击<确定>,完成ACL2000的规则创建
图808 ACL2000的规则内容
(2) 配置NAT64前缀,此前缀将在ipv4到ipv6的源地址动态转换策略中被调用,将报文的源地址转换为ipv6地址
在导航栏中选择“网络>接口NAT>AFT >NAT64前缀”,进入NAT64前缀页面。
单击<新建>,新建NAT64前缀,IPv6前缀为2018::,NAT64前缀长度为96。
图809 新建NAT64前缀
单击<确定>按钮,完成操作。
(3) 配置IPv4到IPv6源地址动态转换策略,将匹配ACL 2000报文的源地址根据NAT64前缀转换为IPv6地址,目前LB设备暂不支持web界面配置,使用命令行进行举例.
[Sysname] aft v4tov6 source acl number 2000 prefix-nat64 2018:: 96
(4) 配置IPv6到IPv4的源地址静态转换策略,用于将报文的目的地址转换为IPv6地址
在导航栏中选择“网络>接口NAT>AFT >AFT策略”,进入AFT策略页面。
点击<新建>,新建AFT策略,转换方式选择v6tov4,IPv4地址为61.232.0.2,IPv6地址为200::1。
图810 IPv6到IPv4的源地址静态转换策略
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为tcp,类型为TCP的健康检测模板,如下图所示。
图811 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择tcp的实服务组,如下图所示。
图812 新建实服务组sf1
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图813 添加IPv6实服务组成员
图814 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs12与rs11步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,新建实服务组成员,参照上图新建实服务器rs12,配置其IPv6地址为7::3。
图815 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs_v6,类型选择TCP,分别设置虚服务器IP地址为200::1,并分别绑定实服务组sf1,开启响应ARP,并开启虚服务,如下图所示。
图816 新建虚服务器vs_v6
Host通过ftp 61.232.0.2访问ftp服务器,访问成功,可以在LB设备上查看到AFT的会话统计信息。
图817 业务访问成功
查看AFT会话,可以看到创建了一个IPv4会话和IPv6会话,分别对应着转换前后的报文
<Sysname>display aft session ipv4 verbose
Slot 1:
Initiator:
Source IP/port: 10.0.0.2/58595
Destination IP/port: 61.232.0.2/21
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 61.232.0.2/21
Destination IP/port: 10.0.0.2/58595
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 14:55:30 TTL: 3585s
Initiator->Responder: 10 packets 478 bytes
Responder->Initiator: 7 packets 500 bytes
Total sessions found: 1
<Sysname> display aft session ipv6 verbose
Slot 1:
Initiator:
Source IP/port: 2018::A00:2/58595
Destination IP/port: 200::1/21
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 7::3/21
Destination IP/port: 2018::A00:2/58595
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 14:55:30 TTL: 3598s
Initiator->Responder: 5 packets 326 bytes
Responder->Initiator: 3 packets 291 bytes
Total sessions found: 1
#
nqa template tcp tcp
destination port 21
#
interface Route-Aggregation1.10
ip address 10.0.0.1 255.255.255.0
aft enable
vlan-type dot1q vid 2259
#
interface Route-Aggregation1.20
aft enable
vlan-type dot1q vid 2260
ipv6 address 7::1/64
#
acl basic 2000
rule 0 permit source 10.0.0.0 0.0.0.255
rule 5 deny
#
aft prefix-nat64 2018:: 96
aft v6tov4 source 200::1 61.232.0.2
aft v4tov6 source acl number 2000 prefix-nat64 2018:: 96
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
server-farm sf2
predictor hash address source
probe tcp
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
virtual-server vs_v6 type tcp
virtual ipv6 address 200::1
default server-farm sf2
route-advertisement enable
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,IPv4使用32位地址,最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍,在相当长的一段时间内,ipv4和ipv6将共存 ,需要IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器。
Internet已经升级到了IPv6,但是某公司内部网络仍然是IPv4网络。而该公司仍希望为IPv6 Internet内的用户提供FTP服务。该公司访问IPv6 Internet使用的IPv6地址为300::2。
图818 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 通过IPv4到IPv6源地址静态转换策略,为IPv4网络中的FTP服务器地址指定一个对应的IPv6地址,IPv6 Internet中的主机通过访问该IPv6地址可以访问IPv4网络中的FTP服务器。设备收到发往该IPv6地址的报文时将其目的地址转换为对应的IPv4地址。
· 通过IPv6到IPv4源地址动态转换策略,将IPv6 Internet发送过来的IPv6报文源地址转换为IPv4地址7.0.0.200、 7.0.0.201。
本举例是在 L5000-AD520-G1的Release 9900P36版本上进行配置和验证的。
· 接口下使能AFT。
· 用NAT64前缀或General前缀之前,需要先进行NAT64前缀或General前缀的配置,转换策略才能生效。
· 虚服务器下开启响应ARP。
· 虚服务器下必须配置具体的IP,不能是网段。
· 仅四层支持LB和AFT组合使用。
· AFT转换必须有目的地址为转换后地址的路由,才能进行正常的AFT转换。
在导航栏中选择“网络>AFT”,进入接口设置页面。
勾选使用的接口,单击<开启>
图819 接口开启AFT
图820 接口开启AFT后查看
(1) 配置IPv6 ACL 2000,仅允许IPv6网络中300:: 64网段的用户访问IPv6的internet
在导航栏中选择“对象>ACL>IPv6”,进入ACL页面。
单击<新建>,新建基本ACL 2000,新建两条规则,允许300:: 64,其余则拒绝。
图821 新建ACL
单击<确定并添加规则>,进入新建IPv6基本ACL规则的页面
图822 第一条规则
单击<确定并继续添加>,创建第二条ACL规则
图823 第二条规则
单击<确定>,完成ACL2000的规则创建
图824 ACL2000的规则内容
(2) 配置NAT64前缀,报文的目的地址根据该NAT64前缀转换为IPv4地址
在导航栏中选择“网络>接口NAT>AFT >NAT64前缀”,进入NAT64前缀页面。
图825 新建NAT64前缀
单击<确定>按钮,完成操作。
(3) 配置AFT地址组
在导航栏中选择“对象>对象组>AFT地址组”,进入AFT地址组页面,单击<新建>,起始IP地址为7.0.0.200,结束IP地址7.0.0.203
图826 配置AFT地址组
单击<确定>按钮,完成操作。
(4) 配置IPv4到IPv6源地址动态转换策略,将匹配ACL 2000报文的源地址根据NAT64前缀转换为IPv6地址
在导航栏中选择“网络>接口NAT>AFT >AFT策略”,进入AFT策略页面,转换方式选择NAT64前缀,报文匹配规则(ACL)选2000,转换后源地址选择地址组0。
图827 新建AFT策略
单击<确定>按钮,完成操作。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为tcp,类型为TCP的健康检测模板,如下图所示。
图828 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择tcp的实服务组,如下图所示。
图829 新建实服务组sf1
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图830 添加实服务组成员
图831 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2与rs1步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,新建实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为7.0.0.3。
图832 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs_v4,类型选择TCP,分别设置虚服务器IP地址为61.159.4.100,并分别绑定实服务组sf1,开启响应ARP,并开启虚服务,如下图所示。
图833 新建虚服务器vs_v4
单击<确定>按钮,完成操作。
Host通过ftp ipv6 2018::61.159.4.100 访问ftp服务器,访问成功,可以在LB设备上查看到虚服务和实服务的和AFT的会话统计信息。
图834 业务访问成功
查看AFT会话,可以看到创建了一个IPv6会话和IPv4会话,分别对应着转换前后的报文
<Sysname>display aft session ipv6 verbose
Slot 1:
Initiator:
Source IP/port: 300::2/63359
Destination IP/port: 2018::3D9F:464/21
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 2018::3D9F:464/21
Destination IP/port: 300::2/63359
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 17:35:04 TTL: 3598s
Initiator->Responder: 7 packets 460 bytes
Responder->Initiator: 4 packets 372 bytes
Total sessions found: 1
<Sysname>display aft session ipv4 verbose
Slot 1:
Initiator:
Source IP/port: 7.0.0.203/63359
Destination IP/port: 61.159.4.100/21
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 7.0.0.3/21
Destination IP/port: 7.0.0.203/63359
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 17:35:04 TTL: 3592s
Initiator->Responder: 10 packets 479 bytes
Responder->Initiator: 7 packets 500 bytes
Total sessions found: 1
#
nqa template tcp tcp
destination port 21
#
interface Route-Aggregation1.10
aft enable
vlan-type dot1q vid 2257
ipv6 address 300::1/64
#
interface Route-Aggregation1.20
ip address 7.0.0.1 255.255.255.0
aft enable
vlan-type dot1q vid 2258
#
acl ipv6 basic 2000
rule 0 permit source 300::/64
rule 5 deny
#
aft address-group 0
address 7.0.0.200 7.0.0.203
#
aft prefix-nat64 2018:: 96
aft v6tov4 source acl ipv6 number 2000 address-group 0 no-pat
#
real-server rs1
ip address 7.0.0.2
#
real-server rs2
ip address 7.0.0.3
#
server-farm sf1
predictor hash address source
probe tcp
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
virtual-server vs_v4 type tcp
virtual ip address 2030::2030
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
通信过程中,有时部分服务器处理能力有限,分配大量连接会导致网络拥堵,因此需要限制这些服务器的连接数,为其设置上限,当这些服务器的连接数达到上限时,不再为这些服务器分配连接。同时,有些源地址可能发起大量的连接占用网络资源,导致其他地址用户无法访问,需要对这些地址的连接数进行限制。由于业务需要,要保证携带了某个Cookie字段的客户访问的连接数分发到同一服务器,且连接数不被限制。如下图,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,对服务器Server A的连接数进行限制,使其不超过200,对网段10.0.1.16/28发起的连接数进行限制,保证每个地址发起的连接不超过10个。当客户端携带了特定Cookie值时,连接被分配到服务器Server A,且连接数不被限制
图835 连接数限制组网图
为了实现连接数限制功能,需要在LB设备上完成如下配置:
· 配置实服务组,实服务器。
· 配置连接数限制策略,限制某一网段每个地址的连接数不超过10。
· 配置基于Cookie插入的持续性组,并关闭受连接数限制功能。
· 配置虚服务,引用实服务组、持续性组和连接数限制策略。
本举例是在L5000-AD540-G1的 Release 9900P36版本上进行配置和验证的。
· 持续性组要关闭受连接数限制功能。
· 基于Cookie的会话保持,Host端携带的Cookie要与需要分配到的实服务器的Cookie一致,可以通过命令行查看。
· 连接数限制策略规则,限制依据要勾选源地址和目的地址。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图836 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为加权轮转,健康检测方法选择t1的实服务组,如下图所示。
图837 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,最大连接数为200,如下图所示。
图838 添加实服务组成员
图839 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,rs2、rs3不配置最大连接数。
图840 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>:持续性组名称为cookie,类型为HTTP-Cookie,Cookie持续性方法为Cookie插入,Cookie名称为X-LB,关闭<受连接数限制>,如下图所示。
图841 新建持续性组cookie
单击<确定>按钮,完成操作。
在导航栏中选择“对象>ACL>IPv4”,单击<新建>:类型为高级,编号为3001,如下图所示。
图842 新建高级ACL规则3001
单击<确定>按钮,弹出新建IPv4高级ACL的规则,添加ACL匹配规则,匹配条件勾选择匹配源IP地址/通配符掩码和匹配目的IP地址/通配符掩码,源IP地址/通配符掩码为10.0.1.16/0.0.0.15,目的IP地址/通配符掩码为61.159.4.100/0.0.0.0,去勾选<继续添加下一条规则>如下图所示。
图843 新建高级ACL3001的匹配规则
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>连接数限制策略”进入连接数限制策略页面。
单击<新建>,添加连接数限制策略名称为lp的连接数限制策略,单击<新建>添加规则,类型为IPv4 ACL,ACL选择3001,限制依据勾选<源地址>和<目的地址>,连接数范围上限和下限都为10,如下图所示。
图844 新建连接数限制策略
图845 新建限制规则
图846 新建连接数限制策略规则
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,新建虚服务器名称为vs,类型为HTTP,IP为61.159.4.100,端口号为80,实服务组为sf1, 实服务组的持续性为cookie,连接数限制策略为lp,并开启虚服务,单击<确定>。
图847 新建虚服务器
单击<确定>,完成操作。
Web界面暂不支持查看设备各实服务组成员的Cookie值,仅支持命令行查询。
<Sysname>display sticky virtual-server brief
Sticky type Sticky method Sticky key Virtual server Real-server/Link
HTTP cookie Cookie Insert 2.0.74232acd.0 vs 192.168.1.1:0
HTTP cookie Cookie Insert 2.1.ac21e602.0 vs 192.168.1.3:0
HTTP cookie Cookie Insert 2.2.3e73b699.0 vs 192.168.1.2:0
验证前先清除虚服务器和实服务组成员的统计数据,以免干扰判断,清除后,再打流量进行验证。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,选择虚服务vs,单击<清除>清除虚服务器的统计。
图848 清除虚服务器统计
在导航栏中选择“监控>应用负载>实服务组>实时统计”,单击右侧<详细>,进入实服务组成员统计页面,单击<清除>下的清除全部数据清除所有服务组成员的统计。
图849 清除实服务组统计
通过点击虚服务器统计页面及实服务组成员统计页面右侧的详细查看每个虚服务器和实服务组成员的详细统计信息。
图850 查看虚服务器的详细统计信息
图851 查看每个实服务组成员的详细统计信息
100个源地址不包含连接数限制策略限制的地址段,向虚服务发起3000个连接,实服务器Sever A的总连接数为200,服务器Sever B的总连接数为1400,服务器Sever C的总连接数为1400,业务没有失败。
图852 实服务组成员rs1、rs2、rs3统计结果
图853 虚服务器统计结果
清除虚服务器和实服务组成员统计,100个源地址访问虚服务,100个地址包含连接数限制策略限制的地址段,发起3000个连接,实服务器Sever A的总连接数为200,实服务器Sever B和实服务器Sever C的总连接数均略小于等于1240,虚服务产生约320个丢包。
图854 实服务组成员rs1、rs2、rs3统计结果
清除虚服务器和实服务组成员统计,100个源地址访问虚服务,源地址包含连接数限制的地址段,发起3000个连接,客户端携带实服务器Sever A的cooike,实服务器连接数不受限制,且所有连接都分配到实服务器Sever A,Sever A的总连接数为3000, Sever B和Sever C的总连接数为0。
图855 实服务组成员rs1、rs2、rs3统计结果
#
nqa template http t1
expect status 200
#
acl advanced 3001
rule 0 permit ip source 10.0.1.16 0.0.0.15 destination 61.159.4.100 0
#
sticky-group cookie type http-cookie
override-limit enable
cookie insert
check all-packet
#
server-farm sf1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
connection-limit max 200
real-server rs3 port 0
success-criteria at-least 1
real-server sf2 port 0
success-criteria at-least 1
#
loadbalance limit-policy lp
limit 1 acl 3001 per-destination per-source amount 10 10
#
real-server rs1
ip address 192.168.1.1
#
real-server rs3
ip address 192.168.1.3
#
real-server sf2
ip address 192.168.1.2
#
virtual-server vs type http
virtual ip address 61.159.4.100
lb-limit-policy lp
default server-farm sf1 sticky cookie
sticky-sync enable global
service enable
#
用户通过局域网连接到LB设备访问Internet,要求对经过LB的业务流量做深度报文检测,识别网络攻击和安全隐患并执行相应动作,从而保护LB设备本身以及内网服务器的安全。
Host端发起IPS/AV/WAF攻击,经过设备均能够被识别并记录日志、执行相应动作(例如丢弃),实现对内部服务器的防护。
图856 深度报文检测组网图
为实现对经过LB的业务流量做深度报文检测,需要在LB设备上完成如下配置:
· 安装支持IPS/AV/WAF的License。
· 升级IPS/AV/WAF特征库到最新版本。
· 配置IPS/AV/WAF策略配置文件。
· 虚服务器引用IPS/AV/WAF策略。
本举例是在L5000-AD540-G1的 Release 9900P36版本上进行配置和验证的。
· 确认设备已经安装支持IPS/AV/WAF的License并升级对应特征库。
· 内容安全配置变更之后(新建、编辑、删除),需要提交才能生效。
· IPS/AV开启输出系统日志功能。
· WAF只支持快速日志,需要开启输出快速日志到日志主机功能。
在导航栏中选择“系统 > License配置,单击<安装>按钮加载License文件对相应模块进行授权。
图857 安装License
图858 IPS/AV/WAF授权信息
在导航栏中选择“系统 > 升级中心>特征库升级,依次对IPS/AV/WAF特征库进行升级,设备提供三种升级方式:本地升级、立即升级和定时升级。
图859 特征库升级
图860 特征库信息
当设备能访问DEVICE官网时,才能够使用立即升级或定时升级方式升级IPS/AV/WAF特征库。
可以通过访问DEVICE官网手工下载IPS/AV/WAF特征库文件到本地,使用本地升级进行特征库更新。
在导航栏中选择“负载均衡> 应用安全>入侵防御 > 配置文件”,单击<新建>按钮,在新建入侵防御配置文件视图,在名称中输入ips,单击<确定>。
图861 新建入侵防御配置文件
在导航栏中选择“负载均衡> 应用安全>防病毒 > 配置文件”,单击<新建>按钮,在新建防病毒配置文件视图,在名称中输入av,单击<确定>。
图862 新建防病毒配置文件
在导航栏中选择“负载均衡> 应用安全>Web应用防护 > 配置文件”,单击<新建>按钮,进入到新建Web应用防护配置文件视图,在名称中输入waf,单击<确定>。
图863 新建Web应用防护配置文件
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图864 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图865 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图866 添加实服务组成员
图867 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图868 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,IP地址为61.159.4.100/32,开启虚服务功能,开启内容安全功能,Web应用防护配置文件选择waf,入侵防御配置文件选择ips,防病毒配置文件选择av,如下图所示。
图869 新建虚服务器
单击<确定>,完成操作。
内容安全配置变更之后,需要单击<提交>才能生效,完成虚服务器的配置
图870 单击提交完成虚服务器的配置
在导航栏中选择“系统>日志设置>日志管理”,在定制中选择“威胁日志+统计”,“Web应用防护日志”,“系统日志 ”,单击应用生效
图871 开启本地日志
在导航栏中选择“系统>日志设置>日志管理”,新建日志主机,输入日志主机IP地址,选择“威胁日志+统计”,“Web应用防护日志”,“系统日志 ”,点击应用。
图872 新建日志主机
图873 开启日志
在导航栏中选择“系统>日志设置>存储空间设置”,使能Web应用防护日志、系统日志、威胁日志+统计
图874 开启日志
Host端可通过浏览器访问如下URL路径,设备检测到该攻击流量会进行攻击拦截并生成威胁日志。
http://61.159.4.100/mytest1/export/show2.php?id=2%20%20AND%203206=CONVERT(INT,(CHAR(58)+CHAR(103)+CHAR(115)+CHAR(99)+CHAR(58)+(SELECT%20SUBSTRING((ISNULL(CAST(*%20form%20pangolin_test_table;--%20AS%20NVARCHAR(4000)),CHAR(32))),1,100))+CHAR(58)+CHAR(112)+CHAR(120)+CHAR(117)+CHAR(58)))
在导航栏中选择“监控>安全类日志>威胁日志”,可查看设备生成的威胁日志列表,单击左侧查看按钮可以查看日志详情。
图875 查看威胁日志
图876 IPS威胁日志
本地日志
Mar 05 19:58:18 Mar 05 19:57:42 2026 Sysname %%10 VsysId:1 IPS/4/IPS_IPV4_INTERZONE: Protocol(1001)=TCP; Application(1002)=http; SrcIPAddr(1003)=10.0.1.1; SrcPort(1004)=49291; DstIPAddr(1007)=61.159.4.100; DstPort(1008)=80; RcvVPNInstance(1042)=--; SrcZoneName(1025)=--; DstZoneName(1035)=--; UserName(1113)=10.0.1.1; PolicyName(1079)=ips; AttackName(1088)=WEB_SERVER_Possible_SQL_Injection_(varchar/varchar2); AttackID(1089)=8451; Category(1090)=Vulnerability; Protection(1091)=WebServer; SubProtection(1092)=Other; Severity(1087)=MEDIUM; Action(1053)=Permit & Logging; CVE(1075)=--; BID(1076)=--; MSB(1077)=--; HitDirection(1115)=original; RealSrcIP(1100)=; SubCategory(1124)=SQLInjection; LoginUserName(1177)=; CapturePktName(1116)=; DomainName(1099)=; HttpHost(1117)=61.159.4.100; HttpFirstLine(1118)=/mytest1/export/show2.php?id=2%20%20AND%203206=CONVERT(INT,(CHAR(58)+CHAR(103)+CHAR(115)+CHAR(99)+CHAR(58)+(SELECT%20SUBSTRING((ISNULL(CAST(*%20form%20pangolin_test_table;--%20AS%20NVARCHAR(4000)),CHAR(32))),1,100))+CHAR(58)+CHAR
攻击HOST,将测试病毒样本通过HTTP传输,经过设备测试观察结果。
在导航栏中选择“监控>安全类日志>威胁日志”,可查看设备生成的威胁日志列表,单击左侧查看按钮可以查看日志详情。
图877 查看威胁日志
图878 AV威胁日志
本地日志:
Mar 06 13:34:30 55.106.179.15 Mar 06 13:32:57 2026 H3C %%10 VsysId:1 ANTI-VIR/4/ANTIVIRUS_IPV4_INTERZONE: Protocol(1001)=TCP; Application(1002)=http; SrcIPAddr(1003)=10.1.1.16; SrcPort(1004)=14495; DstIPAddr(1007)=61.159.4.100; DstPort(1008)=80; RcvVPNInstance(1042)=--; SrcZoneName(1025)=--; DstZoneName(1035)=--; UserName(1113)=10.1.1.16; PolicyName(1079)=av; VirusName(1085)=RiskWare[RiskTool].Win32.BitCoinMiner; VirusID(1086)=101747; VirusCategory(1182)=RiskWare; Severity(1087)=MEDIUM; MD5(1129)=; Action(1053)=Drop & Logging; HitDirection(1115)=reply; RealSrcIP(1100)=; FileName(1097)=; FileType(1096)=PE; SrcMacAddr(1021)=083b-e929-f1f2; DstMacAddr(1022)=e8eb-d3ae-341e; VlanID(1175)=696;VNI(1213)=--;SrcLocation(1209)=unknown;DstLocation(1214)=BaoDing; RealSrcMacAddr(1204)=; RealDstMacAddr(1205)=; MPLSInnerLabels(1246)=;
Host端可通过浏览器访问如下URL路径,设备检测到该攻击流量会进行攻击拦截并生成威胁日志。
http://61.159.4.100/x.php?id%20=123456%27%3Cscript%3Ealert(%27xss%27)%3C/script%3E
在导航栏中选择“监控>安全类日志>WEB应用防护日志”,可查看设备生成的WEB应用防护日志列表,单击左侧查看按钮可以查看日志详情。
图879 查看WEB应用防护日志
图880 WEB应用防护日志
本地日志:
Mar 05 19:57:36 Mar 05 19:56:59 2026 Sysname %%10 VsysId:1 WAF/4/WAF_IPV4_INTERZONE: Protocol(1001)=TCP; Application(1002)=http; SrcIPAddr(1003)=10.0.1.1; SrcPort(1004)=49290; DstIPAddr(1007)=61.159.4.100; DstPort(1008)=80; RcvVPNInstance(1042)=--; SrcZoneName(1025)=--; DstZoneName(1035)=--; UserName(1113)=10.0.1.1; PolicyName(1079)=waf; AttackName(1088)=Generic_Cross_Site_Scripting_Attack_Via_Dangerous_Label(HTTP_URI); AttackID(1089)=23474; Category(1090)=Vulnerability; Protection(1091)=WebServer; SubProtection(1092)=Any; Severity(1087)=HIGH; Action(1053)=Permit & Logging; CVE(1075)=--; BID(1076)=--; MSB(1077)=--; HitDirection(1115)=original; RealSrcIP(1100)=; SubCategory(1124)=XSS;InspectEngine(1182)=signature-library; CapturePktName(1116)=; SrcMacAddr(1021)=000c-293c-77d7; DstMacAddr(1022)=5cf7-96ed-03a0; SrcLocation(1209)=--; HttpHost(1117)=61.159.4.100; HttpUserAgent(1210)=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR ; URL(1093)=61.1
#
#
nqa template tcp t1
destination port 80
#
customlog timestamp localtime
#
customlog host v2 10.141.88.129
module waf
module ips
module anti-virus
#
app-profile vs1772618392_vs
ips apply policy ips mode protect
anti-virus apply policy av mode protect
waf apply policy waf mode protect
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
real-server sf2 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs3
ip address 192.168.1.3
#
real-server sf2
ip address 192.168.1.2
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
dpi-app-profile vs1772618392_vs
service enable
#
waf policy waf
#
dac log-collect service dpi waf enable
#
ips policy ips
status enabled
#
anti-virus policy av
#
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
