CN114205185B - 一种控制报文的代理方法及装置 - Google Patents
一种控制报文的代理方法及装置 Download PDFInfo
- Publication number
- CN114205185B CN114205185B CN202010976270.1A CN202010976270A CN114205185B CN 114205185 B CN114205185 B CN 114205185B CN 202010976270 A CN202010976270 A CN 202010976270A CN 114205185 B CN114205185 B CN 114205185B
- Authority
- CN
- China
- Prior art keywords
- message
- isolation space
- target
- network
- protocol stack
- 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
- 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
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/164—Adaptation or special uses of UDP protocol
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
本发明公开了一种控制报文的代理方法及装置,其中方法为:适用于UDP模式下具有多个资源隔离空间的网络收发设备,通过网络协议栈获取第一报文;确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文;至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文;通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理;通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
Description
技术领域
本发明涉及报文代理技术领域,尤其涉及一种控制报文的代理方法及装置。
背景技术
网络设备通过网络通信时需要基于各种网络协议,这些协议构成了网络协议栈。在VPN场景下,网络协议栈的网络传输架构中包括控制面和数据面,分别负责控制报文和数据报文的传输。由于控制报文处理协商的流程比较复杂,为了减轻对数据面转发效率的影响,将控制报文的处理保留在控制面,数据面则专门高效处理数据加解密。
然而,目前的控制报文代理中,需要为每个用户创建一个代理,并将代理关联到用户,并管理每个用户与代理的上下线关系。这就使得控制报文代理的管理与维护较为复杂,这是一个亟待解决的问题。
发明内容
本发明提供一种控制报文的代理方法及装置,解决了现有技术中控制报文代理的管理与维护较为复杂的问题。
第一方面,本发明提供一种控制报文的代理方法,包括:适用于UDP模式下具有多个资源隔离空间的网络收发设备,所述方法包括:通过网络协议栈获取第一报文;确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文;至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文;通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理;通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
上述方法中,获取第一报文后,先确定所述第一报文的目标隔离空间信息,并封装得到第二报文,从而第二报文可以指示具体的目标资源隔离空间,通过在第一报文加入目标隔离空间信息,一个控制面代理和一个数据面代理也不需要和目标资源隔离空间唯一绑定,不需要每个资源隔离空间都配备一个控制面代理,只需要根据对所述第二报文解封装,得到所述第二报文中的所述目标隔离空间信息,便可以找到控制报文对应的所述目标资源隔离空间,将所述第二报文的报文载荷注入,对任一个资源隔离空间都可以采用上述封装报文的方法,将目标隔离空间信息标记在第二报文中,从而只需要一个控制面代理和数据面代理,便可以进行多个资源隔离空间的控制报文的代理,更便于管理。
可选的,确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文,包括:若通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文,则确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息;若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文。
上述方法中,通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文时,便确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息,若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文,从而可以自动、准确地捕获到属于所述目标资源隔离空间的控制报文,并得到准确可用于封装的所述目标隔离空间信息。
可选的,所述至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文,包括:通过所述网络协议栈的控制面协议处理单元,按照控制面的预设格式,将所述第一报文的报文载荷处理为所述第二报文的报文载荷,以及将所述第一报文的第一传输头部处理为第二传输头部;将所述目标隔离空间信息、所述第二报文的报文载荷和所述第二传输头部,封装得到所述第二报文。
上述方式下,按照控制面的预设格式,将所述第一报文的报文载荷、所述第一传输头部转换得到所述第二报文的报文载荷、所述第二传输头部,并连同所述目标隔离空间信息封装得到所述第二报文,从而既转换成了控制面的报文,其中又携带了所述目标隔离空间信息,在报文转换格式的过程中加入了所述目标隔离空间信息,从而能解析出第一报文完整信息。
可选的,所述获取第一控制报文之前;还包括:将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口;将所述网络收发设备中数据面连接控制面所使用的IP地址作为所述控制面代理所监听的源IP地址,以及将所述数据面连接所述控制面所使用的端口作为所述控制面代理所监听的访问端口;将所述控制面被所述数据面连接所使用的IP地址作为所述数据面代理所监听的目的IP地址,以及将所述控制面被所述数据面连接所使用的端口作为所述数据面代理所监听的服务端口。
上述方式下,将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口,结合其他的监听设置,从而网卡、协议栈与数据面、控制面之间省去了通信环节,数据面、控制面可以和远端直接通信,进而使得控制报文的代理更加迅速。
可选的,所述目标隔离空间信息具体包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。
上述方式下,所述目标隔离空间信息包含了远端公网IP地址等多项信息,可以相互印证信息的准确性,从而能够更准确、全面地追溯到目标资源隔离空间。
可选的,所述网络协议栈为用户态网络协议栈。
用户态网络协议栈具有较高的性能,通过用户态网络协议栈,可以更高效地执行上述方法。
第二方面,本发明提供一种控制报文的代理装置,所述装置适用于UDP模式;所述装置具有多个资源隔离空间的网络收发设备,所述装置包括:获取模块,用于通过网络协议栈获取第一报文;处理模块,用于确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文;至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文;通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理;通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
可选的,所述处理模块具体用于:若通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文,则确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息;若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文。
可选的,所述处理模块具体用于:通过所述网络协议栈的控制面协议处理单元,按照控制面的预设格式,将所述第一报文的报文载荷处理为所述第二报文的报文载荷,以及将所述第一报文的第一传输头部处理为第二传输头部;将所述目标隔离空间信息、所述第二报文的报文载荷和所述第二传输头部,封装得到所述第二报文。
可选的,所述处理模块还用于:将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口;将所述网络收发设备中数据面连接控制面所使用的IP地址作为所述控制面代理所监听的源IP地址,以及将所述数据面连接所述控制面所使用的端口作为所述控制面代理所监听的访问端口;将所述控制面被所述数据面连接所使用的IP地址作为所述数据面代理所监听的目的IP地址,以及将所述控制面被所述数据面连接所使用的端口作为所述数据面代理所监听的服务端口。
可选的,所述目标隔离空间信息具体包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。
可选的,所述目标隔离空间信息具体包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。
可选的,所述网络协议栈为用户态网络协议栈。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种控制报文的代理方法的流程示意图;
图2为本发明实施例提供的一种控制报文的代理方法可应用的架构示意图;
图3为本发明实施例提供的一种控制报文的代理装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
目前的控制报文代理是基于TCP实现,需要为每个用户组创建一个代理,并将代理关联到用户组,并管理每个用户组与代理的上下线关系。这种方式下,控制报文代理的管理与维护较为复杂。为此,如图1所示,为本发明实施例提供的一种控制报文的代理方法,该方法适用于UDP模式下具有多个资源隔离空间的网络收发设备。
步骤101:通过网络协议栈获取第一报文。
步骤102:确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文。
步骤103:至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文。
步骤104:通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理。
步骤105:通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
需要说明的是,步骤101~步骤105中,网络协议栈可有多种选择,如可以为用户态网络协议栈,或者为内核态网络协议栈。网络收发设备可以为一台主机。由步骤101~步骤105,目标隔离空间信息用于追溯目标资源隔离空间,通过将目标隔离空间信息封装在控制报文中,在转发都数据面代理后,解析出控制报文所要注入的目标资源隔离空间,完成控制报文的代理。
其中,步骤101~步骤105中的所述目标隔离空间信息具体可以包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。所述目标隔离空间信息可以根据场景做具体设置,只要能指示出目标资源隔离空间均可。
步骤101之前,一种可选实施方式可以为:
将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口;将所述网络收发设备中数据面连接控制面所使用的IP地址作为所述控制面代理所监听的源IP地址,以及将所述数据面连接所述控制面所使用的端口作为所述控制面代理所监听的访问端口;将所述控制面被所述数据面连接所使用的IP地址作为所述数据面代理所监听的目的IP地址,以及将所述控制面被所述数据面连接所使用的端口作为所述数据面代理所监听的服务端口。
上述方式下,将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口,以及其他的监听设置,从而网卡、协议栈与数据面、控制面之间省去了通信环节,数据面、控制面可以和远端直接通信,进而使得控制报文的代理更加迅速。
一种可选实施方式(以下称为报文监听的实施方式)中,步骤102具体可以为:
若通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文,则确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息;若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文。
上述实施方式中,所述目标资源隔离空间的报文监听服务是专用于监听待注入至所述目标资源隔离空间的报文,显然每个资源隔离空间均可以配置一个报文监听服务。所述目标资源隔离空间的报文监听服务等待控制报文到达,如果确定了是控制报文到达,如第一控制报文,再确定第一控制报文待注入的资源隔离空间。需要说明的是,具体的确定方式,可以根据第一控制报文中携带的资源隔离空间的标识,以及第一控制报文中特定的报文数据等。
步骤103具体可以为:
通过所述网络协议栈的控制面协议处理单元,按照控制面的预设格式,将所述第一报文的报文载荷处理为所述第二报文的报文载荷,以及将所述第一报文的第一传输头部处理为第二传输头部;将所述目标隔离空间信息、所述第二报文的报文载荷和所述第二传输头部,封装得到所述第二报文。
上述方式下,步骤103中,可以顺带将一同完成控制面的数据报文格式转换以及报文封装一同完成。即,不但将所述第一控制报文的报文载荷(即数据报文)为所述第二控制报文的报文载荷,将第一传输头部处理为第二传输头部,在封装第二控制报文时还包括了目标隔离空间信息,从而一举两得,增加了控制报文代理的效率。
下面结合图2,详细描述本发明实施例提供的一种控制报文的代理方法。
图2的应用场景可以为是ipsec加密隧道的报文传输,即图1示出的方法中,控制报文为ipsec控制报文,Ipsec加密隧道一般是两个端点之间,图2示出的拓扑图中,从左边到右边依次为:用户端,远端,互联网,本端(含有数据面(如通过vroute来实现)以及控制面(如通过Linux和strongswan来实现),服务器。
用户端,可以为一台用户主机,具体参与图2过程的可以通过curl工具请求服务器的一个网页来实现。
远端,可以通过strongswan来实现,具体可以表现为一个strongswan进程。
本端即为图1中涉及的网络收发设备。可以包括两个进程:一个是开源的strongswan,用于处理控制报文;另一个是用户态协议栈进程(vroute)(绑定wss1/wss2可以认为是物理网卡,)用于处理数据报文。由于网卡在数据报文所在的进程上(vroute),可以在vroute上面添加数据面代理。
进一步地,本段中的lb表示负载均衡器,网络协议栈模块可以采用Linux用户态协议栈,该模块还可以包括控制面代理,服务质量模块,为控制报文代理的服务质量做调控。
图2示出的架构中,整个流程的目的在于,通过本端的网络协议栈模块,将远端的strongswan进程发送过来的控制报文代理到本端的strongswan进程。
图2中示出的数据方向包括:到达数据报文方向,发送数据报文方向,控制报文方向,加密隧道方向。这些数据方向在图2架构中涉及到的具体过程如下:用户端在加密隧道方向与远端交互,远端也通过加密隧道方向与互联网交互。
到达数据报文方向,具体来说,一个示例中,控制报文首先在网络协议栈上通过数据面代理接收,然后通过数据面代理发送到控制面代理(比如linux上的IPsec,可以通过strongswan实现),由ipsec通过控制面协议处理单元进行具体的协议处理。在网络协议栈模块往控制面发送前先封装为自定义格式(第二控制报文的格式),在控制面接收后,解析自定义格式。
发送数据报文方向,相应地,具体来说,一个示例中,发送数据方向的控制报文首先在控制面上通过控制面代理发送到网络协议栈上,网络协议栈接收后,可以切换资源隔离空间,并将控制报文发送出去。
互联网和本端的交互涉及到达数据报文方向、发送数据报文方向和控制报文方向三种。具体来说,是互联网与本端的第一网卡端口在上述三种数据方向上交互。
进一步地,本端内部,本端的第一网卡端口和本端的负载均衡器间涉及到达数据报文方向和控制报文方向的交互;本端的第一网卡端口和本端的服务质量模块间涉及发送数据报文方向的交互;本端的负载均衡器和本端的网络协议栈间涉及发送数据报文方向、到达数据报文方向和控制报文方向的交互;本端的负载均衡器和本端的第二网卡端口涉及到达数据报文方向的交互;本端的网络协议栈和本端的服务质量模块间涉及到达数据报文方向和控制报文方向的交互;本端的网络协议栈和本端的控制面间涉及控制报文方向的交互;本端的服务质量模块和本端的第二网卡端口间涉及到达数据报文方向的交互。
本端的第二网卡端口与服务器间涉及数据报文方向、到达数据报文方向的交互。
该架构中出现的命名定义如下:
outer_remote_ip,表示远端公网ip地址;
outer_remote_port,表示远端公网端口;
outer_local_ip,表示本地公网ip地址;
outer_local_port,表示本地公网端口,也是数据面监听的本地公网ip:port;
wss_proxy_ip,表示网卡(如wss)ip地址,表示数据面连接控制面使用的源ip,比如127.0.0.2;
wss_proxy_port,表示网卡(如wss)端口;
linux_proxy_ip,表示协议栈(如用户态linux协议栈)代理ip地址,表示控制面被数据面连接的目的ip,比如127.0.0.1;
linux_proxy_port,表示协议栈(如用户态linux协议栈)代理端口;
ns_id,表示资源隔离空间的标识;
wss_proxy_socket,表示数据面代理,本质为网络套接字;
linux_proxy_socket,表示控制面代理,本质为网络套接字;
outer_local_socket,表示公网ip地址的监听服务,本质为网络套接字;
outer_ip_hdr,表示通过公网ip地址监听到的控制报文的ip层报文头部;
outer_udp_hdr,表示通过公网ip地址监听到的控制报文的udp层报文头部;
outer_udp_payload,表示通过公网ip地址监听到的控制报文的报文载荷(如udp报文载荷);
inner_ip_hdr,表示网卡或协议栈(如wss或linux)代理ip地址监听到的控制报文的ip层报文头部;
inner_udp_hdr,表示网卡或协议栈(如wss或linux)代理ip地址监听到的控制报文的udp层报文头部;
inner_udp_payload,表示网卡或协议栈(如wss或linux)代理ip地址监听到的控制报文的udp载荷。
以IPsec加密隧道为例,图2示出的架构涉及到的过程具体如下:
第一步:IPsec数据面(基于网络协议栈)启动,创建数据面代理wss_proxy_socket,并通过监听服务对网络协议栈进行监听,具体监听信息为wss_proxy_ip,wss_proxy_port(比如127.0.0.2:501),表示监听来自127.0.0.2:501的控制报文。
第二步:IPsec控制面(运行网络协议栈)启动,创建控制面代理linux_proxy_socket,并通过监听服务对网络协议栈进行监听,具体监听信息为linux_proxy_ip,linux_proxy_port(如127.0.0.1:500),表示监听来自127.0.0.1:500的控制报文。
第三步:IPsec控制面读取多个资源隔离空间配置文件,通过进程间通信的方式将监听服务下发到网络协议栈(数据面)。每个资源隔离空间会添加一个监听服务outer_local_socket(可包括ns_id:outer_local_ip:outer_local_port),这里存储监听服务与资源隔离空间ns_id的映射关系。
第四步:当用户端或者远端的控制报文到达时,控制报文先经过网络协议栈,然后控制报文被对应资源隔离空间的监听服务outer_local_socket收到。此时控制报文(此时控制报文具体为第一控制报文)封装为:outer_ip_hdr|outer_udp_hdr|outer_udp_payload,同时通过监听服务可以找到ns_id(隔离空间信息)。
第五步:将控制报文重新封装为中间控制报文:inner_ip_hdr|inner_udp_hdr|inner_udp_payload。其中inner_udp_payload,具体可以包括user_control(目标隔离空间信息)以及outer_udp_payload。
其中,user_control可以包含以下信息:outer_remote_ip,即远端公网IP地址;outer_remote_port,即远端公网端口;outer_local_ip,即本端公网IP地址;outer_local_port,即本端公网端口;ns_id即目标资源隔离空间的空间标识。
然后通过控制面代理wss_proxy_socket向linux_proxy_ip,linux_proxy_port(127.0.0.1:500)发送中间控制报文。
第六步:控制面接收到中间控制报文后,获取inner_udp_payload。并根据user_control,按照控制面的预设格式,将所述第一控制报文的报文载荷处理为所述第二控制报文的报文载荷,即转换为IPsec可识别的数据结构,将outer_udp_payload信息上传到控制面协议处理单元,处理完之后,得到回复报文,并将回复报文在控制面重新封装为第二控制报文:inner_ip_hdr|inner_udp_hdr|inner_udp_payload;其中,inner_udp_payload包括user_control和outer_udp_payload。
然后通过控制面代理向控制面发送第二控制报文。
第七步:数据面代理收到第二控制报文后,获取第二控制报文的报文载荷inner_udp_payload,从中获取user_control,outer_udp_payload。然后根据user_control中包括的ns_id,切换到ns_id对应的资源隔离空间。然后使用监听服务向outer_remote_ip,outer_remote_port发送报文,报文格式为:outer_ip_hdr|outer_udp_hdr|outer_udp_payload。
综上所述,本发明实施例提供的在UDP模式下的控制报文代理方法中,并不是之前针对每个资源隔离空间创建一个控制面代理,需要将控制面代理关联到资源隔离空间,管理这些控制面代理与资源隔离空间的上下线。
需要说明的是,图2示出的架构是针对的IPSEC的UDP模式,但图2涉及的流程,也同样适用于OpenVPN等UDP模式。使用多资源隔离空间唯一控制面代理替换原来的每个资源隔离空间下的一个控制面代理,实现上简化了逻辑,方便管理与维护。
如图3所示,本发明提供一种控制报文的代理装置,所述装置适用于UDP模式;所述装置具有多个资源隔离空间的网络收发设备,所述装置包括:获取模块301,用于通过网络协议栈获取第一报文;处理模块302,用于确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文;至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文;通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理;通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
可选的,所述处理模块302具体用于:若通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文,则确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息;若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文。
可选的,所述处理模块302具体用于:通过所述网络协议栈的控制面协议处理单元,按照控制面的预设格式,将所述第一报文的报文载荷处理为所述第二报文的报文载荷,以及将所述第一报文的第一传输头部处理为第二传输头部;将所述目标隔离空间信息、所述第二报文的报文载荷和所述第二传输头部,封装得到所述第二报文。
可选的,所述处理模块302还用于:将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口;将所述网络收发设备中数据面连接控制面所使用的IP地址作为所述控制面代理所监听的源IP地址,以及将所述数据面连接所述控制面所使用的端口作为所述控制面代理所监听的访问端口;将所述控制面被所述数据面连接所使用的IP地址作为所述数据面代理所监听的目的IP地址,以及将所述控制面被所述数据面连接所使用的端口作为所述数据面代理所监听的服务端口。
可选的,所述目标隔离空间信息具体包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。
可选的,所述目标隔离空间信息具体包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。
可选的,所述网络协议栈为用户态网络协议栈。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的一种控制报文的代理方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的一种控制报文的代理方法及任一可选方法被执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种控制报文的代理方法,其特征在于,适用于UDP模式下具有多个资源隔离空间的网络收发设备,所述方法包括:
通过网络协议栈获取第一报文;
确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文;
至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文;
通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理;
通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
2.如权利要求1所述的方法,其特征在于,所述确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文,包括:
若通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文,则确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息;
若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文。
3.如权利要求1所述的方法,其特征在于,所述至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文,包括:
通过所述网络协议栈的控制面协议处理单元,按照控制面的预设格式,将所述第一报文的报文载荷处理为所述第二报文的报文载荷,以及将所述第一报文的第一传输头部处理为第二传输头部;
将所述目标隔离空间信息、所述第二报文的报文载荷和所述第二传输头部,封装得到所述第二报文。
4.如权利要求1至3任一项所述的方法,其特征在于,所述获取第一报文之前;还包括:
将所述网络收发设备的网卡IP地址作为所述控制面代理所监听的公网IP地址,以及将所述网络收发设备的网卡端口作为所述控制面代理所监听的接收端口;将所述网络收发设备中数据面连接控制面所使用的IP地址作为所述控制面代理所监听的源IP地址,以及将所述数据面连接所述控制面所使用的端口作为所述控制面代理所监听的访问端口;
将所述控制面被所述数据面连接所使用的IP地址作为所述数据面代理所监听的目的IP地址,以及将所述控制面被所述数据面连接所使用的端口作为所述数据面代理所监听的服务端口。
5.如权利要求1至3任一项所述的方法,其特征在于,所述目标隔离空间信息具体包括:远端公网IP地址;远端公网端口;本端公网IP地址;本端公网端口;所述目标资源隔离空间的空间标识。
6.如权利要求1至3任一项所述的方法,其特征在于,所述网络协议栈为用户态网络协议栈。
7.一种控制报文的代理装置,其特征在于,所述装置适用于UDP模式下具有多个资源隔离空间的网络收发设备,所述装置包括:
获取模块,用于通过网络协议栈获取第一报文;
处理模块,用于确定所述第一报文的目标隔离空间信息,以及确定所述第一报文为控制报文;至少根据所述第一报文、所述目标隔离空间信息,封装得到第二报文;通过所述网络协议栈的控制面代理,将所述第二报文发送至所述网络协议栈的数据面代理;通过所述数据面代理,对所述第二报文解封装,得到所述目标隔离空间信息;将所述第二报文的报文载荷注入所述目标隔离空间信息对应的目标资源隔离空间。
8.如权利要求7所述的装置,其特征在于,所述处理模块具体用于:
若通过所述网络协议栈中所述目标资源隔离空间的报文监听服务,获取到所述第一报文,则确定所述第一报文为待注入至所述目标资源隔离空间的报文,从而确定所述目标隔离空间信息;
若所述第一报文的报文载荷的前4个字节均为0,则确定所述第一报文为控制报文。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6中任意一项所述的方法被执行。
10.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010976270.1A CN114205185B (zh) | 2020-09-16 | 2020-09-16 | 一种控制报文的代理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010976270.1A CN114205185B (zh) | 2020-09-16 | 2020-09-16 | 一种控制报文的代理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114205185A CN114205185A (zh) | 2022-03-18 |
CN114205185B true CN114205185B (zh) | 2023-03-24 |
Family
ID=80644570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010976270.1A Active CN114205185B (zh) | 2020-09-16 | 2020-09-16 | 一种控制报文的代理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114205185B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314262B (zh) * | 2022-07-20 | 2024-04-23 | 杭州熠芯科技有限公司 | 一种可信网卡的设计方法及其组网方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656808A (zh) * | 2015-12-29 | 2016-06-08 | 京信通信技术(广州)有限公司 | 报文处理方法及其*** |
WO2018001242A1 (zh) * | 2016-06-30 | 2018-01-04 | 中兴通讯股份有限公司 | 一种数据报文处理方法及装置 |
WO2018094743A1 (zh) * | 2016-11-28 | 2018-05-31 | 华为技术有限公司 | 处理报文的方法和计算机设备 |
CN108809975A (zh) * | 2018-06-07 | 2018-11-13 | 北京网迅科技有限公司杭州分公司 | 一种内外网隔离***及实现内外网隔离的方法 |
CN110602155A (zh) * | 2018-06-13 | 2019-12-20 | 网宿科技股份有限公司 | 代理服务器及其处理数据报文的方法 |
CN111294293A (zh) * | 2018-12-07 | 2020-06-16 | 网宿科技股份有限公司 | 一种基于用户态协议栈的网络隔离方法和装置 |
CN111522653A (zh) * | 2020-02-07 | 2020-08-11 | 华中科技大学 | 基于容器的网络功能虚拟化平台 |
CN111669423A (zh) * | 2019-03-08 | 2020-09-15 | 厦门网宿有限公司 | 基于用户态协议栈的网络隔离空间的批量处理方法及*** |
-
2020
- 2020-09-16 CN CN202010976270.1A patent/CN114205185B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656808A (zh) * | 2015-12-29 | 2016-06-08 | 京信通信技术(广州)有限公司 | 报文处理方法及其*** |
WO2018001242A1 (zh) * | 2016-06-30 | 2018-01-04 | 中兴通讯股份有限公司 | 一种数据报文处理方法及装置 |
WO2018094743A1 (zh) * | 2016-11-28 | 2018-05-31 | 华为技术有限公司 | 处理报文的方法和计算机设备 |
CN108809975A (zh) * | 2018-06-07 | 2018-11-13 | 北京网迅科技有限公司杭州分公司 | 一种内外网隔离***及实现内外网隔离的方法 |
CN110602155A (zh) * | 2018-06-13 | 2019-12-20 | 网宿科技股份有限公司 | 代理服务器及其处理数据报文的方法 |
CN111294293A (zh) * | 2018-12-07 | 2020-06-16 | 网宿科技股份有限公司 | 一种基于用户态协议栈的网络隔离方法和装置 |
CN111669423A (zh) * | 2019-03-08 | 2020-09-15 | 厦门网宿有限公司 | 基于用户态协议栈的网络隔离空间的批量处理方法及*** |
CN111522653A (zh) * | 2020-02-07 | 2020-08-11 | 华中科技大学 | 基于容器的网络功能虚拟化平台 |
Non-Patent Citations (1)
Title |
---|
运营商云资源池部署应用Overlay SDN解决方案;***;《信息通信技术》(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114205185A (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11671367B1 (en) | Methods and apparatus for improving load balancing in overlay networks | |
US8396954B2 (en) | Routing and service performance management in an application acceleration environment | |
CN107872542B (zh) | 一种数据传输的方法及网络设备 | |
WO2021073565A1 (zh) | 业务服务提供方法及*** | |
CN106713100B (zh) | 一种自动建立隧道的方法、cpe及汇聚设备 | |
CN112751898B (zh) | 负载均衡方法、装置、介质及设备 | |
CN106797335B (zh) | 数据传输方法、数据传输装置、电子设备和计算机程序产品 | |
KR101938623B1 (ko) | 오픈 플로우 통신 방법, 시스템, 제어기 및 서비스 게이트웨이 | |
WO2016086670A1 (zh) | Vxlan报文传输方法及装置、存储介质 | |
CN107360205B (zh) | 数据报文的传输方法及装置、*** | |
WO2021073555A1 (zh) | 业务服务提供方法及***、远端加速网关 | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN108769292A (zh) | 报文数据处理方法及装置 | |
GB2592315A (en) | Methods and systems for sending packets through a plurality of tunnels | |
CN115189920A (zh) | 跨网络域通信方法和相关装置 | |
CN108093041A (zh) | 单通道vdi代理服务***及实现方法 | |
CN113364660A (zh) | Lvs负载均衡中的数据包处理方法及装置 | |
CN114205185B (zh) | 一种控制报文的代理方法及装置 | |
CN105577579B (zh) | 业务功能链中协议报文的处理方法、***及业务功能节点 | |
CN104168302B (zh) | 设备操控实现方法、***和代理网关 | |
CN112968965A (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
CN105635076A (zh) | 一种媒体传输方法和设备 | |
WO2019041332A1 (zh) | 一种加速网络传输优化方法以及*** | |
CN116488958A (zh) | 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备 | |
CN105072057A (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 |