当前位置:文档之家› 防火墙性能测试综述

防火墙性能测试综述

防火墙性能测试综述摘要作为应用最广泛的网络安全产品,防火墙设备本身的性能如何将对最终网络用户得到的实际带宽有决定性的影响。

本文从网络层、传输层和应用层三个层面对防火墙的常用性能指标及测试方法进行了分析与总结,并提出了建立包括网络性能测试、IPSec VPN性能测试及安全性测试在内的完整测试体系及衡量标准的必要性。

1 引言防火墙是目前网络安全领域广泛使用的设备,其主要目的就是保证对合法流量的保护和对非法流量的抵御。

众所周知,在世界范围内网络带宽(包括核心网络及企业边缘网络)总的趋势是不断的提速升级,然而从网络的整体结构上看,防火墙恰处于网络的末端。

显而易见,防火墙的网络性能将对最终网络用户得到的实际带宽有决定性的影响,特别是骨干网上使用的千兆防火墙,性能的高低直接影响着网络的正常应用。

所以,目前防火墙的网络性能指标日益为人们所重视,地位也越来越重要。

因此,在防火墙测试工作中性能测试是极其重要的一部分。

作为网络互联设备,参考RFC1242/2544对其在二、三层的数据包转发性能进行考量,是大部分网络设备性能测试的基本手段和方法,同时进行二、三层的测试也可以帮助确定性能瓶颈是存在于下层的交换转发机制还是在上层协议的处理,并检测所采用的网卡及所改写的驱动程序是否满足性能要求,它有利于故障的定位。

作为防火墙来说,最大的特点就是可以对4~7层的高层流量进行一定的控制,这就必然对性能造成一定的影响,而这种影响有多大,会不会成为整个网络的瓶颈,就成为人们所关心的问题。

据此,我们认为完整的防火墙网络性能测试应该由网络层测试、传输层测试和应用层测试三部分组成。

2 网络层性能测试网络层性能测试指的是防火墙转发引擎对数据包的转发性能测试,RFC1242/2544是进行这种测试的主要参考标准,吞吐量、时延、丢包率和背对背缓冲4项指标是其基本指标。

这几个指标实际上侧重在相同的测试条件下对不同的网络设备之间作性能比较,而不针对仿真实际流量,我们也称其为“基准测试”(Base Line Testing)。

2.1 吞吐量(1)指标定义网络中的数据是由一个个数据帧组成,防火墙对每个数据帧的处理要耗费资源。

吞吐量就是指在没有数据帧丢失的情况下,防火墙能够接受并转发的最大速率。

IETF RFC1242中对吞吐量做了标准的定义:“The Maximum Rate at Which None of the Of fered Frames are Dropped by the Device.”,明确提出了吞吐量是指在没有丢包时的最大数据帧转发速率。

吞吐量的大小主要由防火墙内网卡及程序算法的效率决定,尤其是程序算法,会使防火墙系统进行大量运算,通信量大打折扣。

(2)测试方法在RFC2544中给出了该项测试的步骤过程及测试方法:在测试进行时,测试仪表的发送端口以一定速率发送一定数量的帧,并计算所发送的字节数和分组数,在接收端口也计算所接收的字节数和分组数,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。

一般测试仪表都采用二分法来找到最大的转发速率。

吞吐量测试结果以bit/s或fit/s表示。

SPIRENT公司的SmartApplications和IXIA公司的IxAutomate都是对RFC1242/2544指标测试的自动化测试软件。

在对防火墙吞吐量的测试中,我们遵照RFC建议,采用64,128,256,512,1024,1280和1518字节等7种不同长度的数据帧来进行。

为了全面衡量防火墙的吞吐能力,一般采用双向测试,测试时长为120s。

在测试过程中我们还应该考虑防火墙处理规则时要占用一定的系统资源,为了比较安全策略规则对转发性能的影响,我们在防火墙上加载多条规则和一条规则,分别测试其吞吐量。

在有些厂商提供的测试数据中指出吞吐量测试是在“Acceptable Loss”,即允许丢包率为多少下的吞吐量测试结果。

这其实不是吞吐量的结果,因为哪怕数据流丢失一个数据帧也会引起明显的延迟。

测试的吞吐量是允许丢包率为0的情况下得到的结果,即使丢包率设为万分之一,所得到的结果也可能产生很大的差距。

2.2 时延网络的应用种类非常复杂,许多应用对时延非常敏感(例如音频、视频等),而网络中加入防火墙必然会增加传输时延,所以较低的时延对防火墙来说是不可或缺的。

测试时延是指测试仪表发送端口发出数据包经过防火墙后到接收端口收到该数据包的时间间隔,时延有存储转发时延和直通转发时延两种。

因为直通转发技术不管数据包的整体大小,而只根据目的地址来决定转发方向,所以它的时延是固定的,取决于设备解读数据包前6个字节中目的地址的解读速率。

设备只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部被接收,也不进行错误校验。

存储转发技术是计算机网络领域应用最为广泛的转发方式,它把输入端口的数据包先存储起来,然后进行CRC检查,在对错误包处理后才取出数据包的目的地址,通过查找表转换成输出端口送出数据包。

采用存储转发技术的设备由于必须要接收完整的数据包后才开始转发,所以它的时延与数据包大小有关。

数据包大,则时延大;数据包小,则时延小。

IETF RFC1242中对时延也做出了定义和计算方法。

对存储转发设备,时延按照LIFO的方法计算,即从数据帧的最后一位进入输入端口开始计时,到数据帧的第一位出现在输出端口结束,这期间的时间间隔。

而对直通转发设备,时延按照FIFO的方法计算,即从数据帧的第一位进入输入端口开始计时,到数据帧的第一位出现在输出端口结束,这期间的时间间隔。

由于防火墙工作在第三层,数据包转发机制都采用的是存储转发机制。

所以,我们考察在给定的速率下(保证防火墙在此速率下不丢包),防火墙存储转发的时延。

IETF RFC2544中给出了该项测试的步骤过程,首先测定防火墙在每种数据帧长下的吞吐量大小。

以一定数据帧长在测定的对应发送吞吐量速率下发送数据流穿过防火墙,测试过程一般延迟120s,测试重复至少20次取平均值。

2.3 丢包率在IETF RFC1242中对丢包率作出了定义,是指在正常稳定的网络状态下,应该被转发,但由于缺少资源而没有被转发的数据包占全部数据包的百分比。

较低的丢包率,意味着防火墙在强大的负载压力下,能够稳定地工作,以适应各种网络的复杂应用和较大数据流量对处理性能的高要求。

在IETF RFC2544中给出了丢包率的计算方法:以一定的发送速率发送特定数量的数据帧穿过防火墙,测试并统计被防火墙转发的数据帧。

丢包率由以下等示计算:[(输入数据帧统计输出数据帧统计)×100]/输入数据帧统计。

在实际测试过程中,一般要测试防火墙在不同负荷下丢弃包占收到包的比例,这里的不同负荷通常指从吞吐量测试到线速,步长一般使用线速的10%。

即第一次测试应按照输入媒介帧速率的100%来运行,然后依次以90%,80%重复以上测试,直到没有丢包产生。

2.4 背靠背缓冲背靠背缓冲是测试防火墙设备在接收到以最小帧间隔传输的网络流量时,在不丢包条件下所能处理的最大包数。

该项指标是考察防火墙为保证连续不丢包所具备的缓冲能力,因为当网络流量突增而防火墙一时无法处理时,它可以把数据包先缓存起来再发送。

单从防火墙的转发能力上来说,如果防火墙具备线速能力,则该项测试没有意义。

因为当数据包来得太快而防火墙处理不过来时,才需要缓存一下。

如果防火墙处理能力很快,那么缓存能力就没有什么用,因此当防火墙的吞吐量和新建连接速率指标都很高时,无论防火墙缓存能力如何,背靠背指标都可以测到很高,因此在这种情况下这个指标就不太重要了。

但是,由于以太网最小传输单元的存在,导致许多分片数据包的转发。

由于只有当所有的分片包都被接受到后才会进行分片包的重组,防火墙如果缓存能力不够将导致处理这种分片包时发生错误,丢失一个分片都会导致重组错误。

可见,背靠背缓冲这一性能指标还是有具体意义的。

在IETF RFC2544中给出了背靠背缓冲的计算方法:从空闲状态开始,测试仪表以给定的传输媒介最小合法间隔极限的传输速率向待测防火墙发送相当数量的固定长度的帧并计算由防火墙转发的数据帧数,如果发送数据帧数等于转发数据帧数,则增加发送数据帧的数量重复测试。

如果转发数据帧数少于发送数据帧数时,则减少发送帧数重复测试。

它的值是一定大小的帧数,该帧数是防火墙在没有丢包情况下的最长突发数,即当出现第一个帧丢失时,所统计发送的帧数。

在RFC2544中推荐每次测试至少运行2s并且应该重复至少50次得到平均值。

3 传输层性能测试传输层性能测试指的是测试与防火墙状态相关的性能和扩展性,它主要包括TCP并发连接数(Concurrent TCP Connection Capacity)和最大TCP连接建立速率(Max TCP Connection Establishment Rate)两项指标的测试。

3.1 TCP并发连接数并发连接数是衡量防火墙性能的一个重要指标。

在IETF RFC2647中给出了并发连接数(Concurrent connections)的定义,它是指穿越防火墙的主机之间或主机与防火墙之间能同时建立的最大连接数。

它表示防火墙对其业务信息流的处理能力,反映出防火墙对多个连接的访问控制能力和连接状态跟踪能力,这个参数的大小直接影响到防火墙所能支持的最大信息点数。

像路由器的路由表存放路由信息一样,并发连接表存放防火墙的并发连接信息,它可在防火墙系统启动后动态分配进程的内存空间,其大小也就是防火墙所能支持的最大并发连接数。

大的并发连接表可以增大防火墙最大并发连接数,允许防火墙支持更多的客户终端。

尽管看上去防火墙的并发连接数似乎是越大越好。

但是与此同时,过大的并发连接表也会带来一定的负面影响:首先并发连接数的增大意味着对系统内存资源的消耗。

其次,并发连接数的增大应当充分考虑CPU的处理能力,CPU的主要任务是把网络上的流量从一个网段尽可能快速地转发到另外一个网段上,并且在转发过程中对此流量按照防火墙的访问控制策略进行许可检查、流量统计和访问审计等操作,这都要求防火墙对并发连接表中的相应表项进行不断地更新读写操作。

如果不顾CPU的实际处理能力而贸然增大系统的并发连接表,势必影响防火墙对连接请求的处理延迟。

IXIA公司的IxLoad测试软件有对防火墙并发连接数的测试套件。

在做并发连接数测试的时候,所采用的参数不同,得出的测试结果也会有较大差距。

例如,选用的传输文件大小就会对测试结果有一定的影响。

因为如果在传输中高层流量很大的话,被测设备将会占用很大的系统资源去处理包检查,导致无法处理新请求的连接,引起测试结果偏小。

反之,测试结果会大一些。

相关主题