>
首页 » 业界动态 » 基于IXP425的宽带VPN网关设计与实现

基于IXP425的宽带VPN网关设计与实现

作者:杨 凯,李方敏  时间:2006-10-31 00:55  来源:
摘 要:VPN技术和防火墙技术作为两种重要的技术,被广泛的运用于网络安全领域。介绍了一种采用嵌入式技术实现集成VPN功能和防火墙功能安全网关的方法。提出了基于网络处理器IXP425和PCI加密卡SafeXcel-1741的安全网关硬件设计思想。利用加密卡SafeXcel-1741完成加密和杂凑运算,提出了双处理器协同工作的体系结构来解决VPN网关加/解密的速度瓶颈。

关键词:VPN;防火墙;网络处理器;IXP425;加密卡

引 言

随着Internet设施的发展和普及,越来越多的组织希望借助Internet建设自己的信息交换系统。同时,Internet公用设施费用低廉,使得那些曾经利用专线等昂贵费用的方案来实现上述目的的组织希望转而采用这种更廉价的实现方式。虚拟私有网VPN (Virtual Private Network)就是应这种需求而开发出来一种的技术。它通过大量复杂的数值运算对数据加密、认证,以保证数据在公网传输的安全。通用嵌入式处理器在处理IPSec协议时暴露出运算能力不足的缺点,影响整个系统的吞吐量。

网络处理器是近年来迅速兴起的一种适应更高速宽带网络需要的专用处理器,它通过专门优化包处理,将数据包以线性的速度送到下一个节点,而不像一般的通用处理器那样要同时处理范围很大的各种指令。英特尔公司推出的IXP425网络处理器即是一典型代表,它以其完整的功能性、良好的适应性、充分的扩展性和优秀的性能价格比正在中小型高速网络应用领域得到日益广泛的重视。

网络处理器IXP425

IXP425的内部结构
IXP425内核
IXP425的内核采用英特尔XScale架构,带有32k指令高速缓存、32k数据高速缓存和2k的微指令高速缓存。与早期的网络处理器相比,IXP425的XScale内核通过一系列的结构和指令改进,极大地提高了它的性能。通过改进设计,缩短了内核与存储器之间交换数据的等待时间,执行单元通过分支预测机制和缓存器,避免了处理器空等的损耗。ARM V5指令集,提供ARM V5T和V5E的DSP指令扩展集,并向前兼容英特尔StrongArm系列产品的指令集,使得目前广泛使用的StrongArm处理器的绝大部分用户程序也可以在IXP425上运行。

网络处理引擎(NPE)
IXP425最大的特点在于它的3个网络处理引擎,其框架结构如图1所示。

每个网络处理引擎的核心是一个硬件多线程的处理引擎,主要用来实现在RISC处理器中难以达到的速度及性能要求;每个NPE的工作频率都是133MHz,它们各自有独立的、并行工作的指令和数据存贮空间,便于高速处理网络数据;各引擎的内核都连有一定的协处理器,这些协处理单元专注于内核比较难对付的加密、解密和译码等特定功能处理,并且能够与网络处理引擎的内核同时并行工作处理数据,可以进一步提高效率;引擎的内核在硬件上支持多线程的快速切换,以满足高速网络的需要。

网络处理器借助网络处理引擎处理数据的能力从而达到线性的速度,特别是在NAT、Firewall等对数据处理运算要求不高的应用,IXP425可以达到非常优越的性能。在一个Firewall/NAT应用的网关上,IXP425可以达到97Mb/s的带宽,但是在进行加解密数据处理上,IXP425的处理能力就达不到所需的要求。如表1所示,利用网络处理引擎硬件加密进行3DES、SHA1运算,只有每秒27Mb的带宽,这无疑成为数据处理的瓶颈。利用IXP425高效的数据转发功能,再结合一个专门处理数据加密和解密的加密卡SafeNet SafeXcel-1741提高加解密的速率,共同实现一个高速的VPN网关。

图1 IXP425处理引擎框架结构

表1 IXP425性能数据表
 
SafeNet SafeXcelTM-1741

SafeXcel-1741是一个应用于网络安全的协处理芯片,被广泛的应用于各种安全领域中,例如:VPN、SSL和电子商务安全等。它和主处理器相互协作,减轻主处理器进行加解密的运算压力。

SafeXcel-1741芯片结合了高效率的包处理引擎,提供完整的IPSec运算封装机制;2k的输入输出缓冲;可以处理任何数量的SA(SecurityAssociations),最高支持16个隧道。SafeXcel-1741提供非常丰富的应用程序接口(API),即包含了用于IPSec的ESP、AH、IKE运算封装函数,又有SSL/TLS/WTLS的数据包转换函数。在加解密模块上,支持所有的模式:ECB;CBC;OFB;1、8、64位DES,和128 位的AES。哈希模块上,除了高性能的运算性能外,支持HMAC到IPSeCAH的格式转换,并且对IPv4 头部的选项位和IPv6的扩展头这些“易变位“可以智能的处理。SafeXcel-1741还包含随机数产生器和公共密钥产生器,用于产生密钥,初始化向量(IV),Cookies和Nonce,还支持Diffie-Hellman、RSA,DSA算法。SafeXcel-1741内包含一个4通道,32位的DMA控制器,可进行高达2.2Gb/s的数据传输,并且支持32位PCI v2.2标准接口。

数据包引擎工作流程概述

SafeXcel-1741具有一个高性能的智能包处理引擎(Packet Engine)作为核心。包处理引擎的核心就是一个运算处理引擎,它包含一个加解密501单元和一个哈希单元。运算处理引擎有2K字节的输入缓存和输出缓存,需要传送给引擎的数据通过SafeXcel-1741的DMA控制器直接存放在这2K的缓存中。在PCI总线下,这个DMA控制器可以不需要主处理器的参与直接把数据从主机RAM传送到输入缓冲中,等待数据包引擎把数据包处理完成后,再直接把数据包从输出缓冲写回主机内存里。

包描述符(Packet DescriPtor)和安全联盟SA(SecurityAssociation)用来告诉SafeXcel-1741对数据包进行什么处理。在PCI模式下,包描述符是一个20个字节的结构,它提供给数据包引擎必要的信息,比如存放数据包的内存地址、数据包处理完成后存放的目的内存地址和对应SA的内存地址等;同时也返回引擎处理数据包后的信息,如运算是否成功和认证是否成功等。安全联盟SA用来存放加密/解密的密钥,认证的密钥,并通过COMMAND寄存器通知数据包引擎是进行加密还是解密运算、所用的加密算法和哈希算法等。

在PCI模式下,主处理器只需要告诉SafeXcel-1741包描述符的内存地址,并触发SafeXcel-1741,SafeXcel-1741的描述符抓取引擎(DescriPtoRFetch Engine)就会自动从内存里得到包描述符,并把信息保持在命令队列中。引擎处理线程分析命令,控制SafeXcel-1741DMA引擎从内存把要处理的数据包直接传到SafeXcel-1741包处理引擎的输入缓存中,然后进行加解密和认证运算,并把结果数据放在输出缓存中,最后利用SafeXcel-1741DMA把输出缓存中结果数据传送到对应的内存地址中。然而,整个复杂的过程不需要主处理器的参与,达到主处理器和SafeXcel-1741并行处理的效果。

以下是在IXP425在应用层测试SafeXcel-1741加(解)密性能所得到的带宽:


IPSeCVPN软件系统的总体设计与改进

IPSeCVPN的实现必须包含以下模块:2IPSec基本协议,SPD (安全策略库),SADB,IKE,策略管理模块和CA认证模块。VPN功能的实现是在VxWorks中通过修改TCP/IP协议栈加入IPSec功能完成的。图2是本文对于IPSec网关包处理逻辑图。VPN的核心就是IPSec基本协议,IPSec基本协议中的加密、认证模块集中了大量的数据计算,是影响VPN网关数据吞吐量的瓶颈。笔者利用SafeXcel-1741代替原来需要主处理器处理的加密、认证模块功能。

图2 IPSec网关包处理逻辑图

性能测试

性能测试的目的是对现有平台下的VPN的实现的性能的一种评估和评价,并通过性能测试的数据分析并找出可行的改善方法对系统进行优化。测试的方法是在Linux下编写UDP程序,分别在2台主机上实现收发操作。在收包服务器上分别记录收包使用的时间和收到包的个数。通过个数得到发送数据的总大小,拿此总大小除时间就得到安全网关的速度。测试结果如表2所示。

表2 VPN网关测试带宽


结束语

文中介绍的嵌入式安全网关,已能够满足企业级和分支机构的使用要求,但要达到电信级的应用还有一定的差距。今后笔者将在提高系统稳定性、可配置性和多功能性等方面进行研究和改进。


相关推荐

防火墙产品性能评估测试方法

防火墙  吞吐量  性能评估  2010-11-26

浅谈边界安全接入技术

UTM  ACL  VPN  2010-10-22

新加坡电信占据国际IP VPN方案市场最大份额

SingTel  IDC  新加坡电信  IP VPN  2009-01-16

常用通信接口技术

远程接入超级访谈:昨天、今天和明天

远程接入  虚拟化  ISDN  VPN  2008-11-14

全自主才安全 曙光首推龙芯千兆防火墙产品

曙光  防火墙  2008-11-02
在线研讨会
焦点