性能指标

来源:互联网 发布:众途软件 编辑:程序博客网 时间:2024/04/29 08:13
定义:吞吐量是指在没有帧丢失的情况下,设备能够接受并转发的最大数据速率。


  相关知识:


  1、吞吐量的大小主要由网络设备的内外网口硬件,及程序算法的效率决定,尤其是程序算法,对于象防火墙系统这样需要进行大量运算的设备来说,算法的低效率会使通信量大打折扣。因此,大多数防火墙虽号称100M防火墙,由于其算法依靠软件实现,通信量远远没有达到100M,实际只有10M-20M。纯硬件防火墙,由于采用硬件进行运算,因此吞吐量可以接近线速,达到90-95M,是真正的100M防火墙。


  2、吞吐量和报文转发率是关系网络设备应用的主要指标,一般采用FDT(Full Duplex Throughput)来衡量,指64字节数据包的全双工吞吐量,该指标既包括吞吐量指标也涵盖了报文转发率指标。


  3、吞吐量的测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。吞吐量测试结果以比特/秒或字节/秒表示。


  概念区别:


  吞吐量与带宽的区分:吞吐量和带宽是很容易搞混的一个词,两者的单位都是Mbps.先让我们来看两者对应的英语,吞吐量:throughput ; 带宽: Max net bitrate 。当我们讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码在计算机网络中又称为线速。我们可以说以太网的带宽是10Mbps。但是,我们需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。我们倾向于用“吞吐量”一次来表示一个系统的测试性能。这样,因为实现受各种低效率因素的影响,所以由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发送数据。






1引言 
    随着互联网在人们的生活、学习、工作中的应用越来越广泛,网络安全问题受到大家越来越多的重视,互联网面临的威胁主要来自于黑客攻击、管理欠缺、网络本身固有的缺陷、应用软件的漏洞以及后门等等。在网络中通信的双方通过不安全的媒介进行通信,必须从以下几个方面保证来保证通信的安全。


    (1)秘密性:只有发送者和接收者可以理解所传递的消息的内容。


    (2)身份认证:进行通信的双方——发送者和接收者——都需要确认彼此的身份,也就是确认对方真正是所宣称的那个人。


    (3)消息完整性:发送者和接收者需要同时确信通信的内容在传输过程中没有被恶意或者无意更改。


    实现网络安全的方法有很多,本文主要介绍SSLVPN的相关实现技术及测试方法,重点介绍使用IXIA公司的IXIA400T自动化测试仪表对我们自主研发的SSLVPN安全网关的性能测试。


    2SSLVPN实现技术


    SSLVPN一般的实现方式是在企业的防火墙后面,被保护服务器(服务器群)前面放置一个SSL代理服务器。如果用户希望安全地连接到公司网络上,那么当用户在浏览器上输入一个URL后,连接将被SSL代理服务器取得,并验证该用户的身份,通过身份验证后SSL代理服务器将提供一个远程用户与各种不同的应用服务器之间连接。SSLVPN的主要实现技术有代理、应用转换、端口转发和网络扩展。


    (1)代理Proxying:SSLVPN网关将来自远端浏览器的页面请求(采用HTTPS协议)转发给Web服务器,然后将服务器的响应回传给终端用户。


    (2)应用转换ApplicationTranslation:对于非Web页面的文件访问,往往借助于应用转换。SSLVPN网关与企业网内部的微软CIFS或FTP服务器通信,将这些服务器对客户端的响应转化为HTTPS协议和HTML格式发往客户端。


    (3)端口转发PortForwarding:端口转发用于端口定义明确的应用。它需要在终端系统上运行一个非常小的Java或ActiveX程序作为端口转发器,监听某个端口上的连接。当数据包进入这个端口时,它们通过SSL连接中的隧道被传送到SSLVPN网关,SSLVPN网关解开封装的数据包,将它们转发给目的应用服务器。使用端口转发器,需要终端用户指向他希望运行的本地应用程序,而不必指向真正的应用服务器。


    (4)网络扩展NetworkExtension:SSLVPN网关还可以帮助企业实现网络扩展。它将终端用户连接到企业网,并根据网络层信息(如目的IP地址和端口号)进行接入控制。虽然牺牲了高级别的安全性,却也换来了复杂拓扑结构下网络管理简单的好处。


    3SSLVPN性能测试


    全面考察SSLVPN安全网关需要从产品的功能、易用性、稳定性、安全性以及性能5大方面来进行测试。在对我们的SSLVPN安全网关实施性能测试时,我们选择了IXIA公司的IXIA400T自动化测试仪表,IXIA测试仪表具有综合性强、功能多的特点,接口模块可以根据需要进行自主选择,在SSLVPN安全网关的性能测试中我们选用了应用层负载模块ALM1000T8,ALM1000T8是运行四到七层应用软件的专用接口模块,针对状态基的运行做了优化处理,具有很高的测试性能。在ALM接口模块上,有8个高密度排列的RISC处理器,每个处理器具有独立的操作系统、存储器和网络接口。这种独特的结构,有利于高效灵活地测试负载均衡设备、防火墙、服务器、邮件网关、入侵检测、内容交换机等设备及其网络的安全性能。软件模块选用IxLoad,IxLoad支持丰富的SSL协议功能,运行IxLoad模拟基于Web的业务流,对SSL VPN安全网关的性能进行测试。


    根据目前业界比较认可的SSLVPN性能指标并结合自身产品的特点,我们选取5项性能指标进行测试,即新建连接速率、最大并发连接数、加密吞吐量、网络延迟和双机切换效率。在测试中每个项目至少进行3次测试,计算出平均值作为最后结果。


    3.1性能测试拓扑图


    图1为性能测试环境示意1,图2为性能测试环境示意2。






    图1性能测试环境1






    图2性能测试环境2


    3.2性能指标及实战


    (1)新建连接速率


    ●指标含义:新建连接速率是指SSLVPN每秒可以新建立的用户连接数目,也称会话速率,即每秒可以建立和终止的SSL会话数目(会话可以理解为客户端到网关的一次连接,即浏览器的一次Web页面访问)。该参数主要考察被测设备单位时间内的处理会话能力。


    ●测试过程:IXIA400T模拟客户端和服务器,将被测设备设置为中间设备。模拟的客户端和服务器建立TCP连接,在此连接上进行SSL会话协商,建立SSL会话后,客户端通过被测设备从服务器下载1024bit/s的页面(注意页面大小可以灵活设置,但必须以不会因为数据量过大而造成系统I/O过载为前提条件,因此应该尽量采用小页面),当成功接收完数据之后,关闭SSL会话,关闭TCP连接。此会话过程包含了SSL协议中的非对称加密过程(协商)和对称加密过程(传输数据)。我们取被测设备负载稳定期的平均新建用户率作为测试结果。


    ●影响因素:影响此项值的因素有很多,例如是否有SSL硬件加速卡,是否控制速率上限以确保CPU资源有盈余、加密算法实现所用的语言、算法模块调度等。


    ●实战:Ixload为我们提供了很多有用的测试案例,我们可以从中选择比较适合自己的,再根据自身需要调整相应的参数。我们可以根据需要采用接口模块的多个端口进行组合,以提高模拟客户端和服务器的性能。


    a.测试时使用512bit/s或者1024bit/s的证书,请注意证书的长度将直接影响SSL的加解密速度,对产品性能的测试结果会产生较大的影响。


    b.加密算法:RC4-MD5。


    c.负载模式:Connections/Second。


    d.协议:Http1.0。


    e.页面大小:1024bit/s(或者64bit/s)。


    f.客户端网络:模拟地址范围。


    g.服务器网络:模拟地址。


    h.负载压力:由于IxLoad自动化测试工具具有自动加压、自动保持连接等特点,即它会自动调整负载压力值测得被测设备的性能,同时不用配置服务器的响应Latency或客户端的ThinkTime,这些特点使得性能测试简单、有效。在测试中我们采用逐步加压的方式进行,在20s内将压力从0上升到最高值,并在最高值维持180s,然后再用20s的时间将压力减为0。


    i.数据获取:在维持180s的中间60s,我们计算该时间段内的平均速率,作为新建连接速率。


    ●结果分析


    a.在客户端状态中观察到新建连接速率值达不到预期值,并且在想办法提高硬件配置的情况下也始终维持在一个较小的恒定值。这种情况有可能是软件设计者出于对产品提供稳定性能的考量,对用户数目做出了限制,只能达到某个设定值。


    b.在客户端状态中观察到HTTP、TCP的速率始终非常低。这种情况下先检查CPU和MEM的消耗情况,如果是系统本身的进程消耗较大,则有可能是系统硬件配置造成的瓶颈,需要加大CPU和MEM;如果是产品本身的软件进程造成的消耗过大,则需要软件设计者改进设计,提高代码质量,以提高连接速率和连接质量,以确保更多的用户能够同时使用高质量的SSLVPN服务。


    c.在客户端状态中观察到HTTP、TCP的速率在达到一个较高值后突然急剧下降至0。出现这种情况首先考虑系统是否崩溃;如果不是则查看系统的CPU和MEM的消耗是否过大;还有一种情况就是由于数据量大,连接跟踪表被写满,网络通道被堵死,导致数据包被大量丢弃。


    (2)最大并发连接数


    ●指标含义:最大并发连接数是指同时通过SSLVPN来访问内部网的最大连接数目。该参数主要考察被测设备的会话处理容量,即在同一时间所能保持的会话连接数目,这个数值通常是几百到几千,不过同时在线的用户数越多,每位用户所感受到的速度就会越慢。


    ●测试过程:IXIA400T模拟客户端,与被测设备建立SSL会话。在此惟一的会话上,发送多条通过被测设备从IXIA400T模拟的服务器下载1024bit/s大小页面的指令。我们取负载稳定期的平均并发连接数作为测试结果。


    ●影响因素:影响此项值最关键因素是会话队列存储空间的大小,即内存的大小,还有是否开辟缓冲空间做预处理(即保持连接状态,但是其请求暂时不作处理),其他影响因素有下载的页面大小,SSLVPN使用的证书位数等。


    ●实战


    a.测试时使用512bit/s或者1024bit/s的证书。


    b.加密算法:RC4-MD5。


    c.负载模式:ConcurrentConnection。


    d.协议:Http1.0。


    e.页面大小:1024bit/s(或者64bit/s)。


    f.客户端网络:模拟地址范围。


    g.服务器网络:模拟地址。


    h.负载压力:在测试中我们采用逐步加压的方式进行,在20s内将压力从0上升到最高值,并在最高值维持180s,然后再用20s的时间将压力减为0。


    i.数据获取:从测试结果中找到ConcurrentConnection的最大稳定值,作为最大并发连接数。


    ●结果分析


    a.重复同样的测试3次,发现客户端成功请求的次数在不断降低。这种情况需要检查连接跟踪表是否已经被写满,造成网络堵塞;或者内存和CPU消耗多大,造成产品性能下降。


    b.尝试增加内存数量,修改连接跟踪表的最大限制值,检测最大并发连接数是否会有相应的增加。


    (3)加密吞吐量


    ●指标含义:此项指标主要评估SSLVPN在应用层的吞吐量,此项值越大,表示该设备在单位时间内的数据转发能力越强。


    ●测试过程:IXIA400T模拟客户端行为,首先与被测设备建立SSL会话。在此惟一的会话上,从IXIA400T模拟的服务器上下载1024kbit/s的页面,我们取IXIA400T模拟的服务器端发送数据的平均速率作为测试结果。


    ●影响因素:影响此项值的一个很大因素是对称加密算法实现的效率,如果实际传输的数据仅仅是HTTP的大数据报内容,那么吞吐量应该能接近100%,由于有加密运算,所以实际吞吐量值会受到很大的影响。


    ●实战:


    a.测试时使用512bit/s或者1024bit/s的证书,请注意证书的长度将直接影响SSL的加解密速度,对产品性能的测试结果会产生较大的影响。


    b.加密算法:RC4-MD5。


    c.负载模式:Throughput(MBps),请注意这里的单位为MBps,换算成Mbps需要将测试结果乘以8。


    d.协议:Http1.0。


    e.页面大小:1024kbit/s。


    f.客户端网络:模拟地址范围。


    g.服务器网络:模拟地址。


    h.负载压力:在测试中我们采用逐步加压的方式进行,在20s内将压力从0上升到最高值,并在最高值维持180s,然后再用20s的时间将压力减为0。


    i.数据获取:从测试结果的Excel中找到在维持180s阶段的中间60s双向的数据量平均值之和,将此值作为设备的实际吞吐量。


    ●结果分析


    a.尝试使用不同的加密算法进行测试,检测不同的加密算法对吞吐量的影响力。


    b.测试过程中检查CPU的使用情况,检测是否因为SSL加解密,对CPU消耗过大(CPU使用率超过70%以上)造成产品性能受到很大影响。


    (4)网络延迟


    指标含义:网络延迟是指从用户向SSLVPN发起访问请求开始,到成功从后台服务器拿到第一位数据的时间间隔。由于在不同负载下其数值会发生变化,所以我们取最大新建连接速率测试中的平均网络延迟作为测试结果。


    (5)双机切换效率


    指标含义:双机切换效率是指当主SSLVPN设备发生故障到从SSLVPN设备发现主设备故障并接管其服务的时间间隔。在主从SSLVPN设备上设置定时工作表——可导致设备切换工作状态,计算切换时间的平均值作为测试结果。


    SSLVPN产品的性能测试指标并不仅仅只有以上五种,测试人员可以根据实际需要对测试项目进行适当的调整,以协助软件开发人员找出系统瓶颈,进一步提升产品性能。


    4结束语


    SSLVPN产品作为一个新技术产品,其发展和成熟仍在不断进行之中,也许在不久的将来也会形成如同IPSec一般成熟的安全技术,我们在SSLVPN产品方面的测试技术也必将与时俱进,发展得更加成熟和完善。














最大连接数:
 和吞吐量一样,数字越大越好。但是最大连接数更贴近实际网络情况,网络中大多数连接是指所建立的一个虚拟通道。防火墙对每个连接的处理也好耗费资源,因此最大连接数成为考验防火墙这方面能力的指标。


  要分几种情况:(以100M空间50人在线为例)


  1、用户单点下载你的文件,结束后正常断开,这些连接是按照瞬间计算的,就是说你50人的网站瞬间可以接受同时50个点下载


  2、用户打开你的页面,就算停留在页面没有对服务器发出任何请求,那么在用户打开一面以后的15分钟内也都要算一个在线,就是说你50人的网站15分钟内可以接受不同用户打开50个页面


  3、上面的情况用户继续打开同一个网站的其他页面,那么在线人数按照用户最后一次点击(发出请求)以后的15分钟计算,在这个15分钟内不管用户怎么点击(包括新窗口打开)都还是一人在线。


  4、当你的页面内存在框架(Iframe),那么每多一个框架就要多一倍的在线!因为这相当于用户同一时间向服务器请求了多个页面。


  5、当用户打开页面然后正常关闭浏览器,用户的在线人数也会马上清除






主要参考以下3种性能指标:
1.整机吞吐量:指防火墙在状态检测机制下能够处理一定包长数据的最大转发能力,业界默认一般都采用大包衡量防火墙对报文的处理能力。
2.最大并发连接数:由于防火墙是针对连接进行处理报文的,并发连接数目是指的防火墙可以同时容纳的最大的连接数目,一个连接就是一个TCP/UDP的访问。
3.每秒新建连接数:指每秒钟可以通过防火墙建立起来的完整TCP/UDP连接。该指标主要用来衡量防火墙在处理过程中对报文连接的处理速度,如果该指标低会造成用户明显感觉上网速度慢,在用户量较大的情况下容易造成防火墙处理能力急剧下降,并且会造成防火墙对网络攻击防范能力差。


性能测试用数据说话
性能表现是所有网络设备极其重要的一个方面,也是我们此次测试的一个重点。SSLVPN网关设备的性能参数中,比较重要的几个是新建用户速率(setup/teardown速率)、最大并发用户数、邮件系统性能以及设备的实际吞吐量(Goodput)等。
setup/teardown速率
setup/teardown速率反映了设备每秒钟可以新建的用户数目,ArrayNetworks的SPX5000可以达到982个/秒,从我们以往测试服务器的经验来看,这一结果完全超过了一台高端PCWeb服务器的极限,只有后台使用更高端服务器或者服务器集群才能提供如此高的性能;深信服的SinforSSLVPNExpress结果为98个/秒,深圳数安的RAP1000-X达到138.4个/秒,我们认为该数值也足以满足大型企业级用户的要求了。
最大并发用户数
最 大并发用户数反映设备同时提供服务的最大用户数目,读者需要注意,此数值并非使用SSLVPN设备的用户总数(很显然,并不是所有需要使用设备的用户都随 时在线)。据称,ArrayNetworks的SPX5000的最大并发用户数可以达到64000,我们测试结果为57063;深信服 SinforSSLVPNExpress为150,深圳数安RAP1000-X为249。
OWA性能
OWA(OutlookWebAccess) 性能反映的是设备在承载OutlookWeb邮件系统的性能表现,由于邮件系统在SSLVPN的应用中占很大比例,而Outlook邮件系统又具有普遍意 义,因此此项结果在用户使用邮件系统时有很大参考意义。ArrayNetworks的SPX5000测试结果为7237会话/秒;深信服RAP1000- X为207会话/秒,深圳数安RAP1000-X为396.45会话/秒。
DDoS攻击下的OWA性能
DDoS攻击是网络中十分普遍的攻击类型,我们考察了SSLVPN设备在遭受DDoS攻击下的Web邮件系统应用的性能表现。从我们以往对各类安全设备进行测试经验来看,设备对攻击的防范能 力不容小视,有些防范能力较差的设备在攻击面前束手无策,很容易造成设备工作不正常。从我们的测试结果来看,所有参测设备在攻击下的性能都有小幅下 降,ArrayNetworks的SPX5000测试结果为7030会话/秒,下降大约2.86%;深信服SinforSSLVPNExpress为 203会话/秒,下降大约1.93%,深圳数安RAP1000-X为395.78会话/秒,下降幅度最低,仅为0.17%。
Goodput
按 照RFC2647的定义,我们测试了被测设备最大HTTP实际吞吐量(Goodput)。在我们的测试环境下的结果是,作为千兆设备的 ArrayNetworksSPX5000为160.352Mbps,深信服SinforSSLVPNExpress为34.199Mbps,深圳数安 RAP1000-X为29.864Mbps。需要说明的是,所有参测设备都没有提供数据压缩功能。
测试感言:性能已不是问题
从我们的测试结果来看,性能已经可以完全满足用户在远程安全连接方面的需求。
据 我们了解,即便是最高端的用户,也很少会分配高达100Mbps的带宽给SSLVPN应用,再加上Internet网速受多方面影响,因此,从实际吞吐量 角度,100Mbps是实际应用环境的极限,所有超过100Mbps的设备都无法充分展示拳脚。但是VPN设备可以提供数据压缩能力,即数据经过压缩后向 外网发送,这可使用户更加有效地利用昂贵的带宽资源。从我们查到的资料来看,有些厂商在这方面的技术比较先进,数据压缩比例可以达到5:1,遗憾的是此次 参测的三款产品都没有提供该功能,因此我们测试时并没有考察数据压缩时的性能表现。
从最大并发用户数角度来看,采取SSLVPN方式,按照惯例一 般取1∶10的比例(如果1000个人都可能采取VPN方式,同一时间会有100个人利用VPN隧道),这一点用户在购买设备时也应该注意——在购买 IPSecVPN时,1000个用户需要购买1000个客户端许可证,而如果使用SSLVPN,则可以按照100个并发用户数购买。
用户在部署SSLVPN之前一定要对设备进行性能测试,一方面能够对设备的性能表现有确切掌握,另一方面可以根据实际网络应用环境进行合理购买。






评测SSL VPN我们曾经在以前的文章中,从功能测试的角度去进行。我们知道,性能是衡量一个设备的重要标准,我们在进行SSL VPN评测时当然也不会忽略性能的测试。在性能测试方面,一般大中型项目中都会采用思博伦通信公司的Avalanche 进行测试。只有通过专业性能测试仪器的考验,才能让不同的SSL VPN设备现出它的原形!


  下面我们介绍一下在项目测试中最常遇到的最大并发数和实际吞吐量这两个参数的测试方法,在每项性能指标测试中,都模拟了真实环境中的一系列用户动作,即从用户登录SSL VPN网关到执行各类请求,再到退出,涵括了所有的过程。


  评测SSL VPN指标1:最大并发用户数


  a.指标含义:设备可以同时支持的最大用户连接数,也即同时通过SSL VPN 来访问内部网的最大用户数目。


  b.测试步骤:第一步,32秒内压力从0 Simusers/秒上升到新建速率的80%;第二步,维持第一步的最高压力300秒;第三步,20秒内将压力降为0,测试结束。


  c.用户动作:测试仪模拟的用户,在登录以后取一个1024Byte的文件,该文件的延迟(文件的延迟时间为用户从发起请求到测试仪器响应用户的时间)为0秒,之后重复取一个延迟为60秒的文件10次,即一个用户至少10分钟后才会退出。


  d.结果衡量:把用户成功取得没有延迟的文件数目作为最大并发用户数(因为每个成功登录的用户都会取得该文件,并且在测试时间内不会退出而形成与所有其他用户的并发)。


  测试结果表明,Array SSL VPN最高并发数达到64,000,遥遥领先于市场上其它SSL VPN产品。


  评测SSL VPN指标2:实际吞吐量(Goodput)


  a.指标含义:实际吞吐量也称为设备转发速率,它指的是SSL VPN网关最快可以在每秒钟内转发多少数据流量。


  b.测试步骤:第一步,在32秒内压力从0 Simusers上升到N Simusers;第二步,维持第一步的最高压力120秒;第三步,20秒内将压力降为0,测试结束。


  c.用户动作:测试仪模拟的用户,在登录以后从一个模拟的Web服务器取一个1MByte的文件,然后从另外一个Web服务器取一个1Mbyte的文件,交替此过程10遍,一共从服务器取20Mbyte数据,然后退出。


  d.结果衡量:在第二步维持120秒的后60秒,将用户从测试仪模拟的Web服务器取得的数据流量进行平均,得出设备的实际吞吐量。


  测试结果表明,Array SSL VPN近1G线速的SSL吞吐量,令其他竞争对手望尘莫及。


  除了功能领先、性能优越外,Array SSL VPN安全网关在稳定性和安全性方面也是其它SSL VPN产品难以比拟的。比如,Array SSL VPN修改配置后即可即时生效,而有些中低端厂商的产品还停留在需要再次重启设备的阶段;再比如Array Networks独有的连接维持技术,即使客户端从有线网络切换到无限网络,客户的连接也不会中断,而这对其它一些厂商来讲无疑是天方夜谭










在VPN领域,SSLVPN无疑是个新贵,由于其与生俱来在远程安全连接方面的优势,近几年逐渐受到业界的追捧。总体来看,SSLVPN还没有达到厂商们期望的大规模应用,然而最近的种种迹象表明,SSLVPN正在进行一场轰轰烈烈的开辟新天地运动。至于具体倚仗哪些优势,在整体性能、功能方面有哪些最新进展,本测试报告向读者一一道来。
一份最新研究表明近90的企业利用VPN进行的内部网和外部网的连接都只是用来进行Internet访问和电子邮件通信,而这些应用都利用了一种更加简单的VPN技术——SSLVPN。基于SSL协议的VPN远程访问方案的确更加容易配置和管理,由于不需要客户端软件,网络配置成本比起目前主流的IPSecVPN要低很多,所以许多企业已经开始利用基于SSL加密协议的远程访问技术来实现VPN通信了。
SSLVPN是最近几年才逐步发展成熟的,但是当去年某些机构对其进行全面测试时,可以说并没有满足用户对其较高的期望。相反,许多基本的问题还没有解决好。时间过去一年多,目前该领域发展到了何种程度?在目前的市场上已经出现了一些厂商的产品与解决方案,它们的优劣都在哪里?与世界最先进的水平相比,多数SSLVPN设备的整体水平如何?带着这些问题,《网络世界》评测实验室组织了2005年度SSLVPN网关公开比较评测。
由 于目前市场中的SSLVPN网关设备并不是特别多,此次评测并没有对参测设备进行详细划分级别。我们向所有主流SSLVPN设备厂商发出了邀请,最后有三 家厂商接受邀请,送来参测设备并且顺利完成我们的所有测试内容,它们是深信服科技的SinforSSLVPNExpress、ArrayNetworks 的SPX5000和深圳数安的RAP1000-X。其中,ArrayNetworks的SPX5000为千兆产品,其他两家产品为百兆设备。
我们还要特别感谢思博伦通信公司提供了Avalanche测试仪,安氏公司提供领信网络扫描软件。同时也对这些勇于参加此次SSLVPN网关公开比较评测的厂商表示赞赏。
●性能测试——随着软硬件技术的进步,性能有大幅提高,满足企业要求绰绰有余;
●安全测试——尽管在网络中处于防火墙之后,但是某些设备本身仍存在一定安全风险;
●功能测试——经过近一两年的发展,功能已经获得巨大突破,可以轻松应对用户复杂应用。


性能测试用数据说话
性能表现是所有网络设备极其重要的一个方面,也是我们此次测试的一个重点。SSLVPN网关设备的性能参数中,比较重要的几个是新建用户速率(setup/teardown速率)、最大并发用户数、邮件系统性能以及设备的实际吞吐量(Goodput)等。
setup/teardown速率
setup/teardown速率反映了设备每秒钟可以新建的用户数目,ArrayNetworks的SPX5000可以达到982个/秒,从我们以往测试服务器的经验来看,这一结果完全超过了一台高端PCWeb服务器的极限,只有后台使用更高端服务器或者服务器集群才能提供如此高的性能;深信服的SinforSSLVPNExpress结果为98个/秒,深圳数安的RAP1000-X达到138.4个/秒,我们认为该数值也足以满足大型企业级用户的要求了。
最大并发用户数
最 大并发用户数反映设备同时提供服务的最大用户数目,读者需要注意,此数值并非使用SSLVPN设备的用户总数(很显然,并不是所有需要使用设备的用户都随 时在线)。据称,ArrayNetworks的SPX5000的最大并发用户数可以达到64000,我们测试结果为57063;深信服 SinforSSLVPNExpress为150,深圳数安RAP1000-X为249。
OWA性能
OWA(OutlookWebAccess) 性能反映的是设备在承载OutlookWeb邮件系统的性能表现,由于邮件系统在SSLVPN的应用中占很大比例,而Outlook邮件系统又具有普遍意 义,因此此项结果在用户使用邮件系统时有很大参考意义。ArrayNetworks的SPX5000测试结果为7237会话/秒;深信服RAP1000- X为207会话/秒,深圳数安RAP1000-X为396.45会话/秒。
DDoS攻击下的OWA性能
DDoS攻击是网络中十分普遍的攻击类型,我们考察了SSLVPN设备在遭受DDoS攻击下的Web邮件系统应用的性能表现。从我们以往对各类安全设备进行测试经验来看,设备对攻击的防范能 力不容小视,有些防范能力较差的设备在攻击面前束手无策,很容易造成设备工作不正常。从我们的测试结果来看,所有参测设备在攻击下的性能都有小幅下 降,ArrayNetworks的SPX5000测试结果为7030会话/秒,下降大约2.86%;深信服SinforSSLVPNExpress为 203会话/秒,下降大约1.93%,深圳数安RAP1000-X为395.78会话/秒,下降幅度最低,仅为0.17%。
Goodput
按 照RFC2647的定义,我们测试了被测设备最大HTTP实际吞吐量(Goodput)。在我们的测试环境下的结果是,作为千兆设备的 ArrayNetworksSPX5000为160.352Mbps,深信服SinforSSLVPNExpress为34.199Mbps,深圳数安 RAP1000-X为29.864Mbps。需要说明的是,所有参测设备都没有提供数据压缩功能。
测试感言:性能已不是问题
从我们的测试结果来看,性能已经可以完全满足用户在远程安全连接方面的需求。
据 我们了解,即便是最高端的用户,也很少会分配高达100Mbps的带宽给SSLVPN应用,再加上Internet网速受多方面影响,因此,从实际吞吐量 角度,100Mbps是实际应用环境的极限,所有超过100Mbps的设备都无法充分展示拳脚。但是VPN设备可以提供数据压缩能力,即数据经过压缩后向 外网发送,这可使用户更加有效地利用昂贵的带宽资源。从我们查到的资料来看,有些厂商在这方面的技术比较先进,数据压缩比例可以达到5:1,遗憾的是此次 参测的三款产品都没有提供该功能,因此我们测试时并没有考察数据压缩时的性能表现。
从最大并发用户数角度来看,采取SSLVPN方式,按照惯例一 般取1∶10的比例(如果1000个人都可能采取VPN方式,同一时间会有100个人利用VPN隧道),这一点用户在购买设备时也应该注意——在购买 IPSecVPN时,1000个用户需要购买1000个客户端许可证,而如果使用SSLVPN,则可以按照100个并发用户数购买。
用户在部署SSLVPN之前一定要对设备进行性能测试,一方面能够对设备的性能表现有确切掌握,另一方面可以根据实际网络应用环境进行合理购买。




安全测试安全等级我做主
采 用配置“最安全的简单Web应用”,然后测试VPN设备的安全性能。我们发现,有的SSLVPN设备在安全性方面不容乐观。我们使用安氏领信网络扫描器对 参测设备进行了全面的安全扫描,扫描报告中详细列出设备存在的安全漏洞、安全警告、安全提示以及打开端口信息。漏洞对于安全设备来说,是应该尽量避免的,黑客可以轻松扫描出设备的漏洞,利用漏洞进行攻击。警告和提示也不容忽视,它可能是不太严重的安全威胁,也可能是不易被利用的安全弱点。黑客还可以通过打开端口获得设备正在提供的服务。
结果发现,ArraySPX5000安全性很高,没有发现任何漏洞,但是出现了一些安全警告。
深信服SinforSSLVPNExpress在对SSL协议进行开发时遗留一个漏洞,该漏洞会导致设备容易受到DoS攻击,同时还有一些安全警告,但是,上文也提到,该设备本身默认配备了防火墙系统,整体的安全性已经比较高。
深圳数安的设备扫描结果为28个漏洞,15个安全警告。经过厂商工程师的安全配置更改以及漏洞修补工作,漏洞全部消除,剩余5个安全警告。
测试感言:安全产品最不能忽视安全!
由 于SSLVPN在功能方面已经十分强大,但是功能多的同时也在安全性方面带来更多隐患。比如,如果只是提供最基本的Web转换功能,即用户只通过 HTTPS访问Web服务器内容,那么设备只需打开443端口即可,而如果用户需要文件服务,则必需打开更多端口,端口和服务开启越多,安全隐患也就越 多。因此,设备的安全性在一定程度上是由设备管理员 来决定的,如果应用类型对用户业务十分关键,机密性较强,那么则开启最少的端口和服务,反之,如果应用为一般类型,对业务并不是十分关键,那么就可以多开 启一些服务,虽然安全性降低一些,但是为远程用户带来多一些的便利。我们测试的是在开启最简单功能、最少端口和服务的情况下设备本身的安全性。
安全性的问题很复杂,它涉及到整个系统的方方面面,从操作系统到开发平台,从程序代码到系统配置,可以说,一个成熟而相对安全的系统需要花费巨大的人力物力,当然还需要在纷繁复杂的不安全环境下接受各类考验。
在性能测试中的DDOS下的性能也反映了产品的安全性,有些设备在正常使用环境下性能很好,但是对DDOS攻击几乎无法进行任何防范。


功能测试应对复杂功能我能
在 确定测试方案之前我们认为,SSLVPN设备在功能方面的表现可能是制约其获得大规模部署的一个重要因素。原因在于,一年以前,国外的测试同行们对多款业 界主流产品进行测试后发现,多数产品所能支持的应用转换和代理的数量非常少,同时,功能方面是SSLVPN设备之间差别最突出,也最影响它们在实际环境中 的部署。带着这些疑问,我们制定了功能方面的考量内容,主要包括支持应用类型、数据压缩功能、安全功能、认证方式以及报告与日志方面。
如前文所述,数据压缩功能对SSLVPN网关这种依靠互联网带宽资源的设备来说十分必要。尽管有些设备称支持该功能,但遗憾的是送测产品都没有提供该功能。
支持应用类型
我 们认为,SSLVPN网关对应用的支持大致分为4个层面。第一个层面为Web资源映射。从SSLVPN最初的应用情况来看,主要有Web服务器资源映射, 也叫作代理Web页面。这是SSLVPN最基本的应用支持类型,因此如果用户希望通过Web资源映射来收发E-mail,则只能使用Webmail的方 式。第二个层面为文件共享等应用。比如非Web页面的文件共享,必需经过转换才能够发往客户端。SSLVPN网关与企业网内部的微软CIFS或FTP服务 器通信,将这些服务器对客户端的响应转化为HTTPS协议和HTML格式发往客户端,终端用户感觉这些应用就是一些基于Web的应用。第三个层面为C/S 应用代理,它需要在终端系统上运行一个非常小的Java或ActiveX程序作为端口转发器,监听某个端口上的连接。当数据包进入这个端口时,它们通过 SSL连接中的隧道被传送到SSLVPN网关中,SSLVPN网关解开封装的数据包,将它们转发给目的应用服务器。第四个层面应用为网络扩展。它将终端用 户系统连接到企业网上,并根据网络层信息(如目的IP地址和端口号)进行接入控制。
对于用户来说,第一个层面的应用是必须的(如果设备连此应用都 无法满足,那它也就不能称为SSLVPN了),而文件共享和C/S应用代理的需要也比较大,因此大多数用户会要求SSLVPN能够支持这两种应用,至于网 络扩展应用,一般使用较少,而且由于该功能会给整个内部网络带来更多安全隐患,因此必须使用该功能的用户也需要谨慎使用。
Web资源映射功能 ArraySPX5000采用Web资源映射功能(WebResourceMapping,WRM)来实现,用户不需要改变内网的Web结构,在 ArraySPX5000上设置在内网访问的URL即可。深信服公司采用HTML智能重构技术来实现Web映射,把企业内部的Web服务器映射成SSL主 机的一个子目录来访问(该子目录是一个无意义的字符串)。
SinforSSLVPN对用户链接做识别,重写HTML并将其转换成HTTPS的有效 链接,SinforSSLVPN并不重写所有HTML代码,而是根据智能搜索引擎判断出需要重构的网页再加以修改。SinforSSLVPN提供了基于 Web方式的邮件收发系统,方便了没有邮件客户端的用户。深圳数安RAP服务器上模拟一个Web解析服务器,动态解析远程客户对内网Web服务器请 求,RAP监听到远程客户访问内网Web服务器的URL后,通过RAP向内网服务器取动态请求,内网Web服务器就像响应普通内网客户端的请求一样响应 RAP的请求。
共享文件ArraySPX5000支持Windows和Unix的文件共享,将内网共享文件,通过Web的方式提供 给用户,用户可以在Web页面中下载、上传文件。SinforSSLVPN提供了基于Web的FTP系统,用户可以下载上传文件。针对标准的TCP协议, 深圳数安RAP可以实现active模式FTP、passive模式FTP、Telnet等应用的支持。


路由表。 这样,客户端虚拟网卡上就会配备一个和内网地址体系一致的网址,并通过这条虚拟通道直连到内网,就好像客户端机器在内部一样。一旦网络层隧道建立后,所有 基于IP的应用都可以实现。可实现包括B/S、C/S架构的应用,也可实现TCP的应用。深圳数安RAP1000X的实现方式是,当客户端远程请求建立 SSL通道的时候,客户端动态生成RAP虚拟的网络设备,并且通过RAP动态获得内网IP地址,此时,客户端的IP就变成了内网IP,只能访问内网指定的 服务器或相应服务器的相应的端口。深信服设备没有提供该类型应用的支持。
安全功能
由于SSLVPN设备最重要的使用环境为远程安全连接,因此,安全是其必不可少的功能。
URL 加密是提高安全性的一个措施,有些设备也称之为URL隐藏功能,在IE浏览器的URL框中,地址是一串不能读懂的乱码,而且每次用户登录都会发生实时改 变。这种方式的好处是远程用户不能使用Ping命令找到该服务器的网址,因此可以避免对该服务器的网络攻击。有些厂商的产品默认为URL隐藏,因此无法进 行多项性能测试,进而很遗憾没有参加我们的测试。有些厂商的设备没有此功能。而测试工程师认为,最好像Array的设备那样,将此功能设置为可选,这样如 果用户需要增加安全性,则开启此功能,而在调试、测试阶段则可以不必开启此功能。深信服没有URL加密功能,而深圳数安的设备默认开启URL加密功能,但 是针对我们的测试进行了特定的改进,从而也可以不启动URL加密功能。
超时检测、清除缓存、客户端安全扫描也是针对用户远程连接所设计的安全功 能。超时检测功能是当用户登录设备后而没有任何动作并超过一定时限后将该用户自动退出系统。客户端缓冲区及临时文件清除功能就是在SSLVPN的远程访问 结束后,自动清除留在远程访问设备缓冲区中的临时文件和数据。清除缓存功能不仅非常必要,而且,不支持这项功能的SSLVPN产品会对企业信息造成严重危 害。IE浏览器为了提高速度,常常将访问的文件和数据放在临时文件中。并且在退出后不会自动删除。这样,有经验的客户可以通过浏览器提供的检查临时文件的 功能,打开残留在临时文件目录中的文档,从而窃取企业机密。为了简化用户重复登录,反复输入密码的麻烦,浏览器有的时候会在缓冲区中记录用户口令信息,这 样,在不关闭浏览器的时候,二次访问需要口令的网址的时候,浏览器会自动输入口令。因为SSLVPN的远程用户可能使用公共设备,如果不清除缓冲区,如果 忘记关闭浏览器而离开,后面的用户可以会登录到内部系统。所以,必须在会话结束后清除缓冲区。参测的三款设备都支持超时检测和清除缓存功能。
客户 端扫描对用户来说也是一个不错的功能。由于使用SSLVPN以后,用户可以使用任何设备访问内部资源,甚至可以使用网吧电脑访问内部系统。如果远程访问的 系统有病毒或安全漏洞,将危害企业内部的信息安全。客户端扫描功能可以大大降低病毒和黑客工具对企业信息的危害。深圳数安和深信服的设备不支持该功 能,Array设备支持该功能。ArraySPX5000可以对登录的客户端进行检测,根据对客户端特征值的检测结果,将客户端划分到不同的安全访问级 别,为客户端提供不同的功能模块,并且可以自定义什么级别的用户可以拥有哪些功能模块。对于接入的客户端,可针对以下内容检测客户端的安全级别:客户端的 IP地址、客户端的SSL证书、客户端包含的特定文件、客户端注册表特定键值、客户端个人防火墙检查、客户端防病毒软件检查,包括病毒库的更新时间以及操 作系统版本补丁检查等。
SSLVPN网关功能评价表




测试方法
由于SSLVPN最近几年才逐渐成熟,因此对其进行测试时业界还没有形成一个十分成熟完善的测试方案,我们参照国际上较为认可的方法并结合目前SSLVPN的发展情况,制定出如下测试方法。其中主要包括性能测试、安全测试以及功能测试三个方面。
性能测试
在性能测试方面,我们使用思博伦通信公司的两台Avalanche2500进行测试,所有结果均用朴实的数字说话。在所有5个测试项目中,每款设备均测试3遍,结果取其平均值。
测试指标1:新建用户速率(setup/teardownrate)
在每项性能指标测试中,我们都模拟了真实环境中的一系列用户动作,即从用户登录SSLVPN网关到执行各类请求,再到退出。我们把用户动作描述出来,希望读者对我们的测试细节都能够了解得更加清晰。
指标含义:新 建用户速率是指设备每秒钟可以新建立的用户连接数目,也称为会话速率,即每秒钟可以建立和终止的SSL会话数目(会话可以理解为客户端到网关的一次连接, 即浏览器的一次Web页面访问)。这个参数很大程度上决定了用户能够体验到的连接速度。通常,达到100左右数值的会话速率,一般可以满足大部分用户的应 用需求。
测试步骤:第一步,在32秒(一般为30秒,由于结果文件中每4秒统计数值,为了便于记录结果我们将第一步设为32秒)内 压力从0Simusers(Simusers为Avalanche2500中模拟的用户单位,一个Simuser为一个模拟用户)上升到 NSimusers,N为预计的最大速率;第二步,维持第一步的最高压力120秒;第三步,20秒内将压力降为0,测试结束。
用户动作:测试仪器模拟的用户,在登录后取一个1024Byte的文件后退出。
结果衡量:在第二步维持120秒的后60秒,我们计算该时间段内的平均速率(将成功建立的用户连接数除以60)。
测试指标2:最大并发用户数
指标含义:设备同时可以支持的用户连接数。
最大并发用户数指同时通过SSLVPN来访问内部网的用户数目。同时在线用户数也是一个非常重要的参数,即同一时间SSLVPN所能保持的会话数目,它通常在几百到几千之间,同时在线用户越多,每位用户所感受到的速度越慢。
测试步骤:第一步,32秒内压力从0Simusers/秒上升到新建速率的80%;第二步,维持第一步的最高压力300秒;第三步,20秒内将压力降为0,测试结束。
用户动作:测试仪模拟的用户,在登录以后取一个1024Byte的文件,该文件的延迟(文件的延迟时间为用户从发起请求到测试仪器响应用户的时间)为0秒,之后重复取一个延迟为60秒的文件10次,即一个用户至少10分钟后才会退出。














worker_processes 8;
#nginx进程数,建议按照cpu数目来指定,一般为它的倍数。




worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。




worker_rlimit_nofile 102400;
这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。




use epoll;
使用epoll的I/O模型,这个不用说了吧。




worker_connections 102400;
每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。




keepalive_timeout 60;
keepalive超时时间。




client_header_buffer_size 4k;
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。




open_file_cache max=102400 inactive=20s;
这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。




open_file_cache_valid 30s;
这个是指多长时间检查一次缓存的有效信息。




open_file_cache_min_uses 1;
open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。