CN115776391A - 通信隧道的建立方法、装置、系统及电子设备 - Google Patents
通信隧道的建立方法、装置、系统及电子设备 Download PDFInfo
- Publication number
- CN115776391A CN115776391A CN202211413168.6A CN202211413168A CN115776391A CN 115776391 A CN115776391 A CN 115776391A CN 202211413168 A CN202211413168 A CN 202211413168A CN 115776391 A CN115776391 A CN 115776391A
- Authority
- CN
- China
- Prior art keywords
- request information
- tunnel
- information
- target
- identifier
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种通信隧道的建立方法、装置、系统及电子设备。其中,该方法包括:接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;依据请求信息,确定目标隧道的状态信息;依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备。本申请解决了传统技术中终端设备与虚拟专用网络服务器之间的通信隧道存在的并发带宽性能问题及采用虚拟扩展局域网技术封装的通信隧道存在安全性差的技术问题。
Description
技术领域
本申请涉及通信领域,具体而言,涉及一种通信隧道的建立方法、装置、系统及电子设备。
背景技术
IPTV软终端是一种安装在智能电视机上、可以访问IPTV的安卓APP软件。IPTV软终端需要访问位于IPTV专网的IPTV平台,IPTV平台不能暴露于互联网。采用视频VPN是访问IPTV专网的一种方式。由于IPTV软终端只是智能电视机上的一款应用,一般不具备很高的系统权限,即无法修改智能电视底层的网络驱动使之访问专网,因此主要是采用应用层的VPN实现方式。
相关技术中使用VxLan打包的方式建立视频VPN,实现对IPTV专网的访问。这种方式仅仅对IP包进行简单的封装和解封装,相比其他VPN封装,具有很高的效率,软终端APP封装VxLan的计算开销较小。但是在建立终端设备与虚拟专用网络服务器之间的通信隧道存在安全性差的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种通信隧道的建立方法、装置、系统及电子设备,以至少解决传统技术中终端设备与虚拟专用网络服务器之间的通信隧道存在的并发带宽性能问题及采用虚拟扩展局域网技术封装的通信隧道存在安全性差的技术问题。
根据本申请实施例的一个方面,提供了一种通信隧道的建立方法,包括:接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;依据请求信息,确定目标隧道的状态信息;依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备。
可选地,确定目标隧道的状态信息,包括:获取请求信息中的第一网络标识符;在第一网络标识符表示目标隧道的控制通道的情况下,获取请求信息中的令牌标识;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并确定目标隧道处于隧道建立状态,其中,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并确定目标隧道处于隧道维持状态,其中,第二字段为非空字段。
可选地,在目标隧道处于隧道建立状态时,依据状态信息对请求信息执行对应的操作,包括:对第一用户标识进行解密,得到第二用户标识;在确定第二用户标识满足预设条件的情况下,生成目标隧道的分配信息,其中,分配信息中包括目标令牌标识和目标隧道的子通道对应的目标网络标识符,目标隧道的子通道包括以下至少之一:单播业务数据通道和组播业务数据通道,目标网络标识符包括:与单播业务数据通道对应的第二网络标识符和与组播业务数据通道对应的第三网络标识符。
可选地,在目标隧道处于隧道建立状态时,依据状态信息对请求信息执行对应的操作,包括:获取请求信息中的第一地址和第一地址的第一端口号,其中,第一地址和第一端口号表示源IP地址经过网络地址转换后的IP地址和端口号;获取虚拟专用网络服务器中的第二地址和第二地址的第二端口号;保存与目标隧道对应的目标隧道条目信息,其中,目标隧道条目信息至少包括第一地址、第一端口号、第二地址、第二端口号、第一用户标识、令牌标识、第一网络标识符和目标网络标识符。
可选地,在目标隧道处于隧道维持状态时,依据状态信息对请求信息执行对应的操作,包括:判断请求信息与目标隧道条目信息是否相同,得到判断结果;在判断结果指示请求信息与目标隧道条目信息相同的情况下,确定虚拟专用网络服务器的当前时间;在当前时间与目标隧道的隧道条目时间的时间间隔小于或等于预设时长的情况下,将虚拟专用网络服务器中存储的目标隧道的隧道条目时间更新为当前时间,并确定第二请求信息的响应信息,其中,第二请求信息的响应信息包括目标隧道条目信息和目标隧道的隧道条目时间。
可选地,方法还包括:在判断结果指示请求信息与目标隧道条目信息不相同的情况下,删除目标隧道,并停止向目标隧道发送信息。
可选地,在当前时间与目标隧道条目时间的时间间隔大于预设时长的情况下,删除目标隧道,并停止向目标隧道发送信息。
根据本申请实施例的另一方面,还提供了另一种通信隧道的建立方法,包括:终端设备通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段。
可选地,接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,包括:记录第一操作结果中的目标隧道的分配信息,其中,分配信息中包括目标令牌标识和目标隧道的子通道对应的目标网络标识符。
可选地,接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,包括:记录第二操作结果中的目标隧道的时间和目标令牌标识;在终端设备的当前时间与目标隧道的隧道条目时间的时间间隔大于预设时长的情况下,停止发起第二请求信息;重新将第一请求信息经过网络地址转换发送给虚拟专用网络服务器。
可选地,发送第二请求信息的时间与目标隧道的隧道条目时间的时间间隔小于预设时长。
根据本申请实施例的又一方面,还提供了一种通信隧道的建立装置,应用于虚拟专用网络服务器,包括:第一接收模块,用于接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;确定模块,用于依据请求信息,确定目标隧道的状态信息;第一发送模块,用于依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备。
根据本申请实施例的再一方面,还提供了另一种通信隧道的建立装置,应用于终端设备,包括:第二发送模块,用于通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;第二接收模块,用于在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;第三接收模块,用于在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段。
根据本申请实施例的再一方面,还提供了一种通信隧道的建立系统,包括:虚拟专用网络服务器、终端设备和网关,其中,虚拟专用网络服务器,用于接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;依据请求信息,确定目标隧道的状态信息;依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备;终端设备,用于通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段;网关,用于将请求信息中的第一IP地址转换为专用网络的IP地址,以及将第一IP地址的端口号转换为专用网络的端口号,其中,第一IP地址为源IP地址。
根据本申请实施例的再一方面,还提供了一种电子设备,包括:包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述通信隧道的建立方法。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,该非易失性存储介质通过运行计算机程序执行上述通信隧道的建立方法。
在本申请实施例中,通过接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;依据请求信息,确定目标隧道的状态信息;依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备,达到了依据目标隧道的状态信息对请求信息执行不同的操作的目的,从而实现建立终端设备与虚拟专用网络服务器之间的通信隧道的技术效果,进而解决了传统技术中终端设备与虚拟专用网络服务器之间的通信隧道存在的并发带宽性能问题及采用虚拟扩展局域网技术封装的通信隧道存在安全性差的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a是根据本申请实施例的一种IPTV软终端访问IPTV专网的网络拓扑图;
图1b是根据本申请实施例的一种用于实现通信隧道的建立方法的计算机终端(或电子设备)的硬件结构框图;
图2是根据本申请实施例的一种通信隧道的建立方法的流程图;
图3是根据本申请实施例的另一种通信隧道的建立方法的流程图;
图4是根据本申请实施例的一种通信隧道的建立装置的结构图;
图5是根据本申请实施例的另一种通信隧道的建立装置的结构图;
图6是根据本申请实施例的一种通信隧道的建立系统的结构图;
图7是根据本申请实施例的一种视频VPN隧道建立的时序图;
图8是根据本申请实施例的一种视频VPN隧道维持的时序图;
图9是根据本申请实施例的一种视频VPN隧道子通道功能示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行解释说明的过程中出现的部分名词或术语适用于如下解释:
VxLan:VXLAN是一种网络虚拟化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN是一种功能强大的工具,可以穿透三层网络对二层进行扩展。它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器。
虚拟专用网络(VPN):在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。
网络地址转换(Network Address Translation,NAT),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。另外,这种通过使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。
VXLAN隧道端点(VXLAN Tunnel Endpoint,VTEP),负责VXLAN报文的封装与解封装。每个VTEP具备两个接口:一个是本地桥接接口,负责原始以太帧接收和发送,另一个是IP接口,负责VXLAN数据帧接收和发送。VTEP可以是物理交换机或软件交换机。基于VXLAN的Overlay网络将帧封装为VXLAN数据包后,将传输帧。这些网络中的封装和解封装由称为虚拟隧道端点(VTEP)的实体完成。VTEPS可以作为虚拟机管理程序服务器中的虚拟网桥,特定于VXLAN的虚拟应用程序或能够处理VXLAN的交换硬件在您的overlay网络中实施。
在本申请实施例中,IPTV软终端需要访问很高的视频流量,单路高清频道的码率是8Mbps,单路4K节目的码率是15-20Mbps,8K节目的码率60-120Mbps,因此要求视频VPN具有很高的传输性能。在使用VxLan封装的VPN的过程中,会带来如下问题:
1.VxLan封装后外层IP包采用UDP传输,IPTV软终端所安装的智能电视机一般位于家庭网关之后,家庭网关采用NAT方式访问互联网,因此IPTV软终端VxLan封装后总是通过NAT访问视频VPN Server。NAT将IPTV软终端封装后的外层终端Source IP:外层终端端口(固定值,例如4798)映射为NAT_IP:NAT_Port(随机取值),在视频VPN Server看来外层源IP:源Port是NAT_IP:NAT_Port。由于NAT是成熟设备,所以IPTV软终端经VxLan封装后穿越NAT访问VPN Server总是可保证“软终端发起->NAT->Server”和“Server回复->NAT->软终端”两个方向的正常传输。
但是,由于NAT的映射具有时效性,超时后会清除映射条目,NAT超时后“Server回复->NAT->软终端”这条路径无法继续传输数据。“软终端发起->NAT->Server”这条路会再次发起新的NAT、产生新的映射,其中NAT_IP一般不变,但新NAT_Port一般与旧NAT_Port不同。此时建立了新的双向通路:“软终端发起->新NAT_Port->Server”和“Server回复->新NAT_Port->软终端”。这个新NAT的建立必须是从软终端侧发起的,不能从Server侧发起,因此在NAT超时、软终端尚未发起新请求时,“Server回复->旧NAT_Port->软终端”的包传输会失败。
因此要求软终端和视频VPN Server之间的隧道必须解决“客户端NAT超时、Server回复NAT失败”的问题。
2.在IPTV软终端环境中,IPTV软终端和视频VPN Server之间是需要安全认证的。视频VPN对性能要求非常高,因为传输的是电视节目,对VPN安全性的要求比通常的办公VPN低,我们不可能要求用户使用IPTV软终端时输入VPN用户名/密码/短信认证。但是基本的安全要求是软终端UserID信息需要从IPTV软终端加密传输到视频VPN Server,以识别这是一个合法的IPTV软终端用户。因此IPTV软终端维持一个隧道的信息需要扩展,至少包括UserID认证。
另一方面,视频VPN Server对软终端UserID进行安全认证,需要消耗一定的性能。在隧道建立、隧道维持、隧道数据传输过程中,只需要在隧道建立时进行UserID认证,保证隧道的安全性。
3.在视频VPN的应用场景中,通常是n个软终端(例如n>1000)和1个视频VPNServer之间的建立n个隧道,这种VxLan隧道的场景和一般VxLan组网时较少的VTEP之间对等建立隧道的场景有较大的差异。这里很多的n个隧道通过VPN Server传输大带宽的点播节目、直播频道等业务数据,每个HD频道的带宽达到8Mbps,每个4K节目的带宽达15-20Mbps,每个8K节目的带宽达到60-120Mbps,业务数据对性能的要求非常高。因此还需要一种保证视频VPN隧道以很高性能、很大带宽传输业务数据的方法。
为了解决上述软终端(即终端设备)与VPN Server(即虚拟专用网络服务器)通过隧道传输数据存在安全性差的问题,本申请实施例提供了相应的解决方案,具体地,对于IPTV软终端访问IPTV专网的请求,软终端TM模块进行VxLan封装、与视频VPN Server建立隧道。建立隧道时对软终端传输的UserID进行安全认证。通过心跳机制实现隧道维持,解决“客户端NAT超时、Server回复NAT失败”的问题。将同一隧道划分为3个子通道,分别承担隧道建立/隧道维持/安全认证功能、单播业务数据传输功能、组播业务数据传输功能,实现视频VPN对于业务数据的高性能大带宽传输。以下详细说明。
图1a是根据本申请实施例的一种IPTV软终端访问IPTV专网的网络拓扑图,如图1a所示,IPTV软终端APP安装在智能电视终端中,通过无线连接或有线连接的方式连接到家庭网关,通过接入网和互联网与视频VPN Server(VxLan VPN Server)进行数据通信后,建立IPTV软终端和视频VPN Server(VxLan VPN Server)之间的通信隧道并保持隧道,IPTV软终端可通过隧道访问IPTV专网中的IPTV平台,实现IPTV软终端访问IPTV专网的单播和组播业务数据功能。
本申请实施例所提供的通信隧道的建立方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1b示出了一种用于实现通信隧道的建立方法的计算机终端(或电子设备)的硬件结构框图。如图1b所示,计算机终端10(或电子设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1b所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1b中所示更多或者更少的组件,或者具有与图1b所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或电子设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的通信隧道的建立方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的通信隧道的建立方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或电子设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1b所示的计算机设备(或电子设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1b仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或电子设备)中的部件的类型。
在上述运行环境下,本申请实施例提供了一种通信隧道的建立方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的一种通信隧道的建立方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输。
在上述步骤S202中,终端设备(即软终端)通过网络地址转换(本申请实施例中指家庭网关NAT)将目标隧道的请求信息发送给虚拟专用网络服务器(本申请实施例中指视频VPN Server),请求信息为终端设备发起的VxLan封装的数据包,该数据包中包括:外层源IP、外层源端口、外层目标IP、外层目标端口、网络标识符、内层MAC、内层IP、内层端口,该数据包中还包括隧道数据:第一用户标识(UserID)和令牌标识(Token)。需要说明的是,外层源IP是软终端所在的IP1,记为OutSrcIP1。外层源端口OutSrcPort1=4789(或其他约定的某个固定值)。外层目标IP是视频VPN Server的IP3,记为OutDstIP3。外层目标端口OutSrcPort3=4789(或其他约定的某个固定值)。VxLanHeader字段的VNI(VXLAN NetworkIdentifier,VXLAN网络标识符,即上述第一网络标识符)为VxLanID0,这是一个约定的固定值,对所有的软终端都一致,例如VxLanID0=0。VxLan封装的内层(源和目的)MAC、IP、端口分别记为InnerMac、InnerIP、InnerUDP,内层中的MAC、IP、端口只要约定一个值即可,在隧道建立时不使用这些内层的值,内层的IP载荷包括加密的软终端UserID,另外一个为Token值。即终端设备发送的请求信息中的关键网络参数包括:{OutSrcIP1,OutSrcPort1=4789,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token}。需要说明的是,上述端口号仅为举例,并不限定端口号的具体数值,该数值可根据实际情况设置。
终端设备发送的请求信息经过网络地址转换(如经过家庭网关NAT)后,请求信息中的关键网络参数变更为:{OutSrcIP2=家庭网关的外网IP2=NAT_IP,OutSrcPort2=NAT随机确定的端口=NAT_Port,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token},其中,OutSrcPort2(NAT_Port)在这个NAT条目不超时、有效期间是不变的。也即虚拟专用网络服务器接收到的请求信息为经过网络地址转换后的请求信息。
步骤S204,依据请求信息,确定目标隧道的状态信息。
在上述步骤S204中,请求信息中包括Token值,不同的Token值所标识的目标隧道的状态不同。具体地,在Token=空,表示该请求信息为发起隧道的数据包,当Token=非空,表示该请求信息为隧道维持的数据包。根据请求信息中Token是否为空,即可确定目标隧道为隧道建立状态还是隧道维持状态。
步骤S206,依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备。
在上述步骤S206中,虚拟专用网络服务器通过获取Token的值确定目标隧道的状态信息,根据目标隧道的不同状态对请求信息执行对应的操作,例如分配隧道的Token值、修改目标隧道的时间等,再将操作结果通过网络地址转换后发送给终端设备。
在上述通信隧道的建立方法中的步骤S204中,确定目标隧道的状态信息,具体包括如下步骤:获取请求信息中的第一网络标识符;在第一网络标识符表示目标隧道的控制通道的情况下,获取请求信息中的令牌标识;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并确定目标隧道处于隧道建立状态,其中,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并确定目标隧道处于隧道维持状态,其中,第二字段为非空字段。
在本申请实施例中,虚拟专用网络服务器接收到请求信息后,读取请求信息中的第一网络标识符(VNI),若VNI=VxLanID0,确定这是一个隧道建立或隧道维持的包(VxLanID0表示隧道的控制通道),再获取请求信息中的令牌标识(Token),当Token=空(即第一字段),表示该请求信息为第一请求信息,该第一请求信息为发起隧道(或建立隧道)的数据包,当Token=非空(即第二字段),表示该请求信息为第二请求信息,该第二请求信息为隧道维持的数据包。
在上述通信隧道的建立方法中的步骤S206中,在目标隧道处于隧道建立状态时,依据状态信息对请求信息执行对应的操作,具体包括如下步骤:对第一用户标识进行解密,得到第二用户标识;在确定第二用户标识满足预设条件的情况下,生成目标隧道的分配信息,其中,分配信息中包括目标令牌标识和目标隧道的子通道对应的目标网络标识符,目标隧道的子通道包括以下至少之一:单播业务数据通道和组播业务数据通道,目标网络标识符包括:与单播业务数据通道对应的第二网络标识符和与组播业务数据通道对应的第三网络标识符。
在上述通信隧道的建立方法中,在目标隧道处于隧道建立状态时,依据状态信息对请求信息执行对应的操作,具体包括如下步骤:获取请求信息中的第一地址和第一地址的第一端口号,其中,第一地址和第一端口号表示源IP地址经过网络地址转换后的IP地址和端口号;获取虚拟专用网络服务器中的第二地址和第二地址的第二端口号;保存与目标隧道对应的目标隧道条目信息,其中,目标隧道条目信息至少包括第一地址、第一端口号、第二地址、第二端口号、第一用户标识、令牌标识、第一网络标识符和目标网络标识符。
在本申请实施例中,当请求信息为第一请求信息,也即确定Token=空,对第一用户标识UserID进行解密,判断该UserID是否合法,即判断解密后的UserID与数据库中的合法用户表核对,若解密后的UserID存在于合法用户表中,则判断UserID合法。在判断出UserID合法的情况下,确定第一用户标识满足预设条件,则生成目标隧道的分配信息,该分配信息中包括目标隧道唯一的Token(即目标令牌标识),每个隧道的Token不同,同时为目标隧道分配目前不在用的VxLanIDu和VxLanIDm,该VxLanIDu和VxLanIDm即目标隧道的子通道对应的目标网络标识符,VxLanIDu是标识单播业务数据通道的VNI(即上述第二网络标识符),VxLanIDm是标识组播业务数据通道的VNI(即上述第三网络标识符)。然后虚拟专用网络服务器记录该目标隧道的参数信息例如可以为:(Client_IP,Client_Port,Server_IP,Server_Port,Token(非空),软终端ID,VxLanIDu,VxLanIDm,隧道条目时间)。其中,Client_IP和Client_Port是虚拟专用网络服务器收到的网络包的外层源IP和外层源Port,如果客户端(或终端设备)经过NAT,那么Client_IP=NAT_IP,Client_Port=NAT_Port。
上述步骤执行结束之后,虚拟专用网络服务器(以下简称为VPN Server)将对请求信息执行的操作结果发送给终端设备。具体地,Server回复第一请求信息(隧道建立)的包,回复包(即第一请求信息的响应信息)也是VxLan封装的包,关键网络参数和载荷例如为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP2=NAT_IP,OutDstPort2=NAT_Port,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token(非空),VxLanIDu,VxLanIDm}。其中InnerMac,InnerIP,InnerUDP不使用。该回复包经过网络地址转换(NAT)后发给终端设备,关键网络参数和载荷变更为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP1=IP1,OutDstPort2=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token(非空),VxLanIDu,VxLanIDm},然后终端设备读取Toke、VxLanIDu和VxLanIDm,并在终端设备进行记录。自此,隧道已经建立,Token是唯一标识。VxLanID0,VxLanIDu,VxLanIDm分别标识同一隧道的3个子通道。
在上述通信隧道的建立方法中的步骤S206中,在目标隧道处于隧道维持状态时,依据状态信息对请求信息执行对应的操作,具体包括如下步骤:判断请求信息与目标隧道条目信息是否相同,得到判断结果;在判断结果指示请求信息与目标隧道条目信息相同的情况下,确定虚拟专用网络服务器的当前时间;在当前时间与目标隧道的隧道条目时间的时间间隔小于或等于预设时长的情况下,将虚拟专用网络服务器中存储的目标隧道的隧道条目时间更新为当前时间,并确定第二请求信息的响应信息,其中,第二请求信息的响应信息包括目标隧道条目信息和目标隧道的隧道条目时间。
在本申请实施例中,在目标隧道处于隧道维持状态时,终端设备和虚拟专用网络服务器之间通过心跳方式实现隧道维持。终端设备每隔一段时间发起心跳包(指第二请求信息),心跳包发起的时间间隔小于NAT超时时间,这样可以保证NAT有效。心跳包与隧道建立包(即第一请求信息)的区别是心跳包的内层有效载荷的Token字段不为空,Token是一个隧道的唯一标识。终端设备发起心跳包的关键网络参数包括:{OutSrcIP1,OutSrcPort1=4789,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=非空}。
终端设备发起的心跳包经过家庭网关NAT后,关键网络参数被家庭网关改变为:{OutSrcIP2=家庭网关的外网IP2=NAT_IP,OutSrcPort2=NAT随机确定的端口=NAT_Port,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=非空}。
视频VPN Server接收到心跳包,读取心跳包中的关键网络参数:{OutSrcIP2=NAT_IP,OutSrcPort2=NAT_Port,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,UserID加密,Token=非空,等信息},与服务器VPN Server保存的该目标隧道的参数信息(Client_IP,Client_Port,Server_IP,Server_Port,Token(非空),软终端ID,隧道条目时间等信息)进行比对。若对比结果都符合(即对比结果均相同),且Server当前时间-隧道条目时间<=n*心跳间隔,则心跳合法,其中n*心跳间隔是约定超时超过n个心跳间隔则无效,n*心跳间隔即上述预设时长。若心跳合法,则修改服务器中存储的该目标隧道的隧道条目时间的值为Server当前时间。在心跳合法的情况下,则回复心跳包,即确定第二请求信息的响应信息。
在上述通信隧道的建立方法中,方法还包括:在判断结果指示请求信息与目标隧道条目信息不相同的情况下,删除目标隧道,并停止向目标隧道发送信息。
在上述通信隧道的建立方法中,在目标隧道处于隧道维持状态时,在当前时间与目标隧道条目时间的时间间隔大于预设时长的情况下,删除目标隧道,并停止向目标隧道发送信息。
在本申请实施例中,心跳回复包中至少包含了隧道条目时间。心跳回复包经过NAT后发回终端设备,关键网络参数和载荷为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP1=IP1,OutDstPort2=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token,VxLanIDu,VxLanIDm,隧道条目时间},终端设备更新记录的心跳信息,包括:Token和隧道条目时间。需要说明的是,回复包中的令牌标识为Token,该Token为非空,回复包中的VxLanIDu和VxLanIDm即上述目标隧道的子通道对应的目标网络标识符。
在本申请实施例中,若Server当前时间-隧道条目时间>预设时间(即n*心跳间隔),则表示心跳不合法,则VPN Server删除该目标隧道,并通知VxLanIDu和VxLanIDm的处理单元,停止向该目标隧道发送信息或数据。
若终端设备的当前时间-隧道条目时间>预设时间(即n*心跳间隔),则代表心跳回复超时,终端设备停止发起心跳包,并重新发起建立隧道的请求信息(即第一请求信息)。
在本申请实施例中,为了提高视频业务数据传输性能,将视频VPN隧道划分为三个子通道,在同一个有效隧道中通过VxLanID区分3个子通道。其中进行安全认证、建立隧道、维持隧道的子通道的VNI=VxLanID0,是所有终端设备都采用同一个VxLanID0,例如VxLanID0=0。进行单播业务数据传输的通道的VNI=VxLanIDu,不同的终端设备用户的VxLanIDu是不同的。在通过安全认证、隧道建立时分配VxLanIDu。负责单播业务发送的功能系统称为“视频VPN Server单播业务加速”。进行组播业务数据传输的通道的VNI=VxLanIDm,不同的终端设备用户的VxLanIDm是不同的。在通过安全认证、隧道建立时分配VxLanIDm。负责组播业务发送的功能系统称为“视频VPN组播节点”。VxLanID0的通道称为控制通道,VxLanIDm和VxLanIDm的通道称为数据通道。控制通道负责软终端的安全认证、隧道建立、隧道维持,数据通道仅负责数据的高速转发,数据通道的安全性由控制通道负责。
通过划分子通道,可突破视频VPN Server可能存在的性能瓶颈,具体如下:在一个节点中,通过将视频VPN划分为控制通道、单播通道、组播通道,可以在这个边缘节点突破传统VPN Server的性能瓶颈。控制通道只负责隧道认证、隧道保持,流量不高。单播通道承载视频单播转发,流量很大,可以通过智能网卡offload的方法,实现视频单播数据隧道转发。组播通道承载视频组播频道转发,流量较大,可以通过将IGMP报文与组播数据发送进一步分离、通过弹性可扩展的组播数据发送方法实现组播数据隧道转发。对于更大规模、超过单个节点的视频VPN服务,拟建立节点调度机制,将终端调度到就近、空闲的视频VPN节点,从而突破单个节点的性能瓶颈。
通过上述步骤,建立隧道和保持隧道采用VxLAN封装了加密的终端设备的UserID和隧道唯一标识Token等信息,不仅实现了NAT的穿越,而且在用户安全认证的基础上建立隧道、每次认证都分配了隧道唯一标识Token,这样即使大二层网络可达、即使仿冒了VxLanID,也不能使用视频VPN隧道。另外,本申请实施例中的隧道不仅仅对应1个VNI(VxLanID),而是每个隧道对应3个子通道、每个子通道分配1个VxLanID。本申请实施例能利用VxLanID对数据流进行分类分流,3个子通道包括1个控制通道、1个单播业务数据流量加速通道、1个组播业务数据通道。控制通道实现安全认证,2个数据通道实现高性能视频业务数据传输。此外,本申请可扩展应用场景,不仅适合于通过视频VPN建立IPTV专网隧道,而且适合于在云宽带边缘云建立IPTV专网的隧道。将IPTV专网隧道划分为控制通道、单播数据通道、组播数据通道。控制通道负责隧道认证与保持,开销不大;单播通道可通过智能网卡offload的方法提供高性能的单播视频流量服务;组播通道可通过IGMP封装与可扩展的组播数据封装,实现大容量的视频组播数据发送。对于每一个云宽带边缘云,建立一个IPTV专网隧道节点。对于多个边缘节点,可以进一步开发节点调度,提供大规模的IPTV专网隧道服务。
图3是根据本申请实施例的另一种通信隧道的建立方法的流程图,如图3所示,该方法包括:
步骤S302,终端设备通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;
步骤S304,在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;
步骤S306,在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段。
在上述通信隧道的建立方法中的步骤S304中,接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,具体包括如下步骤:记录第一操作结果中的目标隧道的分配信息,其中,分配信息中包括目标令牌标识和目标隧道的子通道对应的目标网络标识符。
在上述通信隧道的建立方法中的步骤S306中,接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,具体包括如下步骤:记录第二操作结果中的目标隧道的时间和目标令牌标识;在终端设备的当前时间与目标隧道的隧道条目时间的时间间隔大于预设时长的情况下,停止发起第二请求信息;重新将第一请求信息经过网络地址转换发送给虚拟专用网络服务器。
在上述通信隧道的建立方法中,发送第二请求信息的时间与目标隧道的隧道条目时间的时间间隔小于预设时长。
需要说明的是,图3所示的通信隧道的建立方法从终端设备侧进行描述,与图2从虚拟专用网络服务器侧进行描述的过程想类似,具体方法的步骤可参见图2中的相关描述,此处不再赘述。
图4是根据本申请实施例的一种通信隧道的建立装置的结构图,该通信隧道的建立装置应用于虚拟专用网络服务器,如图4所示,该装置包括:
第一接收模块402,用于接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;
确定模块404,用于依据请求信息,确定目标隧道的状态信息;
第一发送模块406,用于依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备。
在上述通信隧道的建立装置中的确定模块中,确定目标隧道的状态信息,具体包括如下过程:获取请求信息中的第一网络标识符;在第一网络标识符表示目标隧道的控制通道的情况下,获取请求信息中的令牌标识;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并确定目标隧道处于隧道建立状态,其中,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并确定目标隧道处于隧道维持状态,其中,第二字段为非空字段。
在上述通信隧道的建立装置中的第一发送模块中,在目标隧道处于隧道建立状态时,依据状态信息对请求信息执行对应的操作,具体包括如下过程:对第一用户标识进行解密,得到第二用户标识;在确定第二用户标识满足预设条件的情况下,生成目标隧道的分配信息,其中,分配信息中包括目标令牌标识和目标隧道的子通道对应的目标网络标识符,目标隧道的子通道包括以下至少之一:单播业务数据通道和组播业务数据通道,目标网络标识符包括:与单播业务数据通道对应的第二网络标识符和与组播业务数据通道对应的第三网络标识符。
在上述通信隧道的建立装置中的第一发送模块中,在目标隧道处于隧道建立状态时,依据状态信息对请求信息执行对应的操作,具体包括如下过程:获取请求信息中的第一地址和第一地址的第一端口号,其中,第一地址和第一端口号表示源IP地址经过网络地址转换后的IP地址和端口号;获取虚拟专用网络服务器中的第二地址和第二地址的第二端口号;保存与目标隧道对应的目标隧道条目信息,其中,目标隧道条目信息至少包括第一地址、第一端口号、第二地址、第二端口号、第一用户标识、令牌标识、第一网络标识符和目标网络标识符。
在上述通信隧道的建立装置中的第一发送模块中,在目标隧道处于隧道维持状态时,依据状态信息对请求信息执行对应的操作,具体包括如下过程:判断请求信息与目标隧道条目信息是否相同,得到判断结果;在判断结果指示请求信息与目标隧道条目信息相同的情况下,确定虚拟专用网络服务器的当前时间;在当前时间与目标隧道的隧道条目时间的时间间隔小于或等于预设时长的情况下,将虚拟专用网络服务器中存储的目标隧道的隧道条目时间更新为当前时间,并确定第二请求信息的响应信息,其中,第二请求信息的响应信息包括目标隧道条目信息和目标隧道的隧道条目时间。
在上述通信隧道的建立装置中的第一发送模块中,该模块还用于在判断结果指示请求信息与目标隧道条目信息不相同的情况下,删除目标隧道,并停止向目标隧道发送信息。
在上述通信隧道的建立装置中的第一发送模块中,该模块还用于在当前时间与目标隧道条目时间的时间间隔大于预设时长的情况下,删除目标隧道,并停止向目标隧道发送信息。
需要说明的是,图4所示的通信隧道的建立装置用于执行图2所示的通信隧道的建立方法,因此上述图2中通信隧道的建立方法中的相关解释说明也适用于该通信隧道的建立装置,此处不再赘述。
图5是根据本申请实施例的另一种通信隧道的建立装置的结构图,该通信隧道的建立装置应用于终端设备,如图5所示,该装置包括:
第二发送模块502,用于通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;
第二接收模块504,用于在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;
第三接收模块506,用于在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段。
在上述通信隧道的建立装置中的第二接收模块中,接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,具体包括如下过程:记录第一操作结果中的目标隧道的分配信息,其中,分配信息中包括目标令牌标识和目标隧道的子通道对应的目标网络标识符。
在上述通信隧道的建立装置中的第三接收模块中,接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,具体包括如下过程:记录第二操作结果中的目标隧道的时间和目标令牌标识;在终端设备的当前时间与目标隧道的隧道条目时间的时间间隔大于预设时长的情况下,停止发起第二请求信息;重新将第一请求信息经过网络地址转换发送给虚拟专用网络服务器。
在上述通信隧道的建立装置中,发送第二请求信息的时间与目标隧道的隧道条目时间的时间间隔小于预设时长。
需要说明的是,图5所示的通信隧道的建立装置用于执行图3所示的通信隧道的建立方法,因此上述图3中通信隧道的建立方法中的相关解释说明也适用于该通信隧道的建立装置,此处不再赘述。
图6是根据本申请实施例的一种通信隧道的建立系统的结构图,如图6所示,该通信隧道的建立系统600包括:虚拟专用网络服务器602、终端设备604和网关606,其中,虚拟专用网络服务器,用于接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;依据请求信息,确定目标隧道的状态信息;依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备;终端设备,用于通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段;网关,用于将请求信息中的第一IP地址转换为专用网络的IP地址,以及将第一IP地址的端口号转换为专用网络的端口号,其中,第一IP地址为源IP地址。
需要说明的是,图6所示的通信隧道的建立系统用于执行图2和图3所示的通信隧道的建立方法,因此图2和图3中通信隧道的建立方法中的相关解释说明也适用于该通信隧道的建立系统,此处不再赘述。
图7是根据本申请实施例的一种视频VPN隧道建立的时序图,如图7所示,软终端包括IPTV模块(IP地址为IP1)和TM模块(IP地址为IP1),部署在同一个软终端APP里面。IPTV模块需要访问IPTV专网(IP地址为IP5)的IPTV平台业务数据,TM模块主要进行终端认证、终端管理、视频VPN的VxLan封装和解封装等功能。APP启动时,软终端TM模块发起与视频VPNServer(互联网所在IP地址为IP3,专网所在IP地址为IP4)建立隧道的请求。
软终端TM模块向视频VPN Server发起VxLan封装的数据包,除了VxLan网络参数之外,还携带加密的软终端UserID。软终端TM模块发起隧道的关键网络参数包括:{OutSrcIP1=软终端IP,OutSrcPort1=4789,OutDstIP3=视频VPN ServerIP,OutDstPort3=4789,VNI=VxLanID0(例如约定为0),InnerMac,InnerIP,InnerUDP,UserID加密,Token=空}。InnerMac,InnerIP,InnerUDP(源和目的),仅填约定值,本申请实施例中不使用这些字段的值。
经过家庭网关NAT(IP地址为IP2)后,上述发起隧道的关键网络参数被家庭网关改变为:{OutSrcIP2=家庭网关的外网IP2=NAT_IP,OutSrcPort2=NAT随机确定的端口=NAT_Port,OutDstIP3=视频VPN ServerIP,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=空}。其中OutSrcPort2在这个NAT条目不超时、有效期间是不变的。
视频VPN Server接收到这个网络包,解密UserID,判断UserID是否合法(即UserID有效性判定),若合法,则生成每个隧道唯一Token,然后给这个隧道分配目前不在用的VxLanIDu和VxLanIDm,VxLanIDu是标识单播业务数据通道的VNI,VxLanIDm是标识组播业务数据通道的VNI。然后在Server端记录这个隧道的参数条目:(Client_IP,Client_Port,Server_IP,Server_Port,Token(非空),软终端ID,VxLanIDu,VxLanIDm,隧道条目时间)。其中Client_IP和Client_Port是Server收到的网络包的外层源IP和外层源Port,如果客户端经过NAT,那么Client_IP=NAT_IP,Client_Port=NAT_Port。
Server回复隧道建立的包,回复包也是VxLan封装的包,关键网络参数和载荷为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP2=NAT_IP,OutDstPort2=NAT_Port,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token(非空),VxLanIDu,VxLanIDm}。
隧道建立回复包经过NAT后发回软终端TM模块,关键网络参数和载荷转换为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP1=IP1,OutDstPort2=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token(非空),VxLanIDu,VxLanIDm},然后软终端TM读取Token,VxLanIDu,VxLanIDm,并在软终端进行记录。自此,隧道已经建立,Token是唯一标识。VxLanID0,VxLanIDu,VxLanIDm分别标识同一隧道的3个通道。
图8是根据本申请实施例的一种视频VPN隧道维持的时序图,如图8所示,软终端TM模块每隔一段时间发起心跳包,心跳包发起的时间间隔小于NAT超时时长,这样可以保证NAT有效。心跳包与隧道建立包的区别是心跳包的内层有效载荷的Token字段不为空,Token是一个隧道的唯一标识。发起心跳包的关键网络参数包括:{OutSrcIP1,OutSrcPort1=4789,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=非空}。
发起心跳包经过家庭网关NAT后,关键网络参数被家庭网关改变为:{OutSrcIP2=家庭网关的外网IP2=NAT_IP,OutSrcPort2=NAT随机确定的端口=NAT_Port,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=非空}。
视频VPN Server接收到心跳包,读取心跳包{OutSrcIP2,OutSrcPort2=NAT_Port,OutDstIP3,OutDstPort3=4789,VNI=VxLanID0,UserID加密,Token=非空},与服务器(视频VPN Server)保存的隧道条目(Client_IP,Client_Port,Server_IP,Server_Port,Token,软终端ID,隧道条目时间)进行比对。其中Client_IP与OutSrcID2(即NAT_IP)比对,Client_Port与OutSrcPort2(即NAT_Port)比对。在相关比对都符合,且Server当前时间<=隧道条目时间+n*心跳间隔,则心跳合法(其中n*心跳间隔是约定时间差额超过n个心跳间隔则无效)。若心跳合法,则Server修改隧道条目时间的值为当前时间。
若心跳合法,则Server回复心跳包,心跳回复包中包含了隧道条目时间。心跳回复包中的关键网络参数和载荷为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP2,OutDstPort2=NAT_Port,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=非空,VxLanIDu,VxLanIDm,隧道条目时间}。
经过NAT后发回软终端TM模块,关键网络参数和载荷变更为:{OutSrcIP3,OutSrcPort3=4789,OutDstIP1=IP1,OutDstPort2=4789,VNI=VxLanID0,InnerMac,InnerIP,InnerUDP,UserID加密,Token=非空,VxLanIDu,VxLanIDm,隧道条目时间},软终端TM更新软终端记录的心跳信息:Token,隧道条目时间。若软终端当前时间>隧道条目时间+n*心跳间隔,则代表心跳回复超时,软终端TM停止发起心跳,并重新发起建立隧道。
图9是根据本申请实施例的一种视频VPN隧道子通道功能示意图,如图9所示,将视频VPN隧道划分为三个子通道,在同一个有效隧道中通过VxLanID区分3个子通道。其中进行安全认证、建立隧道、维持隧道的子通道的VNI=VxLanID0,是所有软终端都采用同一个VxLanID0,例如VxLanID0=0。该子通道VNI=VxLanID0在隧道有效时启用隧道,在隧道失效时停止隧道。
进行单播业务数据传输的通道的VNI=VxLanIDu,不同的软终端用户的VxLanIDu是不同的。在通过安全认证、隧道建立时分配VxLanIDu,VxLanIDu主要负责单播业务数据流量加速。而负责单播业务发送的功能系统称为“视频VPN Server单播业务加速”。
进行组播业务数据传输的通道的VNI=VxLanIDm,不同的软终端用户的VxLanIDm是不同的。在通过安全认证、隧道建立时分配VxLanIDm,VxLanIDm主要负责组播业务数据。而负责组播业务发送的功能系统称为“视频VPN组播节点”。
在图9中,VxLanID0的通道称为控制通道,VxLanIDm和VxLanIDm的通道称为数据通道。控制通道负责软终端的安全认证、隧道建立、隧道维持,数据通道仅负责数据的高速转发,数据通道的安全性由控制通道负责。
本申请实施例还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行以下通信隧道的建立方法:接收经过网络地址转换后的目标隧道的请求信息,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;依据请求信息,确定目标隧道的状态信息;依据状态信息对请求信息执行对应的操作,并将操作结果经过网络地址转换后发送给终端设备。
上述非易失性存储介质所在设备通过运行计算机程序还用于执行以下通信隧道的建立方法:通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,第一用户标识为加密后的用户标识,请求信息通过虚拟扩展局域网的格式封装后传输;在令牌标识为第一字段的情况下,确定请求信息为第一请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第一操作结果,其中,第一操作结果为第一请求信息的响应信息,第一字段为空;在令牌标识为第二字段的情况下,确定请求信息为第二请求信息,并接收虚拟专用网络服务器经过网络地址转换返回的第二操作结果,其中,第二操作结果为第二请求信息的响应信息,第二字段为非空字段。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (16)
1.一种通信隧道的建立方法,其特征在于,包括:
接收经过网络地址转换后的目标隧道的请求信息,其中,所述请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,所述第一用户标识为加密后的用户标识,所述请求信息通过虚拟扩展局域网的格式封装后传输;
依据所述请求信息,确定所述目标隧道的状态信息;
依据所述状态信息对所述请求信息执行对应的操作,并将操作结果经过所述网络地址转换后发送给终端设备。
2.根据权利要求1所述的方法,其特征在于,确定所述目标隧道的状态信息,包括:
获取所述请求信息中的第一网络标识符;
在所述第一网络标识符表示所述目标隧道的控制通道的情况下,获取所述请求信息中的令牌标识;
在所述令牌标识为第一字段的情况下,确定所述请求信息为第一请求信息,并确定所述目标隧道处于隧道建立状态,其中,所述第一字段为空;
在所述令牌标识为第二字段的情况下,确定所述请求信息为第二请求信息,并确定所述目标隧道处于隧道维持状态,其中,所述第二字段为非空字段。
3.根据权利要求2所述的方法,其特征在于,在所述目标隧道处于隧道建立状态时,依据所述状态信息对所述请求信息执行对应的操作,包括:
对所述第一用户标识进行解密,得到第二用户标识;
在确定所述第二用户标识满足预设条件的情况下,生成所述目标隧道的分配信息,其中,所述分配信息中包括目标令牌标识和所述目标隧道的子通道对应的目标网络标识符,所述目标隧道的子通道包括以下至少之一:单播业务数据通道和组播业务数据通道,所述目标网络标识符包括:与所述单播业务数据通道对应的第二网络标识符和与所述组播业务数据通道对应的第三网络标识符。
4.根据权利要求3所述的方法,其特征在于,在所述目标隧道处于隧道建立状态时,依据所述状态信息对所述请求信息执行对应的操作,包括:
获取所述请求信息中的第一地址和所述第一地址的第一端口号,其中,所述第一地址和所述第一端口号表示源IP地址经过网络地址转换后的IP地址和端口号;
获取虚拟专用网络服务器中的第二地址和所述第二地址的第二端口号;
保存与所述目标隧道对应的目标隧道条目信息,其中,所述目标隧道条目信息至少包括所述第一地址、所述第一端口号、所述第二地址、所述第二端口号、所述第一用户标识、所述令牌标识、所述第一网络标识符和所述目标网络标识符。
5.根据权利要求4所述的方法,其特征在于,在所述目标隧道处于隧道维持状态时,依据所述状态信息对所述请求信息执行对应的操作,包括:
判断所述请求信息与所述目标隧道条目信息是否相同,得到判断结果;
在所述判断结果指示所述请求信息与所述目标隧道条目信息相同的情况下,确定所述虚拟专用网络服务器的当前时间;
在所述当前时间与所述目标隧道的隧道条目时间的时间间隔小于或等于预设时长的情况下,将所述虚拟专用网络服务器中存储的所述目标隧道的隧道条目时间更新为所述当前时间,并确定所述第二请求信息的响应信息,其中,所述第二请求信息的响应信息包括所述目标隧道条目信息和所述目标隧道的隧道条目时间。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在所述判断结果指示所述请求信息与所述目标隧道条目信息不相同的情况下,删除所述目标隧道,并停止向所述目标隧道发送信息。
7.根据权利要求5所述的方法,其特征在于,在所述当前时间与所述目标隧道条目时间的时间间隔大于所述预设时长的情况下,删除所述目标隧道,并停止向所述目标隧道发送信息。
8.一种通信隧道的建立方法,其特征在于,包括:
终端设备通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,所述请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,所述第一用户标识为加密后的用户标识,所述请求信息通过虚拟扩展局域网的格式封装后传输;
在所述令牌标识为第一字段的情况下,确定所述请求信息为第一请求信息,并接收所述虚拟专用网络服务器经过所述网络地址转换返回的第一操作结果,其中,所述第一操作结果为所述第一请求信息的响应信息,所述第一字段为空;
在所述令牌标识为第二字段的情况下,确定所述请求信息为第二请求信息,并接收所述虚拟专用网络服务器经过所述网络地址转换返回的第二操作结果,其中,所述第二操作结果为所述第二请求信息的响应信息,所述第二字段为非空字段。
9.根据权利要求8所述的方法,其特征在于,接收所述虚拟专用网络服务器经过所述网络地址转换返回的第一操作结果,包括:
记录所述第一操作结果中的所述目标隧道的分配信息,其中,所述分配信息中包括目标令牌标识和所述目标隧道的子通道对应的目标网络标识符。
10.根据权利要求8所述的方法,其特征在于,接收所述虚拟专用网络服务器经过所述网络地址转换返回的第二操作结果,包括:
记录所述第二操作结果中的所述目标隧道的时间和目标令牌标识;
在所述终端设备的当前时间与所述目标隧道的隧道条目时间的时间间隔大于预设时长的情况下,停止发起所述第二请求信息;
重新将所述第一请求信息经过所述网络地址转换发送给所述虚拟专用网络服务器。
11.根据权利要求10所述的方法,其特征在于,发送所述第二请求信息的时间与所述目标隧道的隧道条目时间的时间间隔小于所述预设时长。
12.一种通信隧道的建立装置,其特征在于,应用于虚拟专用网络服务器,包括:
第一接收模块,用于接收经过网络地址转换后的目标隧道的请求信息,其中,所述请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,所述第一用户标识为加密后的用户标识,所述请求信息通过虚拟扩展局域网的格式封装后传输;
确定模块,用于依据所述请求信息,确定所述目标隧道的状态信息;
第一发送模块,用于依据所述状态信息对所述请求信息执行对应的操作,并将操作结果经过所述网络地址转换后发送给终端设备。
13.一种通信隧道的建立装置,其特征在于,应用于终端设备,包括:
第二发送模块,用于通过网络地址转换将目标隧道的请求信息发送给虚拟专用网络服务器,其中,所述请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,所述第一用户标识为加密后的用户标识,所述请求信息通过虚拟扩展局域网的格式封装后传输;
第二接收模块,用于在所述令牌标识为第一字段的情况下,确定所述请求信息为第一请求信息,并接收所述虚拟专用网络服务器经过所述网络地址转换返回的第一操作结果,其中,所述第一操作结果为所述第一请求信息的响应信息,所述第一字段为空;
第三接收模块,用于在所述令牌标识为第二字段的情况下,确定所述请求信息为第二请求信息,并接收所述虚拟专用网络服务器经过所述网络地址转换返回的第二操作结果,其中,所述第二操作结果为所述第二请求信息的响应信息,所述第二字段为非空字段。
14.一种通信隧道的建立系统,其特征在于,包括:虚拟专用网络服务器、终端设备和网关,其中,
所述虚拟专用网络服务器,用于接收经过网络地址转换后的目标隧道的请求信息,其中,所述请求信息中至少包括第一网络标识符、第一用户标识和令牌标识,所述第一用户标识为加密后的用户标识,所述请求信息通过虚拟扩展局域网的格式封装后传输;依据所述请求信息,确定所述目标隧道的状态信息;依据所述状态信息对所述请求信息执行对应的操作,并将操作结果经过所述网络地址转换后发送给所述终端设备;
所述终端设备,用于通过所述网络地址转换将目标隧道的请求信息发送给所述虚拟专用网络服务器;在所述令牌标识为第一字段的情况下,确定所述请求信息为第一请求信息,并接收所述虚拟专用网络服务器经过所述网络地址转换返回的第一操作结果,其中,所述第一操作结果为所述第一请求信息的响应信息,所述第一字段为空;在所述令牌标识为第二字段的情况下,确定所述请求信息为第二请求信息,并接收所述虚拟专用网络服务器经过所述网络地址转换返回的第二操作结果,其中,所述第二操作结果为所述第二请求信息的响应信息,所述第二字段为非空字段;
所述网关,用于将所述请求信息中的第一IP地址转换为专用网络的IP地址,以及将所述第一IP地址的端口号转换为所述专用网络的端口号,其中,所述第一IP地址为源IP地址。
15.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项或权利要求8至11中任意一项所述的通信隧道的建立方法。
16.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项或权利要求8至11中任意一项所述的通信隧道的建立方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211413168.6A CN115776391A (zh) | 2022-11-11 | 2022-11-11 | 通信隧道的建立方法、装置、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211413168.6A CN115776391A (zh) | 2022-11-11 | 2022-11-11 | 通信隧道的建立方法、装置、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115776391A true CN115776391A (zh) | 2023-03-10 |
Family
ID=85388929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211413168.6A Pending CN115776391A (zh) | 2022-11-11 | 2022-11-11 | 通信隧道的建立方法、装置、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115776391A (zh) |
-
2022
- 2022-11-11 CN CN202211413168.6A patent/CN115776391A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10122574B2 (en) | Methods and apparatus for a common control protocol for wired and wireless nodes | |
CN107800602B (zh) | 一种报文处理方法、设备及系统 | |
CN102577255B (zh) | 云计算中企业的第2层无缝站点扩展 | |
EP2819363B1 (en) | Method, device and system for providing network traversing service | |
CN114124618B (zh) | 一种报文传输方法及电子设备 | |
US20130182651A1 (en) | Virtual Private Network Client Internet Protocol Conflict Detection | |
CN103580980A (zh) | 虚拟网络自动发现和自动配置的方法及其装置 | |
CN104993993B (zh) | 一种报文处理方法、设备和系统 | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN106559302A (zh) | 单播隧道建立方法、装置和系统 | |
US9118588B2 (en) | Virtual console-port management | |
CN115473729A (zh) | 数据传输方法、网关、sdn控制器及存储介质 | |
EP3503484B1 (en) | Message transmission methods and devices | |
CN108259633B (zh) | 实现管理报文三层通信的方法、系统及装置 | |
US20210167993A1 (en) | Method, device, and system for determining generic routing encapsulation gre tunnel identifier | |
CN107547467B (zh) | 一种电路认证处理方法、系统及控制器 | |
CN116488958A (zh) | 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备 | |
CN112532540A (zh) | 接口管理方法、装置和系统 | |
CN113472625B (zh) | 基于移动互联网的透明桥接方法、系统、设备及存储介质 | |
CN115776391A (zh) | 通信隧道的建立方法、装置、系统及电子设备 | |
CN108259292B (zh) | 建立隧道的方法及装置 | |
EP3726789A1 (en) | Load sharing method, device, and system and computer readable storage medium | |
CN113300998A (zh) | 实现数据加密传输的方法及装置、通信系统 | |
CN111866865A (zh) | 一种数据传输方法、无线专网建立方法及系统 | |
CN113992461B (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 |