防火墙性能测试综述
- 格式:doc
- 大小:132.00 KB
- 文档页数:6
防火墙性能测试综述
摘要
作为应用最广泛的网络安全产品,防火墙设备本身的性能如何将对最终网络用户得到的实际带宽有决定性的影响。本文从网络层、传输层和应用层三个层面对防火墙的常用性能指标及测试方法进行了分析与总结,并提出了建立包括网络性能测试、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]/输入数据帧统计。在实际测试过程中,一般要测试防火墙在不同负荷下丢弃包占收到包的比例,这里的不同负荷通常指从吞吐量测试到线速,步长一