一种多进程高并发的IPSecVPN隧道实现方法及装置制造方法

文档序号:8005998阅读:355来源:国知局
一种多进程高并发的IPSec VPN隧道实现方法及装置制造方法
【专利摘要】本发明公开了一种多进程高并发的IPSecVPN隧道实现方法及装置,涉及通信【技术领域】,可以实现上万条IPSecVPN并发隧道的建立。本发明技术要点包括:步骤1:接收IKE?密钥交换数据报文;步骤2:将接收到的IKE密钥交换报文进行分类,把经过分类的IKE密钥交换报文放入不同的入工作队列;步骤3:每个入工作队列对应一个协商工作进程以及出工作队列,所述各个协商工作进程按照IKE协议依次处理其对应的入工作队列中的IKE密钥交换报文,并将相应的回应报文放入其对应的出工作队列;步骤4:不断依次访问各出工作队列,取出回应报文并发送。
【专利说明】—种多进程高并发的IPSec VPN隧道实现方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,涉及一种实现高并发的IPSec VPN隧道的方法。
【背景技术】
[0002]IPSec是通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族(一些相互关联的协议的集合),用以提供公用和专用网络的端到端加密和验证服务,保障数据的机密性、来源可靠性(认证)、无连接的完整性并提供抗重播服务。IPSec协议族由两大部分组成:(I)密钥交换协议(IKE) ;(2)安全报文协议(ESP/AH)。
[0003]IPSec VPN即采用IPSec协议来为位于不同物理位置的用户局域网建立安全的VPN(Virtual Private Network,虚拟专用网络)隧道以达到互联互通和保密通讯目的的安全设备。作为端到端的解决方案,多台IPSec VPN之间互联互通所组建的VPN网络一般都规模有限,市面上的IPSec VPN设备最多也就支持数千条的并发隧道。如果要支持更大规模的IPSec VPN组网,需要对IPSec VPN的实现技术进行优化。特别是密钥交换的环节,一个IPSec VPN隧道的建立需要至少经过9次报文交换以及和内核的多次交互过程,如果成千上万的密钥交换行为并发进行,导致系统崩溃。

【发明内容】

[0004]本发明所要解决的技术问题是:针对上述存在的问题,提供一种高并发的IPSecVPN隧道实现方法,采用本发明提供的方法,可以实现上万条IPSec VPN并发隧道的建立。
[0005]本发明提供的多进程高并发的IPSec VPN隧道实现方法,包括:
步骤1:接收IKE密钥交换数据报文;
步骤2:将接收到的IKE密钥交换报文进行分类,把经过分类的IKE密钥交换报文放入不同的入工作队列;
步骤3:每个入工作队列对应一个协商工作进程以及出工作队列,所述各个协商工作进程按照IKE协议依次处理其对应的入工作队列中的IKE密钥交换报文,并将相应的回应报文放入其对应的出工作队列;
步骤4:不断依次访问各出工作队列,取出回应报文并发送。
[0006]优选地,所述各个协商工作进程在各自的CPU或CPU核上运行。
[0007]优选地,在所述步骤2中,根据IKE密钥交换报文的对端IP地址对IKE密钥交换报文进行分类。
[0008]优选地,对各协商工作进程从0到N-1依次编号,N为协商工作进程总数;在所述步骤2中包含分类步骤A:将接收到的报文的对端IP地址尾字段的8位值对N求余,所得值即为处理该IKE密钥交换报文的协商工作进程编号;分类步骤B:将所述报文送到所述协商工作进程编号对应的协商工作进程中。
[0009]优选地,还包括确定各个协商工作进程的工作量的步骤;
所述步骤2还包括,判断接收到的报文是否是IKE密钥交换报文的第一报文,若是,则顺序执行分类步骤A及分类步骤B ;否则,则执行分类步骤C ;
所述分类步骤A还包括,得到处理某IKE密钥交换报文的协商工作进程编号后,判断所述协商工作进程编号对应的协商工作进程工作量是否大于阈值,若是,将所述协商工作进程编号加I,直到所述协商工作进程编号对应的协商工作进程工作量不大于所述阈值,则将该IKE密钥交换报文的对端IP地址及所述协商工作进程编号写入所述迁移记录表;
所述分类步骤C包括:首先在迁移记录表中查询是否记录有该报文对端IP地址对应的协商工作进程编号:若没有,则顺序执行分类步骤A及分类步骤B,若有,则将该报文送入迁移记录表记录的其对端IP地址对应的协商器的入工作队列。
[0010]优选地,确定各个协商工作进程的工作量的方法包括:
计算接收到的IKE密钥交换报文总数;
计算各个协商工作进程处理的IKE密钥交换报文数量;
计算各个协商工作进程处理的IKE密钥交换报文数量对于IKE密钥交换报文总数的比值,所述比值则为各个协商工作进程的工作量。
[0011 ] 优选地,所述步骤1、步骤2及步骤4也在各自的CPU或CPU核上运行。
[0012]本发明还提供了一种实现多进程高并发的IPSec VPN隧道装置,包括:
接收器,用于接收IKE密钥交换数据报文;
分类器,用于将接收到的IKE密钥交换报文进行分类,把经过分类的IKE密钥交换报文放入不同的入工作队列;
协商器,每个入工作队列对应一个协商器以及出工作队列,所述各个协商器用于按照IKE协议依次处理其对应的入工作队列中的IKE密钥交换报文,并将相应的回应报文放入其对应的出工作队列;
发送器,用于不断依次访问各出工作队列,取出回应报文并发送。
[0013]优选地,所述各个协商器由各自的CPU或CPU核实现;且分类器用于根据IKE密钥交换报文的对端IP地址对IKE密钥交换报文进行分类。
[0014]优选地,对各协商器从0到N-1依次编号,N为协商器总数;所述分类器还确定各个协商器的工作量,以及用于判断接收到的报文是否是IKE密钥交换报文的第一报文,若是,则将所述报文依次送入A级分类器及B级分类器;否则,则送入C级分类器;
所述A级分类器,用于将接收到的报文的对端IP地址尾字段的8位值对N求余,所得值即为处理该IKE密钥交换报文的协商器编号;得到所述协商器编号后,判断其对应的协商器工作量是否大于阈值,若是,将所述协商器编号加I,直到协商器编号对应的协商器工作量不大于所述阈值,则将该对端IP地址及所述协商器编号写入所述迁移记录表;
所述B级分类器,用于将所述报文送到所述协商器编号对应的协商器中;
所述C级分类器,用于首先在迁移记录表中查询是否记录有该报文对端IP地址对应的协商器编号:若没有,则将报文依次送入A级分类器及B级分类器,若有,则将该报文送入迁移记录表记录的其对端IP地址对应的协商器的入工作队列。
[0015]综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明提供的IKE密钥交换的多进程分流处理机制,大大提高了密钥交换的效率。
[0016]2.每个协商工作进程由各自的CPU或CPU核处理,接收器、分类器及发送器也由各自独立的CPU或CPU核处理,进一步加快了密钥交换效率。[0017]3.分类器的设计遵循简单快速和负载均摊的原则。将报文的对端IP地址的尾字段对协商器总数求余,将余数作为处理该设备报文的协商器编号,可以实现负载均摊。进一步,如果某一协商器工作量太大超过阈值时,则将处理该设备报文的协商器编号加1,及将该设备的报文迁移到下一编号的协商器处理,直到找到工作量在阈值以下的协商器,可以更好的保证负载均摊。
[0018]4.采用迁移表记录对端IP地址及迁移后的协商器编号,而不建立全局的安全关联。IPSec VPN设备和不同的通讯对端建立不同的VPN隧道,每一条隧道建立过程中均要依照IKE协议动态协商建立不同模式和不同阶段的安全关联等数据结构(详见RFC相关协议-RFC2409和RFC4306),这些动态的数据结构具有各自的生命周期。本发明通过分类器等机制实现了安全关联等动态数据结构仅在负责协商的工作进程内可见,这样最大限度的避免了不同工作进程竞争互斥读写全局数据结构等极为影响工作效率的操作,实现了数据结构的最小化。
[0019]综上,采用本发明可以大大提升了 IPSec VPN设备的并发处理能力,使得IPSecVPN设备的并发隧道数可以达到上万级别,并且缩短了隧道建立时间,上万规模的并发隧道可以在分钟级的时间内建立成功。
【专利附图】

【附图说明】
[0020]本发明将通过例子并参照附图的方式说明,其中:
图1本发明的处理流程示意图;
图2为本发明的分类器工作流程图。
【具体实施方式】
[0021]本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0022]本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0023]如图1,本发明提供的多进程高并发的IPSec VPN隧道实现方法的一个基本实施例包括:
步骤1:接收IKE密钥交换数据报文;此步骤可以由一个接收工作进程处理;
步骤2:将接收到的IKE密钥交换报文进行分类,把经过分类的IKE密钥交换报文放入不同的入工作队列;此步骤可以由一个分类工作进程处理;
步骤3:每个入工作队列对应一个协商工作进程以及出工作队列,所述各个协商工作进程按照IKE协议依次处理其对应的入工作队列中的IKE密钥交换报文,并将相应的回应报文放入其对应的出工作队列;
步骤4:不断依次访问各出工作队列,取出回应报文并发送;此进程可以由一个发送工作进程处理。
[0024]所述IKE协议为本领域公知常识,在此不再赘述其内容。
[0025]为了进一步提高设备的性能,所述各个协商工作进程由各自的CPU或CPU核实现。当然,也可以使用不同的CPU或CPU核来实现接收工作进程、分类工作进程及发送工作进程。
[0026]由于每个IKE密钥交换报文都包含有对端IP地址,即发出该报文的VPN网络设备的IP地址,因此在本发明一个具体实施例中,所述步骤2中,根据发出IKE密钥交换报文的对端IP地址对IKE密钥交换报文进行分类。
[0027]如图2,分类的一个【具体实施方式】是,对各协商工作进程从0到N-1依次编号,N为协商工作进程总数;将收到的报文的对端IP地址“A.B.C.D”的D字段8bits值对协商工作进程数N求余,所得值即为协商工作进程的编号。以此原则将接收到的报文均匀分配到各个协商工作进程对应的入工作队列中。这里的入工作队列及出工作队列可以采用FIFO这样的数据结构来实现。
[0028]考虑到可能出现以下的情形:某一协商工作进程的工作量特别大,以至于超过设定的阈值,而其他的协商工作进程则处理空闲状态。这时分类方法可以这样来实现:首先判断接收到的报文是不是IKE密钥交换报文的第一报文,如果是,则将收到的报文的对端IP地址“A.B.C.D”的D字段Sbits值对协商工作进程数N求余,所得值即为协商工作进程的编号,然后,判断所述协商工作进程编号对应的协商工作进程工作量是否大于阈值,若是,将处理该协商工作进程编号加1,即将该报文迁移到下一协商工作进程进行处理,如果迁移后的协商工作进程的任务量还是大于阈值,则继续将处理该协商工作进程编号加1,直到该编号对应的协商工作进程工作量不大于所述阈值,则将该报文的对端IP地址及所述协商工作进程编号写入所述迁移记录表;将该报文送入迁移后的协商工作进程入工作队列。
[0029]如果收到的报文不是第一报文,则首先在迁移表中查找是否记录有该报文的对端IP地址对应的协商工作进程。如果有记录,则将该报文送入迁移表记载的协商工作进程的入工作队列中,如果没有记录,则将该报文对应的设备IP “A.B.C.D”的D字段8bits值对协商工作进程总数N求余,所得值即为协商工作进程的编号,将该报文送入该编号对应的协商器工作进程的入工作队列。
[0030]所述确定各个协商器的工作量的方法的一个具体实施例包括:
计算各个协商工作进程处理的IKE密钥交换报文数量;
计算接收到的IKE密钥交换报文总数;
计算各个协商工作进程处理的IKE密钥交换报文数量对于报文总数的比值,所述比值则为各个协商工作进程的工作量。而所述阈值可以设为30%。
[0031]所述迁移记录表的一个【具体实施方式】是使用一个全局哈希链表来实现。该哈希链表包含256个链表元素,各个链表的索引依次为O、1、2…、255,IP地址及其对应的协商工作进程编号插入索引与其D字段相等的链表中。查询时,根据32位IP地址“A.B.C.D”的D字段8bits值直接到对应的链表中检索IP地址及处理其报文的协商工作进程编号。
[0032]本发明还保护了包含与上述方法步骤一一对应的功能模块的装置。
[0033]本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
【权利要求】
1.一种多进程高并发的IPSec VPN隧道实现方法,其特征在于,包括: 步骤1:接收IKE密钥交换数据报文; 步骤2:将接收到的IKE密钥交换报文进行分类,把经过分类的IKE密钥交换报文放入不同的入工作队列; 步骤3:每个入工作队列对应一个协商工作进程以及出工作队列,所述各个协商工作进程按照IKE协议依次处理其对应的入工作队列中的IKE密钥交换报文,并将相应的回应报文放入其对应的出工作队列; 步骤4:不断依次访问各出工作队列,取出回应报文并发送。
2.根据权利要求1所述的一种多进程高并发的IPSecVPN隧道实现方法,其特征在于,所述各个协商工作进程在各自的CPU或CPU核上运行。
3.根据权利要求2所述的一种多进程高并发的IPSecVPN隧道实现方法,其特征在于,在所述步骤2中,根据IKE密钥交换报文的对端IP地址对IKE密钥交换报文进行分类。
4.根据权利要求3所述的一种多进程高并发的IPSecVPN隧道实现方法,其特征在于,对各协商工作进程从O到N-1依次编号,N为协商工作进程总数;在所述步骤2中包含分类步骤A:将接收到的报文的对端IP地址尾字段的8位值对N求余,所得值即为处理该IKE密钥交换报文的协商工作进程编号;分类步骤B:将所述报文送到所述协商工作进程编号对应的协商工作进程中。
5.根据权利要求4所述的一种多进程高并发的IPSecVPN隧道实现方法,其特征在于,还包括确定各个协商工作进程的工作量的步骤; 所述步骤2还包括,判断接收`到的报文是否是IKE密钥交换报文的第一报文,若是,则顺序执行分类步骤A及分类步骤B ;否则,则执行分类步骤C ; 所述分类步骤A还包括,得到处理某IKE密钥交换报文的协商工作进程编号后,判断所述协商工作进程编号对应的协商工作进程工作量是否大于阈值,若是,将所述协商工作进程编号加I,直到所述协商工作进程编号对应的协商工作进程工作量不大于所述阈值,则将该IKE密钥交换报文的对端IP地址及所述协商工作进程编号写入所述迁移记录表; 所述分类步骤C包括:首先在迁移记录表中查询是否记录有该报文对端IP地址对应的协商工作进程编号:若没有,则顺序执行分类步骤A及分类步骤B,若有,则将该报文送入迁移记录表记录的其对端IP地址对应的协商器的入工作队列。
6.根据权利要求5所述的一种多进程高并发的IPSecVPN隧道实现方法,其特征在于,确定各个协商工作进程的工作量的方法包括: 计算接收到的IKE密钥交换报文总数; 计算各个协商工作进程处理的IKE密钥交换报文数量; 计算各个协商工作进程处理的IKE密钥交换报文数量对于IKE密钥交换报文总数的比值,所述比值则为各个协商工作进程的工作量。
7.根据权利要求6所述的一种多进程高并发的IPSecVPN隧道实现方法,其特征在于,所述步骤1、步骤2及步骤4也在各自的CPU或CPU核上运行。
8.一种实现多进程高并发的IPSec VPN隧道装置,其特征在于,包括: 接收器,用于接收IKE密钥交换数据报文; 分类器,用于将接收到的IKE密钥交换报文进行分类,把经过分类的IKE密钥交换报文放入不同的入工作队列; 协商器,每个入工作队列对应一个协商器以及出工作队列,所述各个协商器用于按照IKE协议依次处理其对应的入工作队列中的IKE密钥交换报文,并将相应的回应报文放入其对应的出工作队列; 发送器,用于不断依次访问各出工作队列,取出回应报文并发送。
9.根据权利要求8所述的一种实现多进程高并发的IPSecVPN隧道装置,其特征在于,所述各个协商器由各自的CPU或CPU核实现;且分类器用于根据IKE密钥交换报文的对端IP地址对IKE密钥交换报文进行分类。
10.根据权利要求9所述的一种实现多进程高并发的IPSecVPN隧道装置,其特征在于,对各协商器从0到N-1依次编号,N为协商器总数;所述分类器还确定各个协商器的工作量,以及用于判断接收到的报文是否是IKE密钥交换报文的第一报文,若是,则将所述报文依次送入A级分类器及B级分类器;否则,则送入C级分类器; 所述A级分类器,用于将接收到的报文的对端IP地址尾字段的8位值对N求余,所得值即为处理该IKE密钥交换报文的协商器编号;得到所述协商器编号后,判断其对应的协商器工作量是否大于阈值,若是,将所述协商器编号加I,直到协商器编号对应的协商器工作量不大于所述阈值,则将该对端IP地址及所述协商器编号写入所述迁移记录表; 所述B级分类器,用于将所述报文送到所述协商器编号对应的协商器中; 所述C级分类器,用于首先在迁移记录表中查询是否记录有该报文对端IP地址对应的协商器编号:若没有,则将报文依次送入A级分类器及B级分类器,若有,则将该报文送入迁移记录表记录的其对端IP地 址对应的协商器的入工作队列。
【文档编号】H04L29/08GK103442068SQ201310387339
【公开日】2013年12月11日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】罗俊 申请人:成都卫士通信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1