CN111294319B - 网络隔离的方法、装置,网络设备和可读存储介质 - Google Patents
网络隔离的方法、装置,网络设备和可读存储介质 Download PDFInfo
- Publication number
- CN111294319B CN111294319B CN201811497868.1A CN201811497868A CN111294319B CN 111294319 B CN111294319 B CN 111294319B CN 201811497868 A CN201811497868 A CN 201811497868A CN 111294319 B CN111294319 B CN 111294319B
- Authority
- CN
- China
- Prior art keywords
- openvpn
- tenant
- space
- isolation
- user
- 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
Classifications
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- 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/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在DPDK框架下实现OpenVPN网络隔离的方法和装置,属于虚拟网络技术领域。所述方法包括:OpenVPN进程加载OpenVPN配置文件,获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;所述OpenVPN进程根据所述不同租户对应的隔离空间信息和租户配置信息,建立所述不同租户对应的用户态隔离空间;对于每个租户,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道;所述OpenVPN进程基于所述用户态隔离空间的空间资源,通过所述OpenVPN通道与所述租户的客户端进行报文传输。采用本发明,可以对OpenVPN实现用户态的网络隔离,进而节省OpenVPN服务端的性能损耗,提高OpenVPN服务效率。
Description
技术领域
本发明涉及虚拟网络技术领域,特别涉及一种在DPDK框架下实现OpenVPN网络隔离的方法和装置。
背景技术
网络设备内部的网络隔离技术是一种通过网络设备上的不同网卡接收业务数据,并将业务数据存放在不同的网络隔离空间里进行处理的技术,由于网络隔离空间之间完全隔离,故而各个网络隔离空间内的业务程序互不干扰,从而可以实现业务程序的稳定并发,保证业务处理过程中的数据安全。
Linux系统基于Namespace机制提供了一种内核级别环境隔离的方法,其中,网络命名空间(Network Namespace,可简称为NS)可以用来实现上述网络设备内部的网络隔离效果,从逻辑上讲,每个网络命名空间可以理解为网络协议栈的副本,提供了一份独立的网络环境,类似独立的系统一样具备独立的路由选择表、邻接表、Netfilter表、网络套接字等网络资源。
发明人发现现有技术至少存在以下问题:
目前越来越多的业务程序依托于用户态协议栈运行,而用户态协议栈部署在用户空间,在进行DPDK(Data Plane Development Kit,数据平面开发套件) 改造后,由于OpenVPN不支持用户态的网络资源隔离,OpenVPN的所有数据报文如果再通过exception-path方式导向内核空间,使用内核级别的网络隔离技术,则内核态与用户态的处理会频繁切换,从而导致网络设备的性能损耗, OpenVPN服务效率低下。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种在DPDK框架下实现 OpenVPN网络隔离的方法和装置。所述技术方案如下:
第一方面,提供了一种在DPDK框架下实现OpenVPN网络隔离的方法,所述方法包括:
OpenVPN进程加载OpenVPN配置文件,获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;
所述OpenVPN进程根据所述不同租户对应的隔离空间信息和租户配置信息,建立所述不同租户对应的用户态隔离空间;
对于每个租户,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道;
所述OpenVPN进程基于所述用户态隔离空间的空间资源,通过所述 OpenVPN通道与所述租户的客户端进行报文传输。
可选的,所述获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息,包括:
所述OpenVPN进程通过其执行代码中预先添加的隔离空间配置结构体,读取并存储所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
可选的,所述隔离空间配置结构体的资源结构体中添加有用于指向用户态隔离空间的隔离空间指针。
可选的,所述租户配置信息至少包括每个租户对应的VPN公网IP地址。
可选的,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道之前,还包括:
所述OpenVPN进程基于所述每个租户对应的隔离空间信息和VPN公网IP 地址,建立并绑定监听所述每个租户对应的数据连接socket。
可选的,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道,包括:
当通过目标租户对应的数据连接socket接收到目标客户端的连接请求报文时,所述OpenVPN进程确定所述目标租户对应的目标用户态隔离空间;
所述OpenVPN进程通过所述目标用户态隔离空间的空间资源,与所述目标客户端进行OPENSSL校验,校验通过后,与所述目标客户端建立OpenVPN通道。
第二方面,提供了一种在DPDK框架下实现OpenVPN网络隔离的装置,装置,所述装置运行有经DPDK改造的OpenVPN进程,所述OpenVPN进程用于:
加载OpenVPN配置文件,获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;
根据所述不同租户对应的隔离空间信息和租户配置信息,建立所述不同租户对应的用户态隔离空间;
对于每个租户,基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道;
基于所述用户态隔离空间的空间资源,通过所述OpenVPN通道与所述租户的客户端进行报文传输。
可选的,所述OpenVPN进程,具体用于:
通过其执行代码中预先添加的隔离空间配置结构体,读取并存储所述 OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
可选的,所述隔离空间配置结构体的资源结构体中添加有指向绑定用户态隔离空间的隔离空间指针。
可选的,所述租户配置信息至少包括每个租户对应的VPN公网IP地址。
可选的,所述OpenVPN进程,还用于:
基于所述每个租户对应的VPN公网IP地址,建立并绑定监听所述每个租户对应的数据连接socket。
可选的,所述OpenVPN进程,具体用于:
当通过目标租户对应的数据连接socket接收到目标客户端的连接请求报文时,确定所述目标租户对应的目标用户态隔离空间;
通过所述目标用户态隔离空间的空间资源,与所述目标客户端进行 OPENSSL校验,校验通过后,与所述目标客户端建立OpenVPN通道。
第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的在DPDK框架下实现OpenVPN网络隔离的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的在 DPDK框架下实现OpenVPN网络隔离的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,OpenVPN进程加载OpenVPN配置文件,获取OpenVPN 配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;OpenVPN进程根据不同租户对应的隔离空间信息和租户配置信息,建立不同租户对应的用户态隔离空间;对于每个租户,OpenVPN进程基于租户对应的用户态隔离空间的空间资源,与租户的客户端建立OpenVPN通道;OpenVPN进程基于用户态隔离空间的空间资源,通过OpenVPN通道与租户的客户端进行报文传输。这样,从OpenVPN配置文件和数据报文两方面对OpenVPN实现用户态的网络隔离,实现了对多租户的OpenVPN服务的支持,避免了内核态与用户态的频繁切换,进而节省了OpenVPN服务端的性能损耗,提高了OpenVPN服务效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种在DPDK框架下实现OpenVPN网络隔离的方法流程图;
图2是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种对DPDK框架下OpenVPN实现网络隔离的方法,该方法可以运用在安装有经过DPDK改造后的OpenVPN程序中的网络设备(可称为OpenVPN服务端)中,并主要由OpenVPN进程实现。其中,OpenVPN服务端可以通过OpenVPN进程与OpenVPN客户端搭建OpenVPN通道,并基于搭建完成的OpenVPN通道与OpenVPN客户端进行报文传输。具体来说, OpenVPN服务端可以通过OpenVPN进程与OpenVPN客户端进行SSL(Secure SocketsLayer,安全套接层)握手,建立SSL加密通道,然后使用SSL加密通道与OpenVPN客户端协商OpenVPN控制信息以及OpenVPN通道的配置策略。同时,OpenVPN服务端上的虚拟网卡进行初始化处理,准备OpenVPN通道,这样,OpenVPN服务端与OPEN客户端则可以按照协商好的控制信息和配置策略,通过准备就绪的OpenVPN通道进行报文传输。
网络设备可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的OpenVPN进程所执行的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。可以理解,本申请中OpenVPN进程所实现的所有处理,均为运行OpenVPN 进程的网络设备通过相应的进程所完成的。
下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
步骤101,OpenVPN进程加载OpenVPN配置文件,获取OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
其中,隔离空间信息可以至少包含每个隔离空间的空间标识,该空间标识优选为租户标识。
在实施中,OpenVPN服务端侧的技术人员可以根据开通了OpenVPN服务的所有租户的租户信息,提前对OpenVPN配置文件进行修改。具体的,可以在 OpenVPN配置文件(可以是“server.conf”文件)中添加多个“NS_NAME{..}”区间字段,通过不同的“NS_NAME{..}”区间字段分别记载不同租户对应的隔离空间信息,并在每个区间字段中增加用于指定每个隔离空间信息的租户配置信息,用于区分不同租户的数据报文,其中,不同的租户对应的NS_NAME不同, NS_NAME可以直接使用租户的标识信息,以方便识别不同的网络隔离空间。这样,OpenVPN进程在启动后,可以加载OpenVPN配置文件,然后通过上述区间字段获取该OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
可选的,OpenVPN进程可以以结构体的形式来存储隔离空间信息和租户配置信息,相应的,步骤101中获取隔离空间信息和租户配置信息的处理可以具体如下:OpenVPN进程通过其执行代码中预先添加的隔离空间配置结构体,读取并存储OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
在实施中,OpenVPN服务端侧的技术人员可以预先在OpenVPN进程的执行代码中添加用于读取隔离空间信息和租户配置信息的隔离空间配置结构体“OpenVPN_ns_t”,具体结构可以如下:
struct OpenVPN_ns{
char name[256];
context*top;
};
这样,OpenVPN进程启动后,可以通过其执行代码中预先添加的隔离空间配置结构体“OpenVPN_ns_t”,读取并存储OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
可选的,隔离空间配置结构体的的资源结构体中添加有指向用户态隔离空间的隔离空间指针。
在实施中,OpenVPN服务端侧的技术人员在添加隔离空间配置结构体“OpenVPN_ns_t”时,可以在其调用的资源结构体(即context数据结构体)中添加用于指向用户态隔离空间的隔离空间指针,以使OpenVPN进程在建立用户态隔离空间时,通过上述隔离空间指针,将隔离空间信息和租户配置信息与建立的用户态隔离空间进行绑定。
可选的,租户配置信息至少包括每个租户对应的VPN公网IP地址。
在实施中,OpenVPN服务端侧的技术人员在OpenVPN配置文件中添加“NS_NAME{..}”区间字段的过程中,可以在该区间字段中添加“bindip xxx”字段,其中,“xxx”为租户对应的VPN公网IP地址。从而,OpenVPN进程在建立用户态隔离空间时,可以从OpenVPN配置文件中解析出“NS_NAME”、“bindip”等信息,然后基于这些信息建立用户态隔离空间。
步骤102,OpenVPN进程根据不同租户对应的隔离空间信息和租户配置信息,建立不同租户对应的用户态隔离空间。
在实施中,OpenVPN进程在获取到OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息之后,可以根据这些隔离空间信息和租户配置信息,针对每个租户,建立租户对应的用户态隔离空间。
步骤103,对于每个租户,OpenVPN进程基于租户对应的用户态隔离空间的空间资源,与租户的客户端建立OpenVPN通道。
在实施中,针对每个租户,OpenVPN进程在建立了租户对应的用户态隔离空间之后,当需要与该租户的客户端进行报文传输时,可以基于租户对应的用户态隔离空间的空间资源,与租户的客户端进行SSL握手,建立SSL加密通道,再通过SSL加密通道与租户的客户端进行OpenVPN的配置协商和策略推送,从而确定出OpenVPN服务端和OpenVPN客户端之间的OpenVPN通道。
可选的,基于上述租户配置信息中的每个租户对应的VPN公网IP地址, OpenVPN进程在与OpenVPN客户端建立OpenVPN通道前,先建立数据连接 socket,故而在步骤103之前可以存在如下处理:OpenVPN进程基于每个租户对应的隔离空间信息和VPN公网IP地址,建立并绑定监听每个租户对应的数据连接socket。
在实施中,OpenVPN进程在解析OpenVPN配置文件,得到不同租户对应的VPN公网IP地址后,可以基于每个租户对应的隔离空间信息和VPN公网IP 地址,针对每个租户,建立该租户对应的数据连接socket。这样,OpenVPN进程可以利用公网IP地址的不重复性,将不同租户的数据报文分发到不同的用户态隔离空间。进而,OpenVPN进程可以通过绑定监听不同租户对应的数据连接 socket,等待相应租户的客户端发来的数据报文,以触发后续与OpenVPN客户端建立OpenVPN通道的处理。
可选的,基于上述OpenVPN进程针对每个租户建立了数据连接socket后,可以通过该数据连接socket与OpenVPN客户端建立OpenVPN通道,相应的,步骤103的处理具体可以如下:当通过目标租户对应的数据连接socket接收到目标客户端的连接请求报文时,OpenVPN进程确定目标租户对应的目标用户态隔离空间;OpenVPN进程通过目标用户态隔离空间的空间资源,与目标客户端进行OpenSSL校验,校验通过后,与目标客户端建立OpenVPN通道。
在实施中,OpenVPN进程在建立了每个租户对应的数据连接socket之后,可以对每个数据连接socket进行监听。当通过目标租户对应的数据连接socket 接收到目标客户端的连接请求报文时,OpenVPN进程可以先基于该数据连接 socket确定目标租户对应的目标用户态隔离空间,然后OpenVPN进程可以通过目标用户态隔离空间的空间资源,与目标客户端进行OpenSSL校验等处理,进而可以在校验通过后与目标客户端建立OpenVPN通道。
步骤104,OpenVPN进程基于用户态隔离空间的空间资源,通过OpenVPN 通道与租户的客户端进行报文传输。
在实施中,在OpenVPN进程与OpenVPN客户端进行SSL握手的同时,预先启动的虚拟网卡可以执行初始化处理,准备传输报文的OpenVPN通道。在 OpenVPN进程协商确定出某个租户的客户端对应的OpenVPN通道后,OpenVPN 进程可以基于该租户对应的用户态隔离空间的空间资源,通过上述OpenVPN通道实现与该租户的客户端之间的报文传输处理。可以理解,不同OpenVPN通道基于不同用户态隔离空间的资源建立,故而不同OpenVPN通道间的报文传输各自独立,互不影响,从而可以实现OpenVPN的网络隔离。此处,用户态隔离空间的资源可以是私有的隔离空间地址,和包含IP地址表、路由表、socket表、连接跟踪表等网络资源表项。
本发明实施例中,OpenVPN进程加载OpenVPN配置文件,获取OpenVPN 配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;OpenVPN进程根据不同租户对应的隔离空间信息和租户配置信息,建立不同租户对应的用户态隔离空间;对于每个租户,OpenVPN进程基于租户对应的用户态隔离空间的空间资源,与租户的客户端建立OpenVPN通道;OpenVPN进程基于用户态隔离空间的空间资源,通过OpenVPN通道与租户的客户端进行报文传输。这样,从OpenVPN配置文件和数据报文两方面对OpenVPN实现用户态的网络隔离,实现了对多租户的OpenVPN服务的支持,避免了内核态与用户态的频繁切换,进而节省了OpenVPN服务端的性能损耗,提高了OpenVPN服务效率。
基于相同的技术构思,本发明实施例还提供了一种在DPDK框架下实现 OpenVPN网络隔离的装置,装置,所述装置运行有经DPDK改造的OpenVPN 进程,所述OpenVPN进程用于:
加载OpenVPN配置文件,获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;
根据所述不同租户对应的隔离空间信息和租户配置信息,建立所述不同租户对应的用户态隔离空间;
对于每个租户,基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道;
基于所述用户态隔离空间的空间资源,通过所述OpenVPN通道与所述租户的客户端进行报文传输。
可选的,所述OpenVPN进程,具体用于:
通过其执行代码中预先添加的隔离空间配置结构体,读取并存储所述 OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
可选的,所述隔离空间配置结构体的资源结构体中添加有指向绑定用户态隔离空间的隔离空间指针。
可选的,所述租户配置信息至少包括每个租户对应的VPN公网IP地址。
可选的,所述OpenVPN进程,还用于:
基于所述每个租户对应的VPN公网IP地址,建立并绑定监听所述每个租户对应的数据连接socket。
可选的,所述OpenVPN进程,具体用于:
当通过目标租户对应的数据连接socket接收到目标客户端的连接请求报文时,确定所述目标租户对应的目标用户态隔离空间;
通过所述目标用户态隔离空间的空间资源,与所述目标客户端进行 OPENSSL校验,校验通过后,与所述目标客户端建立OpenVPN通道。
本发明实施例中,OpenVPN进程加载OpenVPN配置文件,获取OpenVPN 配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;OpenVPN进程根据不同租户对应的隔离空间信息和租户配置信息,建立不同租户对应的用户态隔离空间;对于每个租户,OpenVPN进程基于租户对应的用户态隔离空间的空间资源,与租户的客户端建立OpenVPN通道;OpenVPN进程基于用户态隔离空间的空间资源,通过OpenVPN通道与租户的客户端进行报文传输。这样,从OpenVPN配置文件和数据报文两方面对OpenVPN实现用户态的网络隔离,实现了对多租户的OpenVPN服务的支持,避免了内核态与用户态的频繁切换,进而节省了OpenVPN服务端的性能损耗,提高了OpenVPN服务效率。
需要说明的是:上述实施例提供的在DPDK框架下实现OpenVPN网络隔离的装置在实现OpenVPN网络隔离时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的在DPDK框架下实现OpenVPN网络隔离的装置与在 DPDK框架下实现OpenVPN网络隔离的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图2是本发明实施例提供的网络设备的结构示意图。该网络设备200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器222 (例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序 242或数据244的存储介质230(例如一个或一个以上海量存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230 的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备200中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在网络设备200上执行存储介质230中的一系列指令操作。
网络设备200还可以包括一个或一个以上电源229,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,一个或一个以上键盘256,和/或,一个或一个以上操作系统241,例如Windows Server,Mac OS X,Unix, Linux,FreeBSD等等。
网络设备200可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述在DPDK框架下实现 OpenVPN网络隔离的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种在数据平面开发套件DPDK下实现OpenVPN网络隔离的方法,其特征在于,所述方法包括:
OpenVPN进程加载OpenVPN配置文件,获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;
所述OpenVPN进程根据所述不同租户对应的隔离空间信息和租户配置信息,建立所述不同租户对应的用户态隔离空间;
对于每个租户,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道;
所述OpenVPN进程基于所述用户态隔离空间的空间资源,通过所述OpenVPN通道与所述租户的客户端进行报文传输。
2.根据权利要求1所述的方法,其特征在于,所述获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息,包括:
所述OpenVPN进程通过其执行代码中预先添加的隔离空间配置结构体,读取并存储所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
3.根据权利要求2所述的方法,其特征在于,所述隔离空间配置结构体的资源结构体中添加有指向用户态隔离空间的隔离空间指针。
4.根据权利要求1所述的方法,其特征在于,所述租户配置信息至少包括每个租户对应的VPN公网IP地址。
5.根据权利要求4所述的方法,其特征在于,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道之前,还包括:
所述OpenVPN进程基于所述每个租户对应的隔离空间信息和VPN公网IP地址,建立并绑定监听所述每个租户对应的数据连接socket。
6.根据权利要求5所述的方法,其特征在于,所述OpenVPN进程基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道,包括:
当通过目标租户对应的数据连接socket接收到目标客户端的连接请求报文时,所述OpenVPN进程确定所述目标租户对应的目标用户态隔离空间;
所述OpenVPN进程通过所述目标用户态隔离空间的空间资源,与所述目标客户端进行OpenSSL校验,校验通过后,与所述目标客户端建立OpenVPN通道。
7.一种在数据平面开发套件DPDK下实现OpenVPN网络隔离的装置,其特征在于,所述装置运行有经数据平面开发套件DPDK改造的OpenVPN进程,所述OpenVPN进程用于:
加载OpenVPN配置文件,获取所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息;
根据所述不同租户对应的隔离空间信息和租户配置信息,建立所述不同租户对应的用户态隔离空间;
对于每个租户,基于所述租户对应的用户态隔离空间的空间资源,与所述租户的客户端建立OpenVPN通道;
基于所述用户态隔离空间的空间资源,通过所述OpenVPN通道与所述租户的客户端进行报文传输。
8.根据权利要求7所述的装置,其特征在于,所述OpenVPN进程,具体用于:
通过其执行代码中预先添加的隔离空间配置结构体,读取并存储所述OpenVPN配置文件中记载的不同租户对应的隔离空间信息和租户配置信息。
9.根据权利要求8所述的装置,其特征在于,所述隔离空间配置结构体的资源结构体中添加有指向绑定用户态隔离空间的隔离空间指针。
10.根据权利要求7所述的装置,其特征在于,所述租户配置信息至少包括每个租户对应的VPN公网IP地址。
11.根据权利要求10所述的装置,其特征在于,所述OpenVPN进程,还用于:
基于所述每个租户对应的VPN公网IP地址,建立并绑定监听所述每个租户对应的数据连接socket。
12.根据权利要求11所述的装置,其特征在于,所述OpenVPN进程,具体用于:
当通过目标租户对应的数据连接socket接收到目标客户端的连接请求报文时,确定所述目标租户对应的目标用户态隔离空间;
通过所述目标用户态隔离空间的空间资源,与所述目标客户端进行OpenSSL校验,校验通过后,与所述目标客户端建立OpenVPN通道。
13.一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的在数据平面开发套件DPDK下实现OpenVPN网络隔离的方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至6任一所述的在数据平面开发套件DPDK下实现OpenVPN网络隔离的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811497868.1A CN111294319B (zh) | 2018-12-07 | 2018-12-07 | 网络隔离的方法、装置,网络设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811497868.1A CN111294319B (zh) | 2018-12-07 | 2018-12-07 | 网络隔离的方法、装置,网络设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111294319A CN111294319A (zh) | 2020-06-16 |
CN111294319B true CN111294319B (zh) | 2022-05-27 |
Family
ID=71029329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811497868.1A Active CN111294319B (zh) | 2018-12-07 | 2018-12-07 | 网络隔离的方法、装置,网络设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111294319B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866107B (zh) * | 2021-01-25 | 2023-07-18 | 网宿科技股份有限公司 | Ip地址通告方法、流量引导方法及网络设备 |
CN113098895A (zh) * | 2021-04-26 | 2021-07-09 | 成都中恒星电科技有限公司 | 一种基于dpdk的网络流量隔离系统 |
CN113329096B (zh) * | 2021-06-23 | 2023-04-07 | 未鲲(上海)科技服务有限公司 | 消息传输方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016188375A1 (en) * | 2015-05-22 | 2016-12-01 | International Business Machines Corporation | Multi-tenant aware dynamic host configuration protocol (dhcp) mechanism for cloud networking |
CN107342895A (zh) * | 2017-06-26 | 2017-11-10 | 网宿科技股份有限公司 | 一种多租户的网络优化方法、系统、计算设备及存储介质 |
CN108566445A (zh) * | 2018-03-15 | 2018-09-21 | 华为技术有限公司 | 一种报文传输方法及装置 |
-
2018
- 2018-12-07 CN CN201811497868.1A patent/CN111294319B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016188375A1 (en) * | 2015-05-22 | 2016-12-01 | International Business Machines Corporation | Multi-tenant aware dynamic host configuration protocol (dhcp) mechanism for cloud networking |
CN107342895A (zh) * | 2017-06-26 | 2017-11-10 | 网宿科技股份有限公司 | 一种多租户的网络优化方法、系统、计算设备及存储介质 |
CN108566445A (zh) * | 2018-03-15 | 2018-09-21 | 华为技术有限公司 | 一种报文传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111294319A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287723B (zh) | 一种应用交互方法、装置、物理机及系统 | |
CN109547580B (zh) | 一种处理数据报文的方法和装置 | |
US8830870B2 (en) | Network adapter hardware state migration discovery in a stateful environment | |
US9588807B2 (en) | Live logical partition migration with stateful offload connections using context extraction and insertion | |
US9178966B2 (en) | Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections | |
US7512139B2 (en) | Methods and systems for enabling remote booting of remote boot clients in a switched network defining a plurality of virtual local area networks (VLANS) | |
US9880870B1 (en) | Live migration of virtual machines using packet duplication | |
CN111294319B (zh) | 网络隔离的方法、装置,网络设备和可读存储介质 | |
CN114518969A (zh) | 进程间通信方法、系统、存储介质和计算机设备 | |
CN110191200A (zh) | 网络访问方法、装置、电子设备和计算机可读介质 | |
CN112770408A (zh) | 一种日志的传输方法、装置、计算机设备和存储介质 | |
WO2018107433A1 (zh) | 信息处理方法和装置 | |
CN113765867B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
WO2020113817A1 (zh) | 一种基于用户态协议栈的网络隔离方法和装置 | |
CN111158864B (zh) | 数据处理方法、装置、系统、介质和程序 | |
CN111371723B (zh) | 一种在dpdk框架下实现pptp vpn网络隔离的方法和装置 | |
US11818173B2 (en) | Reducing memory footprint after TLS connection establishment | |
CN111669358B (zh) | 一种批量处理vrouter网络隔离空间的方法和装置 | |
US8619801B2 (en) | Sharing a transmission control protocol port by a plurality of applications | |
CN113709264A (zh) | 一种地址获取方法、设备、系统及存储介质 | |
CN114422456B (zh) | 任务处理方法以及装置 | |
Franzki et al. | The z/VSE Fast Path to Linux On System Z | |
US8805958B2 (en) | Exploiting cluster awareness infrastructure through internet socket based applications | |
Unzner | A split TCP/IP stack implementation for GNU/Linux | |
CN117061610A (zh) | 基于快速数据路径的反向代理方法、服务器及存储介质 |
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 |