《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 一种新型结构的VPN安全网关平台设计

一种新型结构的VPN安全网关平台设计

2008-03-31
作者:梁 铮,黄永峰

  摘 要: 分析了安全网关产品的发展趋势,从技术和需求等不同角度对其发展思路进行了综述,指出了传统VPN安全网关产品的设计缺陷,提出一种新的通用VPN安全网关平台体系结构,并以IPsec VPN的实现为例,证明了其设计性能上的优势。
  关键词: VPN 安全网关 “内嵌" title="内嵌">内嵌”结构


  安全网关产品是目前网络安全类产品中的一个热点。安全网关类产品的性能和功能一直是一对矛盾。用户的安全需求通常分为两类:(1)在公共性较强的网络节点上,对性能要求很高,但需要的安全策略相对简单和固定;(2)位于网络的边缘处,数据流量较小,安全需求却非常丰富。
  从技术发展角度看:一方面,ASIC(Application Specific Integrated Circuit)和FPGA(Field Programmable Gate Array)技术已经可以承担诸如协议处理等原来只能用软件实现的功能,大量基于硬件处理的产品问世,性能突出,一般应用在万兆以上速率的网络中;另一方面,要实现网络边缘处复杂的协议处理、灵活的策略控制以及用户的多变需求,目前的ASIC技术水平尤其是国内的开发能力还有待提高。因此,基于通用处理器/网络处理器的平台模式仍将长期存在并将多用于网络边缘的VPN(Virtual Private Network)安全网关产品中[1],本文着重讨论这一类产品的实现。
1 VPN安全网关存在的问题
  由于IP网络协议的复杂性,影响VPN安全网关性能的因素非常多。现有平台的IP包安全处理有几种典型的方式:(1)在主处理器内部调用软件模块,其主处理器承受的压力很大,无法保证较高的性能;(2)通过一组总线将需要安全处理的数据发送到一个协处理模块上,完成处理后再送回主模块。目前多数成熟的VPN安全网关产品都是基于这种设计,例如通过工控机平台的PCI总线调用PCI加密卡,或者近些年出现的在嵌入式处理器总线上挂接安全模块" title="安全模块">安全模块的方式。
  上述设计简单且易于实现。在早期,通信接口的性能不高,主要瓶颈不在处理器和总线上。但如今,主模块的调度协调能力以及与安全模块之间的总线瓶颈已经严重限制了系统的性能。首先,主模块在调用安全模块工作时自身处于闲置状态,无法处理后续的数据包。由于IP协议的复杂和IP包的变长,即使在主模块中采用了部分流水设计,也难以从根本上改善这种状况,从而导致IP包处理产生排队,在较大的压力下,很容易大量丢包。其次,主模块与安全模块之间的数据交换增加了总线处理时间和带宽压力。现有安全网关典型结构如图1 所示。在主模块和安全模块之间,双向的数据流进行了一次迂回,可较粗略地认为该部分的数据带宽为单向数据流的4倍,而主模块也相当于进行了2次软件转发,如此的结构使得总线处成为一个瓶颈,严重限制了系统整体性能。基于以上原因,采用该种模式设计的VPN安全网关其性能很难提升,形成了“只有高速接口,没有线速能力”的情况,对用户网络的影响很大。


2 VPN安全网关平台的创新
2.1 创新原则和目标

  对于变化较多的虚拟专用网络,VPN安全网关必须能够很灵活地适应用户的各种要求,包括组网方式和定制安全策略等。因此,功能灵活且便于更改的应用层需求是必须保证的。在此基础上,提高安全网关的处理能力十分重要,在现有百兆、千兆的应用环境下要尽可能地减小对用户网络的影响。此外,开发代价以及价格控制都必须考虑。
2.2 结构模式创新的依据
  近年来在国外IP网络安全应用研究中,出现了一种新思维,其基本模式就是将IP包的协议处理和安全处理与线路串成一线,即避免数据在安全模块进行处理时的排队等待,使数据不再经过总线迂回。以实现IPsec的FPGA设计为例,华盛顿大学的一种FPGA验证设计中,外出数据处理" title="数据处理">数据处理和进入数据处理分别如图2和图3所示[2]


  图2和图3中,虚线框内的箭头表示数据流向。以外出数据为例,数据在流经控制逻辑的同时,也进入处理路径,分别经过包协议处理、AES和HMAC算法处理,然后做校验准备发送。这样,安全模块相当于嵌入在网络传输路径中,安全模块处理后的数据包可以直接发送。如此设计的优势显而易见,避免了总线迂回造成的瓶颈,同时也使整个处理流程更加符合流水设计的思想。
  基于此种思想的ASIC/FPGA设计目前已经有一些类似的研究,另外很多实际的网关产品为提高性能" title="高性能">高性能也倾向于将尽量多的任务交给硬件去完成。但由于技术的复杂度、需求的多变性以及应用的多样性等原因,基于纯硬件实现的方案有很大局限性。因此,立足通用平台基础,设计合理的高性能VPN产品是一件十分有意义的事情。
3 新型结构的VPN安全网关平台设计
3.1 新型VPN平台体系结构

  借鉴上述的先进思想并综合各方面因素,可以开发一种新的、称为“内嵌”结构模式的平台化VPN网关体系结构,如图4所示。其基本设计思想如下:平台的主要模块——主模块和安全模块串联于数据处理的路径上,这样,安全处理流程相当于内嵌在线路中,数据不再经过总线迂回;主模块仍旧利用现有的高性能处理器使用软件方式,主要完成部分协议处理、策略控制以及对用户的便捷服务;而安全模块主要采用成熟的FPGA或ASIC设计方式,完成较为固定的一些安全处理,其速度可以保证IP包能够线速通过。


3.2 “内嵌”结构平台的设计重点
  采用这种模式让软硬件协同工作,很好地解决了设备性能与设计复杂度及成本之间的矛盾,在达到较好性能的同时,具有较高的灵活性和可扩展性。但是,这种结构也存在着实现上的难点,即如何将两个模块的任务进行合理划分。因为从IP网络未来的发展趋势看,安全协议已越来越紧密地融入通信协议本身。
  通过分析可以看出,主模块和安全模块在构成上具有不同特点。主模块由高性能的通用处理器/网络处理器组成,它通过软件来处理数据包,方便灵活,但处理能力相对硬件而言较弱,因此将能够保证软件执行速度、需要灵活处理和日后扩展的功能交由主模块实现;安全模块由高性能FPGA/ASIC以及辅助芯片组成,全硬件实现,处理能力强,但是实现复杂,不灵活,适合处理任务相对固定的部分。需要指出的是,各部分功能的执行未必单调地影响性能,必须结合多种因素来较为精确的评估,找到最优点,这是设计工作的关键之处。
3.3 主模块软硬件设计
  (1)硬件工作。在实验分析的基础上,根据需求选择合适的处理器平台,完成平台相关硬件的研制开发工作,建立完整的硬件平台应用体系。在选择中主要考察的因素包括:运算速度、通信控制器的能力、外围资源以及开发难度和价格等。
  (2)软件工作。编写优化协议实现代码和数据结构,以完成“内嵌”结构下主模块的通信功能和部分安全功能;同时,编写高效的网络接口驱动程序,以达到高吞吐率" title="吞吐率">吞吐率的要求,可参考一些成熟的代码,例如稳定版本的Linux源代码。
3.4 安全模块设计
  安全模块基本考虑功能相对固定、模块化好、使用硬件逻辑实现较为固定的协议处理和算法,对于MAC处理等可考虑增加一些外围辅助芯片,以减少总体逻辑设计的复杂度。在设计好明确的功能后,写出功能需求,进行设计开发,其基本要求是能够高速地处理通过报文,一般情况下应能达到线速。
4 新结构设计及应用中的性能分析
4.1 模块功能划分的依据

  每一类功能的实现都需要软硬件合理分工,协调工作,以发挥出系统结构的优越性。以IPsec VPN功能的实现为例,IPsec中包含了大量的安全协议和管理体系,需要量化地分析出一个完整IPsec处理流程中各部分的相对工作量,并结合处理器找出瓶颈和优化工作目标。对此,可采用如下方式:
  (1)使用相同版本、同样功能的已有软件(如2.4版本Linux内核+Freeswan1.99.8,Freeswan1.99.8主要完成IPsec功能)在已有不同平台(如PC机、PowerPC系列开发平台和AMCC等)上分别测试不同长度IP包的吞吐率。此测试为处理器本身的选型和设计搭配提供依据。
  (2)使用相同的平台,同样软件,通过添加不同功能(例如纯透传方式、ESP隧道模式、屏蔽算法、添加不同算法等),测试不同长度IP包的吞吐率。此测试可分析各功能块对系统性能的影响并找出软件部分的优化目标。
  (3)几种典型软硬件组合方式测试。
  在得出相应的数据后,综合分析各方因素,结合具体平台,完成总体设计。
4.2 工作模式的选择
  该网关可以采用几种不同的安全工作模式,其安全性各不相同,处理效率也不一样。一般而言,安全保护越完善,其额外开销越大。IPSec标准规定的加密工作模式有ESP(Encapsulating Security Payload)传输模式和ESP隧道模式[3]。为了提高传输效率,可以自定义“纯加密”模式。


4.3 设计及实现示例
  根据主模块和安全模块的特点,可对工作任务进行一种合理划分:安全模块处理能力强,可利用硬件完成密钥匹配策略、数据包加解密和认证工作;主模块程序设计灵活,可完成IKE(Internet Key Exchange)密钥协商、组包/拆包、分片/组片、策略查找、路由查找等功能。这种模式可以很好地让软硬件协同工作,较理想地解决了设备性能与设计复杂度及成本之间的矛盾,在达到较好性能的同时,具有很高的灵活性和可扩展性。图5以数据外出方向为例具体描述安全网关在执行ESP隧道加密模式时对IP包的处理流程。
  以上是以IPsec的实现为例说明软硬件功能协调划分的重要性。在实际应用中,对于每一类功能,如入侵检测、防病毒、NAT(Network Address Translator)穿越和多播等,都可以结合实际情况分配最优实现位置,对于主模块处理器的选择和搭配也可以根据处理任务量来决定,提高平台的整体性价比。
4.4 与传统结构平台的性能对比
  通过一组实验数据能够验证新型结构对性能的提升作用。为了在尽量相似的环境下比较,可以以Freescale(飞思卡尔半导体公司)的某款PowerPC处理器平台为基础,利用已有的Linux2.4内核和Freeswan1.99.8,进行IP包百兆情况下双向全双工吞吐率测试。测试1:处理器执行完整功能的IPsec,包括一组标准的加密算法(软件实现3DES算法);测试2:利用处理器总线调用加密模块(3DES算法);测试3:新型“内嵌”模式。表1列出了双向全双工吞吐率测试结果。


  在主模块处理器相同的情况下,新结构的性能有明显的提升。特别需要指出的是:该测试仅为了在相同条件下进行对比。事实上,如果根据需要合理地选择处理器及优化软件,其测试可以达到很高的性能,采用FPGA设计的安全模块也完全满足线速要求。可见,避免复杂的算法处理等待和总线迂回,再加上必要的优化设计,新结构VPN安全网关的性能能够提升到一个很高的层次。
  “内嵌”模式结构是一种先进的VPN安全网关平台结构,具有较强的可行性,较低的成本。在百兆和千兆网络吞吐率的测试中,其平台性能大大好于传统结构的VPN产品,一般情况下能够达到网络包线速处理,且应用灵活,便于修改,对于特定用户的需求,例如定制自有算法、适应复杂网络等都可以很好地满足。“内嵌”结构中各模块的任务划分和协同工作方式可作为以后高性能VPN专用芯片设计的重要参考,其平台性能的测试数据也可以作为系列新产品的定型依据,具有非常广阔的发展空间。
参考文献
1 李 军.第三代安全网关:中国安全产业新机遇.互联网周刊,2003;(43)
2 Lu J,Lockwood J.IPSec implementation on xilinx virtex-II Pro FPGA and its application.In:19th IEEE international parallel and distributed processing symposium(IPDPS′05),2005
3 Kent S,Atkinson R.IP encapsulating security payload.RFC2406,1998

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。