CN116074368B - 网络切换装置、方法、电子设备及存储介质 - Google Patents
网络切换装置、方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116074368B CN116074368B CN202310356035.8A CN202310356035A CN116074368B CN 116074368 B CN116074368 B CN 116074368B CN 202310356035 A CN202310356035 A CN 202310356035A CN 116074368 B CN116074368 B CN 116074368B
- Authority
- CN
- China
- Prior art keywords
- vpn
- module
- app
- server
- message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000001914 filtration Methods 0.000 claims abstract description 45
- 238000012544 monitoring process Methods 0.000 claims abstract description 3
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 101150071927 AANAT gene Proteins 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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
本申请提供一种网络切换装置、方法、电子设备及存储介质,所述网络切换装置应用于客户端,其包括至少一个应用程序,每个应用程序包括VPN模块、过滤模块以及APP模块,其中VPN模块用于监听需要加密的流量;过滤模块用于终止不符合预设条件的TCP连接,分别与VPN模块和网络子系统连接;APP模块与网络子系统连接,可调用VPN模块与VPN服务端建立VPN隧道。本申请的APP流量从公网切换到VPN隧道后可实现从VPN服务端传输至APP服务端。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种网络切换装置、方法、电子设备及存储介质。
背景技术
IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。由于IP报文本身没有集成任何安全特性,IP数据包在公用网络如Internet中传输可能会面临被伪造、窃取或篡改的风险。通信双方通过IPsec建立一条IPsec隧道,IP数据包通过IPsec隧道进行加密传输,有效保证了数据在不安全的网络环境如Internet中传输的安全性。
但在实际使用中,由于VPN隧道建立需要一定时间,而在这个时间段内,APP流量通过公众网络,直接到达了防火墙,进而访问到APP服务端。而在VPN隧道建立时,APP流量由于操作系统的路由发生切换,从VPN隧道到达VPN服务,此时由于TCP会话前期建立的过程VPN服务端并没有参与,导致APP流量从公网切换到VPN隧道后,已经建立的TCP会话在网络层面无法通信,TCP层面只能长时间重传,无法恢复。
发明内容
本申请提供一种网络切换装置、方法、电子设备及存储介质,用以解决现有技术中APP流量从公网切换到VPN隧道后导致已经建立的TCP会话在网络层面无法通信的问题。
第一方面,本申请提供一种网络切换装置,所述网络切换装置应用于客户端,其包括至少一个应用程序,每个应用程序包括VPN模块、过滤模块以及APP模块,其中:
所述VPN模块,其用于监听需要加密的流量;
所述过滤模块,其用于终止不符合预设条件的TCP连接,所述过滤模块与所述VPN模块连接,并通过VPN隧道接口与操作系统内核的网络子系统连接;
所述APP模块,其与所述网络子系统连接,所述APP模块调用所述VPN模块与VPN服务端以建立VPN隧道;
当所述APP模块与APP服务端建立连接,若所述VPN服务端与所述APP服务端建立连接,则所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至APP服务端;若所述VPN服务端与所述APP服务端未建立连接,则所述APP模块的流量直接由所述网络子系统发送至所述APP服务端。
在本申请一实施例中,所述过滤模块包括会话管理表,当所述过滤模块检测到表示所述APP模块的流量的报文的TCP协议头具有置位SYN标记,所述过滤模块则在所述会话管理表中增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端。
在本申请一实施例中,所述过滤模块还用于:
提取每个报文的五元组,并查找所述会话管理表以确定是否有该报文归属的已知会话信息;
若查找到所述已知会话信息,则直接将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未查找到所述已知会话信息,则判断所述报文的TCP协议头的SYN标记是否置位;
若已置位,则在所述会话管理表增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未置位,则交换所述报文的源端口和目的端口的IP地址和交换所述报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值,并将所述报文从VPN隧道接口发回至所述APP模块。
在本申请一实施例中,所述APP模块还用于:
当所述APP模块接收到所述过滤模块从VPN隧道接口发回的所述报文,则重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记以使得所述VPN服务端与所述APP服务端建立连接,并将所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端。
第二方面,本申请提供一种网络切换方法,所述网络切换方法应用于第一方面任一项所述的网络切换装置,所述网络切换方法包括:
判断所述VPN服务端与所述APP服务端是否建立连接;
若所述VPN服务端与所述APP服务端建立连接,则所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端;
若所述VPN服务端与所述APP服务端未建立连接,则所述APP模块的流量直接由所述网络子系统发送至所述APP服务端。
在本申请一实施例中,所述网络切换方法还包括:
若所述过滤模块检测到表示所述APP模块的流量的报文的TCP协议头具有置位SYN标记,则所述过滤模块在其配置的会话管理表增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端。
在本申请一实施例中,所述网络切换方法还包括:
所述过滤模块提取每个报文的五元组,并查找所述会话管理表以确定是否有该报文归属的已知会话信息;
若查找到所述已知会话信息,则直接将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未查找到所述已知会话信息,则判断所述报文的TCP协议头的SYN标记是否置位;
若已置位,则在所述会话管理表增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未置位,则交换所述报文的源端口和目的端口的IP地址和交换所述报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值,并将所述报文从VPN隧道接口发回至所述APP模块。
在本申请一实施例中,所述网络切换方法还包括:
当所述APP模块接收到所述过滤模块从VPN隧道接口发回的所述报文,则重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记以使得所述VPN模块与所述APP服务端建立连接,并将所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至APP服务端。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第二方面任一项所述的网络切换方法的步骤。
第四方面,本申请提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面任一项所述的网络切换方法的步骤。
本申请提供的网络切换装置、方法、电子设备及存储介质,通过增设的过滤模块以用于终止不符合预设条件的TCP连接,使得当APP模块与APP服务端建立连接时,若VPN服务端与APP服务端也建立连接,则APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而由VPN服务端传输至APP服务端,可解决APP流量从公网切换到VPN隧道后导致已经建立的TCP会话在网络层面无法通信的问题,使得APP流量从公网切换到VPN隧道后可实现从VPN服务端传输至APP服务端。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的公网链路和VPN隧道链路的示意图;
图2是本申请提供的网络切换装置的结构示意图;
图3是本申请提供的网络切换方法的流程示意图;
图4是本申请一实施例提供的网络切换方法的流程示意图;
图5是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
为了解决现有技术中APP流量从公网切换到VPN隧道后导致已经建立的TCP会话在网络层面无法通信的问题,本申请提供一种网络切换装置、方法、电子设备及存储介质,通过增设的过滤模块以用于终止不符合预设条件的TCP连接,使得当APP模块与APP服务端建立连接时,若VPN服务端与APP服务端也建立连接,则APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而由VPN服务端传输至APP服务端,使得APP流量从公网切换到VPN隧道后可实现从VPN服务端传输至APP服务端。
下面结合图1-图5描述本申请的网络切换装置、方法、电子设备及存储介质。
请参考图1,图1是本申请提供的公网链路和VPN隧道链路的示意图。在用户终端上的应用软件(以下简称APP模块),需要使用IPSec VPN(IPSec VPN是采用IPSec协议来实现远程接入的一种VPN技术)保护穿越网络的数据的私密性和完整性,在APP模块认证用户身份的情况下,APP模块可以通过VPN模块与VPN服务端建立VPN隧道(即IPSec隧道),使得APP模块的流量可通过该VPN隧道到达APP服务端,从而实现数据的私密性和完整性的目的。
在APP模块在不调用VPN模块的情况下,是通过公网与APP服务端进行交互。在一些实施例中,出于安全考虑,APP服务端可以配置在一个内部网络中,具有内网地址IP_APP_SERV_PRIV。如果用户需要从公网访问,则可以通个一个防火墙设备,将该内部地址IP_APP_SERV_PRIV映射为外网地址IP_APP_SERV_PUB,所以APP模块访问的外网地址是IP_APP_SERV_PUB。
当APP模块调用VPN模块接通VPN隧道后,APP模块的流量可以通过该VPN隧道以加密的形式,通过外网地址IP_VPN_SERV_PUB到达VPN服务端,并由VPN服务端解密后,转交给APP服务端,此时VPN服务端部署在与APP服务端相同的内部网络中,VPN服务端在解密APP模块的流量后,可通过APP服务端的内部网络地址IP_APP_SERV_PRIV访问APP服务端,而APP模块访问APP服务端时使用的地址是IP_APP_SERV_PUB,所以VPN服务端(或其后面挂接的路由器)上需要部署NAT(Network Address Translation,网络地址转换)业务做地址映射,完成任务。
图1示出的公网对应的外部网址IP_APP_SERV_PUB和VPN隧道对应的外部网址IP_VPN_SERV_PUB中的任意一条都可以独立运行,可以满足客户端应用程序的APP模块的使用要求。但由于在实际使用中,如果APP模块在调用VPN模块的同时,由于用户的点击操作或自动刷新机制,已经开始访问APP服务端,而VPN隧道的建立需要一定时间(假设需要1秒),那么在这1秒内,APP模块的流量可通过公网直接到达防火墙,进而访问到APP服务端。
并且,从TCP(Transmission Control Protocol,传输控制协议)的角度来看,APP模块能够访问到APP服务端,表示此时三次握手已经完成,APP模块和APP服务端已经建立了TCP会话,但是因为VPN隧道的建立需要一定时间,故APP模块和APP服务端建立TCP会话的这个过程并没有VPN服务端的参与。因此,在一定时间后(例如1秒后),APP模块和VPN服务端之间的VPN隧道已经建立,APP模块的流量由于本地操作系统的路由发生切换,而通过VPN隧道到达VPN服务端,进而通过VPN服务端提供的snat(source network address translation,源地址目标转换)业务与APP服务端进行交互数据。
若此时由于前期TCP会话建立的过程VPN服务端没有参与,而snat会话建立则需要接收到TCP SYN(TCP SYN是指TCP连接的第一个数据包)包才能触发,否则就会丢弃报文,进而导致APP模块的流量从公网切换到VPN隧道后,已经建立的TCP会话在网络层面无法通信,导致TCP层面只能长时间重传,无法恢复。也就是说,VPN服务端无法与APP服务端进行通信。
基于此,为了解决上述APP流量从公网切换到VPN隧道后导致已经建立的TCP会话在网络层面无法通信的问题,本申请提供的解决方案如下:
请参考图2,图2是本申请提供的网络切换装置的结构示意图,一种网络切换装置,可应用于客户端,其包括至少一个应用程序,每个应用程序包括VPN模块、过滤模块以及APP模块。
示例性地,VPN模块用于监听需要加密的流量。
VPN(Virtual Private Network,虚拟专用网络)被定义为通过一个公用互联网络建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道,使用这条隧道可以对数据进行加密达到安全使用互联网的目的。
示例性地,过滤模块用于终止不符合预设条件的TCP连接,过滤模块可设于VPN模块的底层并与VPN模块通信连接,过滤模块通过VPN隧道接口与本地操作系统内核的网络子系统连接。
示例性地,APP模块可通过套接字(Socket)与网络子系统连接,APP模块可调用VPN模块与VPN服务端以建立VPN隧道。其中,Socket是对网络中不同主机上的应用程序之间进行双向通信的端点抽象,套接字可以看成是两个应用程序进行通信时,各自通信连接中的端点。
由图2可知,当APP模块与APP服务端建立连接,若VPN服务端与APP服务端建立连接,则APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而传输至APP服务端;若VPN服务端与APP服务端未建立连接,则APP模块的流量直接由网络子系统发送至APP服务端。
在本申请的一些实施例中,要使得APP模块的流量能够通过VPN模块进行加密后经过VPN服务端到达APP服务端,那么可以在客户端的应用程序中增设过滤模块,以对表示APP模块的流量的报文进行过滤处理以终止不符合条件的TCP连接,从而建立VPN服务端和APP服务端的连接。
示例性地,所述过滤模块包括会话管理表,该会话管理表用于建立条目流,用来过滤后面的流程。当所述过滤模块检测到表示APP模块的流量的报文的TCP协议头具有置位SYN标记,所述过滤模块则在所述会话管理表中增加与所述SYN标记对应的预设会话信息,并将所述报文传输至VPN模块进行加密后经VPN服务端发送至APP服务端。
由于TCP会话建立的第一个数据包中包括SYN标记,该SYN标记可用于触发VPN服务端与APP服务端建立连接,所以本申请通过在应用程序增设的过滤模块对表示APP模块的流量的报文进行检测,当过滤模块将检测出具有置位SYN标记的报文传输给VPN模块进行加密后发送至VPN服务端,可使得VPN服务端的snat业务得到该SYN标记而能够触发与APP服务端建立连接,从而实现VPN服务端和APP服务端的数据交互。
在本申请的其他实施例中,所述过滤模块还用于:
(1)提取每个报文的五元组,并查找所述会话管理表以确定是否有该报文归属的已知会话信息。
其中,所述五元组是指源IP地址,源端口,目的IP地址,目的端口和传输层协议。所述已知会话信息表示之前已经将TCP会话建立连接的第一个数据包记录至所述会话管理表,也就是说VPN服务端已经获知TCP会话建立连接的第一个数据包的置位SYN标记。
(2)若查找到所述已知会话信息,则直接将所述报文传输至VPN模块进行加密;若未查找到所述已知会话信息,则判断所述报文的TCP协议头的SYN标记是否置位。
也就是说,若未查找到所述已知会话信息,则判断所述报文是否为建立TCP会话连接的第一个数据包。
(3)若已置位,则在所述会话管理表增加所述预设会话信息,并将所述报文传输至所述VPN模块进行加密。
(4)若未置位,过滤模块则交换所述报文的源端口和目的端口的IP地址和交换所述报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值,并将所述报文从VPN隧道接口发回至APP模块。如此,过滤模块可实现终止不符合预设条件的TCP连接。
也就是说,过滤模块之前既没有记录过建立TCP会话连接的第一个数据包的置位SYN标记,并且当前报文也不是第一个数据包,此时过滤模块就会终止向VPN服务端发送该报文,而是将该报文退回APP模块以要求APP模块重新发起建立TCP会话连接的第一个数据包。
在本申请的其他实施例中,所述APP模块还用于:
当APP模块接收到过滤模块从VPN隧道接口发回的所述报文(即上述不符合预设条件的TCP连接的报文),则表示原TCP会话由于网络切换已经无效,可重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记以使得VPN服务端与APP服务端建立连接,并将APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而传输至APP服务端。
综上所述,本申请提供的一种网络切换装置,通过在应用程序中增设过滤模块,能够在进行VPN模块加密之前,终止不符合条件的TCP连接,并通过重新发起的TCP会话因具有置位SYN标记以使得VPN服务端与APP服务端建立连接,从而使得VPN服务端和APP服务端能够进行数据交互,解决了APP模块的流量从公网切换到VPN隧道后导致已经建立的TCP会话在网络层面无法通信的问题。
下面对本申请提供的网络切换方法进行描述,下文描述的网络切换方法与上文描述的网络切换装置可相互对应参照。
请参考图3,图3是本申请提供的网络切换方法的流程示意图。一种网络切换方法,所述网络切换方法应用于所述的网络切换装置,所述网络切换方法包括:
步骤310,判断VPN服务端与APP服务端是否建立连接。
步骤320,若VPN服务端与APP服务端建立连接,则APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而传输至APP服务端。
步骤330,若VPN服务端与APP服务端未建立连接,则APP模块的流量直接由网络子系统发送至APP服务端。
上述步骤310~步骤330示出了本申请所述网络切换方法可实现公网和VPN隧道之间切换的TCP连接方法,也就是说可实现APP模块的流量由于操作系统的路由切换,从公网切换到VPN隧道,以使得APP模块的流量通过VPN隧道到达VPN服务端,进而实现VPN服务端与APP服务端的数据交互。
在本申请的一些实施例中,所述网络切换方法还包括:
若过滤模块检测到表示APP模块的流量的报文的TCP协议头具有置位SYN标记,则所述过滤模块在其配置的会话管理表增加与所述置位SYN标记对应的预设会话信息,并将所述报文传输至VPN模块进行加密后经VPN服务端发送至APP服务端。
由于所述报文具有置位SYN标记,是建立TCP会话连接的第一个数据包,故可根据具有置位SYN标记的报文判断出VPN服务端与APP服务端可建立通信连接。
需要说明的是,过滤模块可对表示APP模块的流量的报文进行检测,以判断该报文的TCP协议头是否具有置位SYN标记。也就是说,过滤模块若检测出某报文的TCP协议头具有置位SYN标记,可将该报文发送至VPN服务端,进而使得VPN服务端的snat模块获得TCP-SYN包,可触发VPN服务端与APP服务端实现数据交互。
在本申请的一些实施例中,所述网络切换方法还包括:
(1)过滤模块提取每个报文的五元组,并查找所述会话管理表以确定是否有该报文归属的已知会话信息。
(2)若查找到所述已知会话信息,则直接将所述报文传输至所述VPN模块进行加密后发送至VPN服务端,以建立VPN服务端和APP服务端的连接。
(3)若未查找到所述已知会话信息,则判断该报文的TCP协议头的SYN标记是否置位。
(4)若已置位,则在所述会话管理表增加与所述SYN标记对应的预设会话信息,并将该报文传输至所述VPN模块进行加密后发送至VPN服务端,以建立VPN服务端和APP服务端的连接。
(5)若未置位,则交换所述报文的源端口和目的端口的IP地址和交换该报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值,并将该报文从VPN隧道接口发回至APP模块。
在本申请的一些实施例中,所述网络切换方法还包括:
当APP模块接收到过滤模块从VPN隧道接口发回的所述报文(指不符合预设条件的TCP连接的报文),则表示原TCP会话由于网络切换已经无效,可重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记以使得VPN服务端与APP服务端建立连接,并将APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而传输至APP服务端。
以下通过一实施例描述上述网络切换方法。
请参考图4,图4是本申请一实施例提供的网络切换方法的流程示意图。一种网络切换方法,包括如下步骤:
步骤401,过滤模块提取每个报文的五元组。
步骤402,过滤模块查找会话管理表以确定是否有该报文归属的已知会话信息。
步骤403,若查找到所述已知会话信息,则直接将该报文传输至VPN模块进行加密后经VPN服务端发送至APP服务端。
步骤404,若未查找到所述已知会话信息,则判断该报文的TCP协议头的SYN标记是否置位。
步骤405,若已置位,则过滤模块在所述会话管理表增加与所述SYN标记对应的预设会话信息。
步骤406,过滤模块将该报文传输至VPN模块进行加密后经VPN服务端发送至APP服务端。
步骤407,若未置位,则交换该报文的源端口和目的端口的IP地址和交换该报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值。
步骤408,过滤模块将该报文从VPN隧道接口发回至APP模块,以终止不符合预设条件的TCP连接。
步骤409,APP模块接收到过滤模块从VPN隧道接口发回的该报文,则重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记以使得VPN服务端与APP服务端建立连接。
步骤410,APP模块的流量通过VPN模块进行加密后由网络子系统经VPN隧道发送至VPN服务端,进而由VPN服务端传输至APP服务端。
在此需要说明的是,本申请实施例提供的上述网络切换方法,能够实现上述方法实施例所实现的所有装置的功能,且能够达到相同的技术效果,在此不再对本实施例中与装置实施例相同的部分及有益效果进行具体赘述。
图5示例了一种电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(Processor)510、通信接口(Communications Interface)520、存储器(Memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行所述网络切换方法,该方法包括:
当所述APP模块与所述APP服务端建立连接时,判断所述VPN服务端与所述APP服务端是否建立连接;
若所述VPN服务端与所述APP服务端建立连接,则所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端;
若所述VPN服务端与所述APP服务端未建立连接,则所述APP模块的流量直接由所述网络子系统发送至所述APP服务端。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的所述网络切换方法,该方法包括:
当所述APP模块与所述APP服务端建立连接时,判断所述VPN服务端与所述APP服务端是否建立连接;
若所述VPN服务端与所述APP服务端建立连接,则所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端;
若所述VPN服务端与所述APP服务端未建立连接,则所述APP模块的流量直接由所述网络子系统发送至所述APP服务端。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的所述网络切换方法,该方法包括:
当所述APP模块与所述APP服务端建立连接时,判断所述VPN服务端与所述APP服务端是否建立连接;
若所述VPN服务端与所述APP服务端建立连接,则所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端;
若所述VPN服务端与所述APP服务端未建立连接,则所述APP模块的流量直接由所述网络子系统发送至所述APP服务端。
本申请实施例提供的一种电子设备、一种计算机程序产品、一种处理器可读存储介质,其上存储的计算机程序使处理器能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (8)
1.一种网络切换装置,其特征在于,所述网络切换装置应用于客户端,其包括至少一个应用程序,每个应用程序包括VPN模块、过滤模块以及APP模块,其中:
所述VPN模块,其用于监听需要加密的流量;
所述过滤模块,其用于终止不符合预设条件的TCP连接,所述过滤模块与所述VPN模块连接,并通过VPN隧道接口与操作系统内核的网络子系统连接;
所述APP模块,其与所述网络子系统连接,所述APP模块调用所述VPN模块与VPN服务端以建立VPN隧道,所述APP模块接收到所述过滤模块从所述VPN隧道接口发回的报文,则重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记而使得所述VPN服务端与APP服务端建立连接;
所述过滤模块还用于:
提取每个报文的五元组,并查找所述过滤模块的会话管理表以确定是否有该报文归属的已知会话信息;
若查找到所述已知会话信息,则直接将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未查找到所述已知会话信息,则判断所述报文的TCP协议头的SYN标记是否置位;
若已置位,则在所述会话管理表增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未置位,则交换所述报文的源端口和目的端口的IP地址和交换所述报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值,并将所述报文从VPN隧道接口发回至所述APP模块。
2.根据权利要求1所述的网络切换装置,其特征在于,所述APP模块还用于:
当所述APP模块重新发起TCP会话以使得所述VPN服务端与所述APP服务端建立连接时,将所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端。
3.一种网络切换方法,其特征在于,所述网络切换方法应用于权利要求1~2任一项所述的网络切换装置,所述网络切换方法包括:
判断所述VPN服务端与所述APP服务端是否建立连接;
若所述VPN服务端与所述APP服务端建立连接,则所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至所述APP服务端;
若所述VPN服务端与所述APP服务端未建立连接,则所述APP模块的流量直接由所述网络子系统发送至所述APP服务端。
4.根据权利要求3所述的网络切换方法,其特征在于,所述网络切换方法还包括:
若所述过滤模块检测到表示所述APP模块的流量的报文的TCP协议头具有置位SYN标记,则所述过滤模块在其配置的会话管理表增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端。
5.根据权利要求4所述的网络切换方法,其特征在于,所述网络切换方法还包括:
所述过滤模块提取每个报文的五元组,并查找所述会话管理表以确定是否有该报文归属的已知会话信息;
若查找到所述已知会话信息,则直接将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未查找到所述已知会话信息,则判断所述报文的TCP协议头的SYN标记是否置位;
若已置位,则在所述会话管理表增加与所述SYN标记对应的预设会话信息,并将所述报文传输至所述VPN模块进行加密后经所述VPN服务端发送至所述APP服务端;
若未置位,则交换所述报文的源端口和目的端口的IP地址和交换所述报文的TCP的源端口和目的端口的端口号,并清除所有标记,同时置位关闭TCP连接的RST标志位和ACK标志位,重新计算序列号和校验值,并将所述报文从VPN隧道接口发回至所述APP模块。
6.根据权利要求5所述的网络切换方法,其特征在于,所述网络切换方法还包括:
当所述APP模块接收到所述过滤模块从VPN隧道接口发回的所述报文,则重新发起TCP会话,并基于重新发起的TCP会话因具有置位SYN标记以使得所述VPN模块与所述APP服务端建立连接,并将所述APP模块的流量通过所述VPN模块进行加密后由所述网络子系统经所述VPN隧道发送至所述VPN服务端,进而传输至APP服务端。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求3至6任一项所述的网络切换方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求3至6任一项所述的网络切换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310356035.8A CN116074368B (zh) | 2023-04-06 | 2023-04-06 | 网络切换装置、方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310356035.8A CN116074368B (zh) | 2023-04-06 | 2023-04-06 | 网络切换装置、方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116074368A CN116074368A (zh) | 2023-05-05 |
CN116074368B true CN116074368B (zh) | 2023-06-09 |
Family
ID=86175334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310356035.8A Active CN116074368B (zh) | 2023-04-06 | 2023-04-06 | 网络切换装置、方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116074368B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1406026A (zh) * | 2001-09-16 | 2003-03-26 | 华为技术有限公司 | 一种混合地址解决方案及其混合地址路由器 |
CN101087296A (zh) * | 2006-06-08 | 2007-12-12 | 上海亿人通信终端有限公司 | 利用网络处理器实现IPv4/IPv6网络协议转换的方法 |
CN110071872A (zh) * | 2019-04-03 | 2019-07-30 | 杭州迪普科技股份有限公司 | 业务报文转发方法、装置、电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452896A (zh) * | 2016-11-01 | 2017-02-22 | 赛尔网络有限公司 | 一种实现虚拟专网平台的方法及系统 |
US11677585B2 (en) * | 2021-08-13 | 2023-06-13 | Citrix Systems, Inc. | Transparent TCP connection tunneling with IP packet filtering |
CN114095415B (zh) * | 2021-11-26 | 2024-05-07 | 山石网科通信技术股份有限公司 | 路由确定方法、装置、网关设备和存储介质 |
-
2023
- 2023-04-06 CN CN202310356035.8A patent/CN116074368B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1406026A (zh) * | 2001-09-16 | 2003-03-26 | 华为技术有限公司 | 一种混合地址解决方案及其混合地址路由器 |
CN101087296A (zh) * | 2006-06-08 | 2007-12-12 | 上海亿人通信终端有限公司 | 利用网络处理器实现IPv4/IPv6网络协议转换的方法 |
CN110071872A (zh) * | 2019-04-03 | 2019-07-30 | 杭州迪普科技股份有限公司 | 业务报文转发方法、装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116074368A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7472411B2 (en) | Method for stateful firewall inspection of ICE messages | |
CA2545496C (en) | Virtual private network with pseudo server | |
Guha et al. | NAT Behavioral requirements for TCP | |
US8559449B2 (en) | Systems and methods for providing a VPN solution | |
US10506082B2 (en) | High availability (HA) internet protocol security (IPSEC) virtual private network (VPN) client | |
US6915436B1 (en) | System and method to verify availability of a back-up secure tunnel | |
EP3846406A1 (en) | Dynamic security actions for network tunnels against spoofing | |
KR101454502B1 (ko) | 종단 대 종단 미디어 경로를 식별하는 방법 및 시스템 | |
US20100313023A1 (en) | Method, apparatus and system for internet key exchange negotiation | |
JP2003526270A (ja) | ローカルipアドレスと変換不可能なポートアドレスとを用いたローカルエリアネットワークのためのネットワークアドレス変換ゲートウェイ | |
JPWO2006043463A1 (ja) | Vpnゲートウェイ装置およびホスティングシステム | |
WO2015070626A1 (zh) | 网络协同防御方法、装置和系统 | |
CN109600277B (zh) | 基于NAT设备的IPSec隧道保活方法和装置 | |
CN116074368B (zh) | 网络切换装置、方法、电子设备及存储介质 | |
CN102045317B (zh) | 实现多方通信的方法、装置及系统 | |
CN114697326B (zh) | 一种边缘计算场景下多边通信的方法 | |
CN113067910A (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
CN110351308B (zh) | 一种虚拟专用网络通信方法和虚拟专用网络设备 | |
Cisco | Commands: debug clns igrp packets through debug dmsp doc-to-fax | |
CN107277035B (zh) | 一种在tcp连接阶段传递客户端信息的方法 | |
KR101005870B1 (ko) | 미인증 장비의 티시피 세션 차단 방법 | |
CN104427008A (zh) | 针对tcp的nat穿越方法、系统、第三方服务器x、以及客户端 | |
CN108810189A (zh) | 一种基于nat环境下的设备的新型通信方法 | |
KR101896551B1 (ko) | 분리망 연계 시스템 및 그 제어방법 | |
Goodloe et al. | L3A: A protocol for layer three accounting |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Network switching device, method, electronic device, and storage medium Effective date of registration: 20231226 Granted publication date: 20230609 Pledgee: Nanjing Branch of Jiangsu Bank Co.,Ltd. Pledgor: Nanjing yiketeng Information Technology Co.,Ltd. Registration number: Y2023980072675 |