多核异步实现IPSecvpn的方法

文档序号:7669324阅读:153来源:国知局

专利名称::多核异步实现IPSecvpn的方法
技术领域
:本发明涉及IPSecVPN(InternetProtocolSecurityVirtualPrivateNetwork),多核技术,特别涉及一种多核异步实现IPSecVPN的方法。
背景技术
:虚拟专用网(VirtualPrivateNetwork)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展,可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。一个企业的虚拟专用网解决方案大幅度地减少了用户花费在城域网和远程网络连接上的费用。同时,这将简化网络的设计和管理,加速连接新的用户和网站。另外,虚拟专用网还可以保护现有的网络投资。随着用户的商业服务不断发展,企业的虚拟专用网解决方案可以使用户将精力集中到自己的生意上,而不是网络上。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。互联网安全协议(InternetProtocolSecurity,IPSec)是互联网工程任务组(InternetEngineerTaskForce,IETF)正在完善的安全标准,其把几种安全技术结合在一起形成一个较为完整的体系,受到了众多厂商的关注和支持。通过对数据加密、认证、完整性检查来保证数据传输的可靠性、私有性和保密性。IPSec由IPiU正头(AuthenticationHeader,AH)、IP安全载荷封载(EncapsulatedSecurityPayload,ESP)和密钥管理协议组成。IPSec协议是一个范围广泛、开放的虚拟专用网(VPN)安全协议。它提供所有在网络层上的数据保护,提供透明的安全通信。IPSec用密码技术从三个方面来保证数据的安全。即认证,用于对主机和端点进行身份鉴别;完整性检查,用于保证数据在通过网络传输时没有被修改;加密,加密IP地址和数据以保证私有性。IPSec协议可以设置成在两种模式下运行一种是隧道模式,一种是传输模式。在隧道模式下,IPSec把IPv4数据包封装在安全的IP帧中,这样保护从一个防火墙到另一个防火墙时的安全性。在隧道模式下,信息封装是为了保护端到端的安全性,即在这种模式下不会隐藏路由信息。隧道模式是最安全的,但会带来较大的系统开销。IPSec现在还不完全成熟,但其得到了一些路由器厂商和硬件厂商的大力支持,预计在今后将成为虚拟专用网的主要标准。IPSec有扩展能力以适应未来商业的需要。在1997年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上ISAKMP(InternetSecurityAssociationandKeyManagementProtocol)协议,其中还包括一个密钥分配协议Oakley。ISAKMP/Oakley支持自动建立加密信道,密钥的自动安全分发和更新。IPSec也可用于连接其他层已存在的通信协议,如支持安全电子交易(SecureElectronicTransaction,SET)协i义和SSL(SecureSocketlayer)协议。即使不用SET或SSL,IPSec都能提供认证和加密手段以保证信息的传输。目前普遍釆用的是基于单核的IPSecvpn技术方案,cpu需要负责所有的工作,如操作系统运行,IPSecvpn系统的配置和维护,IPSecvpn隧道协商(IKE)和数据加/解密运算和通讯及其他应用系统的开销如web服务器等。cpu负荷比较重,只能用有限的cpu和内存资源用来处理IPSecvpn数据通讯。基于单核的IPSecvpn技术方案存在着性能瓶颈。由于在数据传输过程中需要力o/解密运算,比较耗费cpu资源,一般最大吞吐率为100M/s左右,因此在大流量(1G或1G以上)时不能满足用户需求。鉴于上述方案的缺点,可以在单核系统中增加硬件加/解密加速卡,如附图1所示,将加/解密运算由cpu计算改为提交给硬件加速卡计算,从而提高IPSecvpn性能。但是,这种单核加硬件加速卡的IPSecvpn的技术方案若采用轮询方式依然存在着性能瓶颈。cpu接收网络接口的数据,进行封装,将数据发送给硬件加速卡,然后循环等待,一直到硬件加速卡计算结束返回结果。在这段时间内,cpu不能做其他处理,浪费了紧张的cpu资源,一般最大吞吐率为200M/s左右,因此在大流量(1000M或1000M以上)时不能满足用户需求。此外,由于增加了硬件加速卡,单机成本大大增加。
发明内容本发明的目的在于,提供一种多核异步实现IPSecvpn的方法,解决现存基于单核的ipsecvpn不能满足大流量(1000M及1000M以上)的需求问题。本发明的多核异步实现IPSecvpn的方法,包括下列步骤数据处理单元与加解密引擎SAE异步并行操作,每个数据处理单元发送加解密请求后立即返回,轮询新的消息,不等待SAE返回结果。其中,包括下列步骤步骤A:查询连接表判断是否存在连接,如果未存在,则上送给连接管理单元;步骤B:连接管理单元建立连接信息,查询IPSEC策略表,并将连接信息写入连接表,若查询IPSEC策略表成功,在连接信息中设置IPSEC标记;步骤C:连接管理单元将处理后的这个报文送往网络接口转发;步骤D:当下一个报文到来时,数据处理单元查询连接表,查到连接信息,若连接信息中设有IPSEC标记,将该报文作加解密预处理,送给SAE作加解密操作;步骤E:SAE加解密返回,发送消息给数据处理单元,由数据处理单元转发。其中,在所述步骤E中,第一个报文由连接管理单元建立连接,并设置ipsec标记,后续才艮文不再查询ipsec策略表,以提高ipsec处理效率。其中,在所述步骤A中,接收的如果是网络接口报文,则封装为快速消息网络FMN消息发送至数据加解密引擎,立即返回接受新的报文,不等待SAE计算结束;如果是SAE返回力。/解密的结果,则根据连接信息转发,数据处理单元与数据加解密引擎异步,并行操作。其中,数据处理cpu接受两类消息,一类是网络接口发送原始数据消息,一类是SAE返回力口/解密后的数据消息。进一步地,所述tt据处理单元根据源地址、目的地址、源端口号、目的端口号、协议信息查询连接表。进一步地,所述网络接口报文包括需解密报文、未建连接报文、已建连接非ipsec报文和已建连接ipsec报文。此外,所述加解密引擎返回的结果包括解密已建连接报文、解密未建连接报文和加密后报文。本发明的有益效果是依照本发明的多核异步实现IPSecvpn的方法,报文转发主要由数据处理cpu完成,数据加解密操作主要由SAE完成,数据处理cpu在发送加解密消息后没有等待SAE返回,两者是异步的,数据处理cpu和SAE可并行操作,充分使用了cpu资源和SAE,大大提高了数据处理效率,解决了通常大流量(1000M或1000M以上)的ipsecvpn数据通讯问题。图1为包含硬件加速卡的单核ipsecvpn的系统示意图;图2为本发明的基于多核的ipsecvpn的系统示意图;图3为本发明的基于多核的ipsecvpn的方法流程图;图4为基于多核的ipsecvpn的测试拓朴图。具体实施例方式以下,参考附图24详细描述本发明的多核异步实现IPSecvpn的方法。多核异步实现ipsecvpn解决通常大流量(1G或1G以上)的ipsecvpn数据通讯问题。该技术方法运行于多核硬件平台,主要包括网络接口,连接管理单元(1核,l个虚拟cpu),数据处理单元(共5核,20个虚拟cpu),数据加解密引擎(SAE),采用预先建立连接和异步轮询方式。结合图2,各模块功能及相互关系,说明如下1.模块功能网络接口,主要接收网络数据,并发送给数据处理单元;连接管理单元(l核,l个虛拟cpu),负责在第一个报文到来时建立数据转发的连接信息;数据处理单元(共5核,20个虚拟cpu),采用异步轮询方式接收处理网络接口报文消息和数据加解密引擎SAE返回的结果消息,根据连接信息对数据处理和转发。接收的如果是网络接口报文,则封装为快速消息网络(FastMessagingNetwork,FMN)消息发送至数据加解密引擎,立即返回接受新的报文,不等待SAE计算结束;如果是SAE返回力。/解密的结果,则根据连接信息转发。数据处理单元与数据加解密引擎异步,并行操作;数据加解密引擎(SAE),接收数据处理单元的加解密请求、计算,并将结果通过FMN消息返回给数据处理单元。数据加解密引擎独立处理,不占用数据处理单元CPU资源。2.各模块相互关系1)网络接口接受来自外部网络的数据包并通过FMN发消息给数据处理单元2)数据处理单元收到消息,查询连接表,3)若连接不存在,上送给连接管理单元4)连接管理单元建立连接信息,查询IPSEC策略表5)连接管理单元将连接信息写入连接表,若查询IPSEC策略表成功,在连接信息中设置IPSEC标记6)连接管理单元将处理后的这个报文送往网络接口转发7)当下一个报文到来时,数据处理单元查询连接表,查到连接信息,若连接信息中设有IPSEC标记,将该报文作加解密预处理,送给SAE作加解密操作,8)SAE加解密返回,发送消息给数据处理单元,数据处理单元转发。结合图3,具体数据处理流程如下本发明的基于多核的IPSecvpn的方法流程图,该方法包括下列步骤和方法1.接收第一个报文时建立连接当从网络接口收到报文时,数据处理单元根据五元素(源地址、目的地址、源端口号、目的端口号、协议)查询连接表,若连接不存在,上送给连接管理单元。连接管理单元建立连接信息,查询IPSEC策略表,若该报文需要做IPSECVPN处理,则在连接中设置IPSEC标记,当下一个报文到来时,数据处理单元查询连接表,直接根据该标记进行IPSEC处理,不再每一个报文都去查询IPSEC策略表。当存在大量IPSEC策略记录且流量巨大时,该种方法可有效提高IPSEC处理效率。2.异步轮询方式处理数据数据处理cpu(共5核,20个虚拟cpu)接受两类消息,一类是网络接口发送原始数据消息,一类是SAE返回加/解密后的数据消息;对于网络接口报文,分为四类1)需解密报文首先根据数据报文的协议类型(UDP,AH,ESP)进行解密前的预处理,然后将准备好需解密的数据使用fmn消息发送给SAE,SAE负责解密操作,当前cpu返回轮询接收处理下一个消息,不等待SAE返回;2)未建连接报文:提交连接处理单元建立连接,并由连接处理单元发送;3)已建连接非ipsec报文根据连接信息转发;4)已建连接ipsec报文根据连接中ipsec标记,进入ipsec处理,首先进行加密前的预处理,将准备好的待加密数据发送fmn消息给SAE,SAE负责加密操作,当前cpu返回轮询接收处理下一个消息,不等待SAE返回。对于加解密引擎返回的结果,分为三类1)解密已建连接报文经过解密后处理,根据连接信息转发;2)解密未建连接^R文提交连接处理单元建立连接,并由连接处理单元发送;3)加密后报文经过加密后处理,根据连接信息转发。依照本发明的多核异步实现IPSecvpn的方法,我们采用IXIA测试仪得到双向最大吞吐量1900M,有效提高了ipsecvpn数据转发能力,解决了大流量(1000M或1000M以上)需求的ipsecvpn数据通讯问题。具体数据如下测试设备IXIA(世界IP测试领域的领导者Ixia公司ipsecvpn测试仪)测试方法RFC2544ThroughputTest(RFC协议标准);隧道模式ESP-3DES-MD5(IPSECVPN隧道模式为ESP,加密算法3DES,认证算法MD5);测试配置为双向1000M线速。如图4所示,为基于多核的ipsecvpn的测试拓朴图,其中,IXIA1口以1000M线速发送明文给VPN1,VPN1加密,发送给VPN2解密,VPN2解密后,发送给IXIA2口,IXIA2口接收;IXIA2口以1000M线速发送明文给VPN2,VPN2加密,发送给VPN1解密,VPN1解密后,发送给IXIA1口,IXIA1口接收。测试结果如下:<table>tableseeoriginaldocumentpage10</column></row><table>计算方法双向线速1000M*95.03%*2=1906M=1.卯6G相同测试环境和测试方法,测得单核x86平台加硬件加速卡,单向测试结果如下<table>tableseeoriginaldocumentpage10</column></row><table>计算方法单向线速1000M*18.7%=187M从上述数据可以看出,单核加硬件加速卡最大吞吐为187M,而本发明能达到1906M(即1.9G),是前者的IO倍左右,有效提高了ipsecvpn数据转发能力,解决了大流量(1000M或1000M以上)的ipsecvpn数据通讯问题。综上所述,依照本发明的多核异步实现IPSecvpn的方法,报文转发主要由数据处理cpu完成,数据加解密操作主要由SAE完成,数据处理cpu在发送加解密消息后没有等待SAE返回,两者是异步的,数据处理cpu和SAE可并行操作,充分使用了cpu资源和SAE,大大提高了数据处理效率,解决了通常大流量(IOOOM或1000M以上)的ipsecvpn数据通讯问题。以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。权利要求1.一种在多核平台异步实现IPSecvpn的方法,其特征在于,包括下列步骤数据处理单元与加解密引擎SAE异步并行操作,每个数据处理单元发送加解密请求后立即返回,轮询新的消息,不等待SAE返回结果。2.如权利要求1所述的多核异步实现IPSecvpn的方法,其特征在于,包括下列步骤步骤A:查询连接表判断是否存在连接,如果未存在,则上送给连接管理单元;步骤B:连接管理单元建立连接信息,查询IPSEC策略表,并将连接信息写入连接表,若查询IPSEC策略表成功,在连接信息中设置IPSEC标记;步骤C:连接管理单元将处理后的这个报文送往网络接口转发;步骤D:当下一个^^艮文到来时,数据处理单元查询连接表,查到连接信息,若连接信息中设有IPSEC标记,将该报文作加解密预处理,送给SAE作加解密操作;步骤E:SAE加解密返回,发送消息给数据处理单元,由数据处理单元转发。3.如权利要求2所述的多核异步实现IPSecvpn的方法,其特征在于,在所述步骤E中,第一个报文由连接管理单元建立连接,并设置ipsec标记,后续报文不再查询ipsec策略表,以提高ipsec处理效率。4.如权利要求2或3所述的多核异步实现IPSecvpn的方法,其特征在于,在所述步骤A中,接收的如果是网络接口报文,则封装为快速消息网络FMN消息发送至数据加解密引擎,立即返回接受新的报文,不等待SAE计算结束;如果是SAE返回力。/解密的结果,则根据连接信息转发,数据处理单元与数据加解密引擎异步,并行操作。5.如权利要求2或3所述的多核异步实现IPSecvpn的方法,其特征在于,数据处理cpu接受两类消息,一类是网络接口发送原始数据消息,一类是SAE返回加/解密后的数据消息。6.如权利要求2或3所述的多核异步实现IPSecvpn的方法,其特征在于,所述数据处理单元根据源地址、目的地址、源端口号、目的端口号、协议信息查询连接表。7.如权利要求2或3所述的多核异步实现IPSecvpn的方法,其特征在于,所述网络接口报文包括需解密报文、未建连接报文、已建连接非ipsec报文和已建连接ipsec报文。8.如权利要求2或3所述的多核异步实现IPSecvpn的方法,其特征在于,所述加解密引擎返回的结果包括解密已建连接报文、解密未建连接报文和加密后报文。全文摘要本发明公开了一种在多核平台上采用异步机制实现IPSecvpn的方法(简称多核异步实现ipsecvpn),该方法包括下列步骤数据处理单元与加解密引擎SAE异步并行操作,每个数据处理单元发送加解密请求后立即返回,轮询新的消息,不等待SAE返回结果。本方法有效提高了ipsecvpn数据转发能力,解决了大流量(1G或1G以上)的ipsecvpn数据通讯问题。文档编号H04L12/46GK101471839SQ200710304778公开日2009年7月1日申请日期2007年12月29日优先权日2007年12月29日发明者吴亚飚,蒋海荣申请人:北京天融信网络安全技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1