1 引言
利用IPSec VPN技术,企业能够将Internet作为其通信网络基础的骨干,实现全球通达,并大大节约成本,同时保持内部通信的安全。然而,成功的IPSec产品开发与实施面临严峻的挑战,即如何确保IPSec协议的一致性,并在网络性能和功能方面管理IPSec VPN的效果。正确的测试方法能够绝妙地应对挑战,思博伦通信的IPSec一致性与性能测试方法便是一个例证。
2 IPSec一致性测试的重要性
尽管IETF确立IPSec协议标准已有数年之久,但是早期的实施并不完全符合标准,因而无法一致。对IPSec VPN服务的实施者来说,这是无法接受的。
从IPSec网关厂商的角度来看,服务提供商和网络管理员需要IPSec与标准保持一致,他们经常自行校验,以确保一致性。在竞争激烈的市场环境中,厂商无法负担被客户查证出错误的后果。除了确保一致性之外,一致性测试不仅能够确保产品的质量,而且还能够缩短产品的开发周期,因为在开发周期中如果发现一个程序错误或者更正一个设计逆流,都将会对产品的最终质量产生重大影响。
对于服务提供商和网络管理员来说,多厂商环境是现实的,如果没有基于标准的实施,这种现实性将无法管理。由于他们还定期升级自己的IPSec VPN,因此确保这些升级不会打破现有的服务就变得非常重要。虽然并非所有的一致性要求都是针对IPSec的,但是将IPSec加载到网络上增加了一致性测试的复杂性和必要性。
3 可扩展性与性能测试的重要性
IPSec要求在发送数据之前先在站点之间或客户端与网关之间建立隧道。使用IPSec VPN服务的用户或站点数量可依照网关所能支持的隧道数量进行扩展。隧道所能支持的最大数,或称隧道容量,是厂商用以区别自己的产品与其它同类竞争产品的一个关键衡量标准。其中一个常常被忽视的相关衡量标准就是隧道建立速率(Tunnel Setup Rate),或者说是一个设备每秒钟所能建立的隧道数目。对于拥有众多站点或用户的电信公司级大型IPSec网关来说,隧道容量和隧道建立速率尤其重要。
增强安全就要以牺牲性能为代价,在IPSec的实施过程中,安全与性能往往会顾此失彼。IPSec会增加延迟和降低吞吐量。在建立隧道之后,IPSec网关将对输出的业务负载进行加密,并对输入网络的业务负载进行解密。加密和解密原本就需要大量的计算——这也是为什么加密数据能够保证安全的部分原因。然而,计算的开销意味着通过IPSec隧道的吞吐量将受到网关的加密与解密能力的限制。此外,加密与解密还会大大增加延迟。
对于IPSec网关厂商来说,可扩展性与性能是需要衡量的竞争优势。向基于硬件的高性能系统的发展使这些衡量标准比以往任何时候都更加重要。对于服务供应商和网络管理员来说,可扩展性和性能是选择厂商的首要衡量标准,因为他们直接影响到服务的质量。实施IPSec所带来的延迟增加吞吐量减少会干扰网络的当前应用,并在总体上降低网络性能。总之,IPSec系统性能测试的关键衡量标准就是隧道容量与隧道建立速率、延迟以及吞吐量。
4 IPSec测试面临的挑战
如前两节所指出的,一致性、可扩展性与性能测试对IPSec网关厂商和用户同样重要。对于开发测试和质量保证群体来说,这提出了一些艰巨的挑战。
(1)一致性测试面临的挑战
IPSec的实施是动态的。几家厂商正在对其早期基于软件的实施方案进行升级,以获得更高的性能与可扩展性。同时,他们还在按照最新的标准与协议选项更新其功能集。加上紧迫的项目进度表,这意味着开发测试与质量保证群体需要一条有效的途径,以便(几乎是每天)对实施的正确性进行验证。
多个RFC对一系列IPSec协议进行了定义,其中包括IKE,AH,ESP,以及若干相关协议与选项。为了达到足够的测试范围,一个一致性测试需要建立数百个测试案例,而且这些测试还需要经常更新。由于测试周期非常频繁(某些案例需要每天测试),因此它们需要使用脚本界面实行完全自动化。而且,因为接受被测设备(DUT)需要针对数百个测试案例进行重新设置,所以还需要为DUT的设置编写脚本,并分批进行测试。为了应对这些挑战,多数厂商均使用由专门的第三方工作组维护和支持的第三方产品。
(2)可扩展性和性能测试面临的挑战
第一代IPSec网关并不是为可扩展性或高性能而设计的,因此使用个人电脑的基本功能测试与小规模仿真已经足够了。然而,随着测试规模的扩大,使用个人电脑进行性能测试已经变得不仅难以管理,而且成本高昂。
另一种测试方法是让两个IPSec网关背对背(Back-to-Back),并在每一边均使用业务负载生成工具。这种方法也有不足之处。使用背对背设置或基于个人电脑的测试时很难精确测量延迟时间,特别是涉及到每个隧道、每个阶段计时信息的测试时更是如此。背对背测试并不能指出其他IPSec网关可能存在的一致性或计时问题。
为了解决这些问题,就需要采用能够察觉IPSec的测试解决方案。
5 测试解决方案的需要
(1)基本需要
测试工具应该能够对网关和主机进行仿真,充当IPSec发起方,并与被测设备(DUT)建立隧道。它应该能够精确地测量隧道容量和隧道建立速率。
(2)测试解决方案应该具有高度的可扩展性
目前,一代IPSec网关的更高端产品需要单独测试系统以扩展至数百乃至数千个隧道。每秒钟建立数百个隧道,并且每秒钟发送千兆比特的加密数据。
(3)支持所有重要的IPSec选项
诸如AES 256等算法的重要性正在与日俱增。测试工具应该能够支持这些新的IPSec选项。
(4)能够方便地创建一系列IPSec选项组合
大多数IPSec网关都支持各种加密算法(3DES,AES)、几种Diffie-Hellman算法(DH1,DH2,DH3等)以及几种散列算法(MD5,SHA-1)。测试工具应该能使用户轻松地使用所有这些算法组合对隧道进行配置,以测试边界情况。例如,用户可能需要创建10000个隧道。比如说50个不同的组合,每个组合有200个隧道。
(5)能够提供每个阶段以及每个隧道的详细统计数字
性能测试中的关键问题就是结果的间隔尺寸。总量统计不能提供查出问题的足够信息。延迟应该在每个阶段的基础上进行报告:IKE SA创建延迟以及IPSec SA创建延迟。同样,也需要在每个隧道的基础上收集统计数字,以便查出待定隧道的问题。
(6)能够通过隧道发送有状态的业务负载
隧道一旦创建,就需要对加密和解密延迟分别测量,以验证每个隧道都在可接受的限度之内:DUT的加密和解密性能可能会有差异,为了测试这个差异,测试解决方案应该既能加密数据,又能解密数据。对于IPSec VPN的企业用户来说,测试解决方案需要对通过IPSec隧道的各种企业应用程序进行仿真,以确保额外的开销不会干扰应用程序。
(7)自动化
因为复杂的测试方案需要经常反复进行,对于DUT的每次更新,自动化极为重要。当然,在生产制造环境中,自动化是必须的。
|