
1 引言
近年来互联网快速发展给人们生活带来方便的同时,也给个人信息安全,网络安全带来了更大的隐患和挑战。防火墙主要目的就是保证对合法流量的保护和对非法流量的抵御。众所周知,在世界范围内网络带宽(包括核心网络及企业边缘网络)总的趋势是不断的提速升级,然而从网络的整体结构上看,防火墙恰处于网络的末端。显而易见,防火墙的网络性能将对最终网络用户得到的实际带宽有决定性影响,特别是骨干网上的防火墙,性能的高低直接影响着网络的正常应用。所以,目前防火墙的网络性能指标越来越受到关注,地位也越来越重要。
作为防火墙来说,最大的特点就是可以对4~7层的高层流量进行一定的控制,这就必然对性能造成一定的影响,而这种影响有多大,会不会成为整个网络的瓶颈,就成为人们所关心的问题。据此,我们认为完整的防火墙网络性能测试应该由传输层性能测试、应用层性能测试、防攻击性能测试三个部分组成。
2 传输层性能测试
传输层性能测试指的是测试与防火墙状态相关的性能和扩展性,它主要包括TCP并发连接数(Concurrent TCP Connection Capacity)和最大TCP连接建立速率(Max TCP Connection Establishment Rate)两项指标的测试。
2.1 TCP并发连接数
并发连接数是衡量防火墙性能的一个重要指标。在IETF RFC2647中给出了并发连接数(Concurrent connections)的定义,它是指穿越防火墙的主机之间或主机与防火墙之间能同时建立的最大连接数。它表示防火墙对其业务信息流的处理能力,反映出防火墙对多个连接的访问控制能力和连接状态跟踪能力,这个参数的大小直接影响到防火墙所能支持的最大信息点数。
像路由器的路由表存放路由信息一样,并发连接表存放防火墙的并发连接信息,它可在防火墙系统启动后动态分配进程的内存空间,其大小也就是防火墙所能支持的最大并发连接数。大的并发连接表可以增大防火墙最大并发连接数,允许防火墙支持更多的客户终端。尽管看上去防火墙的并发连接数似乎是越大越好。但是与此同时,过大的并发连接表也会带来一定的负面影响:首先并发连接数的增大意味着对系统内存资源的消耗。其次,并发连接数的增大应当充分考虑CPU的处理能力,CPU的主要任务是把网络上的流量从一个网段尽可能快速地转发到另外一个网段上,并且在转发过程中对此流量按照防火墙的访问控制策略进行许可检查、流量统计和访问审计等操作,这都要求防火墙对并发连接表中的相应表项进行不断地更新读写操作。如果不顾CPU的实际处理能力而贸然增大系统的并发连接表,势必影响防火墙对连接请求的处理延迟。
IXIA公司的IxLoad测试软件有对防火墙并发连接数的测试套件。在做并发连接数测试的时候,所采用的参数不同,得出的测试结果也会有较大差距。例如,选用的传输文件大小就会对测试结果有一定的影响。因为如果在传输中高层流量很大的话,被测设备将会占用很大的系统资源去处理包检查,导致无法处理新请求的连接,引起测试结果偏小。反之,测试结果会大一些。所以,没有测试条件而只谈并发连接数是难以定断的。从宏观上来看,这个测试的最终目的是比较不同设备的“资源”,也就是说处理器资源和存储资源的综合表现。尽管并发连接数仅仅用于描述一个状态而不需要数据的传输,但并发连接也假定所有存在的连接实际上均有能力传输数据。如果数据在一个连接上不能被发送,则这个连接不应该被计算在并发连接数中。
IxLoad测试软件是按照二分法找出系统所能承受的最大并发性能指标,并且给出简单明了的测试报告,图1是一台并发连接数为19万的防火墙利用IxLoad测试的结果。测试的优势在于丰富的4-7层真实业务流量下从测试报告上很直观的了解到设备的并发性能情况,比传统测试仪更接近实际网络环境。
图 1 一台并发连数为19万的防火墙利用IxLoad测试结果
2.2 最大TCP连接建立速率
该项指标是测试防火墙维持的最大TCP连接建立速度,本测试用以体现防火墙更新状态表的最大速率,考察CPU的资源调度状况。这个指标主要体现了被测防火墙对于连接请求的实时反应能力。对于中小用户来讲,这个指标就显得更为重要。可以设想一下,当被测防火墙每秒可以更快地处理连接请求,而且可以更快地传输数据的话,网络中的并发连接数就会倾向于偏小,防火墙的压力也会减小,用户看到的防火墙性能也就越好,所以TCP连接建立速率的确是个很重要的指标。
理想的测试工具可以帮助使用者搜索到被测防火墙能够处理的峰值。IXIA公司的IxLoad测试软件有对新建连接速率的测试套件,它是按照二分法找出系统所能承受的最大性能指标,图2是一台新建连接速率为每秒1600个的防火墙利用IxLoad测试的结果。
图 2 一台新建连接速率为每秒1600个的防火墙利用IxLoad测试的结果
3 应用层性能测试
参照IETF RFC2647/3511,应用层测试指的是获得处理HTTP应用层流量的防火墙基准性能,主要包括HTTP传输速率(HTTP Transfer Rate)和最大HTTP事务处理速率(Max HTTP Transaction Rate)。
3.1 HTTP传输速率
该测试指标主要是测试防火墙在应用层的平均传输速率,是被请求的目标数据通过防火墙的平均传输速率。该算法是从所传输目标数据首个数据包的第一个比特到最末数据包的最后一个比特来进行计算,平均传输速率的计算公式为:传输速率(bit/s)= 目标数据包数×目标数据包大小×8bit/测试时长。该项指标的测试也是我们常说的有效吞吐量(Goodput)测试。当我们谈起吞吐量时,大多都是指二/三层的测试结果。但是随着测试面向的流量转为四层以上,有效吞吐量的概念就显得重要起来了。这个概念通俗点讲,就是除掉TCP因为丢包和超时重发的数据,实际的每秒传输有效速率。通过这个测试我们能够得到什么信息呢?首先,我们可以知道测试中的时延和丢包对最终用户的影响有多大。因为最终用户是不关心二/三层的,他们的大部分应用都是运行在四层以上。如果有效吞吐量性能不好,即使二/三层的转发性能很好,仍会导致整个主机看起来运行缓慢。其次,这个测试也有助于帮助厂商定位问题及找到系统的未来发展空间。可以将此结果和基准测试中的结果作一对比,确定是第三层的转发引擎还是第四层的状态检查影响了系统性能。
3.2 最大HTTP事务处理速率
该项指标是测试防火墙所能维持的最大事务处理速率,即用户在访问目标时,所能达到的最大速率。测试过程通过多轮测试,二分法位来获得防火墙能维持的最大事务处理速率。对于不同轮次的测试,模拟的HTTP客户端对模拟HTTP服务器的GET请求速率是不同的,但在同一轮次的测试中客户端必须维持以恒定速率来发起请求。如果模拟的客户端每个连接中有多个GET请求,则每个GET请求中的数据包大小必须相同。当然在不同测试过程中则可采用不同大小的数据包。
4 防攻击性能测试
以上各项测试指标是目前我们常用的防火墙性能测试衡量参数。除外,防火墙的安全性测试也是不容忽视的内容。因为对于防火墙来说,最能体现其安全性和保护功能的便是它的防攻击能力。性能优良的防火墙能够阻拦外部的恶意攻击,同时还能够使内网正常地与外界通信,对外提供服务。因此,我们还应该考察防火墙在建立正常连接的情况下防攻击的能力。这些攻击包括IP地址欺骗攻击、ICMP攻击、IP碎片攻击、拒绝服务攻击、特洛伊木马攻击、网络安全性分析攻击、口令字探询攻击、邮件诈骗攻击等。
随着互联网发展,应用形式的不断变化,层出不穷的安全威胁发生在我们身边,高精度、高效率的入侵检测,全面应用层流量识别与管理,实时的病毒防护,迅捷的URL过滤功能都是我们下一代防火墙关注的技术,然而防火墙不能成为网络瓶颈,在进行深度数据包检测的时候不能对设备性能带来瓶颈,所以除了关注传统防火墙的性能测试参数之外,还需要关注开启IPS及内容过滤、防病毒时的新建,并发,HTTP传输速率等。
国内外在防火墙的安全性测试方面的研究还不是很深入,测试的手段和方法也比较单一,缺乏权威性的、具有说服力的评测标准和体系。但最清楚的是原有的单一负载和构造的协议流量已不再适用,需要模拟真实场景测试,目前最理想的测试工具是BPS测试仪,内置混合流量模板,比如高校教育场景,企业数据中心场景和企业内部网场景等典型应用场景,分别开启IPS检测、应用识别、内容过滤、及URL过滤时的新建,并发,吞吐测试。
这种测试的特点是尽可能的把测试的流量和测试的环境更接近于真实,甚至有可能就将真实的流量捕获之后通过BPS测试仪重放到网络中。
图 3 DPI MAX Bandwidth测试结果
5 结束语
防火墙技术是不断完善和发展的过程,随着攻击类型变化与发展,网络负载与性能不断的扩容,防火墙性能测试也面临着更大的挑战,传统的测试方法和工具已不再适用,流量模型过于稳定可能造成一些问题难以在测试中发现,所以需要更加贴近真实的网络环境,充分考虑到典型场景中复杂而混乱的流量下进行防火墙处理能力的评估,对防火墙性能在真实运行状态下给出一个绝对的评价,这也是我们一直追求的目的,本文提到的IxLoad和BPS测试仪模拟的流量更接近于真实流量,测试模型也越来越丰富,目前发展空间比较大,需要进一步探索。