关于集群防火墙负载均衡优化的研究
2017-04-15张海刚
张海刚
摘要:防火墙是网络安全管理当中最常使用的设备,承担着关键的数据流量的过滤功能。但目前随着网络数据流量的日益增加,单台防火墙的性能已经无法跟上网络规模的发展速度了,因此大多数数据传输枢纽单位均已采用了集群防火墙设备来提供更充分的数据筛选和保护功能。通过将多台防火墙设备联立来分摊数据过滤的任务,从而加快对大规模数据包的处理效率,提高用户的体验度。在集群防火墙技术中,对系统处理性能影响最大的环节就是负载均衡策略的选定与执行。该文针对这一领域展开研究,提出一种基于哈希函数的负载均衡优化算法,并通过仿真评估验证了该算法的有效性,具有一定的实用价值。
关键词:集群防火墙;负载均衡;哈希函数
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)34-0070-02
集群防火墙统合了多台设备资源并实现了对数据过滤任务的合理分配,将原先由单台防火墙处理的数据包分散到多台设备中并行处理,极大地提高了防火墙的工作性能,同时也明显地降低了防护墙的处理时延,对网络用户的体验度产生了很好的促进影响;另一方面,从稳定性方面考虑,由于采用了多台设备,因此防火墙系统的可靠性也得到了显著的提高,即使由于种种原因导致某台设备出现故障,也可通过及时的任务调配机制,将原本由该设备处理的数据包转移到其他设备中去,从而保障了数据处理工作的正常运行。目前,集群防火墙的研究重点落在了对负载均衡策略的优化方面,通过引入更有效的优化算法,来提高在多台设备间分摊数据包的效率。本文首先介绍了群防火墙的组成原理,对各个部件进行了分析,在此基础上结合哈希函数设计了一款自适应负载均衡算法,提高了数据包分配的有效性与合理性,并实现了通过识别连接来确定由某一确定节点来负责该连接所有数据包的处理,保障了数据处理的连贯性和可靠性。
1 集群防火墙的基本结构
根据功能划分模式,可将集群防火墙系统分为三个部件,分别为负载均衡子系统、容错防火墙子系统和在线监控子系统,其中容错防火墙系统还可细分为多台子系统。
如上图所示,集群设备从网络中接到待处理的数据分组后,第一个环节就是在负载均衡子系统中利用负载均衡算法进行任务分配,该环节能否有效的实现数据包处理任务的合理分配,直接影响到了集群防火墙系统的整体性能;在完成分配之后,数据包流向了其对应的处理系统,即容错子系统,在该系统中进行分析和过滤;在线监控子系统则负责对各个节点进行监测与管理,如规则集的维护与调整,对某设备的故障予以记录和报警等。由以上几个部件的介绍可以看出,对负载均衡算法进行改进,可以有效地提高数据包分配效率,从而增强集群防火墙系统的工作性能。
2 负载均衡优化算法设计
2.1 算法流程设计
集群防火墙设备介于外网和内网之间,系统中的每个节点设备都应该能够正常接收外部数据包的访问请求。而在这些访问请求的数据包中,包含了诸多与发送方和接收方相关的重要信息,本算法摘取其中的源\目的IP、源\目的端口和协议号这五个字段作为算法的输入参数,并代入哈希函数进行运算,得到关于该集群的哈希值,接着对系统内的所有节点设备进行加权统计,将集群哈希值加权均分到每个节点,从而使每个节点都能得到一个权值区间,并以此作为是否接受数据包的判定依据。
当某节点设备收到一数据包后,根据其首部当中的地址端口等信息计算出该数据包的哈希值,并判断计算出的结果是否落在本节点设备拥有的权值区间内,如果是的话则接受该数据包进行下一步的处理,并向系统汇报接受情况,集群系统在维护表中记录这一接受情况,并在下一轮分配时,优先将同IP地址的数据包分配给同一个节点,提高数据处理的连贯性;如果不是则丢弃该数据包。
2.2 哈希算法设计
由算法流程可以看出,本优化策略最核心的内容就是利用哈希函数得到相关的哈希值,并以其为依据设定不同节点的权值,因此哈希算法的优劣与否决定着整个优化策略的性能和效率。本文从算法的简单性、易维护性、可靠性和低耗性等多方面考虑,设计了本系统的哈希算法:
设防火墙集群为[F=F0,F1,F2,…,Fn-1],[P(Fi)]表示第i台设备[Fi]的权值,即集群防火墙系统的权值,[i=0n-1P(Fi)]为取模参数,则有:
1) 基于权值的源/目的地址哈希算法结果
[H(?)=(S1⊕S2⊕S3⊕S4⊕D1⊕D2⊕D3⊕D4)]mod[i=0n-1P(Fi)]
其中,[Si]和[Di]分别是源、目的IP的第i个8位字节。该算法先将[Si]和[Di]执行XOR运算,并将[i=0n-1P(Fi)]作为取模参数,并以此求得哈希值。
2) 根据第i个防火墙的处理能力对[H(?)]的值映射到对应的节点设备,表1给出了相关的映射表示例。其中,[k∈(0,n-1)]。表中的[P(Fi)]反映了第i台设备在本周期内的处理性能,该值可根据应用场合的不同而灵活的设置修改周期。一般而言,只有当集群内设备配置更新、替换、增加或移除时才需要调整该值,调整与维护工作可由在线监控系统中的监控器负责。
3 算法性能评估
3.1 评估模型
由于在实用环境中遇到的干扰因素过多,且关联复杂,无法明确的评价算法的有效性,因此在本评估模型中,去除了监控子系统和容错子系统,仅保留负载均衡子系統,这种简化后的评估模型可以较为有效的评测负载均衡算法的优化程度;另一方面,对模拟的集群防火墙使用环境也做了一定的理想化设定,如不考虑数据包在处理过程中的容错性问题,评价算法是否有效的依据就是该系统是否能够将网络流量按照预定义的比例进行合理的分配,经过简化后的系统模型如图2所示。
现假设在本系统中存在N个节点设备,其实际处理性能分别为[μ1],[μ2,…μN],用[Gi(Δt)]表示第i台节点设备在[Δt]时间内的负载量。在所有节点设备均以最高效率运转的情况下,负载均衡系统也应当以近似于零时延的速度进行数据包的分配,此时在吞吐能力方面,负载均衡子系统就相当于处理能力为[μi]的一个处理单元,根据这一推理,得出在理想状态下,负载均衡系统需满足的条件为:[Gi(Δt)Gj(Δt)=μiμj],意味着[Δt]时间段内某节点处理的数据包数量就是该节点接收到的数据报数量总和。当然,在在实际运行中,由于运行环境中出现的随机干扰因素,以及数据流量本身存在突发性等特点,且集群防火墙中的节点设备可能性能存在差异,很难对其作出精确的性能评价,这些不稳定因素都会对算法的运行质量带来负面影响。
3.2 性能分析
根据上文中提出的设计方案构建防火墙集群并加以测试,在本次测试中,分别采用单台、2台和4台节点设备分别构成防火墙系统,并通过不同规模的数据流量进行防火墙处理性能的评估,选定的评估指标为系统平均延迟和吞吐量。图3则给出了单台设备、两台设备和四台设备的情况下系统的数据吞吐量变化曲线。
测试结果表明在平均时延方面,单台设备与多台设备表现差异不大,究其原因,在于多台设备形成集群系统后,彼此间的数据采集、调控与流量分配耗用了较多的处理时延,且随着系统规模的扩大,设备数量的增加,这一时延也会相应提升,因此,若想要进一步提高集群防火墙系统的整体性能,则应当尽量减少系统内无用或低效率节点;从吞吐量测试数据看,集群设备与单台设备比较,单向数据流的吞吐量性能大约提高了65%左右,效果明显。综合以上结果可以看出,集群安全与边界设备的启用,对解决大规模数据过滤,保护内网数据安全而言是非常有效的。
4 结论
集群防火墙系统目前已经广泛地应用在了各种数据通信领域,本文提出的基于哈希函数的负载均衡算法能够较好地反映出集群系统内各个节点设备的工作性能,并根据加权分配的方式进行任务的合理分配,将多台设备真正有机地结合到了一起,实现了资源的统合利用,同时压缩了防火墙系统的处理时延,尽可能的保障了网络数据的通畅传输,提高了用户的体验度。相信随着信息科技人工智能领域的不断发展,会有越来越多的新型算法被应用到集群防火墙优化领域,进一步提高防火墙的工作性能,为数据通信提供更优质的保障服务。
参考文献:
[1] Goddard S, Kieckhafer R, Zhang Yuping. An Unavailability Analysis of Firewall Sandwich Configurations[C]//Proc. of the 6th IEEE International Symposium on High Assurance Systems Engineering. Boca Raton,USA:[s.n.],2009:139-148.
[2] 马维晏,李忠诚.基于流的网络流量特征分析[J].小型微型计算机系统,2013,9(10):54-58.
[3] Horvath M R, Fulp E W, Wheeler P S. Policy Distribution Methods for Function Parallel Firewalls[C]//Proc. of the 17th IEEE International Conference on Computer Communications and Networks. Virgin Islands,USA,2009:620-625.
[4] Schroeder T,Goddard S, Ramamurthy B. Scalable Web Server Clustering Technologies[J].IEEE Network,2015(05/06):38-45.
[5] 王春娟,董麗丽,贾丽.Web集群系统的负载均衡算法[J].计算机工程,2014,36(2):102-104.