防火墙是现在网络安全领域广泛使用的设备。 其主要目的是确保对合法流量的保护和对非法流量的抵御。众所周知, 在世界范围内网络带宽(包括核心网络及企业边缘网络)总的趋势是不断的提速升级, 然而从网络的整体结构上看, 防火墙恰处于网络的末端。显而易见,防火墙的性能将对终网络用户得到的实际带宽有决定性的影响。所以现在防火墙的性能指标日益为人们所重视,地位也越来越重要。
防火墙的分类
关于防火墙的分类方式有很多种: 例如按体系结构可分为纯软件,软硬结合和 纯硬件防火墙; 按逻辑功能可分为静态包过滤、动态包过滤和应用代理型防火墙等。 本文所讨论的测试内容适合绝大部分上述防火墙。 有关各种类型防火墙的信息, 读者可从各大国际信息安全实验室的网站中获得, 这里将不再赘述。
防火墙的二层和三层测试
一般说来, 对于一个没有配置规则的防火墙设备, 我们能够近似的当作一个普通的网络互联设备来进行性能测试。虽然对于少数设备来说这样的近似并不准确。 RFC1242和RFC2544是在进行这种测试的主要标准。 RFC1242是对于一般的网络设备的测试术语的定义, 而RFC2544则是对于测试方法的定义。对大多数在中国从事网络工作的技术人员来说, 这两个RFC并不陌生。 这里对个别要点做以简单的介绍。
首先将防火墙配置为“透明模式”。 假如其支持“网桥透明模式”和“路由透明模式”, 则在两种情况下建议都进行测试比对。 普遍的测试帧封装格式为UDP, 测试帧的大小为64,128,256,512,1024,1280、1518。 在时间紧迫的情况下, 也可抽取64、512、1518这几种帧长做为选择。测试的指标包括吞吐量(Throughput)、发送延迟(Latency)、丢包率(Packet Loss)、背对背 缓冲(Back to Back)。 这几个指标实际上侧重在相同的测试条件下对不同的网络设备之间做性能比较, 而不针对仿真实际流量。我们也称其为“基准测试”(Base Line Testing)。 基准测试是个很重要的概念, 贯穿于各种不同的数据设备的评测之中。在四个指标里面, 吞吐量是应该先被测试的,然后用测出的数值作为发送速率上限,来进行延迟指标的测试。从经验上来讲,纯软件和软硬结合的防火墙在测试的时候有可能表现不太稳定,常出现测试结果有上下波动的情况。这是个在测试防火墙时候的现实问题。要解决他, 一般建议将防火墙在每次测试之间上电重启动, 以确保测试的可重复性。另外一个办法是测多次, 取平均值。 后者考虑到了防火墙稳定性的因素,相对来讲反映了更贴近实际使用的方面, 所以也不失为一个好选择。
这个二层和三层的测试能够提供哪些有用的信息呢? 他能够帮助确定性能瓶颈是存在于下层的交换转发机制, 还是在上层协议的处理。 换句话说,他有利于故障的定位。即使对于一些不做交换转发的厂商,他们也能够发现所采用的网卡及所改写的驱动程式是否满足性能需要,同时也能够得到一些功能上的验证(如双工/速率状态是否正常等等)。对很多用户来讲, 除非他们想把这个防火墙只当作一个普通的路由器来用, 否则不配置任何的安全规则是比较少 见的。而在有规则的条件下进行的性能测试显然更有意义一些。 我们将这部分的讨论放到后面的四层到七层的测试部分中。因为有很多的规则都是既涉及到三层的信息也有四层的信息。