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的每次更新,自动化极为重要。当然,在生产制造环境中,自动化是必须的。
6 思博伦通信的IPSec的测试方法
(1)IPSec的一致性测试
思博伦通信通过开发业界标准一致性测试应用程序Spirent TestCenter Conformance Application,解决了协议一致性测试的挑战。Spirent TestCenter Conformance Test Packages提供全套预先定义的测试案例,验证运行在网络设备上的IPSec实现的一致性特征。
这个测试套件支持以下特征:
●IPv4和IPv6数据保护;
●ESP,AH以及ESP与AH保护;
●ESP:支持的加解密算法有DES,3DES,AES,NULL;支持的认证算法有HMAC-MD5,HMAC-SHA,NULL;
●AH:支持的认证算法有HMAC-MD5和HMAC-SHA;
●5个不同的阶段1认证方法;
●预共享密钥(Pre-shared Key);
●数字签名标准(Digital Signature Standard,需要手工证书分发);
●Rivest-Shamir-Adleman(RSA)签名(需要手工证书分发);
●RSA加密(需要手工证书分发);
●修订的PSA加密(需要手工证书分发);
●支持使用或者不使用PFS(Perfect Forward Secrecy);
●Tunnel Mode和Transport Mode;
●阶段一协商:Main Mode和Aggressive Mode;
●阶段二协商:Quick Mode;
●New Group Mode。
(2)IPSec的可扩展性与性能测试
思博伦通信的Avalanche是测试IPSec VPN性能的最佳解决方案。Avalanche为验证下一代IPSec设备与网络的可扩展性与性能提供可以充分扩展的测试解决方案。Avalanche提供真实的应用仿真和高度的用户真实性,支持基于IPv4和IPv6网络的各种企业内部网、企业外部网以及远程接入VPN配置的测试。Avalanche支持LAN-to-LAN和Client-to-LAN两种类型IPSec VPN的测试(见图1和图2)。

图1 LAN-to-LAN测试拓扑

图2 Client-to-LAN测试拓扑
Avalanche对一方DUT上的IPSec网关发起隧道并和另一方DUT上的Reflector进行业务仿真。每个Avalanche端口均可对成千上万个IPSec安全网关(每个网关都有自己的惟一IP和MAC地址)进行仿真,创建出真实的情景。
Avalanche非常便于配置带有各种IPSec参数的大量隧道。
Avalanche主要可以测试IPSec VPN网关如下性能:
●IPSec VPN隧道容量;
●IPSec VPN隧道建立速率;
●IPSec VPN隧道数据性能。
(3)隧道容量测试方法
本测试将测量被测设备在多个IPSec隧道上可转发的有状态流量的数量(容量),即被测设备支持的最大并发隧道数。本测试还将验证隧道是否能够建立后和测试结束时立即传输数据(会话)。
测试步骤:
●配置被测设备,使Avalanche提供的流量可以转发至Reflector;
●在Avalanche和被测设备之间对所需的安全网关数量进行匹配;
●在Avalanche和被测设备之间对第1阶段的测试参数进行匹配:
a.预共享密钥;
b.D-H Group;
c.认证算法;
d.加密算法;
e.IKE模式。
●在Avalanche和被测设备之间对第2阶段的测试参数进行匹配:
a.转换;
b.完美转发保密性(PFS);
c.认证算法;
d.加密算法。
●将SA寿命设置足够大,防止出现(超出测范围的)密钥更新(Rekeys);
●将隧道建立速率设置为一个较低的数字(<10个/s,但要依据被测设备而定);
●当会话数量达到用户定义的隧道数量或隧道发生故障则测试终止;
●如果隧道发生故障,则降低隧道建立速率和/或降低隧道重试次数;
●如果会话发生故障,则降低隧道建立速率和/或降低会话重试次数。
测试参数:通过修改隧道建立速率,隧道重试的次数,会话重试的次数,IKE计时器参数中的任何一个都有可能获得不同的测试结果。
测试结果:测试完成时的隧道容量、成功地会话和活动的隧道数。
(4)隧道建立速率测试方法
本测试测量的被测试设备(DUT)每秒建立IPSec隧道的速率。
测试步骤:
●配置被测设备,使Avalanche提供的流量可以转发至Reflector;
●在Avalanche和被测试设备之间对所需的安全网关数量进行匹配;
●在Avalanche和被测试设备之间对第1阶段的测试参数进行匹配:
a.预共享密钥;
b.D-H Group;
c.认证算法;
d.加密算法;
e.IKE模式。
●在Avalanche和被测设备之间对第2阶段的测试参数进行匹配:
a.转换;
b.完美转换保密性(PFS);
c.认证算法;
d.加密算法。
●将SA寿命设置的足够大,防止出现(超出测试范围的)密钥更新(Rekeys);
●以更高的建立速率重新运行测试;
●继续处理,直至达到最大值。
测试参数:通过修改隧道数量中的任何一个都有可能获得不同的测试结果。
测试结果:最大隧道建立速率。
(5)数据性能测试方法
本测试量的被测试设备在多个IPSec隧道上可以转发的有状态流量的数量。
测试步骤:
●配置被测设备,使Avalanche提供的流量可以转发至Reflector;
●在Avalanche和被测试设备之间对所需的安全网关数量进行匹配;
●在Avalanche和被测试设备之间对第1阶段的测试参数进行匹配:
a.预共享密钥;
b.D-H Group;
c.认证算法;
d.加密算法;
e.IKE模式。
●在Avalanche和被测设备之间对第2阶段的测试参数进行匹配:
a.转换;
b.完美转换保密性(PFS);
c.认证算法;
d.加密算法。
●将SA寿命设置的足够大,防止出现(超出测试范围的)密钥更新(Rekeys);
●将隧道建立速率设置为一个较低的数字(<10个/s,但要依据被测设备而定);
●确定正在运行的是TCP或HTTP测试;
●定义包的数量和包尺寸(TCP)或对象尺寸(HTTP);
●当数据被接收到时,测试终止。
测试参数:通过修改隧道的数量、加密算法、完美转发保密性(PFS)输入参数中的任何一个都有可能获得不同的测试结果。
测试结果:TCP数据转发速率(Mbit/s)和HTTP响应时间(ms)。
