02-应用负载均衡典型配置
本章节下载: 02-应用负载均衡典型配置 (19.48 MB)
Copyright © 2024 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
目 录
4.2 SNAT应用场景应用负载均衡(虚IP与客户端地址同网段)
7.3 NAT64负载分担【四层AFT IPv4--IPv6】
7.4 NAT64负载分担【四层AFT ipv6--ipv4】
本文档介绍4-7层应用负载均衡的配置案例。
本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请参考相关产品手册,或以设备实际情况为准。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文档假设您已了解LB(Load Balance,负载均衡)特性。
应用负载均衡支持的虚服务器类型包括:IP、TCP、UDP、RADIUS、HTTP、MySQL、SIP-TCP、SIP-UDP,其中IP、TCP和UDP类型统称为四层应用负载均衡,HTTP、RADIUS等类型称为七层应用负载均衡:
· 四层应用负载均衡:是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。四层应用负载均衡对基于HTTP的七层业务无法做到按内容分发,从而限制了负载均衡的业务适用范围。
· 七层应用负载均衡:是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的应用负载均衡。
如图所示,外网用户经过负载均衡设备访问内网服务器。三台服务器Server A、Server B和Server C均可提供HTTP服务。通过配置应用负载均衡,让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图4-1 SNAT应用场景应用负载均衡组网图
为实现SNAT应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务器。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 入方向交换机配置二层透传,Host到LB路由可达,出方向交换机配置三层路由,LB到server路由可达,server到LB路由可达,下一跳都是在交换机上进行配置。
· 注意本举例中SNAT地址池地址跟出接口地址一个网段,需要在SNAT地址池中开启ARP功能。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图4-2 新建健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址是192.168.1.11,结束IP地址是192.168.1.14,配置发送免费ARP或ND报文的接口,如下图所示。
图4-3 新建源地址池
单击<确定>,完成操作。
图4-4 源地址池信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,并引用源地址池snat1,如下图所示。
图4-5 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-6 添加实服务组成员
图4-7 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图4-8 实服务组信息
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,引用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图4-9 新建虚服务器
单击<确定>按钮,完成操作。
图4-10 虚服务器统计信息
图4-11 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
loadbalance snat-pool snat1
ip range start 192.168.1.11 end 192.168.1.14
arp-nd interface Route-Aggregation1.20
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
如图所示,外网用户经过负载均衡设备访问内网服务器。三台服务器Server A、Server B和Server C均可提供HTTP服务。通过配置应用负载均衡,让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。与4.1的主要区别是为了解决客户端与虚服务同网段时的路由问题。
图4-12 SNAT应用场景应用负载均衡组网图
为实现SNAT应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务器。
· 配置SNAT地址池,实服务器到SNAT地址池路由可达。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 入方向交换机配置二层透传,Host到LB路由可达,出方向交换机配置三层路由,LB到server路由可达,server到LB路由可达,下一跳都是在交换机上进行配置。
· 注意本举例中SNAT地址池地址跟出接口地址一个网段,需要在SNAT地址池中开启ARP功能。
· 本举例中虚服务IP与客户端出接口地址同网段,需要在虚服务上开启响应ARP功能。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图4-13 新建健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址是192.168.1.11,结束IP地址是192.168.1.14,配置发送免费ARP或ND报文的接口,如下图所示。
图4-14 新建源地址池
单击<确定>,完成操作。
图4-15 源地址池信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,并引用源地址池snat1,如下图所示。
图4-16 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-17 添加实服务组成员
图4-18 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图4-19 实服务组信息
创建TCP类型的虚服务器vs,配置其VSIP为10.0.0.8,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务器IP为10.0.0.8,指定默认实服务组sf1,开启响应ARP功能,并开启虚服务,如下图所示。
图4-20 新建虚服务器
单击<确定>按钮,完成操作。
图4-21 虚服务器统计信息
图4-22 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
loadbalance snat-pool snat1
ip range start 192.168.1.11 end 192.168.1.14
arp-nd interface Route-Aggregation1.20
#
virtual-server vs type tcp
virtual ip address 10.0.0.8
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
arp-nd interface Route-Aggregation1.10
service-down-action reset
service enable
#
如图所示,用户经过负载均衡设备访问服务器。三台服务器Server A、Server B和Server C均可提供HTTP服务。通过配置应用负载均衡,让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器是否可达。
图4-23 基于源地址应用负载均衡组网图
为实现源地址应用负载均衡,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务器。
· 配置策略。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康检测模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图4-24 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,如下图所示。
图4-25 新建实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
图4-26 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-27 添加实服务组成员
图4-28 新建实服务器
单击<确定>按钮,完成操作。
图4-29 实服务器信息
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,添加成员列表,参照上图步骤创建实服务器rs2,配置其IPv4地址为192.168.1.2。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf3,添加成员列表,参照上图步骤创建实服务器rs3,配置其IPv4地址为192.168.1.3。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>,新建流量特征名称为lc1,类型为通用,匹配方式为匹配任意一条规则,Match ID为1,类型选择源IPv4,IPv4地址为10.0.4.0,掩码长度为26,单击<确定>按钮,如下图所示。
图4-30 新建流量特征信息
单击<确定>按钮,完成操作。
图4-31 流量特征信息
单击<确定>按钮,完成操作。
创建lc2与lc1步骤相同,lc2匹配规则IPv4地址是10.0.4.64,掩码长度26。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,新建动作名称为la1,类型选择通用,主用实服务组sf1,如下图所示。
图4-32 新建动作信息
单击<确定>,完成操作。
创建la2、la3与la1步骤相同,la2主用实服务组是sf2,la3主用实服务组是sf3。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,新建策略名称为lp1,类型选择通用,规则单击<新建>,流量特征选择lc1,动作选择la1,单击<确定>;再次单击<新建>,流量特征选择lc2,动作选择la2,单击<确定>;默认动作选择la3,如下图所示。
图4-33 新建策略lp1信息
单击<确定>,完成操作。
图4-34 策略lp1配置信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,61.159.4.100/32,开启虚服务功能,负载均衡策略为lp1,如下图所示。
图4-35 新建虚服务器
单击<确定>,完成操作。
图4-36 查看虚服务器统计信息
当源地址为10.0.4.1发起HTTP访问请求时,匹配策略lc1,选中rs1,查看实服务器统计,此时只有rs1有流量统计:
图4-37 查看实服务器统计信息
当源地址为10.0.4.65发起HTTP访问请求时,匹配策略lc2,选中rs2,查看实服务器统计,此时只有rs2有流量统计:
图4-38 查看实服务器统计信息
当源地址为10.0.4.129发起HTTP访问请求时,匹配策略lc3,选中rs3,查看实服务器统计,此时只有rs3有流量统计:
图4-39 查看实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf3
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
loadbalance class lc1 type generic match-any
match 1 source ip address 10.0.4.0 26
#
loadbalance class lc2 type generic match-any
match 1 source ip address 10.0.4.64 26
#
loadbalance action la1 type generic
server-farm sf1
#
loadbalance action la2 type generic
server-farm sf2
#
loadbalance action la3 type generic
server-farm sf3
#
loadbalance policy lp1 type generic
class lc1 action la1
class lc2 action la2
default-class action la3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
lb-policy lp1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
如图所示,三台服务器Server A、Server B和Server C均可提供HTTP服务,用户通过访问虚服务地址经过负载均衡设备访问真实服务器,由于服务器回应反向流量比较大,为了减轻负载均衡设备的压力,服务器回程的流量不再经过负载均衡设备,直接通过交换机转发,此时要求服务器回应报文的源地址为虚服务器的地址,在考虑硬件性能的前提下让这三台服务器联合提供HTTP服务,并通过健康检测来监控这些服务器状态。
图4-40 三角传输组网图
为实现三角传输的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务器。
· 由于服务器回应报文通过交换机直接转发,所以服务器回应报文的源地址要为虚服务器的地址,因此除了配置各自网卡地址外,还需要三台真实服务器侧单独配置loopback口,并且地址设置为虚服务器的地址61.159.4.100。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 入方向交换机配置三层,入方向网关在交换机上,Host到交换机直连路由可达,交换机到LB直连路由可达,Host到LB路由可达,下一跳在交换机上,出方向交换机配置三层路由,LB到server路由可达,server到Host路由可达,下一跳都是在交换机上。
· 流量正向走LB,反向不走LB,服务器回Host路由可达。
· 实服务组中关闭DNAT功能。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图4-41 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测方法选择t1,关闭目的地址转换功能,如下图所示。
图4-42 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图4-43 添加实服务组成员
图4-44 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图4-45 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。单击<新建>,新建虚服务器名称为vs,类型选择TCP,61.159.4.100 /32,指定默认实服务组sf1,开启虚服务功能,如下图所示。
图4-46 新建虚服务器
单击<确定>,完成操作。
图4-47 虚服务器统计信息
图4-48 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor hash address source
transparent enable
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
如图所示,外网用户经过负载均衡设备访问内网服务器。三台服务器Server A、Server B和Server C均可提供FTP服务,Host访问服务器的流量会根据三台服务器的优先级进行选择,如果实服务组中配置了限制调度的个数,实服务器优先级和调度个数会共同对实服务器进行调度,实现负载分担。
图4-49 基于优先级调度应用负载均衡组网图
为实现基于优先级调度的应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 若需要将流量只分配给优先级最高的服务器时,实服务组中配置可选择的实服务器的数量为1,实服务器配置不同的优先级分别为4、8、1。
· 若需要将流量分配给其中两台服务器时,实服务组中配置可选择的实服务器的数量为2,实服务器配置不同的优先级分别为4、8、1。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组中配置可选择的实服务器数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为21,如下图所示。
图4-50 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,勾选“限制可被调度算法调用的实服务器数量”,最小数量与最大数量均配置成1,如下图所示。
图4-51 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,优先级为4,实服务组选择sf1,如下图所示。
图4-52 添加实服务组成员
图4-53 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
图4-54 实服务组信息
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图4-55 新建虚服务器
单击<确定>按钮,完成操作。
图4-56 虚服务器统计信息
图4-57 实服务器统计信息
图4-58 虚服务器统计信息
图4-59 实服务器统计信息
#
nqa template tcp t1
destination port 21
#
server-farm sf1
predictor hash address source
selected-server min 1 max 1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
priority 8
success-criteria at-least 1
real-server rs3 port 0
priority 1
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service enable
#
随着互联网以及各行各业数字化转型的蓬勃发展,网络承载的业务越来越多,越来越重要。如何保证网络的可靠性、业务的不间断传输成为网络建设中必须要解决的问题。
在网络关键位置上如果只使用一台设备的情况下,无论其可靠性多高,都会存在因设备单点故障而导致网络中断的风险。因此,通常会在网络的关键位置部署两台设备,以提升网络的可靠性和业务运行稳定性,使用两台负载均衡设备进行高可靠性主备组网,Device A作为主设备,Device B作为备设备。当Device A设备或其他链路出现故障时,业务能够被Device B设备接替继续运行业务,保证业务不中断(业务流量默认不主动回切)。
图4-60 高可靠性组网图
为实现两台负载均衡设备其中一台故障时,另外一台能够接替运行业务,需要完成如下配置:
· 接口下的地址、VRRP相关配置需要在两台设备上分别进行配置下发,接口下配置VRRP备份组和VRRP虚IP地址。
· 高可靠性相关配置也需要在两台设备上分别进行配置下发,将两台设备之间直连的接口聚合作为高可靠性控制通道接口和数据通道接口。配置高可靠性,指定主从管理设备角色,指定控制通道和数据通道,开启配置自动备份和热备功能。
· 路由,健康检测等不备份的基础配置需要在两台设备上分别进行配置下发。
本举例是在L5000-AD830的Ess 1171P1521上进行配置和验证的。
· 对负载均衡业务相关可备份的配置进行删除、修改操作时,需要在高可靠性主管理设备上进行操作,同步给高可靠性的备设备,切勿在高可靠性备管理设备上进行修改删除操作,防止两个设备上的配置不一致。主管理设备上已有的负载均衡配置,会在开启自动同步配置信息功能后进行一次批量备份,或通过手动同步配置信息到高可靠性的备设备上。对于路由等不备份但需要保持一致的配置,需要在两个设备上分别进行操作配置下发。
· 接口IP地址,路由等相关配置,需要在主管理设备和从管理设备上同时手动配置并各自保存为基本配置。负载均衡相关的ISP文件,SSL卸载相关的证书文件,自定义监控所需的脚本文件等文件类操作需要在两台设备上分别进行导入下发,并进行各自保存。
· 目前支持配置信息同步的业务模块如下:
¡ 资源类:VPN实例、ACL(acl copy命令不支持同步)、对象组、时间段、安全域、会话管理、APR、AAA。
¡ DPI相关模块:应用层检测引擎、IPS、URL过滤、数据过滤、文件过滤、防病毒、数据分析中心、WAF。
¡ 策略类:安全策略、ASPF、攻击检测与防范(blacklist ip命令不支持同步)、连接数限制、NAT、AFT、负载均衡、带宽管理、应用审计与管理、共享上网管理、代理策略。
¡ 日志类:快速日志输出(customlog host source命令不支持同步)、Flow日志(userlog flow export source-ip命令不支持同步)。
¡ VPN类:SSL VPN。
¡ 其他类:VLAN、信息中心(info-center loghost source命令不支持同步)
· 高可靠性数据通道和控制通道推荐使用静态聚合。
· 基础配置和业务配置配置完成后分别save保存配置。
· 高可靠性组网中主备组网中,主设备故障时,流量自动切换到对端设备进行处理。缺省情况下,当原主设备恢复正常时,流量不回切。这时如果需要流量再次回到原主设备进行处理,可以开启主动抢占功能,并设置延迟切换时间保证业务能够平滑切回,延迟回切时间为0表示不回切。
· 负载均衡配置snat地址池时,基于地址拆分。SNAT地址池中的地址与设备连接服务器端接口的IP地址在同一网段时,必须在该SNAT地址池下配置指定免费发送ARP或ND报文接口,指定的接口是设备连接服务器的接口。不在同一网段时,则SNAT地址池下无需指定免费发送ARP或ND报文接口。
· 负载均衡配置虚服务器时,虚服务器IP地址与设备连接客户端接口的IP地址在同一网段,必须在该虚服务器下指定免费发送ARP或ND报文接口,指定的接口是设备连接客户端的接口。不在同一网段时,虚服务器下无需指定发送免费ARP或ND报文接口。
· 负载均衡配置虚服务器绑定VRRP备份组,同时存在IPv4和IPv6地址时,需要各自绑定VRRP备份组。
以下验证过程在LB设备上进行。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,管理角色模式选择手动模式,管理角色选择主管理设备,本端地址为1.1.1.1,对端IP地址为1.1.1.2,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为12小时。
如下图所示。
图4-61 配置双机热备
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>VRRP”,进入VRRP列表页面。
单击<新建>按钮,选择备份组所在的接口为三层聚合子接口10.1,备份组号为1,联动双机热备VRRP active组,虚拟IP地址为10.0.0.1/32。
如下图所示。
图4-62 配置VRRP备份组
单击<确定>按钮,完成操作。
创建VRRP备份组所在三层聚合子接口10.2与创建VRRP备份组所在三层聚合子接口10.1步骤相同。
在导航栏中选择“系统>高可靠性>VRRP”,单击添加VRRP备份组,参照上图创建VRRP备份组所在接口为三层聚合子接口10.2,备份组号为1,联动双机热备为VRRP active组,虚拟IP地址为192.168.1.254/32。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,选择开启双机热备,管理角色模式选择手动模式,管理角色选择从管理设备,本端地址为1.1.1.2,对端IP地址为1.1.1.1,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为12小时。
如下图所示。
图4-63 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>VRRP”,进入VRRP列表页面。
单击<新建>按钮,选择备份组所在的接口为三层聚合子接口10.1,备份组号为1,联动双机热备VRRP standby组,虚拟IP地址为10.0.0.1/32。
如下图所示。
图4-64 配置VRRP备份组
单击<确定>按钮,完成操作。
创建VRRP备份组所在三层聚合子接口10.2与创建VRRP备份组所在三层聚合子接口10.1步骤相同。
在导航栏中选择“系统>高可靠性>VRRP”,单击添加VRRP备份组,参照上图创建VRRP备份组所在接口为三层聚合子接口10.2,备份组号为1,联动双机热备为VRRP standby组,虚拟IP地址为192.168.1.254/32。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为icmp,类型为ICMP的健康检测模板,配置两次探测开始时间的时间间隔3000ms,配置连续探测成功的次数为1。
如下图所示。
图4-65 添加健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池列表页面。
单击<新建>按钮,新建基于地址拆分的源地址池snat,配置地址范围为192.168.1.101~192.168.1.112,配置发送免费ARP或ND报文的接口。
如下图所示。
图4-66 添加源地址池
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测选择icmp,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图4-67 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.3,如下图所示。
图4-68 添加实服务组成员
图4-69 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.4和192.168.1.5。
如图所示。
图4-70 实服务组成员列表
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择TCP,引用实服务组sf1,配置虚服务器绑定VRRP备份组1关联接口三层聚合子接口10.1,并开启虚服务。
如下图所示。
图4-71 新建虚服务器
单击<确定>,完成操作。
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如图所示。
图4-72 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Backup。
如图所示。
图4-73 备设备上高可靠性
Host向地址61.159.4.100发起FTP的请求,访问成功后,在设备上在导航栏“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。
如图所示。
图4-74 主设备上的虚服务器统计
图4-75 备设上的虚服务器统计
主设备状态正常时,Host向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图4-76 icmp ping业务状态
(1) 手动切换主备状态
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图4-77 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Backup。
如下图所示。
图4-78 主设备上双机热备状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图4-79 备设备上双机热备状态
业务切换到备设备上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图4-80 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图4-81 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图4-82 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图4-83 icmp ping业务状态
(2) 业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Initialize。
如下图所示。
图4-84 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态非正常,为Master。
如下图所示。
图4-85 备设备上双机热备
业务切换到备机上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图4-86 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图4-87 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图4-88 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Master。
如下图所示。
图4-89 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,心跳状态为正常,VRRP虚拟地址状态正常,为Initialize。
如下图所示。
图4-90 备设备上双机热备
业务切回主设备上,没有丢包,如下图所示。
图4-91 icmp ping业务状态
#
nqa template icmp icmp
frequency 3000
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.1 255.255.0.0
#
interface Route-Aggregation10.1
ip address 10.0.0.253 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.0.1 active
vlan-type dot1q vid 3001
#
interface Route-Aggregation10.2
ip address 192.168.1.1 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.254 active
vlan-type dot1q vid 3002
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
local-ip 1.1.1.1
remote-ip 1.1.1.2
device-role primary
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.3
#
real-server rs2
ip address 192.168.1.4
#
real-server rs3
ip address 192.168.1.5
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
vrrp vrid 1 interface Route-Aggregation10.1
service-down-action reset
service enable
#
#
nqa template icmp icmp
frequency 3000
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.2 255.255.0.0
#
interface Route-Aggregation10.1
ip address 10.0.0.254 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.0.1 standby
vlan-type dot1q vid 3001
#
interface Route-Aggregation10.2
ip address 192.168.1.2 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.254 standby
vlan-type dot1q vid 3002
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
local-ip 1.1.1.2
remote-ip 1.1.1.1
device-role secondary
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.3
#
real-server rs2
ip address 192.168.1.4
#
real-server rs3
ip address 192.168.1.5
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
vrrp vrid 1 interface Route-Aggregation10.1
service-down-action reset
service enable
#
随着互联网以及各行各业数字化转型的蓬勃发展,网络承载的业务越来越多,越来越重要。如何在保证网络可靠性、业务不间断传输的基础上优化网络性能、灵活扩展网络成为网络建设中必须要解决的问题。
在网络关键位置上如果只使用一台设备的情况下,无论其可靠性多高,都会存在因设备单点故障而导致网络中断的风险。因此,通常会在网络的关键位置部署两台设备,同时组建OSPF(Open Shortest Path First,路由选择的开放性协议)组网,在提升网络可靠性和业务运行稳定性的基础上,优化网络性能以及灵活扩展网络结构。使用两台负载均衡设备搭建高可靠性OSPF主备组网,Device A作为主设备,Device B作为备设备。当Device A设备或其他链路出现故障时,业务能够被Device B设备接替继续运行业务,保证业务不中断(业务流量默认不主动回切),提升网络性能。
图4-92 高可靠性OSPF组网图
为实现两台负载均衡设备其中一台故障时,另外一台能够接替运行业务,需要完成如下配置:
· 接口下的地址、OSPF相关配置需要在两台设备上分别进行配置下发。
· 高可靠性相关配置需要在两台设备上分别进行配置下发,将两台设备之间直连的接口聚合作为高可靠性控制通道接口和数据通道接口。配置高可靠性,指定主从管理设备角色,指定控制通道和数据通道,开启配置自动备份和热备功能。
· 路由,健康检测等不备份的基础配置需要在两台设备上分别进行配置下发。
本举例是在L5000-AD830的Ess 1171P1521上进行配置和验证的。
· 对负载均衡业务相关可备份的配置进行删除、修改操作时,需要在高可靠性主管理设备上进行操作,同步给高可靠性从管理设备,切勿在高可靠性从管理设备上进行修改删除操作,防止两个设备上的配置不一致。主管理设备上已有的负载均衡配置,会在开启自动同步配置信息功能后进行一次批量备份,或通过手动同步配置信息到高可靠性从管理设备上。对于路由、健康检测等不备份但需要保持一致的配置,需要在两个设备上分别进行操作配置下发。
· 接口IP地址,路由等相关配置,需要在主管理设备和从管理设备上同时手动配置并各自保存为基本配置。负载均衡相关的ISP文件,SSL卸载相关的证书文件,自定义监控所需的脚本文件等文件类操作需要在两台设备上分别进行导入下发,并各自进行保存。
· 目前支持配置信息同步的业务模块如下:
¡ 资源类:VPN实例、ACL(acl copy命令不支持同步)、对象组、时间段、安全域、会话管理、APR、AAA。
¡ DPI相关模块:应用层检测引擎、IPS、URL过滤、数据过滤、文件过滤、防病毒、数据分析中心、WAF。
¡ 策略类:安全策略、ASPF、攻击检测与防范(blacklist ip命令不支持同步)、连接数限制、NAT、AFT、负载均衡、带宽管理、应用审计与管理、共享上网管理、代理策略。
¡ 日志类:快速日志输出(customlog host source命令不支持同步)、Flow日志(userlog flow export source-ip命令不支持同步)。
¡ VPN类:SSL VPN。
¡ 其他类:VLAN、信息中心(info-center loghost source命令不支持同步)
· 高可靠性数据通道和控制通道推荐使用静态聚合。
· 基础配置和业务配置配置完成后分别save保存配置。
· 高可靠性组网中主备组网中,主设备故障时,流量自动切换到对端设备进行处理。缺省情况下,当原主设备恢复正常时,流量不回切。这时如果需要流量再次回到原主设备进行处理,可以开启主动抢占功能,并设置延迟切换时间保证业务能够平滑切回,延迟回切时间为0表示不回切。
· 负载均衡配置snat地址池时,基于地址拆分。SNAT地址池中的地址与设备连接服务器端接口的IP地址在同一网段时,必须在该SNAT地址池下配置指定免费发送ARP或ND报文接口,指定的接口是设备连接服务器的接口。不在同一网段时,则SNAT地址池下无需指定免费发送ARP或ND报文接口。
以下验证过程在LB设备上进行。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,管理角色模式选择手动模式,管理角色选择主管理设备,本端地址为1.1.1.1,对端IP地址为1.1.1.2,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为12小时,路由联动中OSPF cost绝对值设置为6000。
如下图所示。
图4-93 配置双机热备
单击<确定>按钮,完成操作。
在导航栏中选择“网络>路由>OSPF”,进入OSPF列表页面。
单击<新建>按钮,选择版本为OSPFv2,实例名称为1,路由器标识为41.1.1.1。
如下图所示。
图4-94 配置OSPF实例
单击<确定>按钮,完成操作。
图1-4 配置OSPF区域
单击<OSPF区域数目>,进入区域配置页面。
单击<新建>,添加区域ID为0.0.0.0,网段地址为10.0.0.1/24、192.168.2.1/24的OSPFv2区域。
单击<确定>按钮,完成操作。
在导航栏中选择“系统>高可靠性>高可靠性”,点击“主备模式”,进入双机热备页面。
单击<配置>按钮,进入双机热备配置页面,选择开启双机热备,管理角色模式选择手动模式,管理角色选择从管理设备,本端地址为1.1.1.2,对端IP地址为1.1.1.1,数据通道选择三层聚合口1,配置信息一致性检查开启,时间间隔为12小时,路由联动中OSPF cost绝对值设置为6000。。
如下图所示。
图4-95 配置高可靠性
单击<确定>按钮,完成操作。
在导航栏中选择“网络>路由>OSPF”,进入OSPF列表页面。
单击<新建>按钮,选择版本为OSPFv2,实例名称为1,路由器标识为41.1.1.8。
如下图所示。
图4-96 配置OSPF实例
单击<确定>按钮,完成操作。
图1-6 配置OSPF区域
单击<OSPF区域数目>,进入区域配置页面。
单击<新建>,添加区域ID为0.0.0.0,网段地址为10.0.0.2/24、192.168.2.2/24的OSPFv2区域。
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,添加健康模板名称为icmp,类型为ICMP的健康检测模板,配置两次探测开始时间的时间间隔3000ms,配置连续探测成功的次数为1。
如下图所示。
图4-97 添加健康检测模板
单击<确定>按钮,完成操作。
配置snat源地址池的目的是为了隐藏客户端源地址,保证客户的隐私性,同时由于服务器没有直接通往客户端的路由,所以响应报文可利用snat源地址池经由设备,顺利回到客户端。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池列表页面。
单击<新建>按钮,新建基于地址拆分的源地址池snat,配置地址范围为192.168.2.11~192.168.2.14,配置发送免费ARP或ND报文的接口。
如下图所示。
图4-98 添加源地址池
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,目的是为了同一个客户端的业务请求每次能够被相同的服务器处理,健康检测选择icmp,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图4-99 添加实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.3,如下图所示。
图4-100 添加实服务组成员
图4-101 添加实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击添加成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.4和192.168.1.5。
如图所示。
图4-102 实服务组成员列表
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>按钮,添加虚服务器名称为vs,类型选择TCP,引用实服务组sf1,并开启虚服务。
如下图所示。
图4-103 新建虚服务器
单击<确定>,完成操作。
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如图所示。
图4-104 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如图所示。
图4-105 备设备上高可靠性
在主设备上,在导航栏中选择“网络>路由>OSPF”,进入OSPF页面。
OSPF组网建立成功后,在主设备上,显示已启用接口数目为2,邻居数目为2。
如图所示。
图1-15 主设备上OSPF状态
主设备上查看ospf组网邻居状态,其中41.1.1.2和41.1.1.3为对端交换机的router id。
RBM_P[H3C-2]dis ospf peer
OSPF Process 1 with Router ID 41.1.1.8
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
41.1.1.2 10.0.0.3 1 38 Full/DR RAGG1.1
41.1.1.3 192.168.2.3 1 36 Full/DR RAGG1.2
在备设备上,在导航栏中选择“网络>路由>OSPF”,进入OSPF页面。
OSPF组网建立成功后,在备设备上,显示已启用接口数目为2,邻居数目为2。
如图所示。
图1-15 备设备上OSPF状态
备设备上查看ospf组网邻居状态,其中41.1.1.4和41.1.1.5为对端交换机的router id。
RBM_S[H3C-1]dis ospf peer
OSPF Process 1 with Router ID 41.1.1.8
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
41.1.1.4 10.0.0.4 1 39 Full/DR RAGG1.1
41.1.1.5 192.168.2.4 1 30 Full/DR RAGG1.2
Host向地址61.159.4.100发起FTP的请求,访问成功后,在设备上在导航栏“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
主设备正常工作情况下,主设备上的虚服务器统计有并发数和带宽统计,备设备上只有并发数统计。
如图所示。
图4-106 主设备上的虚服务器统计
图4-107 备设上的虚服务器统计
主设备状态正常时,Host向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图4-108 icmp ping业务状态
(1)手动切换主备状态
在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。点击<状态切换>即可手动切换主备状态。
如下图所示。
图4-109 手动切换主备状态
手动切换完成后,在主设备上运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图4-110 主设备上双机热备状态
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如下图所示。
图4-111 备设备上双机热备状态
业务切换到备设备上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图4-112 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图4-113 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图4-114 主设备上会话列表
再次手动切换主备状态,使主设备的运行状态为主用状态,业务切回主设备上,没有丢包,如下图所示。
图4-115 icmp ping业务状态
(2)业务口故障
当主设备业务口故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图4-116 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如下图所示。
图4-117 备设备上双机热备
业务切换到备机上,Host继续向地址61.159.4.100发起icmp ping请求,没有丢包,如下图所示。
图4-118 icmp ping业务状态
在备设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
业务切换到备设备上时,备设备上产生icmp会话,如下图所示。
图4-119 备设备上会话列表
在主设备上,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面。
主设备上备份备设备上的icmp会话,如下图所示。
图4-120 主设备上会话列表
主设备业务口恢复正常后,备设备业务口发生故障时,在主设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在主设备上,运行模式是主备模式,管理角色是主管理设备,运行状态为主用状态,控制通道接口状态为正常,OSPF当前状态为高可靠性未调整路由开销值。
如下图所示。
图4-121 主设备上双机热备
在备设备上,在导航栏中选择“系统>高可靠性>高可靠性”,进入双机热备页面。
双机热备建立成功后,在备设备上,运行模式是主备模式,管理角色是从管理设备,运行状态为备用状态,控制通道接口状态为正常,OSPF的当前状态为高可靠性调整路由开销的绝对值为6000。
如下图所示。
图4-122 备设备上双机热备
业务切回主设备上,没有丢包,如下图所示。
图4-123 icmp ping业务状态
#
ospf 1 router-id 41.1.1.1
area 0.0.0.0
network 10.0.0.1 0.0.0.3
network 192.168.2.1 0.0.0.3
#
nqa template icmp icmp
frequency 3000
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.1 255.255.0.0
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
adjust-cost ospf enable absolute 6000
local-ip 1.1.1.1
remote-ip 1.1.1.2
device-role primary
#
loadbalance snat-pool snat
ip range start 192.168.2.10 end 192.168.2.12
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.3
#
real-server rs2
ip address 192.168.1.4
#
real-server rs3
ip address 192.168.1.5
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
#
ospf 1 router-id 41.1.1.8
area 0.0.0.0
network 10.0.0.2 0.0.0.3
network 192.168.2.2 0.0.0.3
#
nqa template icmp icmp
frequency 3000
reaction trigger probe-pass 1
#
interface Route-Aggregation1
ip address 1.1.1.2 255.255.0.0
#
remote-backup group
data-channel interface Route-Aggregation1
configuration sync-check interval 12
adjust-cost ospf enable absolute 6000
local-ip 1.1.1.2
remote-ip 1.1.1.1
device-role secondary
#
loadbalance snat-pool snat
ip range start 192.168.1.101 end 192.168.1.112
arp-nd interface Route-Aggregation10.2
#
server-farm sf1
predictor hash address source
probe icmp
snat-pool snat
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.3
#
real-server rs2
ip address 192.168.1.4
#
real-server rs3
ip address 192.168.1.5
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将在三台服务器之间负载分担,LB设备上配置源地址哈希算法,每一个用户的请求必须分配到同一个服务器上。当其中一个实服务器出现健康检测震荡,建立在其他服务器上的相同源地址的用户依然要分配到同一个服务器上面去。此时源地址哈希算法必须和源地址持续性一起使用,以防止已有的用户业务出现闪断。
图5-1 基于源地址哈希与源地址持续性的七层负载组网图
为实现基于源地址哈希与源地址持续性的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 配置地址端口类型的持续性组,持续性方法为源地址。。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 配置持续性方法为源地址持续性。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图5-2 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,如下图所示。
图5-3 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图5-4 添加实服务组成员
图5-5 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图5-6 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>按钮,创建地址端口类型的持续性sg-add,源地址持续性方法。
图5-7 新建地址端口类型的持续性组,源地址持续性方法
单击<确定>,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务IP为61.159.4.100,实服务组为sf1,引用地址端口类型的持续性sg-add,开启虚服务,如下图所示。
图5-8 新建虚服务器
单击<确定>按钮,完成操作。
图5-9 查看实服务组sf状态
客户端向服务器发起一个源地址多个端口的HTTP请求,查看实服务器统计信息,只有rs1有流量:
图5-10 查看实服务器统计信息
图5-11 查看实服务组sf1状态
查看实服务器统计信息:由于虚服务配置了源地址持续性方法,当实服务器出现健康检测失败后又成功时,同一源地址,不同端口的请求仍然分配到同一台实服务器上。查看实服务器统计信息,仍然只有rs1有流量。
图5-12 查看实服务器统计信息
#
nqa template tcp t1
destination port 80
#
sticky-group sg-add type address-port
ip source
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1 sticky sg-add
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
如图所示,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将在三台服务器之间负载分担。LB设备上配置最小连接算法和源地址持续性,在服务器负载分担不均匀的场景下,要求每一个用户发送的请求必须分配到同一个服务器上。配置温暖上线功能,当其中一个实服务器出现健康检测失败后又成功的情况下,所有的新建流量不会全部突发到这个服务器上,避免服务器出现反复up、down的问题。
图5-13 基于最小连接算法+源地址持续性+温暖上线的七层负载组网图
为实现基于最小连接算法+源地址持续性+温暖上线的七层应用负载均衡,需要在LB设备上完成如下配置:
· 实服务组上配置温暖上线功能。最小连接算法必须要和温暖上线一起使用的原因:如果出现服务器健康检测失败后又UP起来,所有的新建都会突发到这个服务器上面去,又导致这个服务器down掉,这样就会导致服务器反复UP,down。
· 配置地址端口类型的持续性组,持续性方法为源地址。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组需要开启温暖上线功能。
· 持续性方法为源地址。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图5-14 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为基于成员的加权最小连接算法,开启温暖上线功能,健康检测方法选择t1,如下图所示。
图5-15 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图5-16 添加实服务组成员
图5-17 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图5-18 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>按钮,创建地址端口类型的持续性sg-add,源地址持续性方法。
图5-19 新建地址端口类型的持续性组,源地址持续性方法
单击<确定>,完成操作。
创建TCP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡> 应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,配置虚服务IP为61.159.4.100,实服务组为sf1,引用地址端口类型的持续性sg-add,开启虚服务,如下图所示。
图5-20 新建虚服务器
单击<确定>按钮,完成操作。
图5-21 实服务器统计信息
图5-22 实服务器统计信息
客户端再次发起这个源地址的访问,查看实服务器流量统计,流量仍然分配到rs3上
图5-23 实服务器统计信息
图5-24 实服务组sf1状态
客户端向服务器发起HTTP请求,查看实服务器统计信息,rs1和rs2均匀分担流量:
图5-25 实服务器统计信息
图5-26 实服务组sf1状态
查看实服务器统计信息:由于实服务组配置温暖上线,当rs3健康检测成功后,所有的新建流量不会全部分配到rs3上面,查看三台实服务器,都有新建流量分配。查看rs3流量统计,rs3健康检测成功后,流量计数缓慢增加。
图5-27 实服务器统计信息
单击<刷新>按钮。
图5-28 实服务器统计信息
图5-29 实服务组sf1状态
客户端向服务器发起HTTP请求,查看实服务器统计信息,rs1和rs2均匀分担流量。
图5-30 实服务器统计信息
图5-31 实服务组sf1状态
查看实服务器统计信息:由于实服务组配置了最小连接算法,实服务组密钥配置温暖上线功能,当rs3健康检测成功后,所有的新建流量都会分配到rs3上面,查看rs3流量统计,rs3健康检测成功后,流量计数迅速增加。
图5-32 查看实服务器统计信息
单击<刷新>按钮。
图5-33 实服务器统计信息
#
nqa template tcp t1
destination port 80
#
server-farm sf1
predictor least-connection member
probe t1
success-criteria at-least 1
slow-online standby-time 15 ramp-up-time 30
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
sticky-group sg-add type address-port
ip source
#
virtual-server vs type tcp
virtual ip address 61.159.4.100
default server-farm sf1 sticky sg-add
connection-sync enable
sticky-sync enable global
service-down-action reset
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和Server E,其他URL的请求分给Server C和Server F。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 如果一个HTTP带有多个请求,请配置逐请求负载均衡。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-2 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,如下图所示。
图6-3 新建实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
图6-4 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-5 添加实服务组成员
图6-6 新建实服务器
单击<确定>按钮,完成操作。
图6-7 实服务器信息
单击<确定>按钮,完成操作。
创建其余5个实服务器与配置rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs11,配置其IPv4地址为192.168.1.11。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,添加成员列表,参照上图步骤创建实服务器rs2和rs12,分别配置其IPv4地址为192.168.1.2和192.168.1.12。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf3,添加成员列表,参照上图步骤创建实服务器rs3和rs13,分别配置其IPv4地址为192.168.1.3和192.168.1.13。
创建HTTP Cookie类型的持续性组。配置持续性方法为Cookie插入,名字为cookie1。(Cookie插入,即在服务器发送的HTTP应答报文中插入Set-cookie字段用于持续性处理)。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>,新建持续组名称为sg1,类型为http-cookie,Cookie持续性方法:Cookie插入,Cookie名称为cookie1,如下图所示。
图6-8 新建持续性组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>,新建流量特征名称为lc1,类型选择HTTP,匹配方式为匹配任意一条规则:
· match ID为1,类型选择URL,URL为sports,单击<确定>。
· match ID为2,类型选择URL,URL为news,单击<确定>。
· match ID为3,类型选择URL,URL为government,单击<确定>。
图6-9 新建流量特征lc1
单击<确定>按钮,完成操作。
单击<确定>按钮,完成操作。
单击<确定>,完成操作。
图6-10 流量特征信息
创建lc2与lc1步骤相同,配置参数如下图所示。
图6-11 流量特征lc2信息
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,新建动作名称为la1,类型选择HTTP,主用实服务组sf1,持续性组为sg1,如下图所示。
图6-12 新建动作信息
单击<确定>,完成操作。
负载均衡动作la2、la3与la1创建步骤相同,la2主用实服务组sf2,la3主用实服务组sf3,la2、la3配置参数分别如图6-13、图6-14所示。
图6-13 la2配置参数
图6-14 la3配置参数
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,新建策略名称为lp1,类型选择HTTP,规则单击<新建>,流量特征选择lc1,动作选择la1,单击<确定>;再次单击<新建>,流量特征选择lc2,动作选择la2,单击<确定>;默认动作选择la3,如下图所示。
图6-15 新建策略信息
单击<确定>,完成操作。
图6-16 策略lp1配置信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为pp1,类型选择HTTP,开启逐请求负载均衡,如下图所示。
图6-17 新建参数模板信息
单击<确定>,完成操作。
创建HTTP类型的虚服务vs,配置其VSIP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务,如下图所示。
图6-18 新建虚服务器
单击<确定>,完成操作。
虚服务有统计信息:
图6-19 虚服务统计信息
当发起URL中包含sports、news、government的请求时,流量特征匹配lc1,此时rs11有流量统计:
图6-20 实服务统计信息
当发起URL中包含finance、technology、shopping的请求时,流量特征匹配lc2,此时rs12有流量统计:
图6-21 实服务统计信息
当发起URL中包含aaa的请求时,流量特征匹配不上lc1和lc2,走默认的lc3,此时rs13有流量统计:
图6-22 实服务统计信息
同时发起URL中包含aaa、sports、news、government、 finance、technology、shopping的请求,统计如下:
图6-23 虚服务统计信息
图6-24 实服务组统计信息
图6-25 实服务统计信息
图6-26 客户端抓包报文
查看实服务器统计只有rs11命中:
图6-27 实服务统计信息
再次发起带有这个Cookie值的报文请求:Cookie: cookie1=2.2.3267f431.0,查看持续性生效,只有rs1有统计:
图6-28 实服务统计信息
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
server-farm sf3
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
real-server rs13 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs11
ip address 192.168.1.11
#
real-server rs2
ip address 192.168.1.2
#
real-server rs12
ip address 192.168.1.12
#
real-server rs3
ip address 192.168.1.3
#
real-server rs13
ip address 192.168.1.13
#
loadbalance class lc1 type http match-any
match 1 url sports
match 2 url news
match 3 url government
#
loadbalance class lc2 type http match-any
match 1 url finance
match 2 url technology
match 3 url shopping
#
loadbalance action la1 type http
server-farm sf1 sticky sg1
#
loadbalance action la2 type http
server-farm sf2 sticky sg1
#
loadbalance action la3 type http
server-farm sf3 sticky sg1
#
loadbalance policy lp1 type http
class lc1 action la1
class lc2 action la2
default-class action la3
#
sticky-group sg1 type http-cookie
cookie insert name cookie1
check all-packet
#
parameter-profile pp1 type http
rebalance per-request
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
sticky-sync enable global
service enable
#
如图所示,Host访问域名,通过DNS server将域名解析出虚服务器地址,Host发起访问虚服务器的地址,通过LB设备对3台服务器进行访问,三台服务器均可提供HTTP服务,访问服务器的流量将根据负载均衡策略在三台服务器之间负载分担。
图6-29 基于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-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host与DNS server路由可达,Host可以直接将DNS服务器指向DNS server。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
· DNS server解析域名的地址跟LB上虚服务的地址一致。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-30 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,如下图所示。
图6-31 新建实服务组
单击<确定>按钮,完成操作。
创建实服务组sf2、sf3与sf1步骤相同。
图6-32 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-33 添加实服务组成员
图6-34 新建实服务器
单击<确定>按钮,完成操作。
图6-35 实服务器信息
单击<确定>按钮,完成操作。
创建实服务器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.example1.com,如下图所示。
图6-36 新建流量特征
单击<确定>按钮,完成操作。
图6-37 流量特征信息
按照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。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,新建动作名称为la1,类型选择HTTP,主用实服务组sf1,如下图所示。
图6-38 新建动作信息
单击<确定>,完成操作。
创建la2、la3与la1步骤相同,la2主用实服务组是sf2,la3主用实服务组是sf3。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,新建策略名称为lp1,类型选择HTTP,规则单击<新建>,流量特征选择lc1,动作选择la1,单击<确定>。再次单击<新建>,流量特征选择lc2,动作选择la2,单击<确定>。再次单击<新建>,流量特征选择lc3,动作选择la3,单击<确定>,如下图所示。
图6-39 新建策略
图6-40 新建策略信息
单击<确定>,完成操作。
创建HTTP类型的虚服务vs,配置其VSIP为61.159.4.100,应用负载均衡策略lp1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,并开启虚服务,如下图所示。
图6-41 新建虚服务器
单击<确定>,完成操作。
图6-42 虚服务器统计信息
当发起访问www.example1.com请求时,流量特征匹配lc1,此时rs1有流量统计:
图6-43 实服务器统计信息
当发起访问www.example2.com请求时,流量特征匹配lc2,此时rs2有流量统计:
图6-44 查看实服务器统计信息
当发起访问www.example3.com请求时,流量特征匹配lc3,此时rs3有流量统计:
图6-45 查看实服务器统计信息
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf3
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http
match 1 header host value www.example1.com
#
loadbalance class lc2 type http
match 1 header host value www.example2.com
#
loadbalance class lc3 type http
match 1 header host value www.example3.com
#
loadbalance action la1 type http
server-farm sf1
#
loadbalance action la2 type http
server-farm sf2
#
loadbalance action la3 type http
server-farm sf3
#
loadbalance policy lp1 type http
class lc1 action la1
class lc2 action la2
class lc3 action la3
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
lb-policy lp1
sticky-sync enable global
service enable
#
如图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务;Host访问服务器的流量会根据三台服务器的优先级进行选择,如果实服务组中配置了限制调度的个数,实服务器优先级跟调度个数会共同对实服务器进行调度,实现负载分担。
图6-46 基于优先级调度七层服务器负载组网图
为实现基于优先级调度的七层应用负载均衡,需要在LB设备上完成如下配置:
· LB设备上配置实服务组、实服务器、虚服务。
· 若需要将流量只分配给优先级最高的服务器时,实服务组中配置可选择的实服务器的数量为1,实服务器配置不同的优先级分别为4、8、1。
· 若需要将流量分配给其中两台服务器时,实服务组中配置可选择的实服务器的数量为2,实服务器配置不同的优先级分别为4、8、1。
· 入方向交换机二层透传,网关在LB上,Host到LB路由可达,出方向交换机二层透传,网关在LB上,LB到服务器路由可达、服务器到LB路由可达。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host到LB路由可达,LB到server路由可达,server到LB路由可达,服务器网关在LB上。
· 入方向跟出方向交换机均配置二层透传,网关都在LB上。
· 实服务组中配置可选择的实服务器数量,三台服务器配置不同的优先级。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-47 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,勾选“限制可被调度算法调用的实服务器数量”,最小数量与最大数量均配置成1,如下图所示。
图6-48 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,优先级为4,实服务组选择sf1,如下图所示。
图6-49 添加实服务组成员
图6-50 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3。rs2优先级为8,IPv4地址为192.168.1.2;rs3优先级为1,IPv4地址为192.168.1.3。
图6-51 实服务组信息
创建HTTP类型的虚服务器vs,配置其VSIP为61.159.4.100,应用实服务组sf1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务器IP为61.159.4.100,指定默认实服务组sf1,并开启虚服务,如下图所示。
图6-52 新建虚服务器
单击<确定>按钮,完成操作。
图6-53 虚服务统计信息
图6-54 实服务器统计信息
图6-55 虚服务器统计信息
图6-56 实服务器统计信息
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
selected-server min 1 max 1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
priority 8
success-criteria at-least 1
real-server rs3 port 0
priority 1
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
default server-farm sf1
sticky-sync enable global
service enable
#
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
如图所示,内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换,且其中将访问URL含关键字government的客户端地址透传给实服务器C,以便实服务器甄别客户端做进一步安全性处理;其它URL流量在实服务器A和B之间负载分担。
图6-57 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建负载均衡策略,其中对于URL包含government的访问请求,动作中启用插入X-Forwarded-For字段以便携带客户端源地址;其它URL直接负载分担到实服务器。
· 创建HTTP类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· SNAT地址池的地址与出接口同网段时,需要在地址池上配置免费发送ARP。
· HTTP报文中的首部内容为1~255个字符的字符串,也可以使用以下特定含义的字符串,说明:%is:源IP地址或源IPv6地址。%ps:源端口号。%id:目的IP地址或目的IPv6地址。%pd:目的端口号。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-58 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,配置起始地址和结束地址为接口同网段公网地址192.168.1.252,配置发送免费ARP或ND报文的接口,如下图所示。
图6-59 新建源地址池
单击<确定>,完成操作。
图6-60 源地址池信息
单击<确定>,完成操作。
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
负载均衡>应用负载>实服务组,单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,源地址池选择snat1。
图6-61 新建实服务组sf1
单击<确定>按钮,完成操作。
# 创建实服务组sf2,采用的调度算法为加权轮转,选择源地址池snat1。
负载均衡>应用负载>实服务组,新建实服务组sf2,调度算法选择加权轮转,健康检测方法选择t1,源地址池选择snat1,单击<确定>。
图6-62 新建实服务组sf2
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器rs1,IP地址为192.168.1.1,。单击<确定>。
图6-63 添加实服务组成员
图6-64 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2和rs3与创建rs1步骤相同
负载均衡>应用负载>实服务组,编辑实服务组sf1,添加成员列表,参照上图创建实服务器rs2,配置其IPv4地址为192.168.1.2。
负载均衡>应用负载>实服务组,编辑实服务组sf2,添加成员列表,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3。
图6-65 实服务组信息
负载均衡>应用负载>高级策略>流量特征,新建HTTP类型的流量特征名称为lc1,识别访问请求中URL含government关键字的用户。
图6-66 新建流量特征
单击<确定>按钮,完成操作。
图6-67 流量特征信息
# 新建HTTP类型的动作名称为la1,为转发到实服务组sf2,并启用插入X-Forwarded-For字段。
负载均衡>应用负载>高级策略>动作,新建HTTP类型的动作名称为la1为转发到实服务组sf2,并启用插入X-Forwarded-For字段。
图6-68 新建动作
# 新建HTTP类型的动作名称为la2,为转发到实服务组sf1
负载均衡>应用负载>高级策略>动作,新建HTTP类型的动作名称为la2为转发到实服务组sf1。
图6-69 新建动作
# 创建HTTP类型的负载均衡策略lp1,配置默认动作为la2,流量特征为lc1的动作为为la1。
负载均衡>应用负载>高级策略>负载均衡策略,新建HTTP类型的策略名称为lp1,默认动作为la2,新建规则流量特征为lc1动作为la1。
图6-70 新建策略
单击<确定>,完成操作。
图6-71 新建策略信息
创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“负载均衡>应用负载>参数模板”,单击<新建>,创建HTTP类型参数模板pp1,开启每请求执行动作。
图6-72 新建参数模板
创建HTTP类型的虚服务vs,配置其VSIP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为61.159.4.100,应用负载均衡策略lp1,以及参数模板pp1,并开启虚服务,如下图所示。
图6-73 新建虚服务器
图6-74 虚服务统计信息
图6-75 实服务统计信息
图6-76 虚服务统计信息
图6-77 实服务统计信息
3.大量Host通过http:// 61.159.4.100访问HTTP服务器,访问成功,在服务器端抓包可以看到URL中含government的请求,且请求报文中含有名字为x-forwarded-for、值为客户源地址的Header
#
nqa template http t1
expect status 200
#
loadbalance snat-pool snat1
ip range start 192.168.1.252 end 192.168.1.252
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf2
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http
match 1 url government
#
loadbalance action la1 type http
server-farm sf2
header insert request name X-Forwarded-For value %is
#
loadbalance action la2 type http
server-farm sf1
#
loadbalance policy lp1 type http
class lc1 action la1
default-class action la2
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
parameter-profile pp1 type http
header modify per-request
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
sticky-sync enable global
service enable
#
SLB部署SNAT业务情况下,服务器需要基于客户端的地址做数据统计,在客户端请求报文中插入值。
如图所示,内网用户Host通过LB设备对3台服务器进行访问,公网内三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。要求Host访问流量进行源地址转换。
图6-78 客户端源地址插入组网图
为了实现LB设备透传特定用户的客户端源地址,需要在LB设备上完成如下配置:
· 配置SNAT屏蔽客户端内网地址。
· 创建HTTP类型的参数模板,开启每请求执行动作,对客户端的每个请求都插入源地址。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-79 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,配置起始地址和结束地址为接口同网段公网地址7::6和7::6,配置发送免费ARP或ND报文的接口,如下图所示。
图6-80 新建源地址池
单击<确定>,完成操作。
图6-81 源地址池信息
单击<确定>,完成操作。
# 创建实服务组sf1,采用的调度算法为源IP地址哈希算法,选择源地址池snat1。
负载均衡>应用负载>实服务组,单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1,源地址池选择snat1。
图6-82 新建实服务组sf1
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf1,添加成员列表,新建实服务器rs1,IP地址为7::2。单击<确定>。
图6-83 添加实服务组成员
图6-84 新建实服务器
单击<确定>按钮,完成操作。
参照上图在实服务组sf1下创建实服务器rs2,配置其IPv6地址为7::3,创建实服务器rs3, 配置其IPv6地址为7::4。
图6-85 实服务组信息
创建HTTP类型的参数模板,开启每请求执行动作。
在导航栏中选择“负载均衡>应用负载>参数模板”,单击<新建>,创建HTTP类型参数模板pp1,开启每请求执行动作。
图6-86 新建参数模板
创建HTTP类型的虚服务vs,配置其VSIP为200::1,应用实服务组sf1,以及参数模板pp1,开启插入X-Forwarded-For功能,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择HTTP,配置虚服务IP为200::1,指定默认实服务组sf1,参数模板pp1,开启插入X-Forwarded-For功能,并开启虚服务,如下图所示。
图6-87 新建虚服务器
#
nqa template http t1
expect status 200
#
parameter-profile pp1 type http
header modify per-request
#
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
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ipv6 address 7::2
#
real-server rs2
ipv6 address 7::3
#
real-server rs3
ipv6 address 7::4
#
virtual-server vs type http
virtual ipv6 address 200::1
parameter http pp1
default server-farm sf1
sticky-sync enable global
service-down-action reset
insert-xff enable
service enable
#
根据请求中的URL分类,将HTTP请求重定向为HTTPS请求。
Host通过LB设备对3台服务器进行访问。服务器上配置HTTP协议和HTTPS协议。
三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
针对如下URL,要求配置HTTP请求自动重定向到HTTPS请求。
原请求路径 |
重定向路径 |
http://61.159.4.100/login/index.html |
https://61.159.4.100:443/login/index.html |
图6-88 LB设备基于URL重定向组网图
为了实现基于URL的策略重定向功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、负载均衡策略。
· 将CA证书和本地证书导入到LB设备,并在LB设备上创建SSL策略。
· 配置虚服务,并在虚服务下应用策略。
· 根据请求中的URL分类,将HTTP请求重定向为HTTPS请求。
· 创建HTTP类型的参数模板,开启逐请求负载均衡。
· 如果HTTP类型的虚服务器端口号非80或者重定后的端口号非443,负载均衡动作需要配置为redirect relocation https://%{host}:端口号%p,举例https://%{host}:8080%p。
· 如果HTTP类型的虚服务器端口号为80且重定后的端口号为443,负载均衡动作需可以配置为redirect relocation https://%h%p。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· HTTPS类型虚服务器对应的实服务器使用端口号为80。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-89 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-90 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口为80,如下图所示。
图6-91 添加实服务组成员
图6-92 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,端口均为80。
图6-93 实服务组信息
匹配http://61.159.4.100/login/index.html等URL中带有/login关键字的HTTP请求流量
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面,新建流量特征名称为lc-http,新建规格match ID为1,类型为URL,URL为/login。
图6-94 新建流量特征lc-http
将HTTP请求报文重定向为HTTPS请求报文的动作http-https。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面,新建动作名称为http-https,类型为HTTP重定向,重定向URL为https://%{host}:8080%p。
图6-95 新建动作
将上述流量特征和动作关联实现如下功能:
(1) 策略lp1将URL中带有/login的HTTP报文重定向为HTTPS报文
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建负载均衡策略lp1,类型为HTTP,新建规则流量特征为lc-http,动作为http-https
图6-96 新建负载均衡策略lp1
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图6-97 新建PKI域
单击<确定>按钮,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图6-98 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-99 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图6-100 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-101 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,如下图所示。
图6-102 新建SSL服务器端策略
单击<确定>按钮,完成操作。
创建HTTP类型的参数模板,开启逐请求负载均衡。
在导航栏中选择“负载均衡>应用负载>参数模板”,单击<新建>,创建HTTP类型参数模板pp1,开启逐请求负载均衡。
图6-103 新建参数模板
#配置两个虚服务,分别响应HTTP请求报文和HTTPS请求报文
负载均衡>应用负载>虚服务器,新建虚服务器vs1,类型为HTTP,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为80,应用负载均衡策略lp1以及参数模板pp1,并开启虚服务单击<确定>。
图6-104 新建虚服务器vs1
单击<确定>按钮,完成操作。
负载均衡>应用负载>虚服务器,新建虚服务器vs2,类型为HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用SSL服务端策略ssl,参数模板pp1,并开启虚服务。
图6-105 新建虚服务器vs2
单击<确定>按钮,完成操作。
输入:http://61.159.4.100/login/index.html回车之后将会重定向为https://61.159.4.100/login/index.html。
图6-106 HOST端抓包如下:
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256
ciphersuite 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 ecdhe_sm2_sm4_sm3 rsa_sm1_sha rsa_sm1_sm3
ciphersuite rsa_sm4_sha rsa_sm4_sm3 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha dhe_rsa_aes_128_gcm_sha256 dhe_rsa_aes_256_gcm_sha384 tls_aes_128_gcm_sha256
ciphersuite tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm_sha256 tls_aes_128_ccm_8_sha256
version ssl3.0 disable
version tls1.0 disable
#
parameter-profile pp1 type http
rebalance per-request
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
loadbalance class lc-http type http match-any
match 1 url /login
#
loadbalance action http-https type http
redirect relocation https://%{host}:8080%p
#
loadbalance policy lp1 type http
class lc-http action http-https
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs1 type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
default server-farm sf1
sticky-sync enable global
service-down-action reset
service enable
#
virtual-server vs2 type http
port 443
virtual ip address 61.159.4.100
parameter http pp1
default server-farm sf1
ssl-server-policy ssl
sticky-sync enable global
service-down-action reset
service enable
#
将实服务器返回的重定向报文中的location内容修改成指定内容。
Host通过LB设备对四台服务器进行访问。四台服务器均可提供HTTP服务,其中一组服务器提供8080端口的HTTP服务,另外一组服务器提供80端口的HTTP服务,根据不同的用户请求,将实服务器返回的重定向报文中的location内容修改成指定内容。Host访问服务器的流量会在四台服务器之间负载分担,LB设备向用户提供的端口为80。
实服务器上配置有重定向功能:用户URL为【/test1】时重定向的地址为【服务器IP+服务器端口】、用户URL为【/test2】时重定向的地址为【虚服务IP+服务器端口】、用户URL为【/test3】时重定向的地址为【域名+服务器端口】。LB设备需要将这些重定向报文修改成【虚服务IP+虚服务端口】发给用户。
用户的请求和回应有如下对应关系:
用户请求 |
RealServer回应 |
http://VIP/test1 |
重定向location:http://RS_IP:8080/ |
http://VIP/test2 |
重定向location:http://VIP:8080/ |
http://VIP/test3 |
重定向location:http://HOST:8080/ |
http://VIP/ |
200 OK |
对于RealServer回应的重定向报文有如下转换:
原重定向报文 |
修改后的重定向报文 |
location:http://RS_IP:8080/ |
location:http://VIP/ |
location:http://VIP:8080/ |
location:http://VIP/ |
location:http://HOST:8080/ |
location:http://VIP/ |
图6-107 LB设备HTTP重定向内容改写组网图
用户访问URL中含test1时,两个RS均会回应重定向location:http://RS_IP:8080/;用户访问URL中含test2时,两个RS均会回应重定向location:http://VIP:8080/;用户访问URL中含test3时,两个RS均会回应重定向location:http://HOST:8080/。LB需要将所有重定向报文中的location修改为统一的location:http://VIP/。当用户再次以该URL进行访问时,实服务器将正常回应OK报文。
RS上如何配置重定向在此举例中忽略。
为了修改实服务器返回的重定向报文中的location,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· 配置负载均衡策略,区分含有test1、test2或者test3的URL,与不携带这些字符串的URL;利用动作来修改RS回应的重定向报文中的location。
· 配置虚服务,并在虚服务下应用策略。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
本例中采用两个RS分别回应重定向或200 OK报文,用户也可以根据实际情况在一台RS上进行设置
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-108 新建健康检测模板t1
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测选择t1的实服务组,如下图所示。
图6-109 新建实服务组
单击<确定>按钮,完成操作。
再以同样方法添加实服务组sf2,用于客户端根据重定向内容重新发起请求的分配。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口号为8080,如下图所示。
图6-110 添加实服务组成员
图6-111 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为8080。
负载均衡>应用负载>实服务组,编辑实服务组sf2,单击添加实服务组成员,参照上图新建实服务器rs11、rs12,分别配置其IPv4地址为192.168.1.11和192.168.1.12、实服务器端口为80。
图6-112 实服务组信息
匹配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-113 新建流量特征
图6-114 流量特征lc1参数
将用户URL中含test1、test2或者test3的请求报文发送给实服务组sf1。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面,新建动作名称为la1,类型为HTTP,主用实服务组为sf1。在Header重写处,新建Header重写,将实服务器回应的重定向报文中的location修改为http://VIP/。其中Header名称为location,Header值为“.*:8080(.*)”,替换成的资源串为http://61.159.4.100%1。注:【%1代表的是将(.*)内容照抄,即不改变url】
图6-115 新建动作
将用户重新按照重定向内容发出的请求报文发送给实服务组sf2。
负载均衡>应用负载>高级策略>动作>新建:动作名称为la2,类型为HTTP,主用实服务组为sf2。
图6-116 新建动作
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test1、test2或者test3)的请求报文,动作为la1(即发送给实服务组sf1,并将返回的重定向报文中的location改写为http://VIP/);其它不匹配流量特征lc1的请求报文,动作为la2(即发送给实服务组sf2)。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建应用负载均衡策略名称为lp1,类型为HTTP,默认动作为la2,新建规则流量特征为lc1、动作为la1。
图6-117 新建策略
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面
新建HTTP类型的参数模板名称为pp1,类型选择HTTP,并开启逐请求负载均衡。
图6-118 新建参数模板
配置HTTP类型的虚服务VS,端口为80
负载均衡>应用负载>虚服务器,新建HTTP类型的虚服务器vs,IP为61.159.4.100,端口号为80,引用lb策略lp1,绑定参数模板pp1,并开启虚服务,单击<确定>。
图6-119 新建虚服务器
#
nqa template http t1
expect status 200
#
parameter-profile pp1 type http
rebalance per-request
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 8080
success-criteria at-least 1
real-server rs2 port 8080
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs11 port 80
success-criteria at-least 1
real-server rs12 port 80
success-criteria at-least 1
#
loadbalance class lc1 type http match-any
match 1 url test1
match 2 url test2
match 3 url test3
#
loadbalance action la1 type http
server-farm sf1
header rewrite response name Location value .*:8080(.*) replace http://61.159.4
.100%1
#
loadbalance action la2 type http
server-farm sf2
#
loadbalance policy lp1 type http
class lc1 action la1
default-class action la2
#
real-server rs1
ip address 192.168.1.1
#
real-server rs11
ip address 192.168.1.11
#
real-server rs12
ip address 192.168.1.12
#
real-server rs2
ip address 192.168.1.2
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http pp1
lb-policy lp1
sticky-sync enable global
service enable
#
如图所示,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,通过在LB设备上配置HTTP类型的负载均衡动作,实现对HTTP的Header进行插入、重写、删除操作。
图6-120 HTTP的Header插入、重写、删除组网图
为实现HTTP的Header插入、重写、删除功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务、负载均衡策略。
· LB设备可以对HTTP的Header进行插入、重写、删除的操作
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· Host端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· Action中需要引用实服务组。
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-121 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-122 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-123 添加实服务组成员
图6-124 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-125 实服务组信息
匹配URL中带有test关键字的HTTP请求流量
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面,新建流量特征名称为lc1,类型为HTTP,选择匹配任意一条规则,新建匹配规则Match ID为1、类型为URL、URL为test。
图6-126 新建流量特征
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面,新建动作名称为la1,类型为HTTP,主用实服务器为sf1。
Header删除,新建方向为应答,Header名称为content-type。
Header插入,新建方向为双向,Header名称为header-insert-name,Header值为21
Header重写,新建方向为请求,Header名称为host,Header值为61.159.4.100,替换成的资源串为host.com。
图6-127 新建动作
单击<确定>,新建动作
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test)的请求报文,动作为la1(即发送给实服务组sf1,并将处理http头部)。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建负载均衡策略为lp1,类型为HTTP,新建规则流量特征为lc1、动作为la1。
图6-128 新建负载均衡策略
配置HTTP类型的虚服务vs1,端口为80
负载均衡>应用负载>虚服务器,新建虚服务名称为vs1,类型HTTP,IP为61.159.4.100,端口号为80,其默认实服务组为sf1,引用lb策略lp1,并开启虚服务,单击<确定>。
图6-129 新建虚服务器
查看客户端及服务器端的抓包
(1) 客户端request报文
图6-130 Header 插入的客户端request报文
(2) 服务器端request报文
图6-131 Header 插入的服务器端request报文
(3) 服务器端response报文
图6-132 Header 插入的服务器端response报文
(4) 客户端response报文
图6-133 Header 插入的客户端response报文
(1) 客户端request报文
图6-134 Header 重写的客户端request报文
(2) 服务器端request报文
图6-135 Header 重写的服务器端request报文
客户端抓包,相对于服务器端抓包,应答方向的HTTP报文中的Header内容content-type被删除。
(1) 服务器端response报文
图6-136 Header 删除的服务器端response报文
(2) 客户端response报文
图6-137 Header 删除的客户端response报文
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http match-any
match 1 url test
#
loadbalance action la1 type http
server-farm sf1
header delete response name Content-Type
header insert both name header-insert-name value 21
header rewrite request name Host value 61.159.4.100 replace host.com
#
loadbalance policy lp1 type http
class lc1 action la1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs1 type http
virtual ip address 61.159.4.100
lb-policy lp1
default server-farm sf1
sticky-sync enable global
service-down-action reset
service enable
#
HOST通过LB设备对三台服务器进行访问,两台服务器均可提供HTTP服务,可对HTTP的Cookie进行插入、重写、截取操作。
insert表示持续性方法为Cookie插入,即在服务器发送的HTTP应答报文中插入Set-Cookie字段用于持续性处理。
rewrite表示持续性方法为Cookie重写,即改写服务器发送的HTTP应答报文所携带的Set-Cookie字段用于持续性处理。
get表示持续性方法为Cookie截取,即在服务器发送的HTTP应答报文中截取Set-Cookie字段用于持续性处理。
图6-138 HTTP的Cookie插入、重写、截取组网图
为实现HTTP的Cookie插入、重写、截取功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器、虚服务、持续性组。
· LB设备可以对HTTP的Cookie进行插入、重写、截取的操作,并可通过持续性的处理,来控制业务分配给具体的服务器。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· HOST端与LB的路由配置,使之路由可达。
· Server端和LB的路由配置,使之路由可达。
· 虚服务中需要引用持续性组
· 配置完虚服务后,需要开启虚服务。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-139 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-140 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-141 添加实服务组成员
图6-142 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-143 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>按钮,新建持续性组名称为cookie_insert,类型为HTTP-Cookie,Cookie持续性方法为Cookie插入,Cookie名称为X-LB。
图6-144 新建持续性组cookie_insert
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>按钮,新建持续性组名称为cookie_rewrite,类型为HTTP-Cookie,Cookie持续性方法为Cookie重写,Cookie名称为cookie_rewrite
图6-145 新建持续性组cookie_rewrite
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击<新建>按钮,新建持续性组cookie_get,类型为HTTP-Cookie,Cookie持续性方法为Cookie截取,Cookie名称为cookie_get。
图6-146 新建持续性组cookie_get
单击<确定>按钮,完成操作。
匹配URL中带有test1或test2关键字的HTTP请求流量
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>按钮,新建流量特征名称为lc1,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test1。
图6-147 新建流量特征lc1
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>流量特征”,进入流量特征页面。
单击<新建>按钮,新建流量特征名称为lc2,类型为HTTP,新建匹配规则Match ID为1,类型为URL,URL为test2。
图6-148 新建流量特征lc2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>按钮,新建动作名称为la1,类型为HTTP,主用实服务组为sf1,持续性组为cookie_insert。
图6-149 新建动作la1
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>按钮,新建动作名称为la2,类型为HTTP,主用实服务组为sf1,持续性组为cookie_rewrite。
图6-150 新建动作la2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>按钮,新建动作名称为la3,类型为HTTP,主用实服务组为sf1,持续性组为cookie_get。
图6-151 新建动作la2
单击<确定>按钮,完成操作。
将上述流量特征和动作关联实现如下功能:
策略lp1将匹配流量特征lc1(即用户请求URL中带有test1)的请求报文,动作为la1(即发送给实服务组sf1),并将处理HTTP头部。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面,新建负载均衡策略名称为lp1,类型为HTTP,新建规则流量特征为lc1、动作为la1,新建规则流量特征为lc2、动作为la2,默认动作为la3。
图6-152 新建负载均衡策略
单击<确定>按钮,完成操作。
图6-153 负载均衡策略信息
#配置虚服务虚服务,响应HTTP请求报文
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面,新建虚服务器vs1,类型为HTTP,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为80,并开启虚服务单击<确定>。
图6-154 新建虚服务器vs1
单击<确定>按钮,完成操作。
<Sysname>display sticky virtual-server
Virtual server name: vs1
Server-farm name: sf1
Class: lc1
Sticky group name: cookie-insert
Sticky type: HTTP cookie
Sticky method: Cookie Insert
Sticky Key: 2.1.19ba92e3.0
Real server addr: 192.168.1.1:0
Cookie name: X-LB
Cookie domain:
Cookie path: /
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc1
Sticky group name: cookie-insert
Sticky type: HTTP cookie
Sticky method: Cookie Insert
Sticky Key: 2.4.8013df67.0
Real server addr: 192.168.1.2:0
Cookie name: X-LB
Cookie domain:
Cookie path: /
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc1
Sticky group name: cookie-insert
Sticky type: HTTP cookie
Sticky method: Cookie Insert
Sticky Key: 2.7.8af0cfe3.0
Real server addr: 192.168.1.3:0
Cookie name: X-LB
Cookie domain:
Cookie path: /
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc2
Sticky group name: cookie-rewrite
Sticky type: HTTP cookie
Sticky method: Cookie Rewrite
Sticky Key: 2.2.d33a6d02.0
Real server addr: 192.168.1.1:0
Cookie name: X-LB
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc2
Sticky group name: cookie-rewrite
Sticky type: HTTP cookie
Sticky method: Cookie Rewrite
Sticky Key: 2.5.6fefc028.0
Real server addr: 192.168.1.2:0
Cookie name: X-LB
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
------------------------------------------
Virtual server name: vs1
Server-farm name: sf1
Class: lc2
Sticky group name: cookie-rewrite
Sticky type: HTTP cookie
Sticky method: Cookie Rewrite
Sticky Key: 2.8.8263842.0
Real server addr: 192.168.1.3:0
Cookie name: X-LB
HttpOnly: Disabled
Secure: Disabled
Timeout: 86400
Slot 1:
Virtual server name: vs1
Server-farm name: sf1
Class: Default Class
Sticky type: HTTP cookie
Sticky method: Cookie get
Sticky Key: 0d15553d500481ff49039992d060afc9
Text: 6.6.b092d037.0
Virtual server addr: 61.159.4.100:80
Real server addr: 192.168.1.1:0
Client addr: 10.25.0.1:46452
Timeout: 86400 sec
Expiration time: 86400 sec
可在验证前先清理实服务和虚服务的统计数据,免得干扰判断,清理后,再打流量,进行验证。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面,单击<清除>。
图6-156 清除虚服务器统计
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面,单击<清除>。
图6-157 清除实服务器统计
HOST发起请求,http://61.149.4.100/test1,在HOST端抓包,相对于server端,应答方向的HTTP报文中Cookie内容被插入(被LB设备插入Cookie为Set-Cookie: X-LB=2.1.19ba92e3.0)。
(1) server端,response方向的HTTP报文抓包情况,如下:
图6-158 server端response方向的HTTP报文
(2) HOST端抓包,response方向的HTTP报文如下:
图6-159 HOST端response方向的HTTP报文
持续性验证:
第一次打流量,确认LB返回HOST端一个Cookie值(Set-Cookie: X-LB=2.1.19ba92e3.0)-rs1对应的cookie,此时查看实服务器流量负载分担情况,rs1、rs2、rs3均有统计数据。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
在第二次请求中携带插入的Cookie值(2.1.19ba92e3.0),打流验证持续性生效,所有的请求分配给了同一个实服务rs1。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
HOST发起请求http://61.149.4.100/test2, HOST端抓包,相对于server端,应答方向的HTTP报文中Cookie内容被重写(由2.1.19ba92e3.0,被LB设备重写为2.2.d33a6d02.0)。
(1) server端,response方向的HTTP报文抓包情况,如下:
图6-160 server端response方向的HTTP报文
(2) HOST端,response方向的HTTP报文抓包情况,如下:
图6-161 HOST端response方向的HTTP报文
持续性验证:第一次打流量,server端携带Cookie值(Set-Cookie: X-LB=2.1.19ba92e3.0)被设备改写cookie值为2.2.d33a6d02.0即rs1对应的,查看实服务器流量负载分担情况,rs1、rs2、rs3均有统计数据。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
在第二次请求中携带改写后的Cookie值(2.2.d33a6d02.0),打流验证持续性生效,所有的请求分配给了同一个实服务rs1。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
HOST发起请求http://61.149.4.100/test3, HOST端和server端抓包,携带cookie字段(cookie-get=6.6.b092d037.0)报文中可以看出Cookie没有变化。
图6-162 server端应答方向的HTTP报文
图6-163 HOST端应答方向的HTTP报文
持续性验证:
第一次打流量,确认server端携带Cookie值(Set-Cookie: cookie-get=6.6.b092d037.0)-rs1对应的cookie,此时查看实服务器流量负载分担情况,rs1、rs2、rs3均有统计数据。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
在第二次请求中携带插入的Cookie值(6.6.b092d037.0),打流验证持续性生效,所有的请求分配给了同一个实服务rs1。
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面进行查看,此处不再赘述。
#
nqa template http t1
expect status 200
#
sticky-group cookie_get type http-cookie
cookie get name cookie-get
check all-packet
#
sticky-group cookie_insert type http-cookie
cookie insert
check all-packet
#
sticky-group cookie_rewrite type http-cookie
cookie rewrite
check all-packet
#
server-farm sf1
predictor hash address source
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance class lc1 type http match-any
match 1 url test1
#
loadbalance class lc2 type http match-any
match 1 url test2
#
loadbalance action la1 type http
server-farm sf1 sticky cookie_insert
#
loadbalance action la2 type http
server-farm sf1 sticky cookie_rewrite
#
loadbalance action la3 type http
server-farm sf1 sticky cookie_get
#
loadbalance policy lp1 type http
class lc1 action la1
class lc2 action la2
default-class action la3
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs1 type http
virtual ip address 61.159.4.100
lb-policy lp1
sticky-sync enable global
service-down-action reset
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图6-164 SSL卸载组网图
为了实现SSL卸载功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备,并在LB设备上新建SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS访问server端HTTP服务器,可成功访问。
本举例是在L5000的Feature D071SP版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 在LB设备上配置的实服务器地址要与相应的实服务器地址保持一致。
· 配置完虚服务后,需要开启虚服务。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图6-165 新建PKI域
单击<确定>,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图6-166 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-167 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图6-168 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-169 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,如下图所示。
图6-170 新建SSL服务器端策略
在WEB上配置SSL协商时SSL服务器端发送完整的证书链的功能,单击<确定>,完成操作。
单击<确定>,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-171 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-172 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图6-173 添加实服务组成员
图6-174 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图6-175 实服务组信息
新建HTTPS类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf1,端口号为443,引用ssl策略ssl。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl,并开启虚服务,如下图所示。
图6-176 新建虚服务器
单击<确定>,完成操作。
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256
ciphersuite 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 ecdhe_sm2_sm4_sm3 rsa_sm1_sha rsa_sm1_sm3
ciphersuite rsa_sm4_sha rsa_sm4_sm3 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha dhe_rsa_aes_128_gcm_sha256 dhe_rsa_aes_256_gcm_sha384 tls_aes_128_gcm_sha256
ciphersuite tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm_sha256 tls_aes_128_ccm_8_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo ciphersuite server-preferred 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
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl
sticky-sync enable global
service-down-action reset
service enable
#
当前网络安全越来越受到重视,现在网络也普遍采用了HTTPS协议。SSL客户端证书认证是SSL服务器对客户端的证书进行校验,通过SSL客户端证书认证,服务器确定所接收到的访问是否来自可信的客户端。
Host发起HTTPS访问,通过LB设备解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。负载均衡设备开启验证SSL客户端功能,并在客户端请求报文中插入证书的常用字段。
图6-177 SSL客户端证书透传组网图
为了实现SSL客户端证书透传功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备,并在LB设备上新建SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS访问Server端HTTP服务器,可成功访问。
· 配置负载均衡动作,插入证书的常用字段。
· 插入证书的常用字段内容为1~255个字符的字符串,也可以使用以下特定含义的字符串:%{x509v}:证书的版本;%{x509snum}:证书的序列号;%{x509sigalgo}:证书的签名算法;%{x509issuer}:证书的签发者。
本举例是在L5000的Feature D071SP版本上进行配置和验证的。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· SSL服务器端策略开启验证客户端功能,客户端需要导入正确的CA证书与本地证书。
· 虚服务器端口号需要配置为443,实服务器端口号配置为80。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图6-178 新建PKI域
单击<确定>,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图6-179 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-180 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图6-181 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-182 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca的SSL服务器端策略,开启验证客户端功能,如下图所示。
图6-183 新建SSL服务器端策略
在WEB上配置SSL协商时SSL服务器端发送完整的证书链的功能,单击<确定>,完成操作。
单击<确定>,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-184 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-185 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图6-186 添加实服务组成员
图6-187 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图6-188 实服务组信息
在导航栏中选择“负载均衡>应用负载>高级策略>动作”,进入动作页面。
单击<新建>,添加HTTP类型的负载均衡动作,主用实服务组为sf1,新建Header插入,插入方向为请求,插入字段http-certification-insert,值为%{x509v},表示插入证书的版本,如下图所示。
图6-189 新建负载均衡动作la1
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>负载均衡策略”,进入负载均衡策略页面。
单击<新建>,添加HTTP类型的负载均衡策略名称为lp,默认动作la1,如下图所示。
图6-190 新建负载均衡策略
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,端口号为443,引用SSL服务端策略ssl和负载均衡策略lp,并开启虚服务,如下图所示。
图6-191 新建虚服务器
单击<确定>,完成操作。
图6-192 Host端抓包信息
图6-193 Host端抓包信息
图6-194 服务器端抓包信息
#
nqa template http t1
expect status 200
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256
ciphersuite 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 ecdhe_sm2_sm4_sm3 rsa_sm1_sha rsa_sm1_sm3
ciphersuite rsa_sm4_sha rsa_sm4_sm3 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha384 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_cbc_sha ecdhe_ecdsa_aes_256_cbc_sha dhe_rsa_aes_128_gcm_sha256 dhe_rsa_aes_256_gcm_sha384 tls_aes_128_gcm_sha256
ciphersuite tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm_sha256 tls_aes_128_ccm_8_sha256
client-verify enable
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo ciphersuite server-preferred 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
#
loadbalance action la1 type http
server-farm sf1
header insert request name http-certification-insert value %{x509v}
#
loadbalance policy lp type http
default-class action la1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
lb-policy lp
ssl-server-policy ssl
sticky-sync enable global
service-down-action reset
service enable
#
SSL双向代理是指LB设备为用户和内网的HTTPS服务器提供SSL双向认证服务,需要服务端与Host端提供身份认证,只能是服务端允许的客户去访问。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTPS服务,Host访问服务器的流量会在三台服务器之间负载分担。
图6-195 SSL双向代理组网图
为了实现SSL双向代理功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备。
· 在LB设备上新建SSL服务端策略和SSL客户端策略。
本举例是在L1070的Feature 1160P16版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· 配置完虚服务后,需要开启虚服务。
· 虚服务器端口号需要配置为443,实服务器端口号配置为443。
· 服务器上导入与设备相同的本地证书。
· SSL服务器端策略和SSL客户端策略无法和虚服务器进行联动,当修改SSL服务器端策略或SSL客户端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
· 新建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca,不使能检查证书是否已经被CA吊销功能,如下图所示。
图6-196 新建PKI域
单击<确定>,完成操作。
选中新建的PKI域ca,单击<导入证书>按钮,如下图所示。
图6-197 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-198 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图6-199 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-200 导入本地证书
单击<确定>,完成操作。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为ssl_server,PKI域选择ca的SSL服务器端策略,如下图所示。
图6-201 新建SSL服务器端策略
单击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[Sysname]ssl server-policy ssl_server
[Sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“对象>SSL>客户端策略”,进入SSL客户端策略页面。
单击<新建>按钮,添加策略名称为ssl_client, PKI域选择ca的SSL客户端策略,如下图所示。
图6-202 新建SSL客户端策略
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTPS的健康检测模板,SSL客户端策略选择ssl_client,预期接收状态码为200,如下图所示。
图6-203 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-204 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为443,,如下图所示。
图6-205 添加实服务组成员
图6-206 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为443。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为443。
图6-207 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用SSL服务端策略ssl_server,SSL客户端策略ssl_client,并开启虚服务,如下图所示。
图6-208 新建虚服务器
单击<确定>,完成操作。
图6-209 Host端抓包信息
图6-210 服务器端抓包信息
#
nqa template https t1
expect status 200
ssl-client-policy ssl_client
#
pki domain ca
public-key rsa general name ca length 2048
undo crl check enable
#
ssl server-policy ssl_server
pki-domain ca
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_
256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe
_rsa_aes_128_gcm_sha256
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256 ecdhe_ecdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha2
56 ecdhe_ecdsa_aes_256_gcm_sha384 tls_aes_128_gcm_sha256 tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm_sha256
tls_aes_128_ccm_8_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
#
ssl client-policy ssl_client
pki-domain ca
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 443
success-criteria at-least 1
real-server rs2 port 443
success-criteria at-least 1
real-server rs3 port 443
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl_server
ssl-client-policy ssl_client
sticky-sync enable global
service enable
#
在SSL卸载的使用场景下,SSL证书之前普遍使用的是RSA加密算法的证书,目前ECC 证书具有卓越的加密性能正在替代RSA,客户需要陆续将ECC证书替换为RSA,但是客户的实际网络部署中,会存在有的C/S模式下的Host 端不支持ECC,或者是Host 端存在RSA证书双向认证的需求,要求过渡时期内已有业务不能间断,因此需要设备支持同时部署 RSA 和 ECC 证书,Host 端使用 RSA 或者 ECC 加密算法都可以与设备同一个虚服务器建立 SSL 连接传输加密数据,通过设备后解密为明文HTTP报文发送到后端真实服务器进行处理。
。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图6-211 SSL服务器端策略加载双证书组网图
为了实现SSL服务器端策略加载双证书功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书(RSA证书及ECC证书)导入到LB设备,LB设备上创建SSL服务器端策略,引用两个证书对应的PKI域。
· 配置实服务组、实服务器和虚服务。
· 客户端HTTPS分别以RSA加密算法和ECC加密算法访问虚服务,均可成功访问。
本举例是在L1070的Feature 1160P16版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
· 新建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建>PKI域,添加域名称为ca_rsa,不使能检查证书是否已经被CA吊销功能,如下图所示。
图6-212 新建PKI域
单击<确定>,完成操作。
同理再添加一个PKI域,其名称为ca_ecc,步骤同上所示。
选中新建的PKI域ca_rsa,单击<导入证书>按钮,如下图所示。
图6-213 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-214 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图6-215 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,导入RSA证书,输入证书口令,如下图所示。
图6-216 导入本地证书
单击<确定>,完成操作。
同理选中新建的PKI域ca_ecc,分别导入CA证书和本地证书(ECC证书),步骤如上所示。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为SSL,PKI域选择ca_rsa的SSL服务器端策略,再点击PKI域一栏末尾的加号键,出现第二行PKI域后选择ca_ecc,如下图所示。
图6-217 新建SSL服务器端策略
图6-218 选择第二个PKI域
单击<确定>,完成操作。
由于在WEB上不支持配置SSL协商时SSL服务器端发送完整的证书链的功能,需要手工在命令行下配置开启该功能。
[Sysname]ssl server-policy ssl
[Sysname-ssl-server-policy-ssl]certificate-chain-sending enable
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-219 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-220 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,如下图所示。
图6-221 添加实服务组成员
图6-222 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“策略>负载均衡>服务器负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“策略>负载均衡>服务器负载均衡>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图6-223 实服务组信息
在导航栏中选择“策略>负载均衡>服务器负载均衡>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl,并开启虚服务,如下图所示。
图6-224 新建虚服务器
单击<确定>,完成操作。
图6-225 Host端抓包信息
图6-226 Host端抓包信息
#
nqa template http t1
expect status 200
#
pki domain ca_ecc
public-key ecdsa name ca-ecc secp256r1
undo crl check enable
#
pki domain ca_rsa
public-key rsa general name ca-rsa length 2048
undo crl check enable
#
ssl server-policy ssl
pki-domain ca_rsa ca_ecc
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_
256_cbc_sha256 dhe_rsa_aes_128_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_aes_256_cbc_sha384 ecdhe
_rsa_aes_128_gcm_sha256
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256 ecdhe_ecdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha2
56 ecdhe_ecdsa_aes_256_gcm_sha384 tls_aes_128_gcm_sha256 tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm_sha256
tls_aes_128_ccm_8_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo version gm-tls1.1 disable
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl
sticky-sync enable global
service enable
#
SSL卸载是指LB设备为内网的Web服务器提供SSL加解密服务,对外提供安全(SSL加密)访问Web服务器的功能。内网Web服务器只需处理业务,无须耗费CPU进行SSL加解密运算,从而提高服务器的处理能力。通过支持SSL的SNI扩展字段,为用户在一个服务器使用不同域名时提供返回不同证书的功能。将域名插入到SSL握手报文中,使服务器能够切换到正确的域名并给客户端返回相应的证书。
Host发起HTTPS访问,通过LB设备加解密,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。
图6-227 SSL根据SNI信息选取证书组网图
为了实现根据SNI信息选取证书功能,需要在LB设备上完成如下配置:
· 将CA证书和本地证书导入到LB设备,LB设备上创建默认SSL服务器端策略,并配置匹配SNI信息的SSL服务器端策略。
· 配置实服务组、实服务器和虚服务。
· Host端使用携带不同SNI信息的HTTPS流量访问虚服务,可成功访问,并返回对应证书。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 要先申请正确的证书,再将申请的证书通过FTP或TFTP上传到LB设备上。分别为每个SNI对应的SSL服务器端策略导入相应的证书。
· 在相同视图下,不允许配置多个相同的SSL服务器端策略。
· 在相同视图下,不允许配置SNI相同的多个SSL服务器端策略。
· 当配置了默认的SSL服务器端策略,当访问的域名没有匹配上SNI信息后,会使用该默认的SSL服务器端策略。
· SSL服务器端策略无法和虚服务器进行联动,当修改SSL服务器端策略后,需对虚服务器重新进行去使能和使能操作才可以使配置生效。
· 新建SSL服务器端策略后,需要手工在命令行下配置SSL协商时SSL服务器端发送完整的证书链功能。
· 新建SSL服务器端策略后,需要手工在命令行下配置SNI及其对应的SSL服务器端策略。
以下验证过程均在LB设备上进行。
在导航栏中选择“对象>PKI>证书”,进入证书页面。
单击<新建PKI域>,添加域名称为ca_default,不使能检查证书是否已经被CA吊销功能,如下图所示。
图6-228 新建PKI域
单击<确定>,完成操作。
同理再添加两个PKI域,其名称为ca_aaa和ca_bbb,步骤同上所示。
选中新建的PKI域ca_default,单击<导入证书>按钮,如下图所示。
图6-229 导入证书
证书类型选择CA证书,单击<选择文件>按钮,选择CA证书文件,如下图所示。
图6-230 导入CA证书
点击<确定>后点击<是>确认指纹信息。
图6-231 证书指纹信息
证书类型选择本地证书,单击<选择文件>按钮,选择本地证书文件,输入证书口令,如下图所示。
图6-232 导入本地证书
单击<确定>,完成操作。
同理选中新建的PKI域ca_aaa和ca_bbb,分别导入CA证书和本地证书,步骤如上所示。
在导航栏中选择“对象>SSL>服务器端策略”,进入服务器端策略页面。
单击<新建>按钮,添加策略名称为ssl_default,PKI域选择ca_default的SSL服务器端策略,并开启发送完整的证书链的功能,如下图所示。
图6-233 新建SSL服务器端策略
单击<确定>,完成操作。
同理新建SSL服务器策略ssl_aaa、ssl_bbb,分别引用PKI域ca_aaa和ca_bbb,步骤如上所示。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-234 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-235 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,实服务器端口为80,,如下图所示。
图6-236 添加实服务组成员
图6-237 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2、rs3与新建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs2,配置其IPv4地址为192.168.1.2、实服务器端口为80。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1添加成员,参照上图新建实服务器rs3,配置其IPv4地址为192.168.1.3、实服务器端口为80。
图6-238 实服务组信息
新建HTTPS类型的虚服务器vs,配置其VSIP为61.159.4.100,指定其默认实服务组为sf1,端口号为443,引用ssl策略ssl。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择HTTPS,配置虚服务IP为61.159.4.100,其默认实服务组为sf1,端口号为443,引用ssl服务端策略ssl_default,配置ssl服务器扩展策略(引用ssl服务器端策略ssl_aaa并且添加服务器指示名称为 www.example.a.com;引用ssl服务器端策略ssl_bbb并且添加服务器指示名称为 www.example.b.com),并开启虚服务,如下图所示。
图6-239 新建虚服务器
单击<确定>,完成操作。
新建服务器端扩展策略ssl_bbb并且添加服务器指示名称为 www.example.b.com与上述步骤相同:
图6-240 新建虚服务器
两个服务器端扩展策略均添加完成后,单击<确定>,完成操作。
图6-241 Host端抓包信息(Client Hello)
图6-242 Host端抓包信息(Server Hello)
图6-243 Host端抓包信息(subjectPublicKey)
图6-244 设备公钥
图6-245 Host端抓包信息(Client Hello)
图6-246 Host端抓包信息(Server Hello)
图6-247 Host端抓包信息(subjectPublicKey)
图6-248 设备公钥
图6-249 Host端抓包信息(Client Hello)
图6-250 Host端抓包信息(Server Hello)
图6-251 Host端抓包信息(subjectPublicKey)
图6-252 设备公钥
#
nqa template http t1
expect status 200
#
pki domain ca_aaa
public-key rsa general name ca-aaa
undo crl check enable
#
pki domain ca_bbb
public-key rsa general name ca-bbb length 2048
undo crl check enable
#
pki domain ca_default
public-key rsa general name ca-default
undo crl check enable
#
ssl server-policy ssl_aaa
pki-domain ca_aaa
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha
rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_1
28_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_
aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256 ecdhe_e
cdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha256 ecdhe_ecdsa_aes_256_gcm_s
ha384 ecc_sm2_sm1_sm3 ecc_sm2_sm4_sm3 ecdhe_sm2_sm1_sm3 ecdhe_sm2_sm4_sm3 rsa_sm
1_sha rsa_sm1_sm3
ciphersuite rsa_sm4_sha rsa_sm4_sm3 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha3
84 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_cbc_s
ha ecdhe_ecdsa_aes_256_cbc_sha dhe_rsa_aes_128_gcm_sha256 dhe_rsa_aes_256_gcm_sh
a384 tls_aes_128_gcm_sha256
ciphersuite tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm
_sha256 tls_aes_128_ccm_8_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo ciphersuite server-preferred enable
#
#
ssl server-policy ssl_bbb
pki-domain ca_bbb
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha
rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_1
28_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_
aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256 ecdhe_e
cdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha256 ecdhe_ecdsa_aes_256_gcm_s
ha384 ecc_sm2_sm1_sm3 ecc_sm2_sm4_sm3 ecdhe_sm2_sm1_sm3 ecdhe_sm2_sm4_sm3 rsa_sm
1_sha rsa_sm1_sm3
ciphersuite rsa_sm4_sha rsa_sm4_sm3 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha3
84 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_cbc_s
ha ecdhe_ecdsa_aes_256_cbc_sha dhe_rsa_aes_128_gcm_sha256 dhe_rsa_aes_256_gcm_sh
a384 tls_aes_128_gcm_sha256
ciphersuite tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm
_sha256 tls_aes_128_ccm_8_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo ciphersuite server-preferred enable
#
ssl server-policy ssl_default
pki-domain ca_aaa
ciphersuite dhe_rsa_aes_256_cbc_sha rsa_aes_256_cbc_sha dhe_rsa_aes_128_cbc_sha
rsa_aes_128_cbc_sha rsa_aes_128_cbc_sha256 rsa_aes_256_cbc_sha256 dhe_rsa_aes_1
28_cbc_sha256 dhe_rsa_aes_256_cbc_sha256 ecdhe_rsa_aes_128_cbc_sha256 ecdhe_rsa_
aes_256_cbc_sha384 ecdhe_rsa_aes_128_gcm_sha256
ciphersuite ecdhe_rsa_aes_256_gcm_sha384 ecdhe_ecdsa_aes_128_cbc_sha256 ecdhe_e
cdsa_aes_256_cbc_sha384 ecdhe_ecdsa_aes_128_gcm_sha256 ecdhe_ecdsa_aes_256_gcm_s
ha384 ecc_sm2_sm1_sm3 ecc_sm2_sm4_sm3 ecdhe_sm2_sm1_sm3 ecdhe_sm2_sm4_sm3 rsa_sm
1_sha rsa_sm1_sm3
ciphersuite rsa_sm4_sha rsa_sm4_sm3 rsa_aes_128_gcm_sha256 rsa_aes_256_gcm_sha3
84 ecdhe_rsa_aes_128_cbc_sha ecdhe_rsa_aes_256_cbc_sha ecdhe_ecdsa_aes_128_cbc_s
ha ecdhe_ecdsa_aes_256_cbc_sha dhe_rsa_aes_128_gcm_sha256 dhe_rsa_aes_256_gcm_sh
a384 tls_aes_128_gcm_sha256
ciphersuite tls_aes_256_gcm_sha384 tls_chacha20_poly1305_sha256 tls_aes_128_ccm
_sha256 tls_aes_128_ccm_8_sha256
certificate-chain-sending enable
version ssl3.0 disable
version tls1.0 disable
undo ciphersuite server-preferred 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
port 443
virtual ip address 61.159.4.100
default server-farm sf1
ssl-server-policy ssl_default
ssl-server-policy ssl_aaa sni www.example.a.com
ssl-server-policy ssl_bbb sni www.example.b.com
sticky-sync enable global
service-down-action reset
service enable
#
连接复用的功能通过使用连接池缓存技术,对于暂时没有数据传输的服务器一侧连接放入缓存池中,允许公用。这样可以将前端大量的客户HTTP请求复用到后端与服务器建立的少量的TCP长连接上,大大减小服务器的性能负载,减小与服务器之间新建TCP连接所带来的延时,并最大限度减少后端服务器的并发连接数,降低服务器资源的占用。
Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,开启连接复用功能,在负载均衡设备与服务器之间建立一条长时间不会老化的连接,使多个客户端复用同一条与服务器的TCP连接。
图6-253 负载均衡连接复用配置组网图
为了实现HTTP连接复用功能,需要在LB设备上完成如下配置:
· 配置HTTP类型的参数模板和OneConnect类型的参数模板,并在HTTP类型的虚服务下引用这2个参数模板,使得HTTP连接复用功能生效。
· 为探测HTTP服务器基本功能是否正常,需配置HTTP类型健康检测模板。
· 为保证HTTP业务基本运行,需配置实服务组,添加实服务器成员,并引用HTTP类型健康检测模板,HTTP类型虚服务器中引用实服务组。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 实服务组可引用源地址池。
· 在LB设备上配置的实服务器地址要与相应的真实服务器地址保持一致。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为http,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-254 创建健康检测模板http
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建HTTP类型的参数模板,名称为http,类型选择HTTP,并开启连接复用功能。如下图所示。
图6-255 新建HTTP类型参数模板http
单击<确定>按钮,完成操作。
单击<新建>,新建OneConnect类型的参数模板,名称为oneconnect,类型选择OneConnect,空闲超时时间为3秒。如下图所示。
图6-256 新建OneConnect类型参数模板oneconnect
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat,拆分方式为基于地址拆分,添加地址范围列表,起始IP地址填入192.168.1.210,结束IP地址填入192.168.1.220,发送免费ARP或ND报文的接口选RAGG1.20,如下图所示。
图6-257 新建源地址池snat
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf,调度算法为加权轮转,健康检测选择http,源地址转换方式选择源地址池,源地址池名称选择snat,如下图所示。
图6-258 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf,单击成员列表的添加按钮,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-259 添加实服务组成员
图6-260 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf,单击成员列表的添加按钮,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-261 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务页面。
单击<新建>, 新建虚服务器名称为vs,类型为HTTP,配置虚服务IP为61.159.4.100,指定其实服务组为sf,引用HTTP类型的参数模板http和OneConnect类型的参数模板oneconnect。如下图所示。
图6-262 新建虚服务器
单击<确定>,完成操作。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面查看虚服务总的新建连接速率。
图6-263 虚服务器统计
在导航栏中选择“监控>应用负载>实服务组>实时统计>”,单击右侧<详细>,进入实服务组成员统计页面查看实服务组成员总的新建连接速率。
图6-264 实服务组成员统计
查看服务端抓包,一个tcp连接中只有1个请求。
图6-265 服务端抓包
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面进行查看虚服务总的新建连接速率。
图6-266 虚服务器统计
在导航栏中选择“监控>应用负载>实服务组>实时统计>”,单击右侧<详细>,进入实服务组成员统计页面查看实服务组成员总的新建连接速率。
图6-267 实服务组成员统计
查看服务端抓包,一个tcp连接中有多个请求。
图6-268 服务端抓包
#
nqa template http http
expect status 200
reaction trigger probe-pass 1
#
parameter-profile http type http
server-connection reuse
#
parameter-profile oneconnect type oneconnect
idle-time 3
#
loadbalance snat-pool snat
ip range start 192.168.1.210 end 192.168.1.220
arp-nd interface Route-Aggregation1.20
#
server-farm sf
snat-pool snat
probe http
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
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 http
parameter oneconnect oneconnect
default server-farm sf
sticky-sync enable global
service-down-action reset
service enable
#
HTTP压缩功能可以用于减少网络传输中的数据量,从而提高传输速度和降低带宽消耗。比如对于需要传输大量图片或媒体文件的网站,使用HTTP压缩功能可以有效减少传输的数据量,减少带宽的消耗,并提高用户的访问体验。
LB设备使用HTTP压缩功能时,是LB对server端回应报文进行压缩,且HOST端需携带头部Accept-Encoding。如下图所示,Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务。服务器端设置回复大报文,LB设备上配置带压缩参数的参数模板,服务器端报文经过LB设备返回给HOST,大报文被压缩。
图6-269 HTTP压缩组网图
为实现HTTP压缩功能,需要在LB设备上完成如下配置:
· 配置HTTP压缩类型的参数模板,并在HTTP类型的虚服务下引用这个参数模板,使得HTTP压缩功能生效。
· 为探测HTTP服务器基本功能是否正常,需配置HTTP类型健康检测模板。
· 为保证HTTP业务基本运行,需配置实服务组,添加实服务器成员,并引用HTTP类型健康检测模板,HTTP类型虚服务器中引用实服务组。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 确保Host到LB设备的虚服务路由可达。
· 确保Host访问头部携带Accept-Encoding: gzip,deflate字段。
· 在LB设备上配置的实服务器地址要与相应的真实服务器地址保持一致。
以下验证过程在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为http,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-270 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf,调度算法为加权轮转,健康性检测选择http的实服务组,如下图所示。
图6-271 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf,单击成员列表的添加按钮,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-272 添加实服务组成员
图6-273 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf,成员列表的添加按钮,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-274 实服务组信息
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为compre,类型选择HTTP-Compression,压缩级别为9,首选方法为deflate,服务器端报文最小内容长度大于1024字节。如下图所示。
图6-275 新建参数模板信息
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务页面。
单击<新建>, 新建虚服务器名称为vs,类型为HTTP,配置虚服务IP为61.159.4.100,指定其实服务组为sf,引用HTTP压缩类型的参数模板compre。如下所示。
图6-276 新建虚服务器
单击<确定>,完成操作。
图6-277 HOST端抓包
图6-278 服务端侧抓包
#
nqa template http http
expect status 200
reaction trigger probe-pass 1
#
parameter-profile compre type http-compression
compression level 9
prefer-method deflate
#
server-farm sf
probe http
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
virtual ip address 61.159.4.100
parameter http-compression compre
default server-farm sf
sticky-sync enable global
service-down-action reset
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,信息量呈几何爆发式增长,信息的丰富性也带来了信息的冗余,网路间的损耗越发的突出,用户对于网络服务有了的更高要求,面对服务质量良莠不齐的网络服务端和用户对高速稳定网络的需求,可以使用网络缓存解决服务器与客户端间的这种访问方式。
在服务器与客户端间搭建缓存设备,将用户访问或下载的热点内容中大于1K的,在存储设备中保存一个副本,当内容再次被用户访问或下载时,不必连接到驻留(源)网站,而是由Cache中保留的副本直接提供,以达到极速访问或下载,降低网间带宽的依赖目的。
图6-279 web缓存应用负载均衡组网图
为实现对经过LB的业务流量做缓存,需要在LB设备上完成如下配置:
· 配置缓存策略。
· 虚服务器引用缓存策略。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 配置缓存策略。
· 请求文件大于1K才能缓存。
在导航栏中选择“负载均衡>应用负载>高级策略>缓存策略”,单击<新建>,新建HTTP类型的缓存策略名称为cache,进行如下配置:
图6-280 新建缓存策略
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>按钮,新建健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图6-281 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-282 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-283 添加实服务组成员
图6-284 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-285 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为cache,类型选择HTTP,61.159.4.100,指定实服务组sf1,开启虚服务功能,缓存策略为cache,如下图所示。
图6-286 新建虚服务器
单击<确定>按钮,完成操作。
客户端发起请求http://61.159.4.100/download,访问成功
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
图6-287 查看虚服务器的统计数据
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面。
图6-288 查看实服务器的统计数据
在导航栏中选择“负载均衡>应用负载>高级策略>缓存策略”,查看缓存策略匹配请求次数。
图6-289 查看缓存策略的统计数据
客户端发起请求http://61.159.4.100/download,访问成功。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,进入虚服务器统计页面。
图6-290 查看虚服务器的统计数据
在导航栏中选择“监控>应用负载>实服务器>实时统计”,进入实服务器统计页面。
图6-291 查看实服务器的统计数据
在导航栏中选择“负载均衡>应用负载>高级策略>缓存策略”,查看缓存策略匹配请求次数。
图6-292 查看缓存策略的统计数据
#
nqa template http t1
expect status 200
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 80
success-criteria at-least 1
real-server rs2 port 80
success-criteria at-least 1
real-server rs3 port 80
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server cache type http
virtual ip address 61.159.4.100
default server-farm sf1
sticky-sync enable global
lb-cache-policy cache
service-down-action reset
service enable
#
cache-policy cache type http
match 1 uri /download
#
WebSocket是一种客户端与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。具体来说,客户端通过HTTP请求与WebSocket服务端协商升级协议。协议升级完成后,后续的数据交换则遵照WebSocket的协议。
Host通过LB设备对3台服务器进行访问,三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担。首先,客户端发起协议升级请求,采用的是标准的HTTP报文格式,且只支持GET方法,协议版本为1.1。接下来,服务器端响应协议升级,返回状态码101表示协议切换。
图6-293 websocket组网图
· 与其他普通七层负载均衡基本功能一样。
· 本例使用客户端websocket. html小程序和服务器端server.py小软件进行模拟测试,实际测试结果请以客户的真实业务为主。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
服务器端需要支持Python程序运行,确保可以正常调用server.py程序。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为TCP的健康检测模板,其目的端口号为8000,如下图所示。
图6-294 新建健康检测模板
单击<确定>按钮,完成操作。
新建实服务组sf1,采用的调度算法为源IP地址哈希算法。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图6-295 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,端口号:8000,如下图所示。
图6-296 添加实服务组成员
图6-297 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,端口号均为8000。
图6-298 实服务组信息
配置HTTP类型的虚服务vs,端口为8000
负载均衡>应用负载>虚服务器,新建虚服务名称为vs,类型HTTP,IP为61.159.4.100,端口号为8000,引用实服务组sf1,并开启虚服务,单击<确定>。
图6-299 新建虚服务器
图6-300 运行server.py文件
打开Host端websocket.html文件,与虚服务地址:61.159.4.100,端口号:8000建立连接,并发送websocket信息,可以看到连接建立成功,信息发送成功。
图6-301 发送websocket信息
图6-302 Host端抓包信息
图6-303 服务器端抓包信息
#
nqa template tcp t1
destination port 8000
#
server-farm sf1
predictor hash address source
probe t1
success-criteria at-least 1
real-server rs1 port 8000
success-criteria at-least 1
real-server rs2 port 8000
success-criteria at-least 1
real-server rs3 port 8000
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type http
port 8000
virtual ip address 61.159.4.100
default server-farm sf1
sticky-sync enable global
service enable
#
如图所示,LB设备后接多台RADIUS服务器组成的RADIUS服务器群。Host通过NAS向现有3台RADIUS服务器为外网用户提供RADIUS服务,3台RADIUS服务器地址为192.168.1.1~192.168.1.3。
用户通过NAS设备认证计费时,负载均衡设备会将RADIUS认证计费的请求报文转发到不同的RADIUS服务器上,从而使RADIUS请求报文均匀地分布在不同的RADIUS服务器上。
在NAS设备的数目较少场景下,使用 UDP强制负载均衡,RADIUS server负担更均匀;使用user-name的RADIUS持续性,保证同一用户名的认证报文发送至同一台认证服务器上;使用ICMP与UDP端口检测组合,做到业务的健康检查,保证业务的可靠性。
图6-304 LB支持RADIUS配置组网图
通过配置七层RADIUS类型虚服务实现该功能。
· 配置路由,保证RADIUS Server与NAS Clinet、LB device之间路由可达。
· 配置UDP强制负载均衡,保证业务负载分担
· 配置ICMP类型健康检测,配置UDP类型1812和1813端口的健康检测,保证业务可靠性
· 配置user-name持续性组,保证同一用户名的认证报文发送至同一台认证服务器上
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
该案例RADIUS持续性老化时间配置为3600s,推荐配置值需要根据现场使用场景结合具体业务调节
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为ICMP的健康检测模板,新建健康模板名称为t2和t3,类型为UDP的健康检测模板,配置raw格式的数据填充,配置端口探测功能,如下图所示。
图6-305 新建健康检测模板
单击<确定>按钮,完成操作。
图6-306 新建健康检测模板
单击<确定>按钮,完成操作。
图6-307 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击新建,新建实服务组名称为sf,调度算法为加权轮转,,并绑定健康检测t1、t2、t3,且需验证所有健康检测,如下图所示。
图6-308 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击新建,新建实服务组名称为sf,调度算法为加权轮转,,并绑定健康检测t1、t2、t3,且需验证所有健康检测,如下图所示。
图6-309 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组,进入实服务组页面。
编辑实服务组sf,添加成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-310 添加实服务组成员
图6-311 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同:
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,添加成员列表,参照上图步骤创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-312 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,进入持续性组页面。
单击新建,新建持续组名称为radius,类型为RADIUS,持续性方法:user-name,超时时间为3600s。
图6-313 新建持续性组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击新建,新建虚服务器名称为vs,类型选择RADIUS,VSIP地址为61.159.4.100,绑定实服务组sf和持续性组radius,开启UDP强制负载均衡,开启虚服务功能,如下图所示。
图6-314 新建虚服务器
单击<确定>按钮,完成操作。
用户上线,通过NAS Client向LB设备发送RADIUS认证请求计费报文,报文经由LB设备做负载均衡处理分发给后端的RADIUS服务器处理,同时生成持续性表项;
<Sysname>display sticky virtual-server
Slot 1:
Virtual server name: vs
Server-farm name: sf
Sticky type: RADIUS
Sticky method: Attribute ID
Sticky Key: 0192023a7bbd73250516f069df18b500
Text: admin123
Virtual server addr: 61.159.4.100:1812
Real server addr: 192.168.1.1:0
Client addr: 10.0.0.2:10945
Timeout: 3600 sec
Expiration time: 3600 sec
Matching sessions: 0
图6-315 实服务统计信息
#
nqa template icmp t1
reaction trigger probe-pass 1
#
nqa template udp t2
data-fill "default send string" raw
destination port 1812
port-detect enable
reaction trigger probe-pass 1
#
nqa template udp t3
data-fill "default send string" raw
destination port 1813
port-detect enable
reaction trigger probe-pass 1
#
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 t2
probe t3
probe t1
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-316 LB支持SIP组网图
为了实现LB支持SIP功能,需要在LB设备上完成如下配置:
· 为使同一CALL-ID的SIP请求发送至同一台服务器上,需配置SIP类型持续性组
· 为探测SIP服务器基本功能是否正常,需配置SIP类型健康检测模板
· 为保证SIP业务基本运行,需配置实服务组,添加实服务器成员,并引用SIP类型健康检测模板,需配置SIP-UDP(或SIP-TCP)类型虚服务器,并引用实服务组和SIP类型持续性组
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 健康检测使用sip类型健康检测模板
· 本典配以SIP-UDP类型虚服务器为例,SIP-TCP类型虚服务可类似参考进行配置验证
· SIP-UDP类型虚服务建议开启UDP强制负载均衡功能
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测配置页面。
单击<新建>,添加健康检测名称为sip,传输协议为UDP,如下图所示。
图6-317 新建sip类型健康检测模板
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf,调度算法为加权轮转,健康检测方法选择sip的实服务组,如下图所示。
图6-318 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-319 添加实服务组成员
图6-320 新建实服务器
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-321 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>,持续性组名称为sip,类型为SIP,SIP持续性方法为Call-ID,如下图所示。
图6-322 新建持续性组sip
单击<确定>,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,新建虚服务器名称为vs,类型SIP-UDP,地址为61.159.4.100,端口号为5060,开启UDP强制负载均衡,实服务组为sf,实服务组的持续性为sip,并开启虚服务,单击<确定>。如下图所示。
图6-323 新建SIP-UDP类型服务器
单击<确定>,完成操作。
验证前先清除实服务组成员的统计数据,以免干扰判断,清除后,再打流量进行验证。
在导航栏中选择“监控>应用负载>实服务组>实时统计>”,单击右侧<详细>,进入实服务组成员统计页面,单击<清除>下的清除全部数据以清除所有实服务组成员的统计。
图6-324 清除实服务组成员统计
通过点击实服务组成员统计页面右侧的详细查看每个实服务组成员的详细统计信息。
图6-325 查看每个实服务组成员的详细统计信息
HOST大量地址向虚服务vs发起SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求被平均分配到三台服务器。查看服务器端报文,可以看到sip会话成功建立,并发送RTP媒体流。
图6-326 实服务组成员统计结果
图6-327 查看服务器端报文,可以看到sip会话成功建立,并发送RTP媒体流。
虚服务开启UDP强制负载均衡功能时,清除实服务组成员的统计,HOST一个用户向虚服务vs发起SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求被平均分配到三台服务器。
图6-328 开启UDP强制负载均衡时实服务器统计页面
虚服务关闭UDP强制负载均衡功能时,清除实服务组成员的统计,HOST一个用户向虚服务vs发起SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求只分配到一台服务器。
图6-329 虚服务关闭UDP强制负载均衡功能
图6-330 关闭UDP强制负载均衡功能实服务器统计
清除实服务组成员的统计,HOST向虚服务器vs发起同一CALL-ID的SIP-UDP请求,访问成功后,可以在LB设备上查看到实服务组成员的统计信息,请求被分配到同一台服务器。查看报文,可以看到不同源地址但CALL-ID相同被分配到相同的实服务器。
图6-331 实服务器统计页面
图6-332 查看服务端报文,不同源IP相同CALL-ID的流量被分配到同一服务器
#
server-farm sf
probe sip
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
nqa template sip sip
reaction trigger probe-pass 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
sticky-group sip type sip
header call-id
#
virtual-server vs type sip-udp
virtual ip address 61.159.4.100
default server-farm sf sticky sip
udp per-packet
connection-sync enable
sticky-sync enable global
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络。以往只靠单台MySQL数据库服务器就能满足用户的服务需求,随着用户访问人数增多,同时读写导致性能渐渐开始下降,对于用户的直观感受就是响应慢,对于开发人员来说是长时间处于等待MySQL数据库的响应中,极大了影响用户体验。解决这个问题的一种简单实用方案是使用数据库负载均衡,将用户的请求分担到不同机器上执行,减轻单台数据库压力,从而提高响应能力。同时,要求把读数据库的操作发到读服务器上,把写数据库的操作发到写服务器上。如图所示,HOST经过负载均衡设备访问Mysql服务器,服务器Server A、Server B提供读请求的服务,Server C提供写请求的服务,在读写请求切换服务器时不断开连接,后续的请求可以复用之前读写的连接,以减小服务器的压力。
图6-333 MySQL负载均衡组网图
为实现MySQL负载均衡的功能,需要在LB设备上完成如下配置:
· 分别配置读实服务组、写实服务组、读实服务器,写实服务器,把读实服务器新建到读实服务组,把写实服务器新建到写实服务组。
· 配置MySQL类型的虚服务,开启读写分离功能,分别引用读实服务组和写实服务组,数据库的用户名密码配置需和真实MySQL服务器保持一致,数据库的版本号小于等于真实服务器的版本号,建议保持一致。
· 配置MySQL类型的参数模板,开启连接复用功能,引用到MySQL虚服务下。
· Snat
· 用户发起对MySQL数据库的请求命中虚服务后,读写的请求分别被调度到读写实服务组的实服务器上。MySQL的参数模板应用到虚服务下,保证在读写请求切换读写实服务组时,和服务器的连接不断开。
本举例是在AD830的Ess 9071P1521版本上进行配置和验证的。
· 在MySQL类型的虚服务下,数据库的用户名密码需和真实MySQL服务器保持一致,数据库的版本号小于等于真实服务器的版本号,建议保持一致。
· 需要在MySQL的虚服务下引用开启连接复用功能的MySQL参数模板。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为3306,如下图所示。
图6-334 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>公共配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入1.1.1.11,结束IP地址填入1.1.1.20,如下图所示。
图6-335 新建源地址池
图6-336 源地址池信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,分别新建读实服务组sf_read,写实服务组sf_write,调度算法为加权轮转算法,健康性检测选择t1,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图6-337 新建读实服务组sf_read
单击<确定>按钮,完成操作。
图6-338 新建写实服务组sf_write
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-339 添加实服务组成员
图6-340 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-341 实服务组信息
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf_read,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-342 添加实服务组成员
图6-343 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf_read,单击新建成员列表,参照上图创建实服务器rs2,分别配置其IPv4地址为192.168.1.2。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf_write,单击新建成员列表,参照上图创建实服务器rs3,配置其IPv4地址为192.168.1.3。
图6-344 实服务组sf_read信息
图6-345 实服务组sf_write信息
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为vs,类型选择MySQL,开始连接复用功能,如下图所示:
图6-346 新建参数模板
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择MySQL,地址为61.159.4.100/32,端口号为3306,开启读写分离功能,指定读实服务组为sf_read,写实服务组为sf_write,配置用户名和密码以及MySQL的版本号(本例服务端的用户名和密码为root/123456,版本号为5.1),引用MySQL类型的参数模板mysql,并开启虚服务功能,如下图所示。
图6-347 新建虚服务器
图6-348 新建用户
单击<确定>,完成操作。
图6-349 客户端抓包报文分析
可以看到读写的请求各建了一个连接。
图6-350 实服务器抓包报文分析
可以看到读请求选择了一个读实服务器,写请求选择了一个写实服务器。在读写请求切换实服务的时候没有断开已有连接。
在有流量的情况下,在导航栏中选择“监控>会话监控>代理会话”,可以看到流量的会话记录,如下图所示。
图6-351 代理会话信息
#
nqa template tcp t1
destination port 3306
#
parameter-profile mysql type mysql
server-connection reuse
#
loadbalance snat-pool snat1
ip range start 1.1.1.11 end 1.1.1.20
#
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
#
server-farm sf_read
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 sf_write
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
real-server rs4
ip address 192.168.1.201
success-criteria at-least 1
#
virtual-server vs type mysql
virtual ip address 61.159.4.100
parameter mysql mysql
sticky-sync enable global
version 5.1
username root password cipher U1FMAA9eZhCOQGelh2yW3A==
readwrite-separation read-server-farm sf_read write-server-farm sf_write
service enable
#
loadbalance isp file flash:/lbispinfo_v1.7.tp
#
loadbalance log enable nat
loadbalance ssl performance-optimize cache-value 15
#
ips logging parameter-profile ips_logging_default_parameter
#
anti-virus logging parameter-profile av_logging_default_parameter
#
undo hardware audit url enable
#
return
因实际业务需要,需要支持Oracle数据库服务器的负载均衡分担,如图所示,Host经过负载均衡设备访问Oracle数据库服务器。三台服务器Server A、Server B和Server C均可提供Oracle数据库的服务。通过配置应用负载均衡,让这三台服务器联合提供Oracle数据库的服务,并通过健康检测来监控这些服务器是否可达。
图6-352 TCP SPLIT组网图
为实现LB支持TCP SPLIT功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· TCP类型的虚服务器,并开启七层分担功能。
· 用户发起对Oracle数据库的请求命中虚服务后,通过实服务组的负载分担方法分担到实服务器。需要配置虚服务监听的端口号为Oracle服务的端口号。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 需要配置虚服务的端口号为Oracle服务的端口号。
· 需要打开TCP类型虚服务的七层负担分担模式开关。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为1521,如下图所示。
图6-353 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入1.1.1.11,结束IP地址填入1.1.1.20,如下图所示。
图6-354 新建源地址池
图6-355 源地址池信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
新建实服务组名称为sf1,调度算法为加权轮转,健康检测选择t1,源地址池为snat1,如下图所示。
图6-356 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-357 添加实服务组成员
图6-358 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-359 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为1521,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图6-360 新建虚服务器
单击<确定>按钮,完成操作。
图6-361 客户端抓包报文分析
图6-362 实服务器抓包报文分析
在有流量的情况下,在导航栏中选择“监控>会话监控>会话列表”,进入会话列表页面可以看到流量的会话记录,如下图所示。
图6-363 设备会话列表
nqa template tcp t1
destination port 1521
#
loadbalance snat-pool snat1
ip range start 1.1.1.11 end 1.1.1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
port 1521
virtual ip address 61.159.4.100
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
service enable #
测试应用交付控制器在改变用户的源地址后,需要将用户的真实地址插入到TCP包中,以便后台服务器获取客户端源地址;此外由于客户端的时间戳选项不同,若经过源地址转换成同一个地址到后台服务器,有可能由于时间戳不同,后台服务器会丢弃比已接受报文时间戳早的报文,所以需要清除LB设备发送到服务器端TCP报文的时间戳选项。如图所示,HOST经过负载均衡设备访问web服务器,三台服务器Server A、Server B和Server C均可提供HTTP的服务。通过配置应用负载均衡,引用snat地址池,把报文的源地址转换成snat地址池中的地址发给服务端,同时在发往服务端的TCP报文中在TCP Option 28字段插入用户的真实源地址,并且清除LB设备发送到服务器端TCP报文中TCP Option 8字段时间戳选项。
图6-364 TCP源地址插入和TCP Option清除组网图
为实现TCP源地址插入和TCP Option清除功能,需要在LB设备上完成如下配置:
· 配置实服务组、实服务器。
· 配置snat地址池,并在实服务组下引用。
· 配置TCP的参数模板,插入TCP Option的28字段(源地址),以及删除TCP Option 的8字段(时间戳)。
· 配置TCP类型的虚服务器,开启七层负载分担功能,并在此虚服务下引用TCP参数模板。
· 用户发起的HTTP请求命中虚服务后,把报文的源地址转换成snat地址池中的地址发给服务端,同时在发往服务端的TCP报文中在TCP Option 28字段插入用户的真实源地址,并且清除LB设备发送到服务器端TCP报文中TCP Option 8字段时间戳选项。
本举例是在L5000的Feature D071SP版本上进行配置和验证的。
· TCP类型的虚服务需要配置服务端口号(配置具体的服务端口号,不能为0),并打开七层负载分担功能。
· 配置TCP类型的参数模板,使number为28的TCP Option中插入真实的客户端源地址,以及清除TCP Option中number为8的时间戳选项。
· 同时支持七层HTTP类型的虚服务。
以下配置均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图6-365 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>公共配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,起始IP地址填入192.168.1.201,结束IP地址填入192.168.1.210,发送免费ARP或ND报文的接口选RAGG1.20,如下图所示。
图6-366 新建源地址池
图6-367 源地址池信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
新建实服务组名称为sf1,调度算法为加权轮转,健康检测选择t1,源地址池为snat1,如下图所示。
图6-368 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图6-369 添加实服务组成员
图6-370 新建实服务器
单击<确定>按钮,完成操作。
创建实服务器rs2、rs3与创建rs1步骤相同。
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,单击新建成员列表,参照上图创建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图6-371 实服务组信息
在导航栏中选择“负载均衡>应用负载>参数模板”,进入参数模板页面。
单击<新建>,新建参数模板名称为tcp_option,类型选择TCP,
图6-372 新建参数模板
单击<确定>按钮,完成操作。
图6-373 参数模板信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs,类型选择TCP,地址为61.159.4.100/32,端口号为80,选择七层负载分担模式,并开启虚服务功能,如下图所示。
图6-374 新建虚服务器
单击<确定>按钮,完成操作。
在服务器端可以看到报文number为28的TCP Option中插入真实的客户端源地址:从1c 06 0a 00 00 14 计算,1c代表是option编号28,06代表这个option的长度,0a 00 00 14 代表地址源地址是10.0.0.20,并且清除了tcp报文中TCP Option 8字段时间戳选项。如下图所示:
图6-375 服务器端插入真实的客户端源地址,删除了时间戳
图6-376 虚服务器不引用参数模板的服务器端抓包
#
nqa template tcp t1
destination port 80
#
parameter-profile tcp_option type tcp
tcp option remove 8
tcp option insert 28 value %{is}
#
loadbalance snat-pool snat1
ip range start 192.168.1.201 end 192.168.1.210
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
real-server rs1
ip address 192.168.1.1
#
real-server rs2
ip address 192.168.1.2
#
real-server rs3
ip address 192.168.1.3
#
virtual-server vs type tcp
port 80
virtual ip address 61.159.4.100
parameter tcp tcp_option server-side
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
service-down-action reset
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的会话日志。
图7-1 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 分别配置nat64和nat46的源地址池
· LB设备配置nat日志功能
本举例是在 AD830的Ess 9071P1521版本上进行配置和验证的。
· 虚服务器地址与snat-pool的匹配
· NAT 64只支持HTTP类型虚服务
· 举例版本不支持web配置nat日志,使用命令行配置
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为HTTP的健康检测模板,如下图所示。
图7-2 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,如下图所示。
图7-3 新建IPv4源地址池
单击<确定>,完成操作。
新建snat2步骤与snat1相同,snat2配置信息如下图所示。
图7-4 新建IPv6源地址池信息
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1、sf2分别绑定地址池snat1、snat2,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图7-5 新建实服务组
单击<确定>按钮,完成操作。
图7-6 新建实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图7-7 添加IPv4实服务组成员
图7-8 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2与rs1步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,新建实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为7.0.0.3。
图7-9 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf2,单击新建成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图7-10 添加IPv6实服务组成员
图7-11 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs12与rs11步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,新建实服务组成员,参照上图新建实服务器rs12,配置其IPv6地址为7::3。
图7-12 实服务组信息
单击<确定>按钮,完成操作。
新建HTTP类型的虚服务器vs1,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定实服务组sf1、sf2,类型选择HTTP,并开启虚服务,如下图所示。
图7-13 新建虚服务器vs1
单击<确定>,完成操作。
图7-14 新建虚服务器vs2
单击<确定>,完成操作。
目前LB设备暂不支持web界面开启nat日志功能,使用命令行进行举例。
[Sysname] loadbalance log enable nat
[Sysname] userlog flow syslog
(1) 在导航栏选择“监控>应用负载”,可以在LB设备上查看到虚服务和实服务的统计信息,此处不赘述
(2) 在导航栏选择“监控>设备日志>系统日志”,查看NAT64日志
图7-15 NAT64的日志
在导航栏选择“监控>会话监控>代理会话”,查看
图7-16 代理会话信息
(1) 在导航栏选择“监控>应用负载”,可以在LB设备上查看到虚服务和实服务的统计信息,此处不赘述
(2) 在导航栏选择“监控>设备日志>系统日志”,查看NAT64日志
图7-17 NAT46的日志
在导航栏选择“监控>会话监控>代理会话””,查看
图7-18 代理会话信息
#
nqa template http t1
expect status 200
#
loadbalance snat-pool snat1
ip range start 7.0.0.101 end 7.0.0.110
arp-nd interface Route-Aggregation1.20
#
loadbalance snat-pool snat2
ipv6 range start 7::101 end 7::10A
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
snat-pool snat2
probe t1
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
real-server rs1
ip address 7.0.0.2
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
real-server rs2
ip address 7.0.0.3
#
virtual-server vs1 type http
virtual ipv6 address 200::1
default server-farm sf1
sticky-sync enable global
service-down-action reset
service enable
#
virtual-server vs2 type http
virtual ip address 61.159.4.100
default server-farm sf2
sticky-sync enable global
service-down-action reset
service enable
#
loadbalance log enable nat
#
userlog flow syslog
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,ipv4使用32位地址,因此地址空间中只有4,294,967,296(2的32次方)个地址, IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍,在相当长的一段时间内,ipv4和ipv6将共存 ,需要IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器。ipv4用户10.0.0.2能访问ipv6的http服务器7::2/7::3,ipv6的用户300::2访问ipv4的HTTP服务器7.0.0.2/7.0.0.3。
图7-19 NAT64配置组网图
为实现四层的NAT64功能,需要在LB设备上完成如下配置:
· 在TCP类型的虚服务器下,负载分担模式选择七层
本举例是在AD830的Ess 9071P1521版本上进行配置和验证的。
· 实服务组引用源地址池。
· 在TCP类型的虚服务器下,负载分担模式选择七层。
· TCP类型的虚服务器下端口非0,要配置具体的端口值。
· 不支持多通道的协议,例如ftp。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图7-20 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>源地址池”,进入源地址池页面。
单击<新建>,新建源地址池名称为snat1,如下图所示。
图7-21 新建IPv4源地址池
单击<确定>,完成操作。
新建snat2步骤与snat1相同,snat2配置信息如下图所示。
图7-22 新建IPv6源地址池信息
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1、sf2分别绑定地址池snat1、snat2,调度算法为源IP地址哈希,健康性检测选择t1的实服务组,如下图所示。
图7-23 新建实服务组
单击<确定>按钮,完成操作。
图7-24 新建实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图7-25 添加IPv4实服务组成员
图7-26 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2与rs1步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,新建实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为7.0.0.3。
图7-27 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf2,单击新建成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图7-28 添加IPv6实服务组成员
图7-29 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs12与rs11步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,新建实服务组成员,参照上图新建实服务器rs12,配置其IPv6地址为7::3。
图7-30 实服务组信息
单击<确定>按钮,完成操作。
新建TCP类型的虚服务器vs1,配置其VSIP为200::1,并开启虚服务。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs1、vs2,分别设置虚服务器IP地址为200::1和61.159.4.100,并分别绑定实服务组sf1、sf2,类型选择TCP,虚服务器端口号为80,负载分担模式为七层,并开启虚服务,如下图所示。
图7-31 新建虚服务器vs1
单击<确定>按钮,完成操作。
图7-32 新建虚服务器vs2
单击<确定>,完成操作。
图7-33 查看负载均衡会话
#
nqa template tcp t1
destination port 80
#
loadbalance snat-pool snat1
ip range start 7.0.0.101 end 7.0.0.110
arp-nd interface Route-Aggregation1.20
#
loadbalance snat-pool snat2
ipv6 range start 7::101 end 7::10A
arp-nd interface Route-Aggregation1.20
#
server-farm sf1
predictor hash address source
snat-pool snat1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
server-farm sf2
predictor hash address source
snat-pool snat2
probe t1
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
real-server rs1
ip address 7.0.0.2
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
real-server rs2
ip address 7.0.0.3
#
virtual-server vs1 type tcp
port 80
virtual ipv6 address 200::1
default server-farm sf1
connection-sync enable
sticky-sync enable global
application-mode enable
service-down-action reset
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,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-34 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 配置IPv6到IPv4的源地址静态转换策略,用于将报文的目的地址转换为IPv6地址。
· 配置NAT64前缀将报文源IPv4地址转换为IPv6地址。
· 配置IPv4到IPv6源地址动态转换策略,将匹配允许的源地址根据NAT64前缀转换为IPv6地址。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 接口下使能AFT
· 用NAT64前缀或General前缀之前,需要先进行NAT64前缀或General前缀的配置,转换策略才能生效。
· 虚服务器下开启响应ARP。
· 虚服务器下必须配置具体的IP,不能是网段。
· 仅四层支持LB和AFT组合使用。
· AFT转换必须有目的地址为转换后地址的路由,才能进行正常的AFT转换。
在导航栏中选择“网络>接口NAT>AFT”,进入接口设置页面。
勾选使用的接口,单击<开启>
图7-35 接口开启AFT
图7-36 接口开启AFT后查看
(1) 配置ACL 2000,仅允许IPv4网络中10.0.0.0/24网段的用户访问IPv6的internet
在导航栏中选择“对象>ACL>IPv4”,进入ACL页面。
单击<新建>,创建基本ACL 2000,新建两条规则,允许10.0.0.0/24,其余则拒绝。
图7-37 创建ACL
单击<确定>,弹出ACL创建成功,是否添加规则页面
单击<是>,进入新建IPv4基本ACL的页面
图7-38 第一条规则
单击<确定>,弹出是否继续添加下一条规则的页面
单击<是>,进入创建第二条ACL规则
图7-39 第二条规则
单击<确定>,弹出是否继续添加下一条规则
图7-40 取消继续创建规则
单击<否>按钮,完成ACL2000的规则创建
图7-41 ACL2000的规则内容
(2) 配置NAT64前缀,此前缀将在ipv4到ipv6的源地址动态转换策略中被调用,将报文的源地址转换为ipv6地址
在导航栏中选择“网络>接口NAT>AFT >NAT64前缀”,进入NAT64前缀页面。
单击<新建>,新建NAT64前缀,IPv6前缀为2018::,NAT64前缀长度为96。
图7-42 新建NAT64前缀
单击<确定>按钮,完成操作。
(3) 配置IPv4到IPv6源地址动态转换策略,将匹配ACL 2000报文的源地址根据NAT64前缀转换为IPv6地址,目前LB设备暂不支持web界面配置,使用命令行进行举例.
[Sysname] aft v4tov6 source acl number 2000 prefix-nat64 2018:: 96
(4) 配置IPv6到IPv4的源地址静态转换策略,用于将报文的目的地址转换为IPv6地址
在导航栏中选择“网络>接口NAT>AFT >AFT策略”,进入AFT策略页面。
点击<新建>,新建AFT策略,转换方式选择v6tov4,IPv4地址为61.232.0.2,IPv6地址为200::1。
图7-43 IPv6到IPv4的源地址静态转换策略
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为tcp,类型为TCP的健康检测模板,如下图所示。
图7-44 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf2,调度算法为源IP地址哈希,健康性检测选择tcp的实服务组,如下图所示。
图7-45 新建实服务组sf2
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf2,单击新建成员列表,新建实服务器名称为rs11,实服务器IPv6地址为7::2,如下图所示。
图7-46 添加IPv6实服务组成员
图7-47 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs12与rs11步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf2,新建实服务组成员,参照上图新建实服务器rs12,配置其IPv6地址为7::3。
图7-48 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs_v6,类型选择TCP,分别设置虚服务器IP地址为200::1,并分别绑定实服务组sf2,开启响应ARP,并开启虚服务,如下图所示。
图7-49 新建虚服务器vs_v6
图7-50 业务访问成功
查看AFT会话,可以看到创建了一个IPv4会话和IPv6会话,分别对应着转换前后的报文
<Sysname>display aft session ipv4 verbose
Slot 1:
Initiator:
Source IP/port: 10.0.0.2/58595
Destination IP/port: 61.232.0.2/21
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 61.232.0.2/21
Destination IP/port: 10.0.0.2/58595
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 14:55:30 TTL: 3585s
Initiator->Responder: 10 packets 478 bytes
Responder->Initiator: 7 packets 500 bytes
Total sessions found: 1
<Sysname> display aft session ipv6 verbose
Slot 1:
Initiator:
Source IP/port: 2018::A00:2/58595
Destination IP/port: 200::1/21
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 7::3/21
Destination IP/port: 2018::A00:2/58595
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 14:55:30 TTL: 3598s
Initiator->Responder: 5 packets 326 bytes
Responder->Initiator: 3 packets 291 bytes
Total sessions found: 1
#
nqa template tcp tcp
destination port 21
#
interface Route-Aggregation1.10
ip address 10.0.0.1 255.255.255.0
aft enable
vlan-type dot1q vid 2259
#
interface Route-Aggregation1.20
aft enable
vlan-type dot1q vid 2260
ipv6 address 7::1/64
#
acl basic 2000
rule 0 permit source 10.0.0.0 0.0.0.255
rule 5 deny
#
aft prefix-nat64 2018:: 96
aft v6tov4 source 200::1 61.232.0.2
aft v4tov6 source acl number 2000 prefix-nat64 2018:: 96
#
real-server rs11
ipv6 address 7::2
#
real-server rs12
ipv6 address 7::3
#
server-farm sf2
predictor hash address source
probe tcp
success-criteria at-least 1
real-server rs11 port 0
success-criteria at-least 1
real-server rs12 port 0
success-criteria at-least 1
#
virtual-server vs_v6 type tcp
virtual ipv6 address 200::1
default server-farm sf2
route-advertisement enable
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
随着计算机普及和互联网的快速发展,越来越多的人开始使用网络,IPv4使用32位地址,最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍,在相当长的一段时间内,ipv4和ipv6将共存 ,需要IPv4和IPv6的网络互通,用IPv4的地址访问IPv6的服务器,或者用IPv6的地址访问IPv4的服务器。
Internet已经升级到了IPv6,但是某公司内部网络仍然是IPv4网络。而该公司仍希望为IPv6 Internet内的用户提供FTP服务。该公司访问IPv6 Internet使用的IPv6地址为300::2。
图7-51 NAT64配置组网图
为实现NAT64功能,需要在LB设备上完成如下配置:
· 通过IPv4到IPv6源地址静态转换策略,为IPv4网络中的FTP服务器地址指定一个对应的IPv6地址,IPv6 Internet中的主机通过访问该IPv6地址可以访问IPv4网络中的FTP服务器。设备收到发往该IPv6地址的报文时将其目的地址转换为对应的IPv4地址。
· 通过IPv6到IPv4源地址动态转换策略,将IPv6 Internet发送过来的IPv6报文源地址转换为IPv4地址7.0.0.200、 7.0.0.201。
本举例是在L5000-AD830的Ess 1171P1521版本上进行配置和验证的。
· 接口下使能AFT。
· 用NAT64前缀或General前缀之前,需要先进行NAT64前缀或General前缀的配置,转换策略才能生效。
· 虚服务器下开启响应ARP。
· 虚服务器下必须配置具体的IP,不能是网段。
· 仅四层支持LB和AFT组合使用。
· AFT转换必须有目的地址为转换后地址的路由,才能进行正常的AFT转换。
在导航栏中选择“网络>AFT”,进入接口设置页面。
勾选使用的接口,单击<开启>
图7-52 接口开启AFT
图7-53 接口开启AFT后查看
(1) 配置IPv6 ACL 2000,仅允许IPv6网络中300:: 64网段的用户访问IPv6的internet
在导航栏中选择“对象>ACL>IPv6”,进入ACL页面。
单击<新建>,新建基本ACL 2000,新建两条规则,允许300:: 64,其余则拒绝。
图7-54 新建ACL
单击<确定>,弹出ACL创建成功,是否添加规则页面
单击<是>,进入新建IPv6基本ACL的页面
图7-55 第一条规则
单击<确定>,弹出是否继续添加下一条规则
单击<是>,进入创建第二条ACL规则
图7-56 第二条规则
单击<确定>,弹出是否继续添加下一条规则
单击<否>,取消继续创建规则,完成ACL2000的规则创建
图7-57 ACL2000的规则内容
(2) 配置NAT64前缀,报文的目的地址根据该NAT64前缀转换为IPv4地址
在导航栏中选择“网络>接口NAT>AFT >NAT64前缀”,进入NAT64前缀页面。
图7-58 新建NAT64前缀
单击<确定>按钮,完成操作。
(3) 配置AFT地址组
在导航栏中选择“对象>对象组>AFT地址组”,进入AFT地址组页面,单击<新建>,起始IP地址为7.0.0.200,结束IP地址7.0.0.203
图7-59 配置AFT地址组
单击<确定>按钮,完成操作。
图7-60 AFT地址组信息
(4) 配置IPv4到IPv6源地址动态转换策略,将匹配ACL 2000报文的源地址根据NAT64前缀转换为IPv6地址
在导航栏中选择“网络>接口NAT>AFT >AFT策略”,进入AFT策略页面,转换方式选择NAT64前缀,报文匹配规则(ACL)选2000,转换后源地址选择地址组0。
图7-61 新建AFT策略
单击<确定>按钮,完成操作。
在导航栏中选择“对象>健康检测”,进入健康检测模板页面。
单击<新建>,新建健康模板名称为tcp,类型为TCP的健康检测模板,如下图所示。
图7-62 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>按钮,新建实服务组名称为sf1,调度算法为源IP地址哈希,健康性检测选择tcp的实服务组,如下图所示。
图7-63 新建实服务组sf1
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,单击新建成员列表,新建实服务器名称为rs1,实服务器IPv4地址为7.0.0.2,如下图所示。
图7-64 添加实服务组成员
图7-65 新建实服务器
单击<确定>按钮,完成操作。
新建实服务器rs2与rs1步骤相同
在导航栏中选择“负载均衡>应用负载>实服务组”,编辑实服务组sf1,新建实服务组成员,参照上图新建实服务器rs2,配置其IPv4地址为7.0.0.3。
图7-66 实服务组信息
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,新建虚服务器名称为vs_v4,类型选择TCP,分别设置虚服务器IP地址为61.159.4.100,并分别绑定实服务组sf1,开启响应ARP,并开启虚服务,如下图所示。
图7-67 新建虚服务器vs_v4
单击<确定>,完成操作。
图7-68 业务访问成功
查看AFT会话,可以看到创建了一个IPv6会话和IPv4会话,分别对应着转换前后的报文
<Sysname>display aft session ipv6 verbose
Slot 1:
Initiator:
Source IP/port: 300::2/63359
Destination IP/port: 2018::3D9F:464/21
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 2018::3D9F:464/21
Destination IP/port: 300::2/63359
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 17:35:04 TTL: 3598s
Initiator->Responder: 7 packets 460 bytes
Responder->Initiator: 4 packets 372 bytes
Total sessions found: 1
<Sysname>display aft session ipv4 verbose
Slot 1:
Initiator:
Source IP/port: 7.0.0.203/63359
Destination IP/port: 61.159.4.100/21
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.10
Responder:
Source IP/port: 7.0.0.3/21
Destination IP/port: 7.0.0.203/63359
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Route-Aggregation1.20
State: TCP_ESTABLISHED
Application: FTP
Rule ID: -/-/-
Rule name:
Start time: 2023-12-13 17:35:04 TTL: 3592s
Initiator->Responder: 10 packets 479 bytes
Responder->Initiator: 7 packets 500 bytes
Total sessions found: 1
#
nqa template tcp tcp
destination port 21
#
interface Route-Aggregation1.10
aft enable
vlan-type dot1q vid 2257
ipv6 address 300::1/64
#
interface Route-Aggregation1.20
ip address 7.0.0.1 255.255.255.0
aft enable
vlan-type dot1q vid 2258
#
acl ipv6 basic 2000
rule 0 permit source 300::/64
rule 5 deny
#
aft address-group 0
address 7.0.0.200 7.0.0.203
#
aft prefix-nat64 2018:: 96
aft v6tov4 source acl ipv6 number 2000 address-group 0 no-pat
#
real-server rs1
ip address 7.0.0.2
#
real-server rs2
ip address 7.0.0.3
#
server-farm sf1
predictor hash address source
probe tcp
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
real-server rs2 port 0
success-criteria at-least 1
#
virtual-server vs_v4 type tcp
virtual ip address 61.159.4.100
default server-farm sf1
route-advertisement enable
connection-sync enable
sticky-sync enable global
service-down-action reset
service enable
#
通信过程中,有时部分服务器处理能力有限,分配大量连接会导致网络拥堵,因此需要限制这些服务器的连接数,为其设置上限,当这些服务器的连接数达到上限时,不再为这些服务器分配连接。同时,有些源地址可能发起大量的连接占用网络资源,导致其他地址用户无法访问,需要对这些地址的连接数进行限制。由于业务需要,要保证携带了某个Cookie字段的客户访问的连接数分发到同一服务器,且连接数不被限制。如下图,Host通过LB设备对3台服务器进行访问。三台服务器Server A、Server B和Server C均可提供HTTP服务,Host访问服务器的流量会在三台服务器之间负载分担,对服务器Server A的连接数进行限制,使其不超过200,对网段10.0.1.16/28发起的连接数进行限制,保证每个地址发起的连接不超过10个。当客户端携带了特定Cookie值时,连接被分配到服务器Server A,且连接数不被限制
图8-1 连接数限制组网图
为了实现连接数限制功能,需要在LB设备上完成如下配置:
· 配置实服务组,实服务器。
· 配置连接数限制策略,限制某一网段每个地址的连接数不超过10。
· 配置基于Cookie插入的持续性组,并关闭受连接数限制功能。
· 配置虚服务,引用实服务组、持续性组和连接数限制策略。
本举例是在L5000的Ess 1171P1521版本上进行配置和验证的。
· 持续性组要关闭受连接数限制功能。
· 基于Cookie的会话保持,Host端携带的Cookie要与需要分配到的实服务器的Cookie一致,可以通过命令行查看。
· 连接数限制策略规则,限制依据要勾选源地址和目的地址。
以下验证过程均在LB设备上进行。
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为HTTP的健康检测模板,预期接收状态码为200,如下图所示。
图8-2 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为加权轮转,健康检测方法选择t1的实服务组,如下图所示。
图8-3 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,最大连接数为200,如下图所示。
图8-4 添加实服务组成员
图8-5 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3,rs2、rs3不配置最大连接数。
图8-6 实服务组信息
在导航栏中选择“负载均衡>全局配置>持续性组”,单击<新建>:持续性组名称为cookie,类型为HTTP-Cookie,Cookie持续性方法为Cookie插入,Cookie名称为X-LB,关闭<受连接数限制>,如下图所示。
图8-7 新建持续性组cookie
单击<确定>按钮,完成操作。
在导航栏中选择“对象>ACL>IPv4”,单击<新建>:类型为高级,编号为3001,如下图所示。
图8-8 新建高级ACL规则3001
单击<确定>按钮,弹出新建IPv4高级ACL的规则,添加ACL匹配规则,匹配条件勾选择匹配源IP地址/通配符掩码和匹配目的IP地址/通配符掩码,源IP地址/通配符掩码为10.0.1.16/0.0.0.15,目的IP地址/通配符掩码为61.159.4.100/0.0.0.0,去勾选<继续添加下一条规则>如下图所示。
图8-9 新建高级ACL3001的匹配规则
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>高级策略>连接数限制策略”进入连接数限制策略页面。
单击<新建>,添加连接数限制策略名称为lp的连接数限制策略,单击<新建>添加规则,类型为IPv4 ACL,ACL选择3001,限制依据勾选<源地址>和<目的地址>,连接数范围上限和下限都为10,如下图所示。
图8-10 新建连接数限制策略
图8-11 新建限制规则
图8-12 新建连接数限制策略规则
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>虚服务器”,新建虚服务器名称为vs,类型为HTTP,IP为61.159.4.100,端口号为80,实服务组为sf, 实服务组的持续性为cookie,连接数限制策略为lp,并开启虚服务,单击<确定>。
图8-13 新建虚服务器
单击<确定>,完成操作。
Web界面暂不支持查看设备各实服务组成员的Cookie值,仅支持命令行查询。
<Sysname>display sticky virtual-server brief
Slot 1:
Sticky type Sticky method Sticky key Virtual server Real-server/Link
HTTP cookie Cookie Insert 2.0.74232acd.0 vs 192.168.1.1:0
HTTP cookie Cookie Insert 2.1.d7ecc40e.0 vs 192.168.1.2:0
HTTP cookie Cookie Insert 2.2.ac21e602.0 vs 192.168.1.3:0
验证前先清除虚服务器和实服务组成员的统计数据,以免干扰判断,清除后,再打流量进行验证。
在导航栏中选择“监控>应用负载>虚服务器>实时统计”,选择虚服务vs,单击<清除>清除虚服务器的统计。
图8-14 清除虚服务器统计
在导航栏中选择“监控>应用负载>实服务组>实时统计”,单击右侧<详细>,进入实服务组成员统计页面,单击<清除>下的清除全部数据清除所有服务组成员的统计。
图8-15 清除实服务组统计
通过点击虚服务器统计页面及实服务组成员统计页面右侧的详细查看每个虚服务器和实服务组成员的详细统计信息。
图8-16 查看虚服务器的详细统计信息
图8-17 查看每个实服务组成员的详细统计信息
100个源地址不包含连接数限制策略限制的地址段,向虚服务发起3000个连接,实服务器Sever A的连接数为200,服务器Sever B的连接数为1400,服务器Sever C的连接数为1400,业务没有失败。
图8-18 实服务组成员rs1统计结果
图8-19 实服务组成员rs2统计结果
图8-20 实服务组成员rs3统计结果
图8-21 虚服务器统计结果
清除虚服务器和实服务组成员统计,100个源地址访问虚服务,100个地址包含连接数限制策略限制的地址段,发起3000个连接,实服务器Sever A的连接数为200,实服务器Sever B和实服务器Sever C的连接数均略小于等于1240,虚服务产生约320个丢包。
图8-22 实服务组成员rs1统计结果
图8-23 实服务组成员rs2统计结果
图8-24 实服务组成员rs3统计结果
清除虚服务器和实服务组成员统计,100个源地址访问虚服务,源地址包含连接数限制的地址段,发起3000个连接,客户端携带实服务器Sever A的cooike,实服务器连接数不受限制,且所有连接都分配到实服务器Sever A,Sever A的连接数为3000, Sever B和Sever C的连接数为0。
图8-25 实服务组成员rs1统计结果
图8-26 实服务组成员rs2统计结果
图8-27 实服务组成员rs3统计结果
图8-28 虚服务器统计结果
#
nqa template http t1
expect status 200
#
acl advanced 3001
rule 0 permit ip source 10.0.1.16 0.0.0.15 destination 61.159.4.100 0
#
sticky-group cookie type http-cookie
override-limit enable
cookie insert
check all-packet
#
server-farm sf1
probe t1
success-criteria at-least 1
real-server rs1 port 0
success-criteria at-least 1
connection-limit max 200
real-server rs2 port 0
success-criteria at-least 1
real-server rs3 port 0
success-criteria at-least 1
#
loadbalance limit-policy lp
limit 1 acl 3001 per-destination per-source amount 10 10
#
real-server rs1
ip address 192.168.1.1
#
real-server 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-limit-policy lp
default server-farm sf1 sticky cookie
sticky-sync enable global
service enable
#
用户通过局域网连接到LB设备访问Internet,要求对经过LB的业务流量做深度报文检测,识别网络攻击和安全隐患并执行相应动作,从而保护LB设备本身以及内网服务器的安全。
Host端发起IPS/AV/WAF攻击,经过设备均能够被识别并记录日志、执行相应动作(例如丢弃),实现对内部服务器的防护。
图9-1 深度报文检测组网图
为实现对经过LB的业务流量做深度报文检测,需要在LB设备上完成如下配置:
· 安装支持IPS/AV/WAF的License。
· 升级IPS/AV/WAF特征库到最新版本。
· 配置IPS/AV/WAF策略配置文件。
· 虚服务器引用IPS/AV/WAF策略。
本举例是在L5000-AD830的Ess 9071P1521版本上进行配置和验证的。
· 确认设备已经安装支持IPS/AV/WAF的License并升级对应特征库。
· 内容安全配置变更之后(新建、编辑、删除),需要提交才能生效。
· IPS/AV开启输出系统日志功能。
· WAF只支持快速日志,需要开启输出快速日志到日志主机功能。
在导航栏中选择“系统 > License配置,单击<安装>按钮加载License文件对相应模块进行授权。
图9-2 安装License
图9-3 IPS/AV/WAF授权信息
在导航栏中选择“系统 > 升级中心>特征库升级,依次对IPS/AV/WAF特征库进行升级,设备提供三种升级方式:本地升级、立即升级和定时升级。
图9-5 特征库信息
当设备能访问DEVICE官网时,才能够使用立即升级或定时升级方式升级IPS/AV/WAF特征库。
可以通过访问DEVICE官网手工下载IPS/AV/WAF特征库文件到本地,使用本地升级进行特征库更新。
在导航栏中选择“负载均衡> 应用安全>入侵防御 > 配置文件”,单击<新建>按钮,在新建入侵防御配置文件视图,在名称中输入ips,单击<确定>。
图9-6 新建入侵防御配置文件
在导航栏中选择“负载均衡> 应用安全>防病毒 > 配置文件”,单击<新建>按钮,在新建防病毒配置文件视图,在名称中输入av,单击<确定>。
图9-7 新建防病毒配置文件
在导航栏中选择“负载均衡> 应用安全>Web应用防护 > 配置文件”,单击<新建>按钮,进入到新建Web应用防护配置文件视图,在名称中输入waf,单击<确定>。
图9-8 新建Web应用防护配置文件
在导航栏中选择“负载均衡>全局配置>健康检测”,进入健康检测模板页面。
单击<新建>,添加健康模板名称为t1,类型为TCP的健康检测模板,目的端口号为80,如下图所示。
图9-9 新建健康检测模板
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
单击<新建>,添加实服务组名称为sf1,调度算法为源IP地址哈希,健康检测方法选择t1的实服务组,如下图所示。
图9-10 新建实服务组
单击<确定>按钮,完成操作。
在导航栏中选择“负载均衡>应用负载>实服务组”,进入实服务组页面。
编辑实服务组sf1,添加实服务组成员,新建实服务器名称为rs1,实服务器IP地址为192.168.1.1,如下图所示。
图9-11 添加实服务组成员
图9-12 新建实服务器
单击<确定>按钮,完成操作。
负载均衡>应用负载>实服务组,编辑实服务组sf1,单击添加实服务组成员,参照上图步骤新建实服务器rs2和rs3,分别配置其IPv4地址为192.168.1.2和192.168.1.3。
图9-13 实服务组信息
在导航栏中选择“负载均衡>应用负载>虚服务器”,进入虚服务器页面。
单击<新建>,添加虚服务器名称为vs,类型选择TCP,IP地址为61.159.4.100/32,开启虚服务功能,开启内容安全功能,Web应用防护配置文件选择waf,入侵防御配置文件选择ips,防病毒配置文件选择av,如下图所示。
图9-14 新建虚服务器
单击<确定>,完成操作。
内容安全配置变更之后,需要单击<提交>才能生效,完成虚服务器的配置
图9-15 单击提交完成虚服务器的配置
在导航栏中选择“系统>日志设置>威胁日志”,入侵防御日志和防病毒日志开启“系统日志”,单击<应用>生效
图9-16 开启入侵防御日志和防病毒日志的系统日志
在导航栏中选择“系统>日志设置>基本配置>快速日志”,新建日志主机,输入日志主机IP地址,开启Web应用防护日志。
图9-17 新建日志主机
图9-18 开启Web应用防护日志
在导航栏中选择“系统>日志设置>基本配置>存储空间设置”,使能DPI深度安全|威胁业务。
图9-19 开启DPI深度安全|威胁业务
Web界面暂不支持开启将日志快速输出到日志主机,仅支持命令行配置。
[Sysname]customlog format dpi waf
Host端可通过浏览器访问如下URL路径,设备检测到该攻击流量会进行攻击拦截并生成威胁日志。
http://61.159.4.100/mytest1/export/show2.php?id=2%20%20AND%203206=CONVERT(INT,(CHAR(58)+CHAR(103)+CHAR(115)+CHAR(99)+CHAR(58)+(SELECT%20SUBSTRING((ISNULL(CAST(*%20form%20pangolin_test_table;--%20AS%20NVARCHAR(4000)),CHAR(32))),1,100))+CHAR(58)+CHAR(112)+CHAR(120)+CHAR(117)+CHAR(58)))
在导航栏中选择“监控>设备日志>威胁日志”,可查看设备生成的威胁日志列表,单击左侧查看按钮可以查看日志详情。
图9-20 查看威胁日志
图9-21 IPS威胁日志
攻击HOST,将测试病毒样本通过HTTP传输,经过设备测试观察结果。
在导航栏中选择“监控>设备日志>威胁日志”,可查看设备生成的威胁日志列表,单击左侧查看按钮可以查看日志详情。
图9-22 查看威胁日志
图9-23 AV威胁日志
Host端可通过浏览器访问如下URL路径,设备检测到该攻击流量会进行攻击拦截并生成威胁日志。
http://61.159.4.100/x.php?id%20=123456%27%3Cscript%3Ealert(%27xss%27)%3C/script%3E
在日志服务器上可以查看对应的威胁日志。
%Dec 15 19:46:21:530 2023 Sysname %%10 VsysId:1 WAF/4/WAF_IPV4_INTERZONE: Protocol(1001)=TCP; Application(1002)=http; SrcIPAddr(1003)=10.0.0.2; SrcPort(1004)=51300; 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_Attempt_Base_On_Message_Dialogs(HttpURI); AttackID(1089)=24485; Category(1090)=Vulnerability; Protection(1091)=WebApplication; SubProtection(1092)=Any; Severity(1087)=MEDIUM; Action(1053)=Reset & Logging; CVE(1075)=--; BID(1076)=--; MSB(1077)=--; HitDirection(1115)=original; RealSrcIP(1100)=; SubCategory(1124)=XSS; CapturePktName(1116)=; SrcMacAddr(1021)=000c-294d-297a; DstMacAddr(1022)=0c3a-fa8c-cce8; HttpHost(1117)= 61.159.4.100; HttpUserAgent(1210)= Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR; URL(1093)= 61.159.4.100/x.php?id%20=123456%27%3Cscript%3Ealert(%2
#
nqa template tcp t1
destination port 80
#
customlog format dpi waf
customlog host 188.100.0.112 export dpi waf
#
app-profile vs1632905761_vs
ips apply policy ips mode protect
anti-virus apply policy av mode protect
waf apply policy waf mode protect
#
inspect logging parameter-profile av_logging_default_parameter
#
inspect logging parameter-profile ips_logging_default_parameter
#
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
connection-sync enable
sticky-sync enable global
dpi-app-profile vs1632905761_vs
service enable
#
waf policy waf
#
dac log-collect service dpi threat enable
#
ips policy ips
status enabled
#
ips logging parameter-profile ips_logging_default_parameter
#
anti-virus policy av
#
anti-virus logging parameter-profile av_logging_default_parameter
#
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!