CN101471839B - 多核异步实现IPSec vpn的方法 - Google Patents
多核异步实现IPSec vpn的方法 Download PDFInfo
- Publication number
- CN101471839B CN101471839B CN2007103047781A CN200710304778A CN101471839B CN 101471839 B CN101471839 B CN 101471839B CN 2007103047781 A CN2007103047781 A CN 2007103047781A CN 200710304778 A CN200710304778 A CN 200710304778A CN 101471839 B CN101471839 B CN 101471839B
- Authority
- CN
- China
- Prior art keywords
- message
- ipsec
- data
- deciphering
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在多核平台上采用异步机制实现IPSec vpn的方法(简称多核异步实现ipsec vpn),该方法包括下列步骤:数据处理单元与加解密引擎SAE异步并行操作,每个数据处理单元发送加解密请求后立即返回,轮询新的消息,不等待SAE返回结果。本方法有效提高了ipsec vpn数据转发能力,解决了大流量(1G或1G以上)的ipsec vpn数据通讯问题。
Description
技术领域
本发明涉及IPSec VPN(Internet Protocol Security Virtual Private Network),多核技术,特别涉及一种多核异步实现IPSec VPN的方法。
背景技术
虚拟专用网(Virtual Private Network)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展,可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。一个企业的虚拟专用网解决方案大幅度地减少了用户花费在城域网和远程网络连接上的费用。同时,这将简化网络的设计和管理,加速连接新的用户和网站。另外,虚拟专用网还可以保护现有的网络投资。随着用户的商业服务不断发展,企业的虚拟专用网解决方案可以使用户将精力集中到自己的生意上,而不是网络上。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。
互联网安全协议(Internet Protocol Security,IPSec)是互联网工程任务组(Internet Engineer Task Force,IETF)正在完善的安全标准,其把几种安全技术结合在一起形成一个较为完整的体系,受到了众多厂商的关注和支持。通过对数据加密、认证、完整性检查来保证数据传输的可靠性、私有性和保密性。IPSec由IP认证头(Authentication Header,AH)、IP安全载荷封载(Encapsulated Security Payload,ESP)和密钥管理协议组成。
IPSec协议是一个范围广泛、开放的虚拟专用网(VPN)安全协议。它提供所有在网络层上的数据保护,提供透明的安全通信。IPSec用密码技术从三个方面来保证数据的安全。即:认证,用于对主机和端点进行身份鉴别;完整性检查,用于保证数据在通过网络传输时没有被修改;加密,加密IP地址和数据以保证私有性。
IPSec协议可以设置成在两种模式下运行:一种是隧道模式,一种是传输模式。在隧道模式下,IPSec把IP v4数据包封装在安全的IP帧中,这样保护从一个防火墙到另一个防火墙时的安全性。在隧道模式下,信息封装是为了保护端到端的安全性,即在这种模式下不会隐藏路由信息。隧道模式是最安全的,但会带来较大的系统开销。IPSec现在还不完全成熟,但其得到了一些路由器厂商和硬件厂商的大力支持,预计在今后将成为虚拟专用网的主要标准。IPSec有扩展能力以适应未来商业的需要。在1997年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上ISAKMP(Internet Security Association and Key Management Protocol)协议,其中还包括一个密钥分配协议Oakley。ISAKMP/Oakley支持自动建立加密信道,密钥的自动安全分发和更新。IPSec也可用于连接其他层已存在的通信协议,如支持安全电子交易(Secure Electronic Transaction,SET)协议和SSL(Secure Socket layer)协议。即使不用SET或SSL,IPSec都能提供认证和加密手段以保证信息的传输。
目前普遍采用的是基于单核的IPSec vpn技术方案,cpu需要负责所有的工作,如操作系统运行,IPSec vpn系统的配置和维护,IPSec vpn隧道协商(IKE)和数据加/解密运算和通讯及其他应用系统的开销如web服务器等。cpu负荷比较重,只能用有限的cpu和内存资源用来处理IPSec vpn数据通讯。基于单核的IPSec vpn技术方案存在着性能瓶颈。由于在数据传输过程中需要加/解密运算,比较耗费cpu资源,一般最大吞吐率为100M/s左右,因此在大流量(1G或1G以上)时不能满足用户需求。
鉴于上述方案的缺点,可以在单核系统中增加硬件加/解密加速卡,如附图1所示,将加/解密运算由cpu计算改为提交给硬件加速卡计算,从而提高IPSec vpn性能。但是,这种单核加硬件加速卡的IPSec vpn的技术方案若采用轮询方式依然存在着性能瓶颈。cpu接收网络接口的数据,进行封装,将数据发送给硬件加速卡,然后循环等待,一直到硬件加速卡计算结束返回结果。在这段时间内,cpu不能做其他处理,浪费了紧张的cpu资源,一般最大吞吐率为200M/s左右,因此在大流量(1000M或1000M以上)时不能满足用户需求。此外,由于增加了硬件加速卡,单机成本大大增加。
发明内容
本发明的目的在于,提供一种多核异步实现IPSec vpn的方法,解决现存基于单核的IPSec vpn不能满足大流量(1000M及1000M以上)的需求问题。
本发明的多核异步实现IPSec vpn的方法,包括下列步骤:
数据处理单元接收到报文,查询连接表判断是否存在连接,如果未存在,则发送给连接管理单元;
连接管理单元接收所述报文后,建立连接信息,查询IPSec策略表,并将连接信息写入连接表,若查询IPSec策略表成功,则在连接信息中设置IPSec标记,然后将处理后的所述报文送往网络接口转发;
数据处理单元在接收到下一个报文时,查询连接表,查到连接信息,若连接信息中设有IPSec标记,将该报文作加解密预处理,送给数据加解密引擎作加解密操作;
数据加解密引擎将加/解密后的报文发送给数据处理单元,由数据处理单元转发;
其中,数据处理单元与数据加解密引擎异步并行操作,每个数据处理单元发送加解密请求后立即返回,轮询新的报文,不等待数据加解密引擎返回结果。
其中,数据处理单元接收两类报文,一类是网络接口发送的原始数据消息,一类是数据加解密引擎返回加/解密后的数据报文。
进一步地,所述数据处理单元根据源地址、目的地址、源端口号、目的端口号、协议信息查询连接表。
进一步地,所述网络接口发送的原始数据报文类型包括需解密报文、未建连接报文、已建连接非IPSec报文和已建连接IPSec报文。
此外,所述数据加解密引擎返回加/解密后的数据报文类型包括解密已建连接报文、解密未建连接报文和加密后报文。
本发明的有益效果是:依照本发明的多核异步实现IPSec vpn的方法,报文转发主要由数据处理cpu完成,数据加解密操作主要由SAE完成,数据处理cpu在发送加解密消息后没有等待SAE返回,两者是异步的,数据处理cpu和SAE可并行操作,充分使用了cpu资源和SAE,大大提高了数据处理效率,解决了通常大流量(1000M或1000M以上)的IPSec vpn数据通讯问题。
附图说明
图1为包含硬件加速卡的单核IPSec vpn的系统示意图;
图2为本发明的基于多核的IPSec vpn的系统示意图;
图3为本发明的基于多核的IPSec vpn的方法流程图;
图4为基于多核的IPSec vpn的测试拓扑图。
具体实施方式
以下,参考附图2~4详细描述本发明的多核异步实现IPSec vpn的方法。
多核异步实现IPSec vpn解决通常大流量(1G或1G以上)的IPSec vpn数据通讯问题。该技术方法运行于多核硬件平台,主要包括网络接口,连接管理单元(1核,1个虚拟cpu),数据处理单元(共5核,20个虚拟cpu),数据加解密引擎(SAE),采用预先建立连接和异步轮询方式。
结合图2,各模块功能及相互关系,说明如下:
1.模块功能:
网络接口,主要接收网络数据,并发送给数据处理单元;
连接管理单元(1核,1个虚拟cpu),负责在第一个报文到来时建立数据转发的连接信息;
数据处理单元(共5核,20个虚拟cpu),采用异步轮询方式接收处理网络接口报文消息和数据加解密引擎SAE返回的结果消息,根据连接信息对数据处理和转发。接收的如果是网络接口报文,则封装为快速消息网络(Fast Messaging Network,FMN)消息发送至数据加解密引擎,立即返回接受新的报文,不等待SAE计算结束;如果是SAE返回加/解密的结果,则根据连接信息转发。数据处理单元与数据加解密引擎异步,并行操作;
数据加解密引擎(SAE),接收数据处理单元的加解密请求、计算,并将结果通过FMN消息返回给数据处理单元。数据加解密引擎独立处理,不占用数据处理单元CPU资源。
2.各模块相互关系:
1)网络接口接受来自外部网络的数据包并通过FMN发消息给数据处理单元
2)数据处理单元收到消息,查询连接表,
3)若连接不存在,上送给连接管理单元
4)连接管理单元建立连接信息,查询IPSec策略表
5)连接管理单元将连接信息写入连接表,若查询IPSec策略表成功,在连接信息中设置IPSec标记
6)连接管理单元将处理后的这个报文送往网络接口转发
7)当下一个报文到来时,数据处理单元查询连接表,查到连接信息,若连接信息中设有IPSec标记,将该报文作加解密预处理,送给SAE作加解密操作,
8)SAE加解密返回,发送消息给数据处理单元,数据处理单元转发。
结合图3,具体数据处理流程如下:
本发明的基于多核的IPSec vpn的方法流程图,该方法包括下列步骤和方法:
1.接收第一个报文时建立连接
当从网络接口收到报文时,数据处理单元根据五元素(源地址、目的地址、源端口号、目的端口号、协议)查询连接表,若连接不存在,上送给连接管理单元。连接管理单元建立连接信息,查询IPSec策略表,若该报文需要做IPSec VPN处理,则在连接中设置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)解密未建连接报文:提交连接处理单元建立连接,并由连接处理单元发送;
3)加密后报文:经过加密后处理,根据连接信息转发。
依照本发明的多核异步实现IPSec vpn的方法,我们采用IXIA测试仪得到双向最大吞吐量1900M,有效提高了IPSec vpn数据转发能力,解决了大流量(1000M或1000M以上)需求的IPSec vpn数据通讯问题。具体数据如下:
测试设备:IXIA(世界IP测试领域的领导者Ixia公司IPSec vpn测试仪)
测试方法:RFC 2544 Throughput Test(RFC协议标准);
隧道模式:ESP-3DES-MD5(IPSEC VPN隧道模式为ESP,加密算法:3DES,认证算法:MD5);
测试配置为双向1000M线速。
如图4所示,为基于多核的IPSec vpn的测试拓扑图,其中,IXIA 1口以1000M线速发送明文给VPN1,VPN1加密,发送给VPN2解密,VPN2解密后,发送给IXIA 2口,IXIA 2口接收;IXIA 2口以1000M线速发送明文给VPN2,VPN2加密,发送给VPN1解密,VPN1解密后,发送给IXIA 1口,IXIA1口接收。
测试结果如下:
计算方法:双向线速1000M*95.03%*2=1906M=1.906G
相同测试环境和测试方法,测得单核x86平台加硬件加速卡,单向测试结果如下:
计算方法:单向线速1000M*18.7%=187M
从上述数据可以看出,单核加硬件加速卡最大吞吐为187M,而本发明能达到1906M(即1.9G),是前者的10倍左右,有效提高了IPSec vpn数据转发能力,解决了大流量(1000M或1000M以上)的IPSec vpn数据通讯问题。
综上所述,依照本发明的多核异步实现IPSec vpn的方法,报文转发主要由数据处理cpu完成,数据加解密操作主要由SAE完成,数据处理cpu在发送加解密消息后没有等待SAE返回,两者是异步的,数据处理cpu和SAE可并行操作,充分使用了cpu资源和SAE,大大提高了数据处理效率,解决了通常大流量(1000M或1000M以上)的IPSec vpn数据通讯问题。
以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。
Claims (5)
1.一种在多核平台异步实现IPSec vpn的方法,其特征在于,包括下列步骤:
数据处理单元接收到报文,查询连接表判断是否存在连接,如果未存在,则发送给连接管理单元;
连接管理单元接收所述报文后,建立连接信息,查询IPSec策略表,并将连接信息写入连接表,若查询IPSec策略表成功,则在连接信息中设置IPSec标记,然后将处理后的所述报文送往网络接口转发;
数据处理单元在接收到下一个报文时,查询连接表,查到连接信息,若连接信息中设有IPSec标记,将该报文作加解密预处理,送给数据加解密引擎作加解密操作;
数据加解密引擎将加/解密后的报文发送给数据处理单元,由数据处理单元转发;
其中,数据处理单元与数据加解密引擎异步并行操作,每个数据处理单元发送加解密请求后立即返回,轮询新的报文,不等待数据加解密引擎返回结果。
2.如权利要求1所述的多核异步实现IPSec vpn的方法,其特征在于,数据处理单元接收两类报文,一类是网络接口发送的原始数据报文,一类是数据加解密引擎返回加/解密后的数据报文。
3.如权利要求1所述的多核异步实现IPSec vpn的方法,其特征在于,所述数据处理单元根据源地址、目的地址、源端口号、目的端口号、协议信息查询连接表。
4.如权利要求2所述的多核异步实现IPSec vpn的方法,其特征在于,所述网络接口发送的原始数据报文类型包括需解密报文、未建连接报文、已建连接非IPSec报文和已建连接IPSec报文。
5.如权利要求2所述的多核异步实现IPSec vpn的方法,其特征在于,所述数据加解密引擎返回加/解密后的数据报文类型包括解密已建连接报文、解密未建连接报文和加密后报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103047781A CN101471839B (zh) | 2007-12-29 | 2007-12-29 | 多核异步实现IPSec vpn的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103047781A CN101471839B (zh) | 2007-12-29 | 2007-12-29 | 多核异步实现IPSec vpn的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101471839A CN101471839A (zh) | 2009-07-01 |
CN101471839B true CN101471839B (zh) | 2011-05-04 |
Family
ID=40828978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103047781A Active CN101471839B (zh) | 2007-12-29 | 2007-12-29 | 多核异步实现IPSec vpn的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101471839B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752171B (zh) * | 2012-07-04 | 2015-03-25 | 汉柏科技有限公司 | Ipsec协商测试方法 |
CN102780625B (zh) * | 2012-07-30 | 2014-12-17 | 成都卫士通信息产业股份有限公司 | 一种实现ipsec vpn加解密处理的方法及装置 |
CN104243412B (zh) * | 2013-06-15 | 2019-03-05 | 深圳市振华微电子有限公司 | 网络数据处理终端及在其中处理网络数据的方法 |
CN104468309B (zh) * | 2014-10-31 | 2018-06-19 | 成都卫士通信息产业股份有限公司 | 一种低速smp与高速密码卡的高效适配方法 |
CN108123800B (zh) * | 2017-12-19 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 密钥管理方法、装置、计算机设备及存储介质 |
CN110535742B (zh) * | 2019-08-06 | 2022-03-01 | 杭州迪普科技股份有限公司 | 报文转发方法、装置、电子设备及机器可读存储介质 |
CN116938642A (zh) * | 2023-08-08 | 2023-10-24 | 中安云科科技发展(山东)有限公司 | 一种高性能边缘安全网关实现方法 |
CN117811787B (zh) * | 2023-12-26 | 2024-10-18 | 中科驭数(北京)科技有限公司 | 信息配置方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200990078Y (zh) * | 2006-07-03 | 2007-12-12 | 赵惠溥 | 快速rsa密码和大数模指数运算的电路 |
-
2007
- 2007-12-29 CN CN2007103047781A patent/CN101471839B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200990078Y (zh) * | 2006-07-03 | 2007-12-12 | 赵惠溥 | 快速rsa密码和大数模指数运算的电路 |
Non-Patent Citations (1)
Title |
---|
JP特开2006-41830A 2006.02.09 |
Also Published As
Publication number | Publication date |
---|---|
CN101471839A (zh) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101471839B (zh) | 多核异步实现IPSec vpn的方法 | |
US20170142100A1 (en) | Secure distribution of session credentials from client-side to server-side traffic management devices | |
CN102801695B (zh) | 虚拟专用网通信设备及其数据包传输方法 | |
EP1444775B1 (en) | Method and apparatus to manage address translation for secure connections | |
CN101300806B (zh) | 用于处理安全传输的系统和方法 | |
CN101309273B (zh) | 一种生成安全联盟的方法和装置 | |
US7089587B2 (en) | ISCSI target offload administrator | |
CN101447907A (zh) | Vpn安全接入方法及系统 | |
JP2006121510A (ja) | 暗号化通信システム | |
CN106506354B (zh) | 一种报文传输方法和装置 | |
CN102546833A (zh) | 银企互连统一接入平台 | |
CN101572644B (zh) | 一种数据封装方法和设备 | |
JPH11205388A (ja) | パケットフィルタ装置、認証サーバ、パケットフィルタリング方法及び記憶媒体 | |
CN105812322B (zh) | 因特网安全协议安全联盟的建立方法及装置 | |
CN111935213B (zh) | 一种基于分布式的可信认证虚拟组网系统及方法 | |
US20080072033A1 (en) | Re-encrypting policy enforcement point | |
CN101483594A (zh) | 一种基于虚拟专用网隧道的报文发送方法及客户端 | |
CN211352206U (zh) | 基于量子密钥分发的IPSec VPN密码机 | |
WO2004111864A1 (ja) | インターネットセキュア通信装置及び通信方法 | |
US8670565B2 (en) | Encrypted packet communication system | |
US20220210131A1 (en) | System and method for secure file and data transfers | |
CN116016529A (zh) | IPSec VPN设备负载均衡管理方法和装置 | |
CN107454116A (zh) | 单隧道模式下IPsec ESP协议的优化方法及装置 | |
Blåberg Kristoffersson | Zero Trust in Autonomous Vehicle Networks Utilizing Automotive Ethernet | |
CN100583891C (zh) | 一种通讯加密的方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |