报文处理方法和虚拟专用网络SSLVPN服务器技术

技术编号:15257860 阅读:112 留言:0更新日期:2017-05-03 04:51
本发明专利技术提供一种报文处理方法和虚拟专用网络SSLVPN服务器,用于解决现有的SSLVPN服务器报文处理效率低下的技术问题。所述方法应用于虚拟专用网络SSLVPN服务器,所述SSLVPN服务器包括工作于内核态的数据流处理器,所述方法包括:所述SSLVPN服务器接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理。

Message processing method and virtual private network SSLVPN server

The invention provides a message processing method and a virtual private network SSLVPN server, which are used to solve the technical problems of the low efficiency of the existing SSLVPN server message processing. The application of the method in the virtual private network SSLVPN server, the SSLVPN server including data in kernel stream processor, the method comprises: connecting the SSLVPN server receives the control message sent by the client, the connection control message for SSL SSL key agreement with the client; the the SSLVPN server transmits the connection control message sent to the user from the kernel state process of the SSLVPN server, the user mode process is used for processing the connection control message, get the negotiation result; the SSLVPN server receives the data packet, and using the data stream processor according to the results of the consultation the data message processing.

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体地,涉及一种报文处理方法和虚拟专用网络SSLVPN服务器
技术介绍
VPN(VirtualPrivateNetwork,虚拟专用网络)本质上是将以公开明文方式在公共网络上传输的数据报文按照一定的协议和加密方案进行新的封装,一方面实现了跨越公共网络的私有数据传输,另一方面使远程用户在感觉上如同与内部网络直接连接通信一样,增加了用户使用内部网络的透明程度。SSLVPN(SecureSocketsLayerVPN,安全套接层VPN)作为VPN的一种,是在SSL协议基础上建立的。随着技术的发展,现有技术出现了将SSLVPN移植到道高性能的异构转发平台下的技术方案。具体地,SSLVPN保护的是三层及以上的协议传输,通过虚拟设备引流,完成明文的加密加封装和密文的解密解封装。其中协商通信过程涉及的流量信息可以分为控制连接流和数据流,其中,控制连接流主要用于通过SSL协议协商出一条安全通道,数据流是在控制连接流协商的安全通道的基础上,进行数据的传输。现有技术中,移植到异构转发平台下的SSLVPN,通过一个父进程调用多个子进程的方式实现多核下的多连接处理,并且,每个进程内部是同步处理结构,既处理控制连接流量,又处理数据流量,并且,用户态和内核态之间的双向数据通信通过Netlink实现。
技术实现思路
本专利技术的目的是提供一种报文处理方法和虚拟专用网络SSLVPN服务器,以解决现有SSLVPN服务器对报文的处理效率低下的技术问题。为了实现上述目的,本专利技术提供第一方面提供一种报文处理方法,其特征在于,所述方法应用于虚拟专用网络SSLVPN服务器,所述SSLVPN服务器包括工作于内核态的数据流处理器,所述方法包括:所述SSLVPN服务器接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理。可选地,所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,包括:所述SSLVPN服务器根据套接字复用Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,其中,所述SSLVPN服务器与客户端建立的每一连接对应一个用户态进程。可选地,所述SSLVPN服务器根据Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,包括:在当前的所述用户态进程中不存在所述连接控制报文的连接信息时,将所述连接控制报文中的标识AUTH-ID作为key值在第一公共哈希表中确定是否对应的value值,所述value值包括用户态进程标识PID,所述AUTH-ID是根据当前连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的;在所述第一公共哈希表存在所述AUTH-ID的value值时,根据所述value值将所述连接控制报文从所述SSLVPN服务器的内核态发送至所述PID标识的用户态进程。可选地,所述方法还包括:所述SSLVPN服务器的公共哈希表管理进程在接收到所述PID标识的用户态进程发送的更新信号时,对第二公共哈希表进行更新;根据所述第二公共哈希表定时更新所述第一公共哈希表。可选地,所述方法还包括:在所述第一公共哈希表中不存在对应所述AUTH-ID的value值时,根据所述控制连接报文通过所述预留公共内存池建立新的连接。可选地,所述数据流处理器包括第一核心以及第二核心,所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理,包括:所述SSLVPN服务器接收到所述数据报文后,利用所述第一核心根据所述协商结果对所述数据报文进行加解密处理,并通过中断或者线程回调的方式将加解密结果返回所述第二核心;其中,所述第二核心用于处理对数据报文进行加解密以外的进程。本专利技术第二方面还提供一种虚拟专用网络SSLVPN服务器,所述SSLVPN服务器包括工作于内核态的数据流处理器,还包括:接收单元,用于接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;发送单元,用于将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;所述接收单元还用于,接收数据报文;所述数据流处理器用于,根据所述协商结果对所述数据报文进行处理。可选地,所述发送单元具体用于:根据套接字复用Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,其中,所述SSLVPN服务器与客户端建立的每一连接对应一个用户态进程。可选地,所述发送单元具体用于:在当前的所述用户态进程中不存在所述连接控制报文的连接信息时,将所述连接控制报文中的标识AUTH-ID作为key值在第一公共哈希表中确定是否对应的value值,所述value值包括用户态进程标识PID,所述AUTH-ID是根据当前连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的;在所述第一公共哈希表存在所述AUTH-ID的value值时,根据所述value值将所述连接控制报文从所述SSLVPN服务器的内核态发送至所述PID标识的用户态进程。可选地,还包括:更新单元,用于在接收到所述PID标识的用户态进程发送的更新信号时,对第二公共哈希表进行更新;并根据所述第二公共哈希表定时更新所述第一公共哈希表。可选地,还包括:建立单元,用于在所述第一公共哈希表中不存在对应所述AUTH-ID的value值时,根据所述控制连接报文通过所述预留公共内存池建立新的连接。可选地,所述数据流处理器包括第一核心以及第二核心;所述第一核心用于,根据所述协商结果对所述数据报文进行加解密处理,并通过中断或者线程回调的方式将加解密结果返回所述第二核心;所述第二核心用于,处理对数据报文进行加解密以外的进程。通过上述技术方案,用户态的进程只用于连接控制流的协商,数据流的加解密过程均由内核态的数据流处理器完成,这样,避免了同一进程既处理控制连接流量又处理数据流量,进而避免了两种流相互影响导致的处理速度降低,并且,本专利技术提供的技术方案中,数据报文的处理仅在内核态进行,因此,无需在内核态和用户态之间传输数据,避免了内核态与用户态之间传输通道的吞吐性能导致的报文处理效率较低。本专利技术的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本专利技术,但并不构成对本专利技术的限制。在附图中:图1是现有SSLVPN服务器处理报文的示意图;图2是本专利技术实施例提供的一种报文处理方法的流程示意图;图3是本专利技术实施例提供的一种SSLVPN服务器处理报文的示意图;图4是本专利技术实施例提供的一种套接字动态迁移的流程示意图;图5是本专利技术实施例提供的一种数据流处理器的结构示意图;图6A是本专利技术实本文档来自技高网...

【技术保护点】
一种报文处理方法,其特征在于,所述方法应用于虚拟专用网络SSLVPN服务器,所述SSLVPN服务器包括工作于内核态的数据流处理器,所述方法包括:所述SSLVPN服务器接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理。

【技术特征摘要】
1.一种报文处理方法,其特征在于,所述方法应用于虚拟专用网络SSLVPN服务器,所述SSLVPN服务器包括工作于内核态的数据流处理器,所述方法包括:所述SSLVPN服务器接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理。2.根据权利要求1所述的方法,其特征在于,所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,包括:所述SSLVPN服务器根据套接字复用Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,其中,所述SSLVPN服务器与客户端建立的每一连接对应一个用户态进程。3.根据权利要求2所述的方法,其特征在于,所述SSLVPN服务器根据Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,包括:在当前的所述用户态进程中不存在所述连接控制报文的连接信息时,将所述连接控制报文中的标识AUTH-ID作为key值在第一公共哈希表中确定是否对应的value值,所述value值包括用户态进程标识PID,所述AUTH-ID是根据当前连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的;在所述第一公共哈希表存在所述AUTH-ID的value值时,根据所述value值将所述连接控制报文从所述SSLVPN服务器的内核态发送至所述PID标识的用户态进程。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:所述SSLVPN服务器的公共哈希表管理进程在接收到所述PID标识的用户态进程发送的更新信号时,对第二公共哈希表进行更新,根据所述第二公共哈希表定时更新所述第一公共哈希表。5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:在所述第一公共哈希表中不存在对应所述AUTH-ID的value值时,根据所述控制连接报文通过所述预留公共内存池建立...

【专利技术属性】
技术研发人员:党丽娜刘健男
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1