网关类产品的性能测试之四:测试工具、注意事项及经验总结

前面我们介绍了各性能指标项的测试方法。本篇主要概述测试工具、测试拓扑及经验总结。

目录

本系列分为以下四部分:

  1. 简介及性能指标介绍
  2. RFC2544四项指标测试方法
  3. 其它指标测试方法
  4. 测试工具、注意事项及经验总结

术语介绍

文章中会涉及到一些术语,现总结如下,供参考。

  • 性能测试,对产品负载压力承受能力的测试。
  • RFC,互联网及软件等的一些标准,基本的互联网通信协议都有在RFC文件内详细说明。
  • 网关类产品,部署作为网关的设备及软件。
  • IDS,入侵检测系统
  • IPS,入侵防御系统
  • UTM,对防火墙、IDS、IPS三个的综合,可以比较全面的进行管理。但是UTM通过一台物理设备集成大量功能,导致了应对大量数据的时候效率会下降,同时存在设备损坏导致全面崩溃的可能。
  • NGFW,下一代防火墙,安全设备类产品未来的发展方向。
  • 被测设备,devices under test,测试设备。

性能测试工具

对于网关类产品,一般要求的性能值比较高,因此测试一般使用专用的硬件设备。
常用硬件设备有IAXA等。
常用的测试软件有:

  • iperf
  • Jmeter使用Java编写,主要用于软件的性能测试,但也可扩展用于网络性能测试。机器配置足够的情况下,流量可打到上百M。
  • tomahawk是一个回放数据包的工具,也可完成部分性能测试。
  • 而软件的性能测试常用的LoadRunner,一般难以用于网络的性能测试。

测试拓扑

前文主要介绍了2-7层的性能测试方法,除此之外我们还需要注意测试拓扑结构。
从物理环境上看,性能测试拓扑是比较单一的,没有多少复杂度:测试仪表连接被测设备,就可开始测试。需要注意的是测试仪中的制定的测试拓扑,在每次性能测试开始前,我们都需要明确客户端数目、服务器数目、源IP、目的IP和NAT等。以下为根据实际的测试经验简单总结一下性能测试在拓扑制定上需要注意的事项。

  1. 在测试2-7层的性能时,测试仪和被测设备的转发模式我们一般会选择透明模式或者路由模式。
    透明模式相当于二层,被测设备的配置相对简单,配置相应的转发规则即可。测试仪表的配置中源IP地址和目的IP地址要在相同的地址网段中,客户端和服务器的数目不应大于IP地址数,客户端的数目建议大于服务器端数目。
    路由模式相当于三层,被测设备的配置相对复杂一些,需要配置接口的IP地址、路由表及相应的转发规则等。测试仪表的配置中源IP地址和目的IP地址要与被测设备的接口IP地址相对应,并且需要配置ARP响应机制或IPv6地址的学习机制,其它与配置透明模式的一致。
  2. 在测试2-3层的性能,特别是RFC2544四项值时,建议测试仪采用UDP协议做为测试的承载协议。
    当然,也有一些客户会选择IP层或者TCP层做为承载协议。这里没有硬性的规定,但大部分评测机构或者客户都会选择UDP协议进行测试。
    当选择UDP协议进行测试时,UDP协议的端口号应避免已知的常用协议,如DNS的53端口,TFTP的69端口等,当然也没有硬性的规定。建议使用UDP端口7或0做为源和目的端口,或者直接使用测试仪的默认端口即可。
  3. 在测试4-7层的性能时,需要注意客户端与服务器之间的对应关系。TODO
    在测试需求或测试要求中,我们可能会遇到多个客户端对应一台服务器或者多个客户端对应多台服务器的情况。
    在多对一的环境中,控制客户端数目不要过多,应根据被测设备应用的实际场景确定数目,源IP地址和目的IP地址建议使用一个C类网段。
    在多对多的环境中,会出现两种测试拓扑结构。其中一种是多对一的单一叠加方式,另一种是全部混搭方式。这两者的客户端请求方式存在很大的差异。全部混搭方式要比单一叠加的方式更接近实际的应用场景,而这正是我们搭建测试拓扑的关键。如果被测设备足够好,无论采用哪种方式,性能结果都不应该有变化。因此,建议在测试4-7层的性能时,应采用全部混搭的方式搭建拓扑结构。
  4. 在测试4-7层的性能时,还应注意源IP地址与目的IP地址的数目。
    前面我们提到在多对一的测试拓扑中,建议使用一个C类地址段。在多对多的测试拓扑中,可以使用一个C类地址段,也可以使用多个C类地址段或一个B类地址段。
    这里建议在多对多的测试拓扑结构中,决定使用几个地址段时,应参考被测设备在实际应用场景所能承受的最大负载。比如,将一个百兆的网关类设备放在一个数据中心的出口处显然不太适合,所以在测试时给它分配一个B类地址段或多个C类地址段,也显然不适合。
    在设计和搭建测试拓扑时,应充分考虑被测设备所应用的场景,从而给它量身定做源IP地址和目的IP地址、甚至是客户端与服务器的数量等。

总结

通过本篇相信大家对性能测试有了一更深入的理解,以下是一些经验总结及注意事项。

  1. 对于网络安全类产品或网关类产品,RFC2544四项值一直作为性能测试的首要测试指标,从1999年发布一直使用至今。
    业界有人认为RFC2544四项值已经不太适用于现代的产品,特别是对于IPS、AV和UTM的产品。但无可否认的是,RFC2544四项值是最能反映产品在底层转发的性能,而且从侧面反映了产品在低层转发过程中的稳定性。所以,RFC2544四项值将会被一直延用,并且作为一个重要测试指标一直延用下去。
  2. 在网络安全类产品或网关类产品中,RFC3511对于4-7层的性能测试方法的定义过于模糊。
    这使得4-7层的性能测试存在很大的争议,比如请求文件的大小、每条连接中请求的次数、协议版本、客户端与服务器数目等,都是争义的内容。特别是当产品集成了IPS、AV 和UTM功能后,在测试的细节上争义更为严重。比如URL地址是否相同、文件类型的变化、文件内容是否相同、IP地址端口的遍历、客户端与服务器所使用的软件及软件版本等。一个细微的不同,可能就会导致测试结果不同。所以,在对4-7层进行性能测试时,一定要与客户或评测机构沟通,指定相关的细节,从而验证产品的真实性能。同时,做为性能测试人员,在制定测试方法和测试拓扑时,应充分考虑被测设备所能应用的场景。这样的测试结果才是真实、可信并且有意义的。
  3. 在此系列文章中没有介绍混合流量的性能测试,特别是应用层协议的混合流量性能测试。
    首先无论是单一协议还是混合协议,主要关注新建速率和吞吐量值。而且混合流量中吞吐量的结果,可能是大家最为关注的。但混合流量中各协议的分配比例,没有一个权威的机构支撑,也难有哪个机构能够支撑。因为网络环境中的应用千变万化,网络实际应用场景也大不相同,比如教育网、中小企业、政府机构、金隔业场景等。混合流量没有一个统一的模板,所以在指定协议分配比例时,多数是参考评测机构发布的数据或者凭借自身经验指定的模板。因此,混合流量的性能测试没有在本篇中涉及。
  4. 对于性能测试人员,不仅要了解产品特性,还要对协议有一定的了解。
    特别是应用层的协议,了解各协议的数据处理流程,从而指定客户端请求与服务器的应答等过程。
  5. 性能测试也要有需求意识。
    性能测试人员要懂得倾听,明白哪些是客户最想了解的,哪些是评测机构最想知道的。只有了解到需求,才能制定一份符合产品的测试方法,才能得出产品的真实性能结果。

参考索引