CN113595848A - 一种通信隧道建立方法、装置、设备及存储介质 - Google Patents
一种通信隧道建立方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113595848A CN113595848A CN202110860736.6A CN202110860736A CN113595848A CN 113595848 A CN113595848 A CN 113595848A CN 202110860736 A CN202110860736 A CN 202110860736A CN 113595848 A CN113595848 A CN 113595848A
- Authority
- CN
- China
- Prior art keywords
- communication
- communication tunnel
- protocol
- user
- target
- 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
Images
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/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于通信技术领域,公开了一种通信隧道建立方法、装置、设备及存储介质。本发明在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;为所述用户侧设备及所述虚拟接口创建通信隧道;基于所述通信隧道生成本地路由信息;根据所述本地路由信息配置所述通信隧道的通信地址。由于通过VPP协议栈接收到用户侧设备发送的协议控制包时会分配L2TP管理节点为其分配虚拟接口,并构建通信隧道,且在通信隧道构建完成时会根据本地路由信息配置通信隧道的通信地址,使得在运用VPP框架时可以支持L2TP协议。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种通信隧道建立方法、装置、设备及存储介质。
背景技术
VPP框架是一种可在商用CPU上运行的高性能数据包处理协议栈框架,是思科矢量数据包处理技术开源后贡献给开源社区的框架,在通信领域大量被使用,但是,VPP框架对L2TP协议的支持差,仅实现了部分L2TPV3协议的转发模型和功能,对L2TPV2和L2TPV3的协议控制均不支持(VPP框架无法正常建立L2TPV2和L2TPV3的通信隧道),对L2TPV2的转发模型和功能不支持,使VPP框架在通信领域的应用受限。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种通信隧道建立方法、装置、设备及存储介质,旨在解决现有技术中VPP框架对L2TP协议的支持差的技术问题。
为实现上述目的,本发明提供了一种通信隧道建立方法,所述方法包括以下步骤:
在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;
通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;
为所述用户侧设备及所述虚拟接口创建通信隧道;
基于所述通信隧道生成本地路由信息;
根据所述本地路由信息配置所述通信隧道的通信地址。
可选的,所述根据所述协议控制包确定目标L2TP管理节点的步骤,包括:
提取所述协议控制包中的通信路径信息;
通过预设散列算法对所述通信路径信息进行散列运算,获得散列值;
根据所述散列值确定散列索引,并根据所述散列索引确定目标L2TP管理节点。
可选的,所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤之前,还包括:
获取所述协议控制包对应的用户身份信息;
对所述用户身份信息进行身份合法性验证;
在身份合法性验证通过时,执行所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤。
可选的,所述对所述用户身份信息进行身份合法性验证的步骤,包括:
根据所述用户身份信息生成身份鉴权请求;
将所述身份鉴权请求发送至用户认证系统,以使所述用户认证系统根据所述身份鉴权请求中的用户身份信息进行身份鉴权并反馈鉴权结果;
接收所述用户认证系统反馈的鉴权结果;
在所述鉴权结果为鉴权通过时,判定身份合法性验证通过。
可选的,所述在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点的步骤之前,还包括:
通过VPP协议栈接收用户侧设备发送的数据包,获取所述数据包对应的通信协议及访问端口;
若所述通信协议为目标协议且所述访问端口为目标端口,则判定所述数据包为协议控制包。
可选的,所述根据所述本地路由信息配置所述通信隧道的通信地址的步骤,包括:
获取预设前缀配置信息,并根据所述本地路由信息确定本地链路地址;
将所述本地链路地址与所述预设前缀配置信息拼接,获得接口通信地址;
将所述接口通信地址与所述通信隧道对应的虚拟接口绑定。
可选的,所述根据所述本地路由信息配置所述通信隧道的通信地址的步骤之后,还包括:
在通过VPP协议栈接收到待发送数据包时,根据所述待发送数据包确定目标虚拟接口,并获取所述目标虚拟接口对应的通信隧道及接口通信地址;
根据所述通信隧道确定目标用户侧设备,并获取所述目标用户侧设备的设备通信地址;
根据所述接口通信地址、所述通信隧道及所述设备通信地址对所述待发送数据包进行数据封包,获得待发送协议数据包;
基于所述通信隧道,将所述待发送协议数据包推送至所述目标用户侧设备。
此外,为实现上述目的,本发明还提出一种通信隧道建立装置,所述通信隧道建立装置包括以下模块:
节点确定模块,用于在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;
接口分配模块,用于通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;
隧道创建模块,用于为所述用户侧设备及所述虚拟接口创建通信隧道;
信息生成模块,用于基于所述通信隧道生成本地路由信息;
地址配置模块,用于根据所述本地路由信息配置所述通信隧道的通信地址。
此外,为实现上述目的,本发明还提出一种通信隧道建立设备,所述通信隧道建立设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的通信隧道建立程序,所述通信隧道建立程序被处理器执行时实现如上所述的通信隧道建立方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有通信隧道建立程序,所述通信隧道建立程序执行时实现如上所述的通信隧道建立方法的步骤。
本发明在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;为所述用户侧设备及所述虚拟接口创建通信隧道;基于所述通信隧道生成本地路由信息;根据所述本地路由信息配置所述通信隧道的通信地址。由于通过VPP协议栈接收到用户侧设备发送的协议控制包时会分配L2TP管理节点为其分配虚拟接口,并构建通信隧道,且在通信隧道构建完成时会根据本地路由信息配置通信隧道的通信地址,使得在运用VPP框架时可以支持L2TP协议。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;
图2为本发明通信隧道建立方法第一实施例的流程示意图;
图3为本发明通信隧道建立方法第二实施例的流程示意图;
图4为本发明通信隧道建立方法第三实施例的流程示意图;
图5为本发明一实施例通信隧道建立设备中软件系统的功能分布图;
图6为本发明通信隧道建立装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的通信隧道建立设备结构示意图。
如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及通信隧道建立程序。
在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在通信隧道建立设备中,所述电子设备通过处理器1001调用存储器1005中存储的通信隧道建立程序,并执行本发明实施例提供的通信隧道建立方法。
本发明实施例提供了一种通信隧道建立方法,参照图2,图2为本发明一种通信隧道建立方法第一实施例的流程示意图。
本实施例中,所述通信隧道建立方法包括以下步骤:
步骤S10:在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点。
需要说明的是,本实施例的执行主体可以是所述通信隧道建立设备,所述通信隧道建立设备可以是个人电脑、服务器等电子设备,也可以是其他可实现相同或相似功能的设备,本实施例对此不加以限制。在本实施例及下述各实施例中,以通信隧道建立设备为例对本发明通信隧道建立方法进行说明。
需要说明的是,用户侧设备可以是用户使用的终端设备,也可以是负责为用户使用的终端设备提供接入功能的设备,在本实施例中以用户使用的终端设备作为用户侧设备进行说明。用户使用的终端设备在需要与内网进行通信时,可以先与通信隧道建立设备进行连接,构建通信隧道,通信隧道构建完毕之后即可通过通信隧道建立设备与内网进行通信。协议控制包可以是在用户侧设备希望与通信隧道建立设备进行连接时发送至通信隧道建立设备的数据包。VPP协议栈可以是通过VPP框架开发的协议栈,安装于通信隧道建立设备内部,通信隧道建立设备通过VPP协议栈接收外部发送至通信隧道建立设备的数据包。
在实际使用中,通过VPP协议栈接收用户侧设备发送的协议控制包可以是通过VPP协议栈中DPDK工具接收用户侧设备发送的协议控制包,DPDK在接收到数据包时可以将数据包填充至DPDK中的mbuf中,然后再在VPP协议栈中转换为vlib_buff结构,以便于后续的L2TP管理单元进行识别。为了保证通信过程中的承载能力,可以设置由多个L2TP管理节点组成的节点集群,根据协议控制包确定目标L2TP管理节点可以是读取协议控制包中的数据,根据读取到的数据在节点集群中选取L2TP管理节点作为目标L2TP管理节点。L2TP管理节点可以为用户侧设备创建符合L2TP协议的通信隧道。
进一步的,为了保证同一用户侧设备的目标L2TP管理节点固定,本实施例所述根据所述协议控制包确定目标L2TP管理节点的步骤,可以包括:
提取所述协议控制包中的通信路径信息;通过预设散列算法对所述通信路径信息进行散列运算,获得散列值;根据所述散列值确定散列索引,并根据所述散列索引确定目标L2TP管理节点。
需要说明的是,通信路径信息可以包括原地址、目的地址、源端口、目的端口、传输协议等信息。预设散列算法可以是常见的散列算法,例如:MD5、SHA-1等散列算法。通过预设散列算法对所述通信路径信息进行散列运算,获得散列值可以是将通信路径信息输入预设散列算法中进行散列运算,从而获得散列值。由于相同的通信路径信息的散列值相同,因此,在使用节点集群提供服务时,可以保证为同一用户侧设备的目标L2TP管理节点固定,在提高了通信隧道建立设备的负载量的情况下,还可以保证提供服务的稳定性。
在实际使用中,根据散列值确定散列索引,并根据散列索引确定目标L2TP管理节点可以是将节点集群中L2TP管理节点进行编号,采用预设余数值对散列值进行取余,将取余获得的余数作为散列索引,将节点集群中编号与散列索引值相等的L2TP管理节点作为目标L2TP管理节点。其中,预设余数值等于节点集群中L2TP管理节点的节点总数减一。
例如:假设节点集群中共有5个L2TP管理节点,对其进行编号,编号分别为0、1、2、3、4,则此时预设余数值为4,将通信路径信息输入预设散列算法中进行散列运算得到的散列值为22,对散列值取余,得到的余数为2,则此时散列索引为2,可以将节点集群中编号为2的L2TP管理节点作为目标L2TP管理节点。
步骤S20:通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口。
需要说明的是,L2TP协议在组网时会分为用户侧(L2TP Access Concentrator,LAC)和接入侧(L2TP Network Server,LNS)两个部分在本实施例中,用户侧为用户侧设备,而接入侧即为通信隧道建立设备,连接时会为用户侧及接入侧创建通信隧道,以便两者通过通信隧道进行通信,而通信隧道存在两个端点,用户侧设备可以作为其中一端,而由于通信隧道建立设备可能同时会与多个用户侧设备进行连接,即创建的通信隧道可能会有多个,因此,在通信隧道建立设备中可以采用虚拟接口作为通信隧道的另一端,保证通信隧道建立设备可以同时构建多个通信隧道,与多个用户侧设备连接。
在实际使用中,虚拟接口可以预先创建,则通过目标L2TP管理节点为用户侧设备分配虚拟接口可以是通过目标L2TP管理节点查找未被使用的虚拟接口作为用户侧设备对应的虚拟接口。
进一步的,为了提高安全性,本实施例步骤S20之前,还可以包括:
获取所述协议控制包对应的用户身份信息;对所述用户身份信息进行身份合法性验证;在身份合法性验证通过时,执行所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤。
需要说明的是,用户身份信息可以包括用户账号、用户密码、用户签名等信息,其中,用户签名可以是用户侧设备通过预设设备私钥对用户账号及用户密码进行签名获得的,预设设备私钥可以由通信隧道建立设备预先生成并由通信隧道建立设备的管理人员分配给用户侧设备。对用户身份信息进行身份合法性验证可以是根据用户账号及用户密码在预设用户信息库中查找对应的用户信息,在查找到对应的用户信息时,使用预设设备私钥对应的设备公钥对用户签名进行解密,获得解密账号及解密密码,在解密账号与用户账号一致且解密密码与用户密码一致时判定身份合法性验证通过。
可以理解的是,用户侧设备在与通信隧道建立设备建立连接,且构建了通信隧道之后,即可通过通信隧道与内网进行通信,而内网中会保存有敏感数据,因此,在为用户侧设备分配虚拟接口建立通信隧道之前,还需要会发起该协议控制包的用户侧设备进行身份合法性验证,在身份合法性验证通过时,才执行所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤。
进一步的,由于通信隧道建立设备可能会同时与多个用户侧设备进行连接,若身份合法性验证均由通信隧道建立设备执行,可能会导致通信隧道建立设备的负载能力下降,为了克服上述缺陷,本实施例所述对所述用户身份信息进行身份合法性验证的步骤,可以包括:
根据所述用户身份信息生成身份鉴权请求;将所述身份鉴权请求发送至用户认证系统,以使所述用户认证系统根据所述身份鉴权请求中的用户身份信息进行身份鉴权并反馈鉴权结果;接收所述用户认证系统反馈的鉴权结果;在所述鉴权结果为鉴权通过时,判定身份合法性验证通过。
需要说明的是,用户认证系统可以是专用于进行用户认证的系统。用户认证系统在接收到身份鉴权请求时可以读取身份鉴权请求中的用户身份信息,然后根据用户身份信息确定用户身份的合法性并生成鉴权结果,然后将鉴权结果反馈至通信隧道建立设备。鉴权结果可以包括鉴权通过及鉴权不通过,若鉴权结果为鉴权通过,则可以判定用户身份信息合法,可以判定身份合法性验证通过。
步骤S30:为所述用户侧设备及所述虚拟接口创建通信隧道。
可以理解的是,为用户侧设备及虚拟接口创建通信隧道可以是根据标准的L2TP协议规范进行处理,从而为用户侧设备及虚拟接口创建通信隧道。
步骤S40:基于所述通信隧道生成本地路由信息。
可以理解的是,在通信隧道生成之后,可以根据通信隧道生成本地路由信息,本地路由信息可以包括本地链路路由规则及本地链路地址。
步骤S50:根据所述本地路由信息配置所述通信隧道的通信地址。
需要说明的是,根据本地路由信息可以生成通信隧道所需的通信地址,再将通信地址与通信隧道进行绑定,之后将通信地址通告给通信隧道的两端,通信隧道的两端即可通过通信地址实现数据的转发和通信。
需要说明的是,在通信隧道的通信地址建立完毕时,用户侧设备即可根据通信隧道的通信地址与内网进行数据通信,而具体的通信过程如下:用户侧设备获取虚拟接口的接口通信地址,向接口通信地址发送原始数据包,原始数据包经过以太网解析后抵达通信隧道建立设备,通信隧道建立设备在接收到原始数据包时可以根据其通信协议及访问端口确定是否为L2TP协议的数据包,若是,则剥离L2TP协议头及PPP协议头,最终获得标准的数据包,即可进入正常的路由查询处理流程,将数据包发送至内网中的设备或其他设备进行处理。
本实施例在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;为所述用户侧设备及所述虚拟接口创建通信隧道;基于所述通信隧道生成本地路由信息;根据所述本地路由信息配置所述通信隧道的通信地址。由于通过VPP协议栈接收到用户侧设备发送的协议控制包时会分配L2TP管理节点为其分配虚拟接口,并构建通信隧道,且在通信隧道构建完成时会根据本地路由信息配置通信隧道的通信地址,使得在运用VPP框架时可以支持L2TP协议。
参考图3,图3为本发明一种通信隧道建立方法第二实施例的流程示意图。
基于上述第一实施例,本实施例通信隧道建立方法在所述步骤S10之前,还包括:
步骤S01:通过VPP协议栈接收用户侧设备发送的数据包,获取所述数据包对应的通信协议及访问端口。
需要说明的是,用户侧设备可以向通信隧道建立设备发送不同类型的数据包,可以通过通信协议与访问端口的不同来声明该数据包的作用。因此,通信隧道建立设备在通过VPP协议栈接收到用户侧设备发送的数据包时,可以获取数据包对应的通信协议及访问端口,根据通信协议及访问端口确定该数据包的作用,从而进行相应的处理。
步骤S02:若所述通信协议为目标协议且所述访问端口为目标端口,则判定所述数据包为协议控制包。
需要说明的是,并非所有的数据包均为协议控制包,为了区分协议控制包,可以预先为协议控制包设置专用的协议及端口,即目标协议与目标端口。在数据包的通信协议与目标协议一致且访问端口与目标端口一致时,则可以判定该数据包为协议控制包,表明用户侧设备发送此数据包的作用是与通信隧道建立设备进行连接,希望创建符合L2TP协议的通信隧道。
在本实施例中通过采用数据包对应的通信协议及访问端口区分数据包的作用,可以在通信协议及访问端口不同时采用不同的处理方式,使得通信隧道建立设备可以同时兼容多种不同的协议,且随时可以增加通信隧道建立设备支持的协议,而不会影响到对其他协议的支持。
在本实施例中,所述步骤S50,可以包括:
步骤S501:获取预设前缀配置信息,并根据所述本地路由信息确定本地链路地址。
需要说明的是,由于L2TP协议时基于PPP协议连接的IP层隧道技术,而在为IPv6(Internet Protocol Version 6)生成本地链路地址时因IPv6的本地链路地址使用范围受限不可作为唯一的通信地址,需要基于前缀划分生成全球唯一地址(GUA),再将生成的全球唯一地址作为通信地址,因此,可以先获取预设前缀配置信息,然后根据本地路由信息确定本地链路地址。其中,预设前缀配置信息可以是基于RFC(Request For Comments)规范和动态主机配置协议(DHCPV6)生成的。
步骤S502:将所述本地链路地址与所述预设前缀配置信息拼接,获得接口通信地址。
需要说明的是,本地链路地址与预设前缀配置信息拼接,获得接口通信地址可以是将预设前缀配置信息作为前缀与本地链路地址进行拼接,获得接口通信地址,接口通信地址即虚拟接口在通信隧道中的通信地址。
步骤S503:将所述接口通信地址与所述通信隧道对应的虚拟接口绑定。
需要说明的是,将接口通信地址与通信隧道对应的虚拟接口绑定可以是将接口通信地址配置到通信隧道对应的虚拟接口中。
在实际使用中,用户侧设备可能已经有符合IPv6的全球唯一地址,因此,可以直接将用户侧设备的全球唯一地址作为的通信地址。当然,若用户侧设备不存在符合IPv6的全球唯一地址,则依旧可以根据本地链路信息确定用户侧设备的本地通信地址,将预设前缀配置信息与用户侧设备的本地通信地址进行拼接,从而获得用户侧设备的通信地址。
在本实施例中通过获取预设前缀配置信息,并根据所述本地路由信息确定本地链路地址;将所述本地链路地址与所述预设前缀配置信息拼接,获得接口通信地址;将所述接口通信地址与所述通信隧道对应的虚拟接口绑定。由于在生成接口通信地址时考虑到了普通的本地链路地址在IP地址为IPv6地址时使用受限,采用预设前缀配置信息与本地链路地址拼接,获得接口通信地址,并将接口通信地址与虚拟接口绑定,从而使得在IP地址为IPv6地址时依旧可以保证通信隧道的正常构建,增加了本发明通信隧道建立方法的适用范围。
参考图4,图4为本发明一种通信隧道建立方法第三实施例的流程示意图。
基于上述第一实施例,本实施例通信隧道建立方法在所述步骤S50之后,还包括:
步骤S60:在通过VPP协议栈接收到待发送数据包时,根据所述待发送数据包确定目标虚拟接口,并获取所述目标虚拟接口对应的通信隧道及接口通信地址。
需要说明的是,待发送数据包可以是需要发送至用户侧设备的数据包,在接收到待发送数据包时可以根据待发送数据包中的参数确定目标虚拟接口,获取目标虚拟接口对应的通信隧道,并读取目标虚拟接口绑定的接口通信地址。
步骤S70:根据所述通信隧道确定目标用户侧设备,并获取所述目标用户侧设备的设备通信地址。
需要说明的是,设备通信地址可以是通信隧道所绑定的用户侧设备的通信地址,通信隧道两端分别绑定有用户侧设备及虚拟接口,并设置有两端的通信地址,因此,根据通信隧道可以确定用户侧设备,目标用户侧设备为目标虚拟接口对应的通信隧道所绑定的用户侧设备,并确定用户侧设备对应的设备通信地址。
步骤S80:根据所述接口通信地址、所述通信隧道及所述设备通信地址对所述待发送数据包进行数据封包,获得待发送协议数据包。
在实际使用中,根据所述接口通信地址、所述通信隧道及所述设备通信地址对所述待发送数据包进行数据封包,获得待发送协议数据包可以是对待发送数据包设置点对点(Point to Point Protocol,PPP)协议头,PPP协议头中包括接口通信地址及设备通信地址,再为设置好PPP协议头的待发送数据包设置L2TP协议头,L2TP协议头中可以包括通信隧道的隧道信息及会话信息,在L2TP协议头设置完毕时即可获得待发送协议数据包。
步骤S90:基于所述通信隧道,将所述待发送协议数据包推送至所述目标用户侧设备。
需要说明的是,基于通信隧道将待发送协议数据包推送至目标用户侧设备可以是将待发送协议数据通过通信隧道发送至目标用户侧设备。
在具体实现中,通信隧道建立设备中可以设置有软件系统提供各种服务,该软件系统的各个功能的分布如图5所示,其中,各模块的功能如下:
带负载均衡的IPv6 L2TPV2模块,此模块负责管理每个用户接入的创建/维护/销毁。此模块管理巨量的基于IPV6 L2TPV2认证和接入,因需要支持10000+的用户接入,模块功能需要满足并发接入和高并发下的高性能,对10000+的用户接入管理能够做到互相不干扰互相不影响互相不阻塞,接入管理能够自适应负载均衡。此模块由多个用户接入管理进程组成,用于分摊10000+用户接入的管理和均衡,多个用户接入管理进程能够做到互相负载分担从而不会因为单个进程的繁忙或者阻塞导致这个接入管理模块的响应滞后。
VPP数据转发面需要添加对IPv6 L2TPV2数据流的处理单元,其中包含解封包和加封包两个数据管理节点,支持用户管理接口配置。其中解封包和加封包两个节点分别对数据包进行去除L2TPV2头和添加L2TPV2头,L2TPV2符合标准的RFC规范,解封包和加封包两个节点设计满足VPP向量机制,实现相邻数据包的快速处理,从而在提升D-cache的高命中,提升数据转发的高性能。相比与传统的协议栈数据包处理机制,此设计更高效的实现基于向量的并发数据处理,从而相比传统数据协议栈表现出更好的数据转发吞吐量。
前缀管理单元是IPv6相比IPv4一个独特的功能,IPv6的规范引入前缀的定,对于设备地址可以借助前缀自适应生成本地全球唯一地址,基于此全球唯一地址接入的设备即可实现相关的数据通信和数据转发。由于L2TP是基于PPP连接的IP层隧道技术,用户侧(LAC)和接入侧(LNS)在L2TP协议上基于PPP连接生成对端IPv6本地链路地址,并且接入管理单元需要给用户侧(LAC)分配DNS服务器地址,Pv6本地链路地址适用范围受限不可作为通信地址,需要基于前缀划分生成全球唯一地址(GUA),根据RFC规范前缀有路由通告和DHCPV6技术等生成,在基于PPP连接的网络下,路由通告作为无状态生成的辅助技术成为首选,故而需要叠加一个前缀管理单元实现用户侧(LAC)和接入侧(LNS)的路由通告。此路由通告叠加在PPP连接之上,并且管理一定数量的用户侧(LAC),对系统设计而言则前缀管理单元和PPP连接是多对一映射关系,一个前缀域管理多个PPP连接,前缀管理单元管理多个前缀域。这是一个典型的树状结构,从前缀管理单元到多个前缀域到多个用户侧(LAC),10000+个用户侧(LAC)都被此前缀管理单元通告路由前缀,DNS等信息,并被定时更新和维护。
PPP协议是点对点协议基础上传输多协议数据包,是一种链路层协议。按照规范PPP需要完成链路协商和网络控制,链路会话保持,所以其保护一套完整额协议控制流程,有标准的状态切换和报文规范的定义,属于一个标准的控制协议单元。L2TPV2要求面向数据包的点对点连接,所以L2TP控制协议单元需要将隧道和会话等信息传递给PPP协议单元,然后PPP协议单元承载在L2TP之后,故而PPP协议受L2TP协议的控制,从功能分布上来讲,PPP协议处理单元受到L2TPV2管理单元控制和管理,从层级上看L2TPV2管理单元是PPP协议处理单元的父一级功能模块。PPP协议处理单元在完成协议后会为每一个P2P连接的用户侧(LAC)和接入侧(LNS)分配一个本地链路地址,因为VPP不同于传统的Linux内核协议栈,其对接PPP协议处理单元的逻辑需要重新设计。在VPP数据转发平面中,每一个虚拟的PPP接口作为接入侧(LNS)承载点的本来链路地址接口,这个接口接受PPP协议处理单元分配的地址。每一个接口对于一个隧道,用户侧(LAC)和接入侧(LNS)分别处于隧道的两段,隧道的两段分别有一个本地链路地址,从网络逻辑上看,通过这个隧道交互的报文就可以借助于对端的本地链路地址完成通信。
用户认证系统完成用户侧(LAC)和接入侧(LNS)的合法性授权管理,这个认证是承载在L2TPV2协议之上,既是标准定义的UDP1701端口。每一个用户侧(LAC)和接入侧(LNS)基于L2TPV2协议处理的过程中,单个用户侧(LAC)携带的用户账号信息到达L2TPV2管理单元后,L2TPV2管理单元完成对用户认证信息的提取后与用户认证系统交换,进行用户的鉴权,当合法性校验通过的信息被用户认证系统认可后则L2TPV2管理单元进入正常的处理流程否则相关的流程进入异常处理环节。用户认证系统可以是一个远端的认证系统也可以是一个本地的认证系统,取决于用户认证系统和接入侧系统是否处于同一个系统框架中。目前的专利提及的系统设计已经考虑到这两种分布方式,用户认证系统和L2TPV2管理单元置于同一个系统框架下则相应的认证响应时间会提高同时系统复杂度会变大。
本实施例在通过VPP协议栈接收到待发送数据包时,获取待发送数据包对应的目标虚拟接口,获取目标虚拟接口对应的通信隧道及接口通信地址,并根据通信隧道确定用户侧设备及设备通信地址,根据所述接口通信地址、所述通信隧道及所述设备通信地址对所述待发送数据包进行数据封包,获得待发送协议数据包,基于所述通信隧道,将所述待发送协议数据包推送至所述目标用户侧设备。由于根据接口通信地址、通信隧道及设备通信地址对待发送数据包进行数据封包,获得了符合L2TP协议格式的待发送协议数据包,保证了可通过通信隧道将待发送数据包发送至目标用户侧设备。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有通信隧道建立程序,所述通信隧道建立程序被处理器执行时实现如上文所述的通信隧道建立方法的步骤。
参照图6,图6为本发明通信隧道建立装置第一实施例的结构框图。
如图6所示,本发明实施例提出的通信隧道建立装置包括:
节点确定模块10,用于在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;
接口分配模块20,用于通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;
隧道创建模块30,用于为所述用户侧设备及所述虚拟接口创建通信隧道;
信息生成模块40,用于基于所述通信隧道生成本地路由信息;
地址配置模块50,用于根据所述本地路由信息配置所述通信隧道的通信地址。
本实施例在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;为所述用户侧设备及所述虚拟接口创建通信隧道;基于所述通信隧道生成本地路由信息;根据所述本地路由信息配置所述通信隧道的通信地址。由于通过VPP协议栈接收到用户侧设备发送的协议控制包时会分配L2TP管理节点为其分配虚拟接口,并构建通信隧道,且在通信隧道构建完成时会根据本地路由信息配置通信隧道的通信地址,使得在运用VPP框架时可以支持L2TP协议。
进一步的,所述节点确定模块10,还用于提取所述协议控制包中的通信路径信息;通过预设散列算法对所述通信路径信息进行散列运算,获得散列值;根据所述散列值确定散列索引,并根据所述散列索引确定目标L2TP管理节点。
进一步的,所述接口分配模块20,还用于获取所述协议控制包对应的用户身份信息;对所述用户身份信息进行身份合法性验证;在身份合法性验证通过时,执行所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤。
进一步的,所述接口分配模块20,还用于根据所述用户身份信息生成身份鉴权请求;将所述身份鉴权请求发送至用户认证系统,以使所述用户认证系统根据所述身份鉴权请求中的用户身份信息进行身份鉴权并反馈鉴权结果;接收所述用户认证系统反馈的鉴权结果;在所述鉴权结果为鉴权通过时,判定身份合法性验证通过。
进一步的,所述节点确定模块10,还用于通过VPP协议栈接收用户侧设备发送的数据包,获取所述数据包对应的通信协议及访问端口;若所述通信协议为目标协议且所述访问端口为目标端口,则判定所述数据包为协议控制包。
进一步的,所述地址配置模块50,还用于获取预设前缀配置信息,并根据所述本地路由信息确定本地链路地址;将所述本地链路地址与所述预设前缀配置信息拼接,获得接口通信地址;将所述接口通信地址与所述通信隧道对应的虚拟接口绑定。
进一步的,所述地址配置模块50,还用于在通过VPP协议栈接收到待发送数据包时,根据所述待发送数据包确定目标虚拟接口,并获取所述目标虚拟接口对应的通信隧道及接口通信地址;根据所述通信隧道确定目标用户侧设备,并获取所述目标用户侧设备的设备通信地址;根据所述接口通信地址、所述通信隧道及所述设备通信地址对所述待发送数据包进行数据封包,获得待发送协议数据包;基于所述通信隧道,将所述待发送协议数据包推送至所述目标用户侧设备。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的通信隧道建立方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种通信隧道建立方法,其特征在于,所述通信隧道建立方法包括以下步骤:
在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;
通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;
为所述用户侧设备及所述虚拟接口创建通信隧道;
基于所述通信隧道生成本地路由信息;
根据所述本地路由信息配置所述通信隧道的通信地址。
2.如权利要求1所述的通信隧道建立方法,其特征在于,所述根据所述协议控制包确定目标L2TP管理节点的步骤,包括:
提取所述协议控制包中的通信路径信息;
通过预设散列算法对所述通信路径信息进行散列运算,获得散列值;
根据所述散列值确定散列索引,并根据所述散列索引确定目标L2TP管理节点。
3.如权利要求1所述的通信隧道建立方法,其特征在于,所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤之前,还包括:
获取所述协议控制包对应的用户身份信息;
对所述用户身份信息进行身份合法性验证;
在身份合法性验证通过时,执行所述通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口的步骤。
4.如权利要求3所述的通信隧道建立方法,其特征在于,所述对所述用户身份信息进行身份合法性验证的步骤,包括:
根据所述用户身份信息生成身份鉴权请求;
将所述身份鉴权请求发送至用户认证系统,以使所述用户认证系统根据所述身份鉴权请求中的用户身份信息进行身份鉴权并反馈鉴权结果;
接收所述用户认证系统反馈的鉴权结果;
在所述鉴权结果为鉴权通过时,判定身份合法性验证通过。
5.如权利要求1所述的通信隧道建立方法,其特征在于,所述在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点的步骤之前,还包括:
通过VPP协议栈接收用户侧设备发送的数据包,获取所述数据包对应的通信协议及访问端口;
若所述通信协议为目标协议且所述访问端口为目标端口,则判定所述数据包为协议控制包。
6.如权利要求1所述的通信隧道建立方法,其特征在于,所述根据所述本地路由信息配置所述通信隧道的通信地址的步骤,包括:
获取预设前缀配置信息,并根据所述本地路由信息确定本地链路地址;
将所述本地链路地址与所述预设前缀配置信息拼接,获得接口通信地址;
将所述接口通信地址与所述通信隧道对应的虚拟接口绑定。
7.如权利要求1-6任一项所述的通信隧道建立方法,其特征在于,所述根据所述本地路由信息配置所述通信隧道的通信地址的步骤之后,还包括:
在通过VPP协议栈接收到待发送数据包时,根据所述待发送数据包确定目标虚拟接口,并获取所述目标虚拟接口对应的通信隧道及接口通信地址;
根据所述通信隧道确定目标用户侧设备,并获取所述目标用户侧设备的设备通信地址;
根据所述接口通信地址、所述通信隧道及所述设备通信地址对所述待发送数据包进行数据封包,获得待发送协议数据包;
基于所述通信隧道,将所述待发送协议数据包推送至所述目标用户侧设备。
8.一种通信隧道建立装置,其特征在于,所述通信隧道建立装置包括以下模块:
节点确定模块,用于在通过VPP协议栈接收到用户侧设备发送的协议控制包时,根据所述协议控制包确定目标L2TP管理节点;
接口分配模块,用于通过所述目标L2TP管理节点为所述用户侧设备分配虚拟接口;
隧道创建模块,用于为所述用户侧设备及所述虚拟接口创建通信隧道;
信息生成模块,用于基于所述通信隧道生成本地路由信息;
地址配置模块,用于根据所述本地路由信息配置所述通信隧道的通信地址。
9.一种通信隧道建立设备,其特征在于,所述通信隧道建立设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的通信隧道建立程序,所述通信隧道建立程序被处理器执行时实现如权利要求1-7中任一项所述的通信隧道建立方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有通信隧道建立程序,所述通信隧道建立程序执行时实现如权利要求1-7中任一项所述的通信隧道建立方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860736.6A CN113595848B (zh) | 2021-07-28 | 2021-07-28 | 一种通信隧道建立方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860736.6A CN113595848B (zh) | 2021-07-28 | 2021-07-28 | 一种通信隧道建立方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113595848A true CN113595848A (zh) | 2021-11-02 |
CN113595848B CN113595848B (zh) | 2022-06-28 |
Family
ID=78251475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110860736.6A Active CN113595848B (zh) | 2021-07-28 | 2021-07-28 | 一种通信隧道建立方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113595848B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117749568A (zh) * | 2023-12-25 | 2024-03-22 | 广州通则康威科技股份有限公司 | 以太网二层隧道搭建和维护方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101228765A (zh) * | 2005-09-20 | 2008-07-23 | 中兴通讯股份有限公司 | 一种实现虚拟拨号接入网络的接入动态更新的方法 |
CN102111326A (zh) * | 2009-12-25 | 2011-06-29 | 杭州华三通信技术有限公司 | 在二层隧道协议虚拟专用网实现移动的方法、系统和装置 |
CN106850387A (zh) * | 2017-02-21 | 2017-06-13 | 无锡华云数据技术服务有限公司 | 一种实现多数据中心的虚拟网络组网的系统及其方法 |
US20180103128A1 (en) * | 2016-10-07 | 2018-04-12 | Cisco Technology, Inc. | System and method to facilitate integration of information-centric networking into internet protocol networks |
CN112822724A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种报文转发方法及装置 |
-
2021
- 2021-07-28 CN CN202110860736.6A patent/CN113595848B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101228765A (zh) * | 2005-09-20 | 2008-07-23 | 中兴通讯股份有限公司 | 一种实现虚拟拨号接入网络的接入动态更新的方法 |
CN102111326A (zh) * | 2009-12-25 | 2011-06-29 | 杭州华三通信技术有限公司 | 在二层隧道协议虚拟专用网实现移动的方法、系统和装置 |
US20180103128A1 (en) * | 2016-10-07 | 2018-04-12 | Cisco Technology, Inc. | System and method to facilitate integration of information-centric networking into internet protocol networks |
CN106850387A (zh) * | 2017-02-21 | 2017-06-13 | 无锡华云数据技术服务有限公司 | 一种实现多数据中心的虚拟网络组网的系统及其方法 |
CN112822724A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种报文转发方法及装置 |
Non-Patent Citations (4)
Title |
---|
JINLI YAN,LU TANG,TAO LI,GAOFENG LV,WEI QUAN,HUI YANG: "PPB: a Path-based Packet Batcher to Accelerate Vector Packet Processor", 《2020 15TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION (ICCSE)》 * |
JINLI YAN,LU TANG,TAO LI,GAOFENG LV,WEI QUAN,HUI YANG: "PPB: a Path-based Packet Batcher to Accelerate Vector Packet Processor", 《2020 15TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION (ICCSE)》, 22 September 2020 (2020-09-22) * |
陈星星: "基于IPv6的高性能安全网关研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
陈星星: "基于IPv6的高性能安全网关研究与实现", 《中国优秀硕士学位论文全文数据库》, 15 May 2021 (2021-05-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117749568A (zh) * | 2023-12-25 | 2024-03-22 | 广州通则康威科技股份有限公司 | 以太网二层隧道搭建和维护方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113595848B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112470436B (zh) | 用于提供多云连通性的系统、方法、以及计算机可读介质 | |
CN113950816B (zh) | 使用边车代理机构提供多云微服务网关的系统和方法 | |
CN114095307B (zh) | 协调提供商网络环境中的区域间操作 | |
EP3466037B1 (en) | Subnet stretching via layer three communications | |
CN107872542B (zh) | 一种数据传输的方法及网络设备 | |
CN103580980B (zh) | 虚拟网络自动发现和自动配置的方法及其装置 | |
US10355991B1 (en) | Managing communications using alternative packet addressing | |
EP2499787B1 (en) | Smart client routing | |
US11770364B2 (en) | Private network peering in virtual network environments | |
US9356860B1 (en) | Managing external communications for provided computer networks | |
US20160226815A1 (en) | System and method for communicating in an ssl vpn | |
US20150082378A1 (en) | System and method for enabling scalable isolation contexts in a platform | |
US10454880B2 (en) | IP packet processing method and apparatus, and network system | |
CN107046506B (zh) | 一种报文处理方法、流分类器和业务功能实例 | |
WO2020180776A1 (en) | Network access controller operation | |
CN113595848B (zh) | 一种通信隧道建立方法、装置、设备及存储介质 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN114095556B (zh) | 一种家庭私有云构建方法及私有云系统 | |
CN115834291A (zh) | 分布式内网服务数据获取方法、装置、设备及存储介质 | |
JP4612528B2 (ja) | ネットワーク接続システム、ネットワーク接続装置およびそのプログラム | |
JP4608466B2 (ja) | 通信システムおよび通信方法 | |
US8036218B2 (en) | Technique for achieving connectivity between telecommunication stations | |
JP5947763B2 (ja) | 通信システム、通信方法、および、通信プログラム | |
CN112583687B (zh) | 流量控制方法、系统、计算机设备以及存储介质 | |
Barcia González | A pull-based Wireguard control plane |
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 |