本文档介绍四层和七层应用负载均衡的配置案例。
本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请参考相关产品手册,或以设备实际情况为准。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文档假设您已了解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服务,并通过健康检测来监控这些服务器是否可达。
图-1 SNAT应用场景应用负载均衡组网图
为实现SNAT应用负载均衡,需要在LB设备上完成如下配置:
· 配置服务池、业务主机、虚服务。
· 配置SNAT地址池,业务主机到SNAT地址池路由可达。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 入方向交换机配置二层透传,Host到LB路由可达,出方向交换机配置三层路由,LB到server路由可达,server到LB路由可达,下一跳都是在交换机上进行配置。
· 注意业务主机回LB设备上路由可达,可将SNAT地址池中的地址跟出接口地址一个网段,出接口下要配置相应的sub地址;如果不是一个网段,需要在业务主机上配置回SNAT地址池的路由。本举例中SNAT地址池地址跟出接口地址一个网段,业务主机上不用再配置到SNAT路由了。
· 如果虚服务IP与客户端地址同网段,需要在虚服务上开启响应ARP功能。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图-2 添加健康检测模板
单击<确定>按钮,完成操作。
在在导航栏中选择“应用负载>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,起始IP地址是1.1.1.11,结束IP地址是1.1.1.11,如下图所示。
图-3 创建源地址池
点击<确定>,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择icmp,如下图所示。
图-4 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
点击新建,新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,如下图所示。
图-5 添加业务主机
点击<确定>,完成操作
创建业务主机rs2、rs3与创建rs1步骤相同:
在导航栏中选择“应用负载>业务主机”,,参照上图步骤创建业务主机rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。然后将新建的业务主机rs1,rs2,rs3添加到服务池sf1中,如下图所示。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定默认服务池sf1,指定源地址池snat1,并开启虚服务。
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,如下图所示。
图-6 新建虚服务器
点击<确定>,完成操作。
#
nqa template icmp t1
#
Loadbalance service-pool sf1
predictor hash address source
probe icmp
service-host rs1 port 0
service-host rs2 port 0
service-host rs3 port 0
#
Loadbalance Service-host rs1
ip address 192.168.1.1
#
Loadbalance Service-host rs2
ip address 192.168.1.2
#
Loadbalance Service-host rs3
ip address 192.168.1.3
#
loadbalance snat-pool snat1
ip range start 1.1.1.11 end 1.1.1.11
#
Loadbalance virtual-server vs type tcp
virtual ip address 61.159.4.100
default service-pool sf1
snat-mode snat-pool snat1
service enable
#
如图所示,用户经过负载均衡设备访问服务器。三台服务器Server A、Server B和Server C均可提供FTP服务。通过配置应用负载均衡,让这三台服务器联合提供FTP服务,并通过健康检测来监控这些服务器是否可达。
图-7 基于源地址应用负载均衡组网图
为实现源地址应用负载均衡,需要在LB设备上完成如下配置:
· 配置服务池、业务主机、虚服务。
· 配置策略。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-8 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1,如下图所示。
图-9 添加服务池
单击<确定>按钮,完成操作。
创建服务池sf2、sf3与sf1步骤相同。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,然后在导航栏中选择“应用负载>服务池”,进入服务池页面,编辑服务池sf1,将rs1添加到服务池sf1中,如下图所示。
图-10 添加业务主机
单击<确定>按钮,完成操作。
创建业务主机rs2、rs3与创建rs1步骤相同:
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。新建业务主机名称为rs2,业务主机IP地址为192.168.1.2,然后在导航栏中选择“应用负载>服务池”,进入服务池页面,编辑服务池sf2将rs2添加到服务池sf2中。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。新建业务主机名称为rs3,业务主机IP地址为192.168.1.3,然后在导航栏中选择“应用负载>服务池”,进入服务池页面,编辑服务池sf3将rs3添加到服务池sf3中。
在导航栏中选择“应用负载>调度策略”,进入调度策略页面。
单击<新建>,添加调度策略名称为lc1,类型为TCP,匹配方式为匹配任意一条规则,动作为调度服务池sf1,类型选择源IPv4,IPv4地址为10.0.4.0,掩码长度为26,点击<确定>按钮,如下图所示。
图-11 添加流量特征信息
单击<确定>按钮,完成操作。
创建lc2,lc3与lc1步骤相同,lc2匹配规则IPv4地址是10.0.4.64,掩码长度26,lc3匹配规则IPv4地址是10.0.4.128,掩码长度26。
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,负载均衡策略为,选择“更多配置>调度策略”,将调度策略lc1,lc2,lc3添加进去,如下图所示。
图-12 新建虚服务器
点击<确定>,完成操作。
当源地址为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
#
service-pool sf1
predictor hash address source
probe t1
service-host rs1 port 0
#
service-pool sf2
predictor hash address source
probe t1
service-host rs2 port 0
#
service-pool sf3
predictor hash address source
probe t1
service-host rs3 port 0
#
service-host rs1
ip address 192.168.1.1
#
service-host rs2
ip address 192.168.1.2
#
service-host rs3
ip address 192.168.1.3
#
loadbalance schedule-policy lc1 type tcp
match add_distributepolicy_rule_1629276612912 source ip subnet 10.0.4.0 26
service-pool sf1
#
loadbalance schedule-policy lc2 type tcp
match add_distributepolicy_rule_1629276612913 source ip subnet 10.0.4.64 26
service-pool sf2
#
loadbalance schedule-policy lc2 type tcp
match add_distributepolicy_rule_1629276612912 source ip subnet 10.0.4.128 26
service-pool sf3
#
service-host rs1
ip address 192.168.1.1
service-pool sf1
#
service-host rs2
ip address 192.168.1.2
service-pool sf2
#
service-host rs3
ip address 192.168.1.3
service-pool sf3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
schedule-policy lc1
schedule-policy lc2
schedule-policy lc3
service enable
#
如图所示,内网用户经过负载均衡设备访问外网服务器。三台服务器Server A、Server B和Server C均可提供FTP服务,Host访问服务器的流量会根据三台服务器的优先级进行选择,如果服务池中配置了限制调度的个数,业务主机优先级跟调度个数会共同对业务主机进行调度,实现负载分担。
图-13 基于优先级调度应用负载均衡组网图
为实现基于优先级调度的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置服务池、业务主机、虚服务。
· 服务池中配置可选择的业务主机的数量为1,业务主机配置不同的优先级分别为4、8、1。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 服务池中配置可选择的业务主机数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-14 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,勾选“配置调度业务主机数量”,最小数量与最大数量均配置成1,如下图所示。
图-15 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,然后在导航栏中选择“应用负载>服务池”,进入服务池页面,编辑服务池sf1,将rs1添加到服务池sf1中,并设置优先级为4,如下图所示。
图-16 添加服务池成员信息
单击<确定>按钮,完成操作。
创建业务主机rs2、rs3与创建rs1步骤相同:
在导航栏中选择“应用负载>业务主机”,新建业务主机rs2和rs3,将rs2和rs3添加到服务池sf1中。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,配置虚服务器IP为61.159.4.100,指定默认服务池sf1,并开启虚服务,如下图所示。
图-17 新建虚服务器
点击<确定>,完成操作。
#
nqa template icmp t1
#
service-pool sf1
predictor hash address source
selected-host min 1 max 1
probe t1
service-host rs1 port 0
service-host rs2 port 0
priority 8
service-host rs3 port 0
priority 1
#
Service-host rs1
ip address 192.168.1.1
#
Service-host rs2
ip address 192.168.1.2
#
Service-host 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
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担,LB设备上配置源地址哈希算法,每一个用户的请求必须分配到同一个服务器上。当其中一个业务主机出现健康检测震荡,建立在其他服务器上的相同源地址,但是端口不一样的用户依然要分配到通一个服务器上面去。此时源地址哈希算法必须和源地址持续性一起使用,以防止已有的用户业务出现闪断。
图-18 基于源地址哈希与源地址持续性的七层负载组网图
为实现基于源地址哈希与源地址持续性的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置服务池、业务主机、虚服务。
· 配置地址端口类型的持续性组,持续性方法为源地址。此时若配置源地址端口持续性,当业务主机出现持续健康检测震荡,以及建立在其他服务器上的相同源地址但是端口不一样的用户会重新进行源地址哈希,有可能会分配到不同的服务器上,导致已有的用户经常闪断。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 配置持续性方法为源地址持续性。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测页面。
单击<新建>,添加ICMP类型的健康检测模板,如下图所示。
图-19 添加健康检测模板t1
单击<确定>按钮,完成操作。
在导航栏中选择“ 应用负载 > 服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,如下图所示。
图-20 添加服务池
点击<添加>,添加服务池成员rs1,
图-21 添加服务池成员rs1
单击<确定>按钮,完成操作。
创建rs2、rs3与rs1步骤相同:配置rs2的IP地址为192.168.1.2,引用健康检测方法t1;配置rs3的IP地址为192.168.1.3,引用健康检测方法t1.
在导航栏中选择“应用负载 > 会话保持”,单击<新建>按钮,创建地址端口类型的持续性组sg-add,源地址持续性方法。
图-22 创建地址端口类型的持续性组,持续性方法为源地址
点击<确定>,完成操作。
创建地址端口类型的持续性sg-add-port,源地址端口持续性方法。
图-23 创建地址端口类型的持续性组,持续性方法为源地址端口
点击<确定>,完成操作。
在导航栏中选择“应用负载> 虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,服务池为sf1,开启虚服务,如下图所示。
图-24 配置虚服务器vs
点击<确定>,完成操作。
图-25 查看服务池sf1状态
客户端向服务器发起一个源地址多个端口的HTTP请求,查看业务主机统计信息,只有rs3有流量:
图-26 查看业务主机统计信息
图-27 查看服务池sf1状态
查看业务主机统计信息:由于虚服务配置了源地址持续性方法,当业务主机出现健康检测失败后又成功时,同一源地址,不同端口的请求仍然分配到同一台业务主机上。查看业务主机统计信息,仍然只有rs3有流量。
图-28 查看业务主机统计信息
图-29 查看服务池sf1状态
客户端向服务器发起一个源地址多个端口的HTTP请求,查看业务主机统计信息,只有rs1有流量:
图-30 查看业务主机统计信息
图-31 查看服务池sf1状态
查看业务主机统计信息:由于虚服务配置了服务池的持续性组为源地址端口持续性方法,当业务主机出现健康检测失败后又成功时,会出现同一源地址,不同端口的请求分配到不同的业务主机上。
图-32 查看业务主机统计信息
#
nqa template icmp t1
#
service-pool sf1
predictor hash address source
service-host rs1 port 0
service-host rs2 port 0
service-host rs3 port 0
#
service-host rs1
ip address 192.168.1.1
#
service-host rs2
ip address 192.168.1.2
#
service-host rs3
ip address 192.168.1.3
#
persistence sg-add type address-port
ip source
#
persistence sg-add-port type address-port
ip port source
#
virtual-server vs type http
virtual ip address 61.159.4.100
default service-pool sf1
persistence sg-add-port
snat-mode snat-pool snat1
service enable
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担。LB设备上配置最小连接算法和源地址持续性,在服务器负载分担不均匀的场景下,要求每一个用户发送的请求必须分配到同一个服务器上。配置温暖上线功能,当其中一个业务主机出现健康检测失败后又成功的情况下,所有的新建流量不会全部突发到这个服务器上,避免服务器出现反复up、down的问题。
图-33 基于最小连接算法+源地址持续性+温暖上线的七层负载组网图
为实现基于最小连接算法+源地址持续性+温暖上线的七层应用负载均衡,需要在LB设备上完成如下配置:
· 服务池上配置温暖上线功能。最小连接算法必须要和温暖上线一起使用的原因:如果出现服务器健康检测失败后又UP起来,所有的新建都会突发到这个服务器上面去,又导致这个服务器down掉,这样就会导致服务器反复UP,down。
· 配置地址端口类型的持续性组,持续性方法为源地址。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 服务池需要开启温暖上线功能。
· 持续性方法为源地址。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载 >健康检测”,进入健康检测页面。
单击<新建>,添加ICMP类型的健康检测模板,如下图所示。
图-34 添加健康检测模板t1
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载 > 服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为基于成员的加权最小连接算法,开启温暖上线功能,如下图所示。
图-35 添加服务池
点击<添加>成员列表,添加服务池成员rs1,
图-36 添加服务池成员rs1
单击<确定>按钮,完成操作。
创建rs2、rs3与rs1步骤相同:配置rs2的IP地址为192.168.1.2,引用健康检测方法t1;配置rs3的IP地址为192.168.1.3,引用健康检测方法t1.
在导航栏中选择“应用负载 > 会话保持”,单击<新建>按钮,创建地址端口类型的持续性组
图-37 创建地址端口类型的持续性组,持续性方法为源地址
点击<确定>,完成操作。
在导航栏中选择“应用负载> 虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,服务池为sf1,引用源地址持续性组sg-add,开启虚服务,如下图所示。
图-38 配置虚服务器vs
点击<确定>,完成操作。
图-39 查看服务池sf1状态
图-40 查看业务主机统计信息
图-41 查看业务主机统计信息
客户端再次发起这个源地址的访问,查看业务主机流量统计,流量仍然分配到rs1上
图-42 查看业务主机统计信息
图-43 查看服务池sf1状态
客户端向服务器发起HTTP请求,查看业务主机统计信息,rs1和rs2均匀分担流量:
图-44 查看业务主机统计信息
图-45 查看服务池sf1状态
查看业务主机统计信息:由于服务池配置温暖上线,当rs3健康检测成功后,所有的新建流量不会全部分配到rs3上面,查看三台业务主机,都有新建流量分配。查看rs3流量统计,rs3健康检测成功后,流量计数缓慢增加。
图-46 查看业务主机统计信息
图-47 查看服务池sf1状态
客户端向服务器发起HTTP请求,查看业务主机统计信息,rs1和rs2均匀分担流量。
图-48 查看业务主机统计信息
图-49 查看服务池sf1状态
查看业务主机统计信息:由于服务池配置了最小连接算法,服务池密钥配置温暖上线功能,当rs3健康检测成功后,所有的新建流量都会分配到rs3上面,查看rs3流量统计,rs3健康检测成功后,流量计数迅速增加。
图-50 查看业务主机统计信息
#
nqa template icmp t1
predictor least-connection member
probe t1
slow-online standby-time 15 ramp-up-time 28
service-host rs1 port 0
service-host rs2 port 0
service-host rs3 port 0
#
service-host rs1
ip address 192.168.1.1
#
service-host rs2
ip address 192.168.1.2
#
service-host rs3
ip address 192.168.1.3
#
persistence sg-add type address-port
ip source
#
virtual-server vs type http
virtual ip address 61.159.4.100
default service-pool sf1
persistence sg-add
snat-mode snat-pool snat1
service enable
#
如图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务;Host访问服务器的流量会根据三台服务器的优先级进行选择,如果服务池中配置了限制调度的个数,业务主机优先级跟调度个数会共同对业务主机进行调度,实现负载分担。
图-51 基于优先级调度七层服务器负载组网图
为实现基于优先级调度的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置服务池、业务主机、虚服务,服务池中配置可选择的业务主机的数量为1,业务主机配置不同的优先级分别为4、8、1。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 服务池中配置可选择的业务主机数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图-52 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,勾选“配置调度业务主机数量”,最小数量与最大数量均配置成1,如下图所示。
图-53 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载均衡>服务池”,进入服务池页面。
编辑服务池sf1,点击添加成员列表,使rs1优先级为4,如下图所示。
图-54 添加业务主机信息
单击<确定>按钮,完成操作。
创建业务主机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,并开启虚服务,如下图所示。
图-55 配置虚服务器
点击<确定>,完成操作。
loadbalance service-pool sf1
predictor hash address source
selected-host min 1 max 1
probe t1
service-host rs1 port 0
service-host rs2 port 0
priority 8
service-host rs3 port 0
priority 1
#
loadbalance service-host rs1
ip address 192.168.1.1
probe t1
#
loadbalance service-host rs2
ip address 192.168.1.2
probe t1
#
loadbalance service-host rs3
ip address 192.168.1.3
probe t1
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
default service-pool sf1
arp-nd interface GigabitEthernet1/0/0
arp-nd interface Ten-GigabitEthernet1/0/1
arp-nd interface Ten-GigabitEthernet1/0/2
rebalance per-request
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。
图-56 基于URL的七层负载组网图
为实现基于URL的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置服务池、业务主机、虚服务。
· 配置策略,类和动作,类中配置匹配URL的规则,使得URL中含有sports、government、news的请求分给Server A和Server D,URL中含有finance、technology、shopping的请求分给Server B和ServerE,其他URL的请求分给Server C和ServerF。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 如果一个HTTP带有多个请求,请配置逐请求负载均衡。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图-57 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-58 添加服务池
单击<确定>按钮,完成操作。
创建服务池sf2、sf3与sf1步骤相同。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。新建业务主机名称为rs1,业务主机IP地址为192.168.1.1。在导航栏中选择“应用负载>服务池”,将新建的业务主机rs1添加到服务池sf1中,如下图所示。
图-59 添加业务主机信息
单击<确定>按钮,完成操作。
创建其余5个业务主机与配置rs1步骤相同:
在导航栏中选择“应用负载>业务主机”,点击新建业务主机,然后编辑服务池将业务主机添加到服务池中,参照上图步骤创建业务主机rs11,配置其IPv4地址为192.168.1.11。
在导航栏中选择“应用负载>业务主机”,点击新建业务主机,然后编辑服务池将业务主机添加到服务池中,参照上图步骤创建业务主机rs2和rs12,分别配置其IPv4地址为192.168.1.2和192.168.1.12。
在导航栏中选择“应用负载>业务主机”,点击新建业务主机,然后编辑服务池将业务主机添加到服务池中,参照上图步骤创建业务主机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,如下图所示。
图-60 添加持续性组信息
点击<确定>,完成操作。
在导航栏中选择“应用负载>调度策略”,进入流量特征页面。
单击<新建>,添加流量特征名称为lc1,类型选择HTTP,匹配方式为匹配任意一条规则,动作选择调度服务池,服务池选择sf1:
· 类型选择URL,URL为sports,点击<添加>。
· 类型选择URL,URL为news,点击<添加>。
· 类型选择URL,URL为government点击<添加>。
图-61 添加调度策略lc1
点击<确定>,完成操作。
创建lc2,lc3与lc1步骤相同,配置参数如下图所示。
图-62 调度策略lc2参数
在导航栏中选择“应用负载>应用优化>协议优化”,进入协议优化页面页面。
单击<新建>,添加参数模板名称为pp1,类型选择HTTP,如下图所示。
图-63 添加参数模板信息
单击<确定>,完成操作。
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用调度策略lc1,lc2,lc3,以及参数模板pp1,应用会话保持sg1,开启每个请求,并开启虚服务,如下图所示。
图-64 新建虚服务器
点击<确定>,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面,查看成员列表一栏
图-65 服务池sf1下的成员
图-66 服务池sf2下的成员
图-67 服务池sf3下的成员
在导航栏中选择“应用负载>服务池”,进入服务池页面。
图-68 服务池列表
查看虚服务器的信息。
图-69 虚服务列表
虚服务有统计信息:
图-70 虚服务统计信息
当发起URL中包含sports、news、government的请求时,调度策略匹配lc1,此时rs1有流量统计:
图-71 发起URL中包含sports、news、government的请求时,实服务统计信息
当发起URL中包含finance、technology、shopping的请求时,匹配调度策略lc2,此时rs2和rs12有流量统计:
图-72 发起URL中包含finance、technology、shopping的请求时,实服务统计信息
当发起URL中包含aaa的请求时,匹配调度策略lc3,此时rs3和rs13有流量统计:
图-73 发起URL中包含aaa的请求时,实服务统计信息
同时发起URL中包含aaa、sports、news、government、 finance、technology、shopping的请求,统计如下:
图-74 同时发起请求,虚服务统计信息
图-75 同时发起请求,服务池统计信息
图-76 同时发起请求,实服务统计信息
图-77 客户端抓包报文分析
查看业务主机统计只有rs1命中:
再次发起带有这个Cookie值的报文请求:Cookie: cookie1=2.2.6f9802f9.0,查看持续性生效,只有rs1有统计:
#
nqa template icmp t1
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 0
service-host rs11 port 0
#
loadbalance service-pool sf2
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs2 port 0
service-host rs12 port 0
#
loadbalance service-pool sf3
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs3 port 0
service-host rs13 port 0
#
loadbalance service-host rs1
ip address 192.168.1.1
success-criteria at-least 1
probe t1
#
loadbalance service-host rs2
ip address 192.168.1.2
success-criteria at-least 1
probe t1
#
loadbalance service-host rs3
ip address 192.168.1.3
success-criteria at-least 1
probe t1
#
loadbalance service-host rs11
ip address 192.168.1.4
success-criteria at-least 1
probe t1
#
loadbalance service-host rs12
ip address 192.168.1.5
success-criteria at-least 1
probe t1
#
loadbalance service-host rs13
ip address 192.168.1.6
success-criteria at-least 1
probe t1
#
loadbalance schedule-policy lc1 type http
match add_distributepolicy_rule_1629426525544 uri regex sports
match add_distributepolicy_rule_1629439010357 uri regex news
match add_distributepolicy_rule_1629439022845 uri regex government
service-pool sf1
#
loadbalance schedule-policy lc2 type http
match add_distributepolicy_rule_1629427880020 uri regex finance
match add_distributepolicy_rule_1629439054801 uri regex technology
match add_distributepolicy_rule_1629439061701 uri regex shopping
service-pool sf2
#
loadbalance schedule-policy lc3 type http
match add_distributepolicy_rule_1629432344592 uri regex aaa
service-pool sf3
#
loadbalance persistence sg1 type http-cookie
cookie insert name cookie1
#
loadbalance parameter-profile pp1 type http
server-connection reuse
encrypt-cookie name /&#+ key cipher $c$3$8f2rB0ruZORMCnYOxzUJ505stXQ=
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
rebalance per-request
schedule-policy lc1
schedule-policy lc2
schedule-policy lc3
service enable
#
如图所示,Host访问域名,通过DNS server将域名解析出虚服务器地址,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担。
图-78 基于host的七层负载组网图
为实现基于host的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置服务池、业务主机、虚服务。
· 配置策略,类和动作,类中配置匹配host的规则,使得host是www.example1.com的请求分给Server A,host是www.example2.com的请求分给Server B,host是www.example3.com的请求分给Server C。
· DNS server提供解析DNS域名的服务,解析域名后的地址返回给Host。
· LB虚服务地址是DNS域名解析后的地址,使得Host再次发起请求时是对虚服务的请求。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Host与DNS server路由可达,Host可以直接将DNS服务器指向DNS server。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
· DNS server解析域名的地址跟LB上虚服务的地址一致。
以下配置均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加名称为t1、类型为ICMP的健康检测模板,如下图所示。
图-79 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-80 添加服务池
单击<确定>按钮,完成操作。
创建服务池sf2、sf3与sf1步骤相同。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IP地址为192.168.1.1。然后导航栏中选择“应用负载>服务池”,编辑服务池sf1将新建的rs1添加到服务池中,如下图所示。
图-81 添加服务池成员信息
单击<确定>按钮,完成操作。
创建业务主机rs2、rs3与配置rs1步骤相同:
参照上图步骤创建业务主机rs2,配置其IPv4地址为192.168.1.2,将rs2添加到服务池sf2。
参照上图步骤创建业务主机rs3,配置其IPv4地址为192.168.1.3,将rs3添加到服务池sf3。
配置调度策略lc1,lc2,lc3。
在导航栏中选择“应用负载>调度策略”,进入调度策略页面,单击<新建>添加调度策略名称为lc1,类型选择HTTP,匹配方式为匹配所有规则,类型选择HTTP Header,Header名称为host,Header值为www.example1.com,动作为调度服务池sf1,如下图所示。
图-82 添加调度策略lc1
点击<确定>,完成操作。
按照Lc1的步骤依次分别添加lc2、lc3:
添加流量特征名称为lc2,类型选择HTTP,匹配方式为匹配所有规则,match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.example2.com,如下所示。
添加流量特征名称为lc3,类型选择HTTP,匹配方式为匹配所有规则,match ID为1,类型选择HTTP Header,Header名称为host,Header值为www.example3.com,如下所示。
图-83 添加调度策略lc2
图-84 添加调度策略lc3
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用调度策略lc1,lc2,lc3,并开启虚服务,如下图所示。
图-85 添加虚服务器vs
点击<确定>,完成操作。
虚服务有统计信息:
当发起访问www.example1.com请求时,匹配调度策略lc1,此时rs1有流量统计:
当发起访问www.example2.com请求时,匹配调度策略lc2,此时rs2有流量统计:
当发起访问www.example3.com请求时,匹配调度策略lc3,此时rs3有流量统计:
dns proxy enable
dns server 184.45.0.220
#
nqa template icmp t1
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 0
#
loadbalance service-pool sf2
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs2 port 0
#
loadbalance service-pool sf3
predictor hash address source
success-criteria at-least 1
service-host rs3 port 0
#
loadbalance schedule-policy lc1 type http
match add_distributepolicy_rule_1629447976029 header host pattern regex www.example1.com
service-pool sf1
#
loadbalance schedule-policy lc2 type http
match add_distributepolicy_rule_1629448023728 header host pattern regex www.example2.com
service-pool sf2
#
loadbalance schedule-policy lc3 type http
match add_distributepolicy_rule_1629448059163 header host pattern regex www.example3.com
service-pool sf3
#
loadbalance service-host rs1
ip address 192.168.1.1
#
loadbalance service-host rs2
ip address 192.168.1.2
#
loadbalance service-host rs3
ip address 192.168.1.3
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
rebalance per-request
schedule-policy lc1
schedule-policy lc2
schedule-policy lc3
service enable
#
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换,且其中将访问URL含关键字government的客户端地址透传给业务主机C,以便业务主机甄别客户端做进一步安全性处理;其它URL流量在业务主机A和B之间负载分担。
图-86 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建负载均衡策略,其中对于URL包含government的访问请求,动作中启用插入X-Forwarded-For字段以便携带客户端源地址;其它URL直接负载分担到业务主机。
· 创建HTTP类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的业务主机地址要与相应的业务主机地址保持一致。
· SNAT地址池的地址与出接口同网段时,需要在地址池上配置免费发送ARP。
· HTTP报文中的首部内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%is:源IP地址或源IPv6地址。%ps:源端口号。%id:目的IP地址或目的IPv6地址。%pd:目的端口号。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-87 添加健康检测模板
单击<确定>按钮,完成操作。
#创建源地池:在导航栏中选择“应用负载>源地址池”,进入源地址池页面。
单击<新建>,源地址池名称snat1,配置地址范围列表为192.168.1.254,点击<确定>。
图-88 新建源地址池
点击<确定>,完成操作。
#创建服务池sf1,采用的调度算法为源IP地址哈希算法,开启目的地址转换功能。
策略>应用负载均衡>服务池,单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1。
图-89 新建服务池sf1
# 创建服务池sf2,采用的调度算法为加权轮转,开启源地址转换。
应用负载>服务池,添加服务池sf2,调度算法选择加权轮转,点击<确定>。
图-90 新建服务池sf2
应用负载>业务主机,进入业务主机页面,新建业务主机rs1,IP地址为192.168.1.1,权值为150。点击<确定>,选择“应用负载>服务池”进入服务池页面,编辑服务池sf1,将rs1添加到服务池sf1中,权重为150。
图-91 新建业务主机
创建业务主机rs2和rs3与创建rs1步骤相同
应用负载>业务主机,进入业务主机页面,新建业务主机rs2,IP地址为192.168.1.2。点击<确定>,选择“应用负载>服务池”进入服务池页面,编辑服务池sf1,将rs1添加到服务池sf1中,权重为120。
应用负载>业务主机,进入业务主机页面,新建业务主机rs3,IP地址为192.168.1.3.点击确定。选择“应用负载>服务池”进入服务池页面,编辑服务池sf2,将rs3添加到服务池sf2中,权重为90。
添加HTTP类型的动作名称为lc1,为转发到服务池sf2。
应用负载>调度策略,添加HTTP类型的动作名称为lc1调度服务池sf2。
图-92 新建调度策略
应用负载>调度策略,添加HTTP类型的动作名称为lc2调度服务池sf1,步骤同lc1
#创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“应用负载>应用优化>协议优化”,点击<新建>,创建HTTP类型参数模板pp1,开启每请求执行动作。
图-93 新建虚服务器
#创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,引用调度策略lc1,lc2
应用负载>虚服务器添加虚服务器vs:HTTP类型,配置虚服务IP为61.159.4.100,开启虚服务,应用调度策略lc1,lc2,源地址池选择snat1,并启用插入X-forward-for功能:
图-94 新建虚服务器
#
nqa template icmp t1
#
loadbalance snat-pool snat1
ip range start 192.168.1.254 end 192.168.1.254
#
loadbalance service-pool 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
#
loadbalance service-pool 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 schedule-policy lc1 type http
match add_distributepolicy_rule_1629452131619 uri regex government
service-pool sf2
#
loadbalance schedule-policy lc2 type http
match add_distributepolicy_rule_1629452549683 uri regex government
service-pool sf1
#
loadbalance service-host rs1
ip address 192.168.1.1
#
loadbalance service-host rs2
ip address 192.168.1.2
#
loadbalance service-host rs3
ip address 192.168.1.3
#
Loadbalance parameter-profile pp1 type http
header modify per-request
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
snat-mode snat-pool snat1
rebalance per-request
schedule-policy lc1
schedule-policy lc2
#
根据请求中的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 |
图-95 LB设备基于URL重定向组网图
为了实现基于URL的策略重定向功能,需要在LB设备上完成如下配置:
· 配置服务池、业务主机、负载均衡策略。
· 将CA证书和设备证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置虚服务,并在虚服务下应用策略。
· 根据请求中的URL分类,将HTTP请求重定向为HTTPS请求,或者将HTTPS请求重定向为HTTP请求
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 相应的业务主机使用端口号为80。
· 配置完虚服务后,需要开启虚服务。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-96 添加健康检测模板
创建服务池sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-97 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载均衡>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,点击确定。
导航栏中选择“应用负载>服务池”,点击sf1编辑服务池sf1,将rs1添加到服务池sf1中,业务主机端口为80,权值设置为150,如下图所示。
图-98 添加业务主机信息
单击<确定>按钮,完成操作。
创建业务主机rs2、rs3与创建rs1步骤相同。
参照上图创建业务主机rs2,配置其IPv4地址为192.168.1.2,将其添加到sf1中,业务主机端口为80、权值为120。
参照上图创建业务主机rs3,配置其IPv4地址为192.168.1.3,将其添加到sf1中,业务主机端口为80、权值为90。
对象模板>HTTP应答,新建模板名称为http-https,http header为http://%h%p,如下图所示。
图-99 新建流量特征lc-http
参照上图新建http应答模板https-http,http header为http://%h%p
应用负载>调度策略,新建调度策略名称为lc1,类型为HTTP,匹配规则为url,关键字为/login,动作选择应答,响应类型为响应预定义内容,内容选择上一步新建的http应答模板http-https,如下图所示。
图-100 新建调度策略
参照上图步骤新建调度策略lc2,配置如下图所示。
图-101 新建动作
在导航栏中选择“对象模板>SSL策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,RC2和RC4的算法剔除,如下图所示。
图-102 添加SSL服务器端策略
点击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
#配置两个虚服务,分别响应HTTP请求报文和HTTPS请求报文
应用负载>虚服务器,新建虚服务器vs,类型为HTTP,配置虚服务IP为61.159.4.100,其默认服务池为sf1,端口号为80,绑定调度策略lc1,并开启虚服务点击<确定>。
图-103 新建虚服务器vs
应用负载>虚服务器,新建虚服务器vs1,类型为HTTPS,配置虚服务IP为61.159.4.100,其默认服务池为sf1,端口号为443,引用SSL服务端策略ssl,绑定负载均衡策略lc2,并开启虚服务。
图-104 新建虚服务器vs1
输入: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
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 0
weight 150
service-host rs2 port 0
weight 120
service-host rs3 port 80
#
loadbalance schedule-policy lc1 type http
match add_distributepolicy_rule_1629685584941 uri regex /login
response predefined-content http-https
#
loadbalance schedule-policy lc2 type https
match add_distributepolicy_rule_1629690736174 uri regex /map
response predefined-content https-http
#loadbalance http-content http-https
header string https://%h%p
#
loadbalance http-content https-http
header string http://%h%p
#
service-host rs1
ip address 192.168.1.1
#
service-host rs2
ip address 192.168.1.2
#
service-host rs3
ip address 192.168.1.3
#
loadbalance virtual-server vs type http
port 80
virtual ip address 61.159.4.100
default service-pool sf1
rebalance per-request
schedule-policy lc1
service enable
#
Loadbalance virtual-server vs2 type https
port 443
virtual ip address 61.159.4.100
default service-pool sf1
rebalance per-request
schedule-policy lc1
service enable
ssl-server-policy ssl
#
如图所示,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,通过在LB设备上配置HTTP类型的负载均衡动作,实现对HTTP的Header进行插入、重写、删除操作。
图-105 HTTP的Header插入、重写、删除组网图
为实现HTTP的Header插入、重写、删除功能,需要在LB设备上完成如下配置:
· 配置服务池、业务主机、虚服务、策略。
· LB设备可以对HTTP的Header进行插入、重写、删除的操作
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· Client端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· Action中需要引用服务池。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,主机为192.168.1.1,路径为/index.html如下图所示。
图-106 添加健康检测模板
单击<确定>按钮,完成操作。
按同样地步骤创建HTTP类型的健康检测模板t2和t3,主机为192.168.1.2和192.168.1.3,路径都为/index.html
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1、t2、t3的服务池,且成功条件为至少1个检测通过,如下图所示。
图-107 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,然后编辑服务池sf1,将rs1添加到服务池sf1中,如下图所示。
图-108 添加业务主机信息
单击<确定>按钮,完成操作。
参照上图步骤创建业务主机rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
匹配URL中带有test关键字的HTTP请求流量
应用负载>调度策略,新建调度策略名称为lc1,类型为HTTP,匹配规则:类型为URL、URL为test。
图-109 新建调度策略
应用负载>应用优化>改写策略,新建动作名称为la1,类型为HTTP,主用业务主机为sf1。
配置Header插入,新建方向为双向,Header名称为header-insert-name,Header值为21
改写策la2,Header重写,新建方向为请求,Header名称为Host,Header值为61.159.4.100,替换成的资源串为example.com。
新建改写策略la3,Header删除,新建方向为应答,Header名称为content-type。
点击<确定>。
# 配置HTTP类型的虚服务vs,端口为80
应用负载>虚服务器,新建虚服务名称为vs,类型HTTP,IP为61.159.4.100,端口号为80,引用调度策略策略lc1,同时引用改写策略la1,la2,la3,并开启虚服务,点击<确定>。
图-110 新建虚服务器
查看测试仪抓包信息
1. inser request报文-client
图-111 Header 插入的客户端request报文
2. inser request报文-server
图-112 Header 插入的server端request报文
3. inser response报文-server
图-113 Header 插入的server端response报文
4. inser response报文-client
图-114 Header 插入的客户端response报文
1. rewrite request报文-client
图-115 Header 重写的客户端request报文
2. rewrite request报文-server
图-116 Header 重写的server端request报文
测试仪Client端抓包,相对于server端,应答方向的HTTP报文中Header中的内容content-type被删除。
测试仪的server端,response方向的HTTP报文抓包情况,如下:
1. delete response报文-server
图-117 Header 删除的客户端response报文
测试仪的client端,response方向的HTTP报文抓包情况,如下:
2. delete respons报文-client
图-118 Header 删除的server端response报文
#
nqa template http t1
expect status 200
reaction trigger probe-pass 1
url http://192.168.1.1/index.html
#
nqa template http t2
expect status 200
reaction trigger probe-pass 1
url http://192.168.1.2/index.html
#
nqa template http t3
expect status 200
reaction trigger probe-pass 1
url http://192.168.1.3/index.html
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
probe t2
probe t3
service-host rs1 port 80
service-host rs2 port 80
service-host rs3 port 80
#
loadbalance modify-policy la1 type http
match add_modifypolicy_rule_1629795254226 uri regex test
header insert both name header-insert-name pattern 21
#
loadbalance modify-policy la2 type http
match add_modifypolicy_rule_1629795276355 uri regex test
header rewrite request name host pattern regex 61.159.4.100 replace example.com
#
loadbalance modify-policy la3 type http
match add_modifypolicy_rule_1629795330015 uri regex test
header delete response name Content-Type
#
Loadbalance service-host rs1
ip address 192.168.1.1
#
Loadbalance service-host rs2
ip address 192.168.1.2
#
Loadbalance service-host rs3
ip address 192.168.1.3
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
default service-pool sf1
rebalance per-request
schedule-policy lc1
modify-policy la1
modify-policy la2
modify-policy la3
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图-119 SSL卸载组网图
为了实现SSL卸载功能,需要在LB设备上完成如下配置:
· 将CA证书和设备证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置服务池、业务主机和虚服务。
· 客户端HTTPS访问server端HTTP服务器,可成功访问。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 在LB设备上配置的业务主机地址要与相应的业务主机地址保持一致。
· 配置完虚服务后,需要开启虚服务。
· 虚服务器端口号需要配置为443,业务主机端口号配置为80。SSL策略无法和虚服务器进行联动,当修改SSL策略后,需对服务器重新进行使能操作才可以使配置生效。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“网络配置>接口配置”,进入接口配置页面。
单击<新建>,添加类型为三层聚合接口,聚合组编号为1,如下图所示
图-120 添加三层聚合口
点击<确定>,修改接口设置,如下图所示。
在导航栏中选择“网络配置>接口配置”,进入接口页面。
单击新建接口,选择三层聚合子接口,父接口为RAGG1,子接口编号为10,如下图所示。
图-121 创建子接口
子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为10.0.0.1掩码255.255.255.0,VLAN终结设置为Dot1q明确终结,值为10。
图-122 修改IP地址/掩码
重复上述步骤创建子接口,选择接口为RAGG1,子接口编号为20,子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为192.168.1.254掩码255.255.255.0,值为20。
由于设备web界面不支持创建pki域,需在命令行配置新建PKI域名称为ca,禁止CRL检查,如下所示。
[RBM_bei]pki domain ca
[RBM_bei-pki-domain-ca]public-key rsa general name 123
[RBM_bei-pki-domain-ca]undo crl check enable
点击<确定>,完成操作。
由于web页面不支持导入证书,需手动配置将证书导入到PKI域ca中,如下所示。
[RBM_bei]pki import domain ca pem ca filename cacert.crt
The PKI domain already has a CA certificate. If it is overwritten, local certifi
cates, peer certificates and CRL of this domain will also be deleted.
Overwrite it? [Y/N]:y
[RBM_bei]pki import domain ca p12 local filename local.pfx
Please input the password:
The device already has a key pair. If you choose to continue, the existing key p
air will be overwritten if it is used for the same purpose. The local certificat
es, if any, will also be overwritten.
Continue? [Y/N]:y
在导航栏中选择“对象>SSL>服务器端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,RC2和RC4的算法剔除,如下图所示。
图-123 添加SSL服务器端策略
点击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-124 添加健康检测模板
创建服务池sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-125 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,编辑服务池sf1将rs1添加进去,实端口为80,如下图所示。
图-126 添加服务池成员信息
单击<确定>按钮,完成操作。
创建业务主机rs2、rs3与创建rs1步骤相同:
在导航栏中选择“应用负载>业务主机”,参照上图创建业务主机rs2,配置其IPv4地址为192.168.1.2、业务主机端口为80。
在导航栏中选择“应用负载>业务主机”,参照上图创建业务主机rs3,配置其IPv4地址为192.168.1.3、业务主机端口为80。
创建HTTPS类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认服务池为sf1,端口号为443,引用ssl策略ssl。
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认服务池为sf1,端口号为443,引用ssl服务端策略ssl,并开启虚服务,如下图所示。
图-127 新建虚服务器
点击<确定>,完成操作。
#
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
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 80
service-host rs2 port 80
service-host rs3 port 80
#
Loadbalance service-host rs1
ip address 192.168.1.1
#
Loadbalance service-host rs2
ip address 192.168.1.2
#
Loadbalance service-host rs3
ip address 192.168.1.3
#
loadbalance virtual-server vs type https
virtual ip address 61.159.4.100
default service-pool sf1
ssl-server-policy ssl
rebalance per-request
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图-128 SSL卸载组网图
为了实现SSL双向代理功能,需要在LB设备上完成如下配置:
· 将CA证书和设备证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置服务池、业务主机和虚服务。
· 客户端HTTPS访问server端HTTP服务器,可成功访问。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 在LB设备上配置的业务主机地址要与相应的业务主机地址保持一致。
· 配置完虚服务后,需要开启虚服务。
· 虚服务器端口号需要配置为443,业务主机端口号配置为80。SSL策略无法和虚服务器进行联动,当修改SSL策略后,需对服务器重新进行使能操作才可以使配置生效。
· 创建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“网络配置>接口配置”,进入接口配置页面。
单击<新建>,添加类型为三层聚合接口,聚合组编号为1,如下图所示
图-129 添加三层聚合口
点击<确定>,修改接口设置,如下图所示。
在导航栏中选择“网络配置>接口配置”,进入接口页面。
单击新建接口,选择三层聚合子接口,父接口为RAGG1,子接口编号为10,如下图所示。
图-130 创建子接口
子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为10.0.0.1掩码255.255.255.0,VLAN终结设置为Dot1q明确终结,值为10。
图-131 修改IP地址/掩码
重复上述步骤创建子接口,选择接口为RAGG1,子接口编号为20,子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IP地址/掩码为192.168.1.254掩码255.255.255.0,值为20。
由于设备web界面不支持创建pki域,需在命令行配置新建PKI域名称为ca,禁止CRL检查,如下所示。
[RBM_bei]pki domain ca
[RBM_bei-pki-domain-ca]public-key rsa general name 123
[RBM_bei-pki-domain-ca]undo crl check enable
点击<确定>,完成操作。
由于web页面不支持导入证书,需手动配置将证书导入到PKI域ca中,如下所示。
[RBM_bei]pki import domain ca pem ca filename cacert.crt
The PKI domain already has a CA certificate. If it is overwritten, local certifi
cates, peer certificates and CRL of this domain will also be deleted.
Overwrite it? [Y/N]:y
[RBM_bei]pki import domain ca p12 local filename local.pfx
Please input the password:
The device already has a key pair. If you choose to continue, the existing key p
air will be overwritten if it is used for the same purpose. The local certificat
es, if any, will also be overwritten.
Continue? [Y/N]:y
在导航栏中选择“对象>PKI>证书”进入PKI页面,单击<导入证书>,导入ca证书,选择PKI域pki,证书类型为CA证书,选择上传的证书文件,如下图所示:
在导航栏中选择“对象>PKI>证书”进入PKI页面,单击<导入证书>,导入local证书,PKI域pki,证书类型为本地证书,选择上传的证书文件,输入证书的口令,如下图所示:
在导航栏中选择“对象>SSL>客户端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,SSL-RSA-with_AES_256_CBC_SHA,如下图所示。
图-132 添加SSL服务器端策略
点击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[sysname]ssl server-policy ssl
[sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“对象>SSL>客户端策略”,进入SSL页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,SSL-RSA-with_AES_256_CBC_SHA,如下图所示。
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-133 添加健康检测模板
创建服务池sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-134 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“策略>应用负载均衡>服务池”,进入实服务组页面。编辑实服务组sp,添加实服务组成员,新建实服务器名称为192.167.2.2,实服务器IP地址为192.167.2.2,如下图所示。
图-135 添加服务池成员信息
创建实服务器192.167.2.3、192.167.2.4与创建192.167.2.2步骤相同:
# 添加实服务组sf成员实服务器r192.167.2.3,配置其IPv4地址为192.167.2.3。
# 添加实服务组sf成员实服务器192.167.2.4,配置其IPv4地址为192.167.2.4
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器,名称为https-shuangciang,类型选择HTTPS,地址为8.8.8.8,引用SSL服务端策略ssl-server,SSL客户端策略ssl-client,默认实服务组sf,开启虚服务功能,如下图所示。
图-136 新建虚服务器
点击<确定>,完成操作。
参考ssl卸载
参考ssl卸载
负载均衡连接复用功能,即负载均衡设备与服务器建立长连接,使多个客户端复用同一条与服务器的连接,以减少客户端与服务器之间打开的连接数,从而提高服务器的处理能力。
Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,并减少客户端与服务器之间打开的连接数。
图-137 负载均衡连接复用配置组网图
为了实现HTTP连接复用功能,需要在LB设备上完成如下配置:
· 建立HTTP类型的参数模板,并使能服务器连接复用
· 在HTTP类型的虚服务下应用该参数模板
· 大量Host多个连接访问server,TCP连接被复用
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 服务池需要配置绑定源地址池
· 在LB设备上配置的业务主机地址要与相应的业务主机地址保持一致。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-138 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>应用优化”,进入参数模板页面
新建HTTP类型的参数模板名称为pp1,类型选择HTTP。
图-139 新建HTTP类型参数模板pp1
新建OneConnect类型的参数模板名称为pp2,类型选择OneConnect。
图-140 新建OneConnect类型参数模板pp2
在导航栏中选择“应用负载>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,地址范围为192.168.1.254,如下图所示。
图-141 新建源地址池
#创建服务池sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“应用负载>服务池”,进入服务池页面。单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康检测选择t1,如下图所示。
图-142 新建服务池
应用负载>业务主机,新建业务主机rs1,IP地址为192.168.1.1,点击<确定>
导航栏中选择应用负载>服务池,编辑服务池sf1,将新建的rs1添加到sf1中,且权值为150,如下图所示。
图-143 新建业务主机
创建业务主机rs2和rs3与创建rs1步骤相同
参照上图创建业务主机rs2,配置其IPv4地址为192.168.1.2、并添加到服务池sf1中权值为120
参照上图创建业务主机rs3,配置其IPv4地址为192.168.1.3、并添加到服务池sf1中权值为90。
#创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认服务池为sf1,参数模板为pp1
应用负载>虚服务器,添加虚服务器名称为vs,HTTP类型,配置虚服务IP为61.159.4.100,其默认服务池为sf1,开启虚服务,引用HTTP类型的参数模板pp1和oneconnect类型的参数模板pp2.
图-144 新建虚服务器
#
nqa template icmp t1
#
loadbalance parameter-profile pp1 type http
server-connection reuse
encrypt-cookie name /%#+ key cipher $c$3$9JrARFFAK1FOjk5hr8N4Jk+MjxRO
#
loadbalance parameter-profile pp2 type oneconnect
#
loadbalance snat-pool snat1
ip range start 192.168.1.254 end 192.168.1.254
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 0
weight 150
service-host rs2 port 0
weight 120
service-host rs3 port 0
weight 90
#
loadbalance service-host rs1
ip address 192.168.1.1
#
loadbalance service-host rs2
ip address 192.168.1.2
#
loadbalance service-host rs3
ip address 192.168.1.3
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
parameter oneconnect pp2
default service-pool sf1
snat-mode snat-pool snat1
service enable
#
LB对server端回应报文进行压缩,client端需携带Accept-Encoding。如图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务。服务器端设置回复大报文,LB设备上配置带压缩参数的参数模板,服务器端报文经过LB设备返回给client,大报文备压缩。
图-145 HTTP压缩组网图
为实现HTTP压缩功能,需要在LB设备上完成如下配置:
· 配置带压缩参数的参数模板
· 配置服务池、业务主机、虚服务
· Server端回复的大文件在客户端文件被压缩
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
注意测试仪中添加Accept-Encoding: gzip,deflate
以下验证过程均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为t1,类型为HTTP的健康检测模板,URL为http://192.168.1.1/index.html,如下图所示。
图-146 添加健康检测模板
单击<确定>按钮,完成操作。
按照上图步骤创建HTTP类型健康检测t2、t3,URL分别为http://192.168.1.2/index.html、http://192.168.1.3/index.html
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1、t2、t3的服务池,且成功条件为至少1个检测通过,如下图所示。
图-147 添加服务池
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IP地址为192.168.1.1,然后导航栏中选择“应用负载>服务池”编辑服务池sf1将新建的业务主机rs1添加到sf1中,如下图所示。
图-148 添加业务主机信息
单击<确定>按钮,完成操作。
创建业务主机rs2、rs3与创建rs1步骤相同。
参照上图创建业务主机rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
配置参数模板,HTTP压缩。
在导航栏中选择“应用负载>应用优化>协议优化”,进入参数模板页面。
单击<新建>,添加参数模板名称为pp1,类型选择HTTP压缩,如下图所示。
图-149 添加参数模板信息
单击<确定>,完成操作。
创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用参数模板pp1,并开启虚服务。
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择HTTP,应用参数模板pp1,引用服务池sf1并开启虚服务,如下图所示。
图-150 新建虚服务器
点击<确定>,完成操作。
#
nqa template http t1
expect status 200
url http://192.168.1.1/index.html
#
nqa template http t2
expect status 200
url http://192.168.1.2/index.html
#
nqa template http t3
expect status 200
url http://192.168.1.3/index.html
#
loadbalance parameter-profile pp1 type http-compression
compression level 9
memory-size 1
prefer-method deflate
body length-threshold 200
request-version all
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
probe t2
probe t3
service-host rs1 port 0
service-host rs2 port 0
service-host rs3 port 0
#
Loadbalance service-host rs1
ip address 192.168.1.1
#
Loadbalance service-host rs2
ip address 192.168.1.2
#
Loadbalance service-host rs3
ip address 192.168.1.3
#
loadbalance virtual-server vs type http
virtual ip address 61.159.4.100
parameter http-compression pp1
default service-pool sf1
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端口检测组合,做到业务的健康检查,保证业务的可靠性。
图-151 LB支持RADIUS配置组网图
通过配置七层RADIUS类型虚服务实现该功能。
· 配置路由,保证RADIUS Server与NAS Clinet、LB device之间路由可达。
· 配置UDP强制负载均衡,保证业务负载分担
· 配置ICMP类型健康检测,配置UDP类型1812和1813端口的健康检测,保证业务可靠性
· 配置user-name持续性组,保证同一用户名的认证报文发送至同一台认证服务器上
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 该案例RADIUS持续性老化时间配置为3600s,推荐配置值需要根据现场使用场景结合具体业务调节
以下配置均在LB设备上进行。 |
创建ICMP类型的NQA模板icmp。
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-152 添加健康检测模板
单击<确定>按钮,完成操作。
创建UDP类型NQA模板1812和1813,配置raw格式的数据填充,配置端口探测功能(需命令行配置:port-detect enable),如下图所示。
参照上图添加健康模板1813,类型为udp,目的端口为1813
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
单击新建,添加业务主机名称为rs1,地址为192.168.1.1,如下图所示。
图-153 创建业务主机
创建业务主机地址为192.168.1.2和192.168.1.3。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击新建,添加服务池名称为sf1,调度算法为加权轮转,添加已配置的业务主机rs1、rs2、rs3,并绑定健康检测t1、1812,1813且需验证所有健康检测,如下图所示。
图-154 创建服务池
在导航栏中选择“应用负载>会话保持”,进入持续性组页面。
单击新建,添加持续组名称为radius,类型为RADIUS,持续性方法:user-name,超时时间为3600s。
图-155 创建持续性组
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面。
单击新建,添加虚服务器名称为vs,类型选择RADIUS,VSIP地址为61.159.4.100,绑定服务池sf和持续性组radius,开启UDP强制负载均衡,开启虚服务功能,如下图所示。
图-156 创建虚服务器
用户上线,通过NAS Client向LB设备发送RADIUS认证请求计费报文,报文经由LB设备做负载均衡处理分发给后端的RADIUS服务器处理,同时生成持续性表项;
在导航栏中选择“应用负载均衡>服务池”,点击<编辑>进入服务池页面,查看成员列表一栏
图-157 服务池成员列表
在导航栏中选择“应用负载>服务池”,进入服务池页面
图-158 服务池列表
在导航栏中选择“应用负载>虚服务器”,进入虚服务器页面
图-159 虚服务列表
[RBM_bei]dis loadbalance persistence virtual-server
Slot 1:
Virtual server name: vs
Service pool name: sf1
Persistence type: RADIUS
Persistence method: Attribute ID
Persistence key: 21232f297a57a5a743894a0e4a801fc3
Text: admin
Virtual server addr: 61.159.4.100:1813
Service host addr: 192.168.1.3:0
Client addr: 186.23.24.24
Timeout: 3600 sec
Expiration time: 3247 sec
#
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
#
service-host rs1
ip address 192.168.1.1
#
service-host rs2
ip address 192.168.1.2
#
service-host rs3
ip address 192.168.1.3
#
loadbalance service-pool sf1
probe 1812
probe 1813
probe t1
service-host rs1 port 0
service-host rs2 port 0
service-host rs3 port 0
#
loadbalance persistence radius type radius
timeout 3600
#
loadbalance virtual-server vs type radius
virtual ip address 61.159.4.100
default service-pool sf1
persistence radius
snat-mode snat-pool snat1
service enable
#
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换,且其中将访问URL含关键字government的客户端地址透传给业务主机C,以便业务主机甄别客户端做进一步安全性处理;其它URL流量在业务主机A和B之间负载分担。
图-160 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建负载均衡策略,其中对于URL包含government的访问请求,动作中启用插入X-Forwarded-For字段以便携带客户端源地址;其它URL直接负载分担到业务主机。
· 创建http类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址。
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的业务主机地址要与相应的业务主机地址保持一致。
· HTTP报文中的首部内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%is:源IP地址或源IPv6地址。%ps:源端口号。%id:目的IP地址或目的IPv6地址。%pd:目的端口号。%sps:服务器侧的源端口号。%spd:服务器侧的目的端口号。%sis:服务器侧的源IP地址。%sid:服务器侧的目的IP地址。
以下验证过程均在LB设备上进行。 |
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-161 添加健康检测模板
单击<确定>按钮,完成操作。
# 创建源地池:在导航栏中选择“应用负载>源地址池”,进入源地址池页面。
单击<新建>,源地址池名称snat1,配置起始地址和结束地址为接口同网段公网地址7::6,点击<确定>。
图-162 新建源地址池
# 创建服务池sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
在导航栏中选择“应用负载>服务池”,单击<新建>,添加服务池名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,源地址池选择snat1。
图-163 新建服务池sf1
# 创建服务池sf_gov,采用的调度算法为加权轮转,选择源地址池snat1。
在导航栏中选择“应用负载>服务池”,添加服务池sf_gov,调度算法选择加权轮转,点击<确定>。
图-164 新建服务池sf_gov
在导航栏中选择“应用负载>业务主机”,点击<新建>,新建业务主机rs1,IP地址为7::2。点击<确定>。
在导航栏中选择“应用负载>服务池”,选择服务池sf1,点击<编辑>,在成员列表一栏添加业务主机rs1,点击<确定>。
图-165 新建业务主机
参照上图在服务池sf1下创建业务主机rs2,配置其IPv6地址为7::3。
参照上图在服务池sf_gov下创建业务主机rs3, 配置其IPv6地址为7::4。
匹配URL中带有test关键字的HTTP请求流量
应用负载>调度策略,新建调度策略名称为lc1,类型为HTTP,匹配规则:类型为URI、URI为government,转发到服务池sf_gov。
同理创建新的调度策lc2,类型为HTTP,转发到服务池sf1。
#创建HTTP类型的协议优化。
在导航栏中选择“应用负载>应用优化>协议优化”,点击<新建>,创建HTTP类型参数模板。
图-166 创建协议优化pp1
# 创建HTTP类型的虚服务器vs1,配置其VSIP为200::1,引用负载调度策略lc1、lc2。
在导航栏中选择“应用负载>虚服务器”,点击<新建>,添加虚服务器vs1:HTTP类型,配置虚服务IP为200::1,在负载调度策略中选择lc1、lc2,开启每请求执行动作,启用插入X-Forwarded-For字段,并引用协议优化pp1:
图-167 新建虚服务器
在导航栏中选择“应用负载>服务池”,分别进入服务池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
#
loadbalance parameter-profile pp1 type http
#
loadbalance service-host rs1
ipv6 address 7::2
probe t1
#
loadbalance service-host rs2
ipv6 address 7::3
probe t1
#
loadbalance service-host rs3
ipv6 address 7::4
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 80
service-host rs2 port 80
#
loadbalance service-pool sf_gov
success-criteria at-least 1
probe t1
service-host rs3 port 80
#
loadbalance schedule-policy lc1 type http
match add_distributepolicy_rule_1642742825829 uri regex government
service-pool sf_gov
#
loadbalance schedule-policy lc2 type http
service-pool sf1
#
loadbalance virtual-server vs1 type http
virtual ipv6 address 200::1
parameter http pp1
rebalance per-request
schedule-policy lc1
schedule-policy lc2
service enable
#
实现IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器,并在LB设备上查看nat64和nat46的会话日志。如图所示,为实现客户端IPv4地址访问IPv6地址的服务器,LB设备上配置IPv6地址的snat地址池,Host通过IPv4地址的LB虚服务IP,发起对IPv6地址的服务器的访问,并在LB设备上查看nat46的会话日志。为实现客户端IPv6地址访问IPv4地址的服务器,LB设备上配置IPv4地址的snat地址池,Host通过IPv6地址的LB虚服务IP,发起对IPv4地址的服务器的访问,并在LB设备上查看nat64的会话日志。
图-168 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 分别配置nat64和nat46的源地址池
· 客户端IPv4地址访问server端IPv6地址服务器
· 客户端IPv6地址访问server端IPv4地址服务器
· LB设备配置nat日志功能
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 虚服务器地址与snat-pool的匹配
· NAT 64只支持HTTP类型虚服务
· 举例版本不支持web配置nat日志,使用命令行配置
在导航栏中选择“网络配置>接口配置”,进入接口配置页面。
单击<新建接口>,添加类型为三层聚合接口,聚合组编号为1,如下图所示
图-169 添加三层聚合口
点击<确定>,修改接口设置,如下图所示。
在导航栏中选择“网络配置>接口配置”,进入接口页面。
单击新建接口,选择三层聚合子接口,父接口为RAGG1,子接口编号为10,如下图所示。
图-170 创建子接口
子接口创建后,在接口列表内该子接口右侧点击<编辑>按钮,修改接口设置,修改IP地址/掩码为10.0.0.1掩码255.255.255.0。
图-171 修改IP地址/掩码
图-172 修改IPv6地址
重复上述步骤创建子接口,选择接口为RAGG1,子接口编号为20,子接口创建后,在接口列表内该子接口右侧点击编辑按钮,修改接口设置,修改IPv4地址/掩码为7.0.0.1掩码255.255.255.0,修改IPv6地址为7::1,前缀长度为64。
在导航栏中选择“应用负载>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,如下图所示。
图-173 添加源IPv4地址池信息
单击<确定>,完成操作。
添加snat2步骤与snat1相同,snat2配置信息如下图所示。
图-174 添加源IPv6地址池信息
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为ICMP的健康检测模板,如下图所示。
图-175 添加健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>按钮,添加服务池名称为sf1、sf2,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-176 添加服务池sf1
单击<确定>按钮,完成操作。配置sf2与sf1步骤相同
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IPv4地址为7.0.0.2,将其添加到sf1中,如下图所示。
图-177 添加业务主机信息
单击<确定>按钮,完成操作。
创建业务主机rs2与rs1步骤相同
参照上图创建业务主机rs2,配置其IPv4地址为7.0.0.3,添加到服务池sf1中。
参照上图创建业务主机rs3、rs4,配置其IPv6地址为7::2、7::3,添加到服务池sf2中。
创建HTTP类型的虚服务器vs1,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定服务池sf1、sf2,类型选择HTTP,并开启虚服务,如下图所示。
图-178 新建虚服务器vs1
图-179 新建虚服务器vs2
点击<确定>,完成操作。
目前LB设备暂不支持web界面开启nat日志功能,使用命令行进行举例.
[Sysname] loadbalance log enable nat
[Sysname] userlog flow syslog
#
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
#
loadbalance service-pool sf1
predictor hash address source
success-criteria at-least 1
probe t1
service-host rs1 port 0
service-host rs2 port 0
#
loadbalance service-pool sf2
predictor hash address source
probe t1
service-host rs3 port 0
service-host rs4 port 0
#
loadbalance service-host rs1
ip address 7.0.0.2
#
loadbalance service-host rs2
ip address 7.0.0.3
#
loadbalance service-host rs3
ipv6 address 7::2
#
loadbalance service-host rs4
ipv6 address 7::3
#
loadbalance virtual-server vs1 type http
virtual ipv6 address 200::1
default service-pool sf1
snat-mode snat-pool snat1
rebalance per-request
service enable
#
loadbalance virtual-server vs2 type http
virtual ip address 61.159.4.100
default service-pool sf2
snat-mode snat-pool snat2
rebalance per-request
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。
图-180 NAT64配置组网图
为实现四层的NAT64功能,需要在LB设备上完成如下配置:
· 在TCP类型的虚服务器下,负载分担模式选择七层
本举例是在L5000-AD510的E2149P13版本上进行配置和验证的。
· 服务池引用源地址池。
· 在TCP类型的虚服务器下,负载分担模式选择七层。
· TCP类型的虚服务器下端口非0,要配置具体的端口值。
· 不支持多通道的协议,例如ftp。
在导航栏中选择“应用负载>源地址池”,进入源地址池页面。
单击<新建>,添加源地址池名称为snat1,如下图所示。
图-181 添加源IPv4地址池信息
单击<确定>,完成操作。
添加snat_v6步骤与snat_v4相同,snat_v6配置信息如下图所示。
图-182 添加源IPv6地址池信息
1. 创建ICMP类型的NQA模板t1。
在导航栏中选择“应用负载>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为icmp,类型为ICMP的健康检测模板,如下图所示。
图-183 添加健康检测模板
单击<确定>按钮,完成操作。
2. 创建服务池sf1、sf2,并指定其健康检测方法为icmp。
在导航栏中选择“应用负载>服务池”,进入服务池页面。
单击<新建>按钮,添加服务池名称为sf1、sf2,调度算法为源IP地址哈希,健康性检测选择t1的服务池,如下图所示。
图-184 添加服务池sf1
单击<确定>按钮,完成操作。参照上图创建服务池sf2.
在导航栏中选择“应用负载>业务主机”,进入业务主机页面。
新建业务主机名称为rs1,业务主机IPv4地址为7.0.0.2,将其添加到sf1中,如下图所示。
图-185 添加业务主机信息
单击<确定>按钮,完成操作。
创建业务主机rs2与rs1步骤相同
参照上图创建业务主机rs2,配置其IPv4地址为7.0.0.3,添加到服务池sf1中。
参照上图创建业务主机rs3、rs4,配置其IPv6地址为7::2、7::3,添加到服务池sf2中。
创建TCP类型的虚服务器vs_v6,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“策略>应用负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定服务池sf1、sf2,类型选择TCP,虚服务器端口号为80,指定源地址池为snat1、snat2并开启虚服务,如下图所示。
图-186 新建虚服务器vs1
图-187 新建虚服务器vs2
点击<确定>,完成操作。
#
nqa template icmp icmp
#
loadbalance snat-pool snat1
ipv6 range start 7::1 end 7::1
#
loadbalance snat-pool snat2
ip range start 7.0.0.1 end 7.0.0.1
#
Loadbalance service-pool sf1
predictor hash address source
probe t1
success-criteria at-least 1
service-host rs1 port 0
success-criteria at-least 1
service-host rs2 port 0
success-criteria at-least 1
#
Loadbalance service-pool sf2
predictor hash address source
snat-pool snat_v6
probe icmp
success-criteria at-least 1
service-host rs11 port 0
success-criteria at-least 1
service-host rs12 port 0
success-criteria at-least 1
#
Loadbalance service-host rs1
ip address 7.0.0.2
#
Loadbalance service-host rs11
ipv6 address 7::2
#
Loadbalance service-host rs12
ipv6 address 7::3
#
Loadbalance service-host rs2
ip address 7.0.0.3
#
Loadbalance virtual-server vs1 type tcp
port 80
virtual ipv6 address 200::1
default service-pool sf1
application-mode enable
service enable
#
Loadbalance virtual-server vs2 type tcp
port 80
virtual ip address 61.159.4.100
default service-pool sf2
application-mode enable
service enable