随着信息安全要求越来越高,防火墙成为必不可少的网络元素。但防火墙设备在网络中的主要作用不是报文转发,而是进行报文检测和访问控制,防火墙的存在必然会对安全用户正常使用网络带来一定影响。因此在满足安全功能的前提下,选择一款高性能、满足网络要求、符合预算的产品是非常重要的。
防火墙性能描述指标
衡量防火墙的性能指标主要包括吞吐量、报文转发率、最大并发连接数、每秒新建连接数、转发时延、抖动等。
图1 防火墙主要性能指标
防火墙吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。其测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至满足没有帧丢失时的最大发送速率,得出最终结果。吞吐量测试结果以比特/秒或字节/秒表示。
防火墙TCP并发连接数是指穿过被测设备的主机之间或主机与被测设备之间能够同时维持的最大TCP联接总数。防火墙TCP并发连接数的测试采用一种反复搜索机制进行,在每次反复过程中,以低于被测设备所能承受的连接速率发送不同数量的并发连接,直至得出被测设备的最大TCP并发连接数。
防火墙最大TCP连接建立速率是指在被测设备能够成功建立所有请求连接的条件下,所能承受的最大TCP连接建立速度。其测试采用反复搜索过程,每次反复过程中,以低于被测设备所能承受的最大并发连接数发起速率不同的TCP连接请求,直到得到所有连接被成功建立的最大速率。最大TCP连接建立速率以连接数/秒表示。
防火墙性能测试方法
对一款防火墙产品进行性能评估,分为两个步骤。
首先要进行防火墙基线性能测试,其次是进行模拟实际应用环境下的性能测试。
基线性能是防火墙在理想状态下表现出来的性能指标,具有测试结果比较稳定、流量模型可控的优点。但是在实际应用中,往往达不到防火墙产品实际标称的基线性能。原因是实际应用中经过防火墙的流量要比测试基线性能时的流量复杂得多,因此评估防火墙性能时,不仅需要对基线性能进行评估,更重要的是模拟实际应用环境进行评估。
1. 基线性能指标测试
1) 吞吐量评估
防火墙的吞吐量实际上是一个静态指标,反映在理想情况下设备的转发能力。在实际应用中吞吐量这个指标一般是达不到的,而且对于用户而言,实际感受到的是他的应用处理能力,因此单纯的吞吐量指标不能说明防火墙的转发性能。
一般情况下,防火墙的转发性能可以用throughput和goodput两个指标来衡量。而对于防火墙设备来说,goodput这个指标比throughput更具有实际意义。因此在测试防火墙吞吐量时,更多采用goodput指标。
有时候也叫应用层的吞吐量。在一定连接新建和并发的情况下,单个报文的应用层数据承载量很大程度决定了应用层报文转发的能力。所以测试防火墙转发性能时,需要明确测试载荷的大小。为了测试得到较全面的吞吐量性能数据,需要测试在不同载荷大小情况下的转发性能。
在进行吞吐量基线测试中,一般以HTTP作为应用层协议,为了得到最理想的测试效果,通过会选择HTTP1.1,每个TCP连接处理尽量多的HTTP事务(transaction),并且将HTTP载荷设置较大。图2是使用IxLoad设置的例子。
图2 IxLoad设置
2) 连接数评估
连接在状态防火墙中是一个很重要的概念,与连接相关的性能指标对评估防火墙非常重要。这些指标包括并发连接数、新建连接速率。
并发连接数的测试
并发连接是一个很重要的指标,它主要反映了被测设备维持多个会话的能力。关于此指标的争论也有很多。一般来说,它是和测试条件紧密联系的,但是这方面的考虑有时会被人们忽略。比如,测试时采用的传输文件大小就会对测试结果有影响。例如,如果在传输中应用层流量很大的话, 被测设备将会占用很大的系统资源去处理包检查,导致无法处理新请求的连接,引起测试结果偏小;反之测试结果会大一些。所以没有测试条件而只谈并发连接数是难以定断的。从宏观上来看,这个测试的最终目的是比较不同设备的“资源”,也就是说处理器资源和存储资源的综合表现。
目前市场上出现了大家盲目攀比并发连接数的情况。事实上,并发几十万的连接数应该完全可以满足一个电信级数据中心的网络服务需求了,对于一般的企业来讲, 甚至几千个并发连接数还绰绰有余。并发连接总数能由仪表自动测试得出结果,减少了测试所用的时间和人力,这类仪表目前很多,常见的有Spirent的Avalanche、IXIA的IxLoad以及BPS等。
新建连接速率
这个指标主要体现了被测设备对于连接请求的实时反应能力。对于中小用户来讲,这个指标显得更为重要。可以设想一下,当被测设备可以更快的处理连接请求,而且可以更快传输数据的话,网络中的并发连接数就会倾向于偏小,从而设备压力也会减小,用户感受到的防火墙性能也就越好。Avalanche、IXLOAD以及BPS等测试工具都可以测试新建连接速率,帮助使用者搜索到被测设备能够处理的峰值,测试原理基本都是相同的。
2. 模拟真实应用环境进行性能指标测试
如果能够100%模拟用户的实际应用环境对防火墙性能进行测试,那么防火墙选型这类活动将变得非常简单,而且防火墙性能指标将变得更加有意义。但是模拟真实应用环境并不是简单的事情。主要是因为用户环境的复杂性和多变性导致真实环境的模拟几乎不可能实现。这里讨论的模拟真实应用环境测试,只是将用户环境进行抽象,使得模拟环境在满足测试条件的情况下最大限度的贴近真实应用环境。
1) 多应用协议吞吐量测试
前面提到goodput是衡量防火墙吞吐量的重要指标,基线测试中,一般采用HTTP协议作为应用层协议进行测试。而在实际应用环境中,应用层的流量并不是纯粹的HTTP,还有其他协议。如果用HTTP协议代替其他应用层协议测试应用层吞吐量,显然是不合适的。因此需要针对不同的应用场景,设计典型的应用层流量分布模型,按照不同的比例分配带宽。如图3所示,是一个典型的某场景应用带宽分布。
图3 典型应用带宽分布
模拟多协议测试,需要测试工具支持模拟多协议流量混合功能,并且能够做基于协议的测试结果分析。包括不同协议的吞吐量、转发延迟等。在多协议模拟测试中,BPS支持丰富的应用层协议,并且具有良好的流量混合功能。
2) DDoS攻击条件下的转发性能测试
目前大部分防火墙常常遭到试图闯入用户网络的黑客的攻击。DDoS攻击是黑客常用的攻击手段,该攻击使用虚假IP地址进行攻击并且持续不断的更换形式。因此在模拟真实环境的测试中,将DDoS攻击作为测试输入条件是很有必要的。
这个测试的目的是将DDoS攻击作为流量的一部分通过防火墙,模拟现实网络在DDoS攻击条件下,被测试设备转发性能的下降程度。其中DDoS流量对于正常流量的影响,可通过变化混合的流量比例来实现。测试步骤如下:
保持DDoS流量不变(例如DDoS流量占接口带宽的5%),改变多协议正常流量的比例关系,例如SMTP:FTP:HTTP:HTTPS以45:15:30:10的比例混合,与DDoS攻击流量经过防火墙转发后,查看测试结果,查看转发性能与没有DDoS攻击流量的情况下相比变化幅度是否满足实际需求,同时也可以测试通过防火墙的传输延迟是否也保持在一个可接受的水平;
变化DDoS流量占接口带宽的比例(例如从3%、5%到8%),保持正常流量不变,测试转发性能在不同DDoS攻击强度下的变化情况,以及传输延迟在不同攻击强度下的变化是否满足实际应用需求;
两者都变化的情况,即在修改DDoS流量的同时也修改正常流量的比例,记录不同组合情况下的转发性能与延迟状况。
3) 在一定负载条件下的新建连接测试
新建连接体现了新用户能否快速接入网络。一般理想情况下测试新建连接速率的时候都是在打开一个连接后立即关闭,这种情况下测试出来的结果一般是比较好的。但是在实际应用场景中,情况并非如此,一般新建一个连接的时候会已经存在一定的连接,也就是在有一定负载(并发连接)的条件下测试新建连接速率。测试步骤为:
首先测试出基线新建速率,也就是在没有负载条件下的理想新建速率;
逐步增加负载,可以按照基线并发的百分比设定负载值,例如20%,30%,50%,70%,90%等。但是在测试的时候需要注意,在一定负载条件下测试不要超过最大并发连接数,否则测试结果是不准确的;
测试中测试时间需要根据情况确定。如果采用打开/关闭TCP连接的方式,理想情况下在设备上看到的并发连接数应该是测试负载的大小,但是由于在一定负载条件下,设备处理连接关闭的速率会受到一定影响,导致并发随着新建速率的增大而不断增大,如果测试时间足够长,并且处理速度较慢的话,可能导致并发连接数超过基线连接数限制。因此在一定负载条件下,需要测试足够长的时间,如果新建连接总是成功的,那么说明该设备的性能比较好的。
结束语
防火墙在保障网络安全的同时,必然会引入一定的网络性能损耗。根据实际网络环境选择一款性能合适的防火墙对于用户来说是至关重要的。本文从防火墙评估的角度介绍了防火墙基线性能测试和模拟实际环境性能测试的一般方法。在实际防火墙评估中,还应该根据实际应用场景,最大限度的提取应用的关键流量特征,并对流量特征进行抽象建模,利用测试仪器对流量进行模拟,从而得到与实际应用较符合的性能指标。
推荐阅读:如何创建一个用于网络监控的网络性能基线
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国