CN106603376A - 报文处理方法和虚拟专用网络sslvpn服务器 - Google Patents
报文处理方法和虚拟专用网络sslvpn服务器 Download PDFInfo
- Publication number
- CN106603376A CN106603376A CN201611156320.1A CN201611156320A CN106603376A CN 106603376 A CN106603376 A CN 106603376A CN 201611156320 A CN201611156320 A CN 201611156320A CN 106603376 A CN106603376 A CN 106603376A
- Authority
- CN
- China
- Prior art keywords
- sslvpn
- servers
- message
- user space
- connection
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文处理方法和虚拟专用网络SSLVPN服务器,用于解决现有的SSLVPN服务器报文处理效率低下的技术问题。所述方法应用于虚拟专用网络SSLVPN服务器,所述SSLVPN服务器包括工作于内核态的数据流处理器,所述方法包括:所述SSLVPN服务器接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理。
Description
技术领域
本发明涉及计算机领域,具体地,涉及一种报文处理方法和虚拟专用网络SSLVPN服务器。
背景技术
VPN(Virtual Private Network,虚拟专用网络)本质上是将以公开明文方式在公共网络上传输的数据报文按照一定的协议和加密方案进行新的封装,一方面实现了跨越公共网络的私有数据传输,另一方面使远程用户在感觉上如同与内部网络直接连接通信一样,增加了用户使用内部网络的透明程度。
SSLVPN(Secure Sockets Layer VPN,安全套接层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服务器的结构示意图;
图6B是本发明实施例提供的另一种SSLVPN服务器的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
为了使本领域的技术人员更容易理解本发明实施例提供的技术方案,下面对现有技术中SSLVPN服务器处理报文的方法。
图1提供了一种SSLVPN服务器的架构示意图,如图所示,SSLVPN服务器的用户态包括SSLVPN主进程,该主进程下包括多个子进程,如子进程1,子进程2和子进程3。SSLVPN服务器的内核态包括转发模块,虚拟设备,以及SSLVPN内核转发模块。下面结合图1所示的SSLVPN服务器分别说明对明文的加密过程和对密文的解密过程。其中,图1中所示的实线箭头表示连接控制报文,粗虚线表示密文数据报文,细虚线表示要加密的明文数据报文,点划线表示对密文解密后得到的明文。
具体地,对于密文的解密过程,转发模块首先将连接控制报文通过Socket通信发送至主进程,由主进程基于负载均衡发送至子进程,子进程根据连接控制报文进行密钥协商,转发模块再将接收到的密文数据报文发送至主进程,由主进程发送至对应的子进程,子进程基于协商结果进行解密,并将解密后得到的明文数据报文通过Netlink通信发送至SSLVPN内核转发模块,由SSLVPN内核转发模块将解密后得到的明文通过虚拟设备发送至转发模块,以便转发模块将解密后得到的明文转发出去进行下一步处理。
对于明文的加密过程,转发模块将连接控制报文发送至主进程,由主进程发送给子进程进行处理,得到协商结果,转发模块在接收到要加密的明文数据报文后,通过虚拟设备引流发送至SSLVPN内核转发模块,由SSLVPN内核转发模块通过Netlink通信发送至子进程进行加密处理。
由上述过程可知,现有技术中,内核态的子进程不仅需要处理连接控制报文还需要处理对数据报文的加解密,两种处理相互影响导致处理效率下降,同时,数据需要在内核态与用户态之间进行传输,因此,Netlink的通信可能成为吞吐性能的一个瓶颈,也会限制报文的处理效率。
本发明实施例提供了一种报文处理的方法,该方法应用于SSLVPN服务器,如图1所示的SSL SSLVPN服务器,其中,该SSLVPN服务器包括工作于内核态的数据流处理器,如图2所示,该方法包括:
S201、所述SSLVPN服务器接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商。
值得说明的是,密文的解密以及明文的加密均需要事先建立连接,并进行密钥协商。其中,同一连接可能是SSLVPN服务器与客户端之间进行多个报文的交互完成的,并且,SSLVPN服务器可以同时维持多个连接,也就是说,同一时刻,该服务器可以接收到不同连接的连接控制报文以及数据报文。
S202、所述SSLVPN服务器将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果。
具体地,所述用户态进程相当于图1中所示的子进程,每一用户态进程对应一个连接,该用户态进程用于对该连接的连接控制流进行处理。
S203、所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理。
具体地,当前连接的协商完成口,用户态进程可以将协商结果发送至数据流处理器,这样,在数据流处理器接收到数据报文后,即可以根据协商结果对该报文进行相应的加解密。
采用上述方法,SSLVPN服务器的用户态进程只用于连接控制流的协商,数据流的加解密过程均由内核态的数据流处理器完成,这样,避免了同一进程既处理控制连接流量又处理数据流量,进而避免了两种流相互影响导致的处理速度降低,并且,本发明实施例提供的技术方案中,数据报文的处理仅在内核态进行,因此,无需在内核态和用户态之间传输数据,避免了内核态与用户态之间传输通道的吞吐性能导致的报文处理效率较低。
也就是说,本发明实施例相比现有技术,连接控制流的处理和数据流的处理不再相互影响,用户态和内核态之间也无需传输数据报文,从而提升了报文的处理效率。
为了使本领域技术人员更加理解本发明实施例提供的技术方案,下面以图3举例说明本发明实施例提供的技术方案。
如图3提供的SSLVPN服务器所示,SSLVPN服务器的用户态包括多个用户态进程,用于针对每一个连接进行密钥协商,如图1示出的用户态进程1,用户态进程2和用户态进程3。SSLVPN服务器的内核态包括转发模块,虚拟设备以及数据流处理器。
示例地,图3中所示的实线箭头表示连接控制报文,粗虚线表示密文数据报文,细虚线表示要加密的明文数据报文,点划线表示对密文解密后得到的明文。在数据解密过程中,转发模块首先接收连接控制报文,并将所述连接控制报文直接发送至对应的用户态进程,例如用户态进程1,用户态进程1在密钥协商成功后,将协商结果发送至数据流处理器,进一步地,转发模块在接收到密文数据报文后,将密文数据报文直接发送至数据流处理器,以便数据流处理器根据协商结果对密文数据进行解密,数据流处理器还可以将解密后得到明文发送给转发模块,以便转发模块对解密后得到的明文进行后续的转发处理。
在数据加密过程中,转发模块首先接收连接控制报文,并将所述连接控制报文直接发送至对应的用户态进程,例如用户态进程2,用户态进程2在密钥协商成功后,将协商结果发送至数据流处理器,进一步地,转发模块在接收到明文数据报文后,将明文数据报文发送至虚拟设备,通过虚拟设备引流至数据流处理器,以便数据流处理器根据协商结果对明文数据进行加密。
由上述过程可知,由于数据流处理器处于SSLVPN服务器的内核态,用于对数据报文进行加解密,使得用户态的进程可以只负责对连接控制报文进行处理,从而提升了报文处理效率。
值得说明的是,由于本发明实施例是转发模块直接将连接控制报文发送至对报文进行处理的进程,不再是通过主进程基于负载均衡策略将连接控制报文发送至子进程,因此,在本发明实施例中,需要转发模块基于负载均衡策略将每一连接的连接控制报文发送至对应的用户态进程。在本发明实施例的一种可能的实现方式中,转发模块可以采用套接字复用Reuseport机制将接收到的连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程。
值得说明的是,Reuseport的负载均衡模式能高效的将同一个流分发给同一个进程,但是,当有一个服务器进程挂掉时,其对应的套接字会被销毁,导致当前内核套接字发生变化,进而造成同一流的五元组的数据包被定向到错误的套接字,使得同一连接的数据包被发送到没有该连接任何信息的进程上,造成连接的断开。同时,对于客户端的IP地址和端口Port发生动态变化的连接也存在同样的问题。
为了解决上述问题,本发明实施例在一种可能的实现方式中,所述SSLVPN服务器根据Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程具体可以包括:在当前的所述用户态进程中不存在所述连接控制报文的连接信息时,将所述连接控制报文中的标识AUTH-ID作为key值在第一公共哈希表中确定是否对应的value值,所述value值包括用户态进程标识PID,所述AUTH-ID是根据当前连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的;在所述第一公共哈希表存在所述AUTH-ID的value值时,根据所述value值将所述连接控制报文从所述SSLVPN服务器的内核态发送至所述PID标识的用户态进程。
值得说明的是,客户端的IP地址和端口是可变化的,但是当前连接的内存地址是通过缓冲池申请的,其不会其他外部应用干扰,因此,本发明实施例可以利用内存地址相对于预留公共内存池起始地址的偏移值计算得到AUTH-ID,并建立第一公共哈希表,其中,所述第一公共哈希表中的key是AUTH-ID,value值可以是分配的连接的64位内存地址和对应的用户态进程标识PID,这样,客户端的IP地址和端口发生变化后,通过AUTH-ID作为的key值也可查询到正确的用户态进程的标识。
值的说明的是,所述第一公共哈希表中的key还可以是IP地址和端口,这样,针对IP地址和端口固定的客户端,该SSLVPN服务器可以利用IP地址和端口查询第一公共哈希表。在具体实施时,可以针对不同的客户端配置不同的AUTH-ID,例如,对于IP地址和端口固定的客户端,将AUTH-ID默认为0,对于IP地址和端口易发生变化的客户端,将AUTH-ID设为该客户端连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的哈希值,这样,SSLVPN服务器在接收到连接控制报文后,若报文中的AUTH-ID为0,则优先采用IP地址和端口作为套接字查询,若该报文中的AUTH-ID不为0,则优先采用AUTH-ID作为key值进行查询。
进一步地,所述方法还包括:所述SSLVPN服务器的公共哈希表管理进程在接收到所述PID标识的用户态进程发送的更新信号时,对第二公共哈希表进行更新,并根据所述第二公共哈希表定时更新所述第一公共哈希表。
其中,第二公共哈希表用于修改操作,包括针对每一条连接的添加、更新或者删除,所述第一公共哈希表用于查询。这样,SSLVPN服务器在控制连接报文接入时,查询第一公共哈希表不需要考虑冲突的问题。并且,定时将第二公共哈希表同步到第一公共哈希表也保证了信息的一致性。
另外,若SSLVPN服务器在所述第一公共哈希表中未查找到对应当前连接的AUTH-ID的value值时,根据所述控制连接报文通过所述预留公共内存池建立新的连接。
图4是一种套接字动态迁移的流程示意图,如图所示,套接字动态迁移的方法包括:
S401、SSLVPN服务器接收客户端发送的连接控制报文。
S402、SSLVPN服务器确定当前的用户态进程中是否存在对应的连接信息。
进一步地,若不存在,则执行步骤S403和S404,若存在,则执行步骤S409。
S403、SSLVPN服务器以客户端的IP地址和端口,或者AUTH-ID为key查找第一公共哈希表。
示例地,若连接控制报文中的AUTH-ID为0,则以IP地址和端口为key查找第一公共哈希表,若AUTH-ID不为0,则以AUTH-ID为key查找第一公共哈希表。
S404、SSLVPN服务器确定第一公共哈希表是否存在对应的value值。
其中,value值包括用户态进程标识PID和内存地址。
进一步地,若存在,则执行步骤S405和S406,若不存在,则执行步骤S407至S408。
S405、SSLVPN服务器根据该value值将该连接控制报文发送给该用户态进程。
S406、SSLVPN服务器的该用户态进程发送更新消息给哈希表管理进程,以更新第二公共哈希表。
进一步地,执行步骤S409。
S407、SSLVPN服务器从预留公共内存池中申请内存初始化连接。
也就是说,在第一公共哈希表中未查找到对应的value值时,表明该连接控制报文为建立新连接的报文。
S408、SSLVPN服务器根据哈希表管理进程添加连接信息,并将连接信息至用户态进程。
进一步地,执行步骤S409。
S409、SSLVPN服务器根据连接信息进行下一步处理。
采用上述方法步骤,保证了IP和端口在连接过程中发生变化后,也能顺利接入SSLVPN服务器。
另外,SSLVPN服务器的数据量处理器可以包括第一核心和第二核心,这样,步骤S203具体可以包括:所述SSLVPN服务器接收到所述数据报文后,利用所述第一核心根据所述协商结果对所述数据报文进行加解密处理,并通过中断或者线程回调的方式将加解密结果返回所述第二核心;其中,所述第二核心用于处理对数据报文进行加解密以外的进程。
如图5所示,数据流处理器分为四层:报文预处理层,用于为加解密处理预留空间,偏移位置的确定,重放报文判断等;加解密接口层,用于提供加解密对外接口,底层处理对上层透明;硬件驱动层,例如硬件加速卡或者加密卡驱动接口;报文post处理层,用于对经过加解密处理的报文进行封装或者解封装等。为了提高加解密的性能,第二核心用于跑SSLVPN流量以外的进程,第一核心只用于处理SSLVPN流量,及对报文的加解密处理,具体地,通过中断绑定的方式,将硬件驱动的回调及加解密线程工作在第一核心上,使得加解密高效的同时,不影响其他进程的功能使用。具体地,在具有硬件加密卡的情况下,第一核心既可以通过中断方式也可以通过线程回调的方式将加解密结果返回所述第二核心,在没有硬件加密卡的情况下,第一核心可以通过线程回调的方式将加解密结果返回所述第二核心。
这样,第一核心的存在保证了大SSLVPN流量下系统其它功能的正常运行,不会出现系统卡死导致无法操作问题。同时,数据流量处理器的存在为以后扩展支持不同的硬件加速卡或者其他算法的加密卡提供了便利。在存在硬件加速卡的情况下,采用第一核心处理SSLVPN流量,采用第二核心跑SSLVPN流量以外的进程的方式使得数据流量处理器可以完全发挥硬件加速卡的性能,进一步提高报文处理效率。
本发明实施例还提供一种SSLVPN服务器600,该SSLVPN服务器600用于实施上述方法实施例提供的一种报文处理方法,如图6A所示,该SSLVPN服务器600包括工作于内核态的数据流处理器601,还包括:
接收单元602,用于接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;
发送单元603,用于将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;
所述接收单元602还用于,接收数据报文;
所述数据流处理器601用于,根据所述协商结果对所述数据报文进行处理。
采用上述SSLVPN服务器,该SSLVPN服务器的用户态的进程只用于连接控制流的协商,数据流的加解密过程均由内核态的数据流处理器完成,这样,避免了同一进程既处理控制连接流量又处理数据流量,进而避免了两种流相互影响导致的处理速度降低,并且,本发明提供的技术方案中,数据报文的处理仅在内核态进行,因此,无需在内核态和用户态之间传输数据,避免了内核态与用户态之间传输通道的吞吐性能导致的报文处理效率较低。
可选地,所述发送单元603具体用于:
根据套接字复用Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,其中,所述SSLVPN服务器与客户端建立的每一连接对应一个用户态进程。
可选地,所述发送单元603具体用于:在当前的所述用户态进程中不存在所述连接控制报文的连接信息时,将所述连接控制报文中的标识AUTH-ID作为key值在第一公共哈希表中确定是否对应的value值,所述value值包括用户态进程标识PID,所述AUTH-ID是根据当前连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的;
在所述第一公共哈希表存在所述AUTH-ID的value值时,根据所述value值将所述连接控制报文从所述SSLVPN服务器的内核态发送至所述PID标识的用户态进程。
可选地,如图6B所示,该SSLVPN服务器600还包括:更新单元604,用于在接收到所述PID标识的用户态进程发送的更新信号时,对第二公共哈希表进行更新;并根据所述第二公共哈希表定时更新所述第一公共哈希表。
可选地,如图6B所示,该SSLVPN服务器还包括:建立单元605,用于在所述第一公共哈希表中不存在对应所述AUTH-ID的value值时,根据所述控制连接报文通过所述预留公共内存池建立新的连接。
可选地,所述数据流处理器601包括第一核心6011以及第二核心6012;所述第一核心6011用于,根据所述协商结果对所述数据报文进行加解密处理,并通过中断或者线程回调的方式将加解密结果返回所述第二核心6012;所述第二核心6012用于,处理对数据报文进行加解密以外的进程。用两个核心异步处理报文,提高了处理效率,并且,数据流量处理器的存在为以后扩展支持不同的硬件加速卡或者其他算法的加密卡提供了便利。
值得说明的是,以上对系统600的划分,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。并且,上述各功能单元的物理实现也可能有多种实现方式。具体地,上述各功能单元可以通过软件,硬件或者两者结合实现成为SSLVPN服务器的部分或者全部。
另外,所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的各单元的具体工作过程,可以参考前述方法实施例中的对应过程,此处不再赘述。
在本申请所提供的实施例中,应该理解到,所公开的装置和方法,可以通过其它的方式实现。例如,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储数据的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
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值时,根据所述控制连接报文通过所述预留公共内存池建立新的连接。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述数据流处理器包括第一核心以及第二核心,所述SSLVPN服务器接收数据报文,并利用所述数据流处理器根据所述协商结果对所述数据报文进行处理,包括:
所述SSLVPN服务器接收到所述数据报文后,利用所述第一核心根据所述协商结果对所述数据报文进行加解密处理,并通过中断或者线程回调的方式将加解密结果返回所述第二核心;其中,所述第二核心用于处理对数据报文进行加解密以外的进程。
7.一种虚拟专用网络SSLVPN服务器,其特征在于,所述SSLVPN服务器包括工作于内核态的数据流处理器,还包括:
接收单元,用于接收客户端发送的连接控制报文,所述连接控制报文用于与所述客户端进行安全套接层SSL的密钥协商;
发送单元,用于将所述连接控制报文从所述SSLVPN服务器的内核态发送至用户态进程,所述用户态进程用于对所述连接控制报文进行处理,得到协商结果;
所述接收单元还用于,接收数据报文;
所述数据流处理器用于,根据所述协商结果对所述数据报文进行处理。
8.根据权利要求7所述的SSLVPN服务器,其特征在于,所述发送单元具体用于:
根据套接字复用Reuseport机制将所述连接控制报文从所述SSLVPN服务器的内核态发送至当前连接对应的用户态进程,其中,所述SSLVPN服务器与客户端建立的每一连接对应一个用户态进程。
9.根据权利要求8所述的SSLVPN服务器,其特征在于,所述发送单元具体用于:在当前的所述用户态进程中不存在所述连接控制报文的连接信息时,将所述连接控制报文中的标识AUTH-ID作为key值在第一公共哈希表中确定是否对应的value值,所述value值包括用户态进程标识PID,所述AUTH-ID是根据当前连接的内存地址相对于预留公共内存池起始地址的偏移值计算得到的;
在所述第一公共哈希表存在所述AUTH-ID的value值时,根据所述value值将所述连接控制报文从所述SSLVPN服务器的内核态发送至所述PID标识的用户态进程。
10.根据权利要求9所述的SSLVPN服务器,其特征在于,还包括:
更新单元,用于在接收到所述PID标识的用户态进程发送的更新信号时,对第二公共哈希表进行更新;并根据所述第二公共哈希表定时更新所述第一公共哈希表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611156320.1A CN106603376B (zh) | 2016-12-14 | 2016-12-14 | 报文处理方法和虚拟专用网络sslvpn服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611156320.1A CN106603376B (zh) | 2016-12-14 | 2016-12-14 | 报文处理方法和虚拟专用网络sslvpn服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106603376A true CN106603376A (zh) | 2017-04-26 |
CN106603376B CN106603376B (zh) | 2019-09-13 |
Family
ID=58801985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611156320.1A Active CN106603376B (zh) | 2016-12-14 | 2016-12-14 | 报文处理方法和虚拟专用网络sslvpn服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106603376B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810087A (zh) * | 2018-04-28 | 2018-11-13 | 北京优帆科技有限公司 | 一种存储服务器的连接方法、系统及设备 |
CN110768865A (zh) * | 2019-10-23 | 2020-02-07 | 新华三信息安全技术有限公司 | 一种深度报文检测引擎激活方法、装置及电子设备 |
CN111835613A (zh) * | 2019-04-23 | 2020-10-27 | 厦门网宿有限公司 | 一种vpn服务器的数据传输方法及vpn服务器 |
CN112637239A (zh) * | 2020-12-31 | 2021-04-09 | 河南信大网御科技有限公司 | 一种快速裁决系统及方法 |
CN113259400A (zh) * | 2021-07-14 | 2021-08-13 | 南京易科腾信息技术有限公司 | 基于网络协议的网络交互系统、方法及存储介质 |
CN114791857A (zh) * | 2021-01-25 | 2022-07-26 | 青岛海信宽带多媒体技术有限公司 | 一种家庭网关多核cpu处理器的控制方法及装置 |
CN116521249A (zh) * | 2023-07-03 | 2023-08-01 | 北京左江科技股份有限公司 | 一种基于进程文件描述符的内核态报文分发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101951378A (zh) * | 2010-09-26 | 2011-01-19 | 北京品源亚安科技有限公司 | 用于ssl vpn的协议栈体系结构及数据处理方法 |
US20120290732A1 (en) * | 2006-08-21 | 2012-11-15 | Josephine Suganthi | Methods for associating an ip address to a user via an appliance |
CN104580146A (zh) * | 2014-12-02 | 2015-04-29 | 重庆旭贤科技发展有限公司 | 基于PPPoE分流网关的用户自主选择的路由控制系统 |
CN104796337A (zh) * | 2015-04-10 | 2015-07-22 | 京信通信系统(广州)有限公司 | 一种转发报文的方法及装置 |
-
2016
- 2016-12-14 CN CN201611156320.1A patent/CN106603376B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120290732A1 (en) * | 2006-08-21 | 2012-11-15 | Josephine Suganthi | Methods for associating an ip address to a user via an appliance |
CN101951378A (zh) * | 2010-09-26 | 2011-01-19 | 北京品源亚安科技有限公司 | 用于ssl vpn的协议栈体系结构及数据处理方法 |
CN104580146A (zh) * | 2014-12-02 | 2015-04-29 | 重庆旭贤科技发展有限公司 | 基于PPPoE分流网关的用户自主选择的路由控制系统 |
CN104796337A (zh) * | 2015-04-10 | 2015-07-22 | 京信通信系统(广州)有限公司 | 一种转发报文的方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810087A (zh) * | 2018-04-28 | 2018-11-13 | 北京优帆科技有限公司 | 一种存储服务器的连接方法、系统及设备 |
CN108810087B (zh) * | 2018-04-28 | 2020-06-26 | 北京青云科技股份有限公司 | 一种存储服务器的连接方法、系统及设备 |
CN111835613A (zh) * | 2019-04-23 | 2020-10-27 | 厦门网宿有限公司 | 一种vpn服务器的数据传输方法及vpn服务器 |
CN110768865A (zh) * | 2019-10-23 | 2020-02-07 | 新华三信息安全技术有限公司 | 一种深度报文检测引擎激活方法、装置及电子设备 |
CN112637239A (zh) * | 2020-12-31 | 2021-04-09 | 河南信大网御科技有限公司 | 一种快速裁决系统及方法 |
CN114791857A (zh) * | 2021-01-25 | 2022-07-26 | 青岛海信宽带多媒体技术有限公司 | 一种家庭网关多核cpu处理器的控制方法及装置 |
CN113259400A (zh) * | 2021-07-14 | 2021-08-13 | 南京易科腾信息技术有限公司 | 基于网络协议的网络交互系统、方法及存储介质 |
CN116521249A (zh) * | 2023-07-03 | 2023-08-01 | 北京左江科技股份有限公司 | 一种基于进程文件描述符的内核态报文分发方法 |
CN116521249B (zh) * | 2023-07-03 | 2023-10-10 | 北京左江科技股份有限公司 | 一种基于进程文件描述符的内核态报文分发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106603376B (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106603376A (zh) | 报文处理方法和虚拟专用网络sslvpn服务器 | |
EP3298719B1 (en) | Network device and method for processing a session using a packet signature | |
US9794186B2 (en) | Distributed network address translation for efficient cloud service access | |
CN102577256B (zh) | 在虚拟化网络基础设施情况下用于透明云计算的方法和设备 | |
EP2206052B1 (en) | Methods and apparatus for managing addresses related to virtual partitions of a session exchange device | |
US9338091B2 (en) | Procedures for efficient cloud service access in a system with multiple tenant logical networks | |
US12028378B2 (en) | Secure communication session resumption in a service function chain preliminary class | |
US20120099602A1 (en) | End-to-end virtualization | |
CN104378299B (zh) | 流表项处理方法以及装置 | |
CN116547953A (zh) | 由网络结构控制平面实施段间流量策略 | |
US20080077694A1 (en) | Method and system for network security using multiple virtual network stack instances | |
US20210281442A1 (en) | Managing transmission control protocol (tcp) maximum segment size (mss) values for multiple tunnels supported by a computing site gateway | |
CN115333859B (zh) | 一种基于芯片方案的IPsec协议报文加密及解密方法 | |
CN113395212A (zh) | 网络装置及其操作方法和非暂时性计算机可读介质 | |
CN210469376U (zh) | 一种基于zynq7020和安全芯片的数据加解密设备 | |
US11457094B2 (en) | Network system and conversion apparatus crossing different transmission protocols | |
US10686711B2 (en) | Enhanced quality of service management for inter-computing system communication | |
CN106487677A (zh) | 运营商边缘设备及数据转发方法 | |
CN109547392B (zh) | 一种在sdn网络中支持多用户隔离的加密接入方法及系统 | |
CN111464443B (zh) | 基于服务功能链的报文转发方法、装置、设备及存储介质 | |
US10965596B2 (en) | Hybrid services insertion | |
US20020078341A1 (en) | System and method for applying quality of service policies to internet protocol security to avoid bandwidth limitations on a computer network | |
US20230036071A1 (en) | Managing edge gateway selection using exchanged hash information | |
US20190123934A1 (en) | Port translation for network segmentation | |
US20060098646A1 (en) | Local and remote network based management of an operating system-independent processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |