CN113973028A - 一种vpn通信方法、虚拟网卡、节点设备及存储介质 - Google Patents
一种vpn通信方法、虚拟网卡、节点设备及存储介质 Download PDFInfo
- Publication number
- CN113973028A CN113973028A CN202111249496.2A CN202111249496A CN113973028A CN 113973028 A CN113973028 A CN 113973028A CN 202111249496 A CN202111249496 A CN 202111249496A CN 113973028 A CN113973028 A CN 113973028A
- Authority
- CN
- China
- Prior art keywords
- subnet
- node
- node information
- address
- vpn
- 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.)
- Withdrawn
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/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种VPN通信方法及相关装置,方法应用于虚拟网卡,虚拟网卡设置于节点设备,包括:当接收到子网ID时,为子网ID创建子网接口,并为子网接口分配子网IP网段;子网ID由虚拟网卡所属的本地节点设备生成或由其它节点设备发送;当接收到与子网ID对应的节点信息时,将节点信息记录至子网接口,并利用子网IP网段为节点信息分配子网IP地址;节点信息包括本地节点设备的本地节点信息和其它节点设备的其它节点信息;利用子网ID、节点信息及子网IP地址,建立本地节点设备与其它节点设备之间的VPN通信。本发明中的节点设备之间可自行交换VPN网络创建信息并进行VPN通信,可避免网络控制器对VPN的限制和感知问题。
Description
技术领域
本发明涉及通信领域,特别涉及一种VPN通信方法、虚拟网卡、节点设备及计算机可读存储介质。
背景技术
VPN(Virtual Private Network,虚拟专有网络)是一种可提供加密通信的远程访问技术,可有效保证用户通信的安全,在企业等有保密需求的领域有较多应用。相关技术中,当各用户的节点设备之间存在VPN通信需求时,需要向网络控制器请求建立相应的VPN网络而这容易导致两方面的问题:第一,网络控制器仅能构建有限数量的VPN网络,同时构建过程复杂,当节点设备之间的VPN通信需求较多时,由网络控制器的参与所带来的限制将降低节点设备构建VPN子网的灵活度;第二,网络控制器不仅会记录VPN网络中各节点设备之间的关系,同时将会感知各节点设备之间的VPN通信,而这容易导致用户的VPN通信隐私泄露,降低VPN通信的安全性。
因此,如何避免网络控制器对节点设备之间构建VPN网络的限制问题及对VPN通信的感知问题,是本领域技术人员所要面对的技术问题。
发明内容
本发明的目的是提供一种VPN通信方法、虚拟网卡、节点设备及计算机可读存储介质,其中节点设备之间可自行交换VPN网络创建信息及自动执行创建动作,并可自主进行VPN通信,无需网络控制器参与及感知,可有效避免网络控制器对节点设备之间构建VPN网络的限制问题及对VPN通信的感知问题。
为解决上述技术问题,本发明提供一种VPN通信方法,应用于虚拟网卡,所述虚拟网卡设置于节点设备,所述方法包括:
当接收到子网ID时,为所述子网ID创建子网接口,并为所述子网接口分配子网IP网段;所述子网ID由所述虚拟网卡所属的本地节点设备生成或由其它节点设备发送;
当接收到与所述子网ID对应的节点信息时,将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址;所述节点信息包括所述本地节点设备的本地节点信息和所述其它节点设备的其它节点信息;
利用所述子网ID、所述节点信息及所述子网IP地址,建立所述本地节点设备与所述其它节点设备之间的VPN通信。
可选地,所述节点信息包括用户ID及节点ID,所述将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址,包括:
将所述用户ID及所述节点ID的对应关系记录至所述子网接口,并利用所述子网IP网段为所述用户ID及所述节点ID分配所述子网IP地址。
可选地,所述建立所述本地节点设备与所述其它节点设备之间的VPN通信,包括:
将所述本地节点设备的子网IP地址发送至所述本地节点设备的应用程序;
当接收到所述应用程序发送的IP地址请求时,根据所述IP地址请求中包含的子网ID及其它节点信息,向所述应用程序发送对应的其它节点设备的子网IP地址,以使所述应用程序利用所述本地节点设备及所述IP地址请求对应的其它节点设备的子网IP地址构造IP数据包;
当接收到所述IP数据包时,根据所述IP数据包中的源IP地址及目标IP地址的IP网段确定对应的子网接口,并在所述子网接口中确定对应的子网ID,以及所述源IP地址和目标IP地址对应的源节点信息和目标节点信息;
根据所述源节点信息和所述目标节点信息查找对应的外部IP地址,并利用所述IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装所述IP数据包,得到VPN数据包;
将所述VPN数据包发送至所述IP数据包对应的其它节点设备。
可选地,所述建立所述本地节点设备与所述其它节点设备之间的VPN通信,包括:
当接收到所述VPN数据包时,判断是否设置有与所述VPN数据包中的子网ID对应的目标子网接口,以及所述目标子网接口中是否记录有所述VPN数据包中的源节点信息和目标节点信息;
若设置有所述目标子网接口且所述目标子网接口中记录有所述源节点信息和所述目标节点信息,则在所述目标子网接口中查找所述源节点信息和所述目标节点信息对应的目标子网IP地址;利用所述目标子网IP地址替换所述IP数据包中对应的源IP地址及目标IP地址,并将完成替换的IP数据包发送至所述应用程序;
若未设置有所述目标子网接口,或是所述目标子网接口中未记录有所述源节点信息或所述目标节点信息,则移除所述VPN数据包。
可选地,所述利用所述IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装所述IP数据包,包括:
利用所述外部IP地址生成IP头部,并利用所述子网ID、所述源节点信息和所述目标节点信息生成VPN帧头部;
利用所述IP头部及所述VPN帧头部对所述IP数据包进行封装,得到所述VPN数据包。
可选地,所述根据所述源节点信息和所述目标节点信息查找对应的外部IP地址,包括:
根据所述源节点信息及所述目标节点信息向网络控制器查询所述外部IP地址。
可选地,当所述节点信息包括用户ID及节点ID时,还包括:
当所述本地节点设备上线时,将所述本地节点信息发送至所述网络控制器,以使所述网络控制器查找所述用户ID对应的外部IP网段,并利用所述外部IP网段为所述节点ID分配所述外部IP地址。
本发明还提供一种虚拟网卡,包括:
子网接口创建模块,用于当接收到子网ID时,为所述子网ID创建子网接口,并为所述子网接口分配子网IP网段;所述子网ID由所述虚拟网卡所属的本地节点设备生成或由其它节点设备发送;
子网成员配置模块,用于当接收到与所述子网ID对应的节点信息时,将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址;所述节点信息包括所述本地节点设备的本地节点信息和所述其它节点设备的其它节点信息;
通信模块,用于利用所述子网ID、所述节点信息及所述子网IP地址,建立所述本地节点设备与所述其它节点设备之间的VPN通信。
本发明还提供一种节点设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的VPN通信方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的VPN通信方法。
本发明提供一种VPN通信方法,应用于虚拟网卡,所述虚拟网卡设置于节点设备,所述方法包括:当接收到子网ID时,为所述子网ID创建子网接口,并为所述子网接口分配子网IP网段;所述子网ID由所述虚拟网卡所属的本地节点设备生成或由其它节点设备发送;当接收到与所述子网ID对应的节点信息时,将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址;所述节点信息包括所述本地节点设备的本地节点信息和所述其它节点设备的其它节点信息;利用所述子网ID、所述节点信息及所述子网IP地址,建立所述本地节点设备与所述其它节点设备之间的VPN通信。
可见,在本发明中,本地节点设备若需与其他节点设备建立VPN通信,首先会统一可标识相互间VPN网络的子网ID,当本地节点设备的虚拟网卡接收到该子网ID时,将会在本地为该ID创建对应的子网接口及分配相应的子网IP网段。由于子网ID由本地节点设备生成,或是由其他节点设备发送,换而言之,当本地节点设备与其他节点设备之间存在VPN网络建立需求时,会自行交换VPN网络标识及进行后续的子网创建动作,无需网络控制器参与,可有效提升节点设备之间构建VPN网络的灵活性,同时能够避免网络控制器对节点设备间VPN网络的记录所导致的隐私泄露问题;进一步,当上述虚拟网卡接收到与子网ID对应的节点信息时,将会利用相应的子网IP网段为节点信息分配对应的子网IP地址,以便利用子网ID、节点信息及子网IP地址建立本地节点设备与其它节点设备之间的VPN通信,由于子网ID及子网IP地址的分配均由节点设备进行而非网络控制器,此外子网ID及子网IP地址又为VPN通信的重要信息,因此能够避免网络控制器对节点设备间VPN通信的感知。简单来说,本发明可有效避免网络控制器对节点设备之间构建VPN网络的限制问题及对VPN通信的感知问题,并进一步提升节点设备之间构建VPN网络的灵活性以及提升该网络的安全性及隐蔽性,实现节点设备对VPN网络的自治管理。本发明还提供一种虚拟网卡、节点设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种VPN通信方法的流程图;
图2为本发明实施例所提供的一种虚拟网卡的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
VPN(Virtual Private Network,虚拟专有网络)是一种可提供加密通信的远程访问技术,可有效保证用户通信的安全,在企业等有保密需求的领域有较多应用。相关技术中,当各用户的节点设备之间存在VPN通信需求时,需要向网络控制器请求建立相应的VPN网络,而这容易导致两方面的问题:第一,网络控制器仅能构建有限数量的VPN网络,当节点设备之间的VPN通信需求较多时,网络控制器对VPN网络数量的限制将降低节点设备构建VPN子网的灵活度;第二,网络控制器不仅会记录VPN网络中各节点设备之间的关系,同时将会感知各节点设备之间的VPN通信,而这容易导致用户的VPN通信隐私泄露,降低VPN通信的安全性。有鉴于此,本发明提供一种VPN通信方法,其中节点设备之间可自行交换VPN网络创建信息及自动执行创建动作,并可自主进行VPN通信,无需网络控制器参与及感知,可有效避免网络控制器对节点设备之间构建VPN网络的限制问题及对VPN通信的感知问题,进而提升节点设备之间构建VPN网络的灵活性以及提升该网络的安全性及隐蔽性,实现节点设备对VPN网络的自治管理。请参考图1,图1为本发明实施例所提供的一种VPN通信方法的流程图,该方法应用于虚拟网卡,虚拟网卡设置于节点设备,方法可以包括:
S101、当接收到子网ID时,为子网ID创建子网接口,并为子网接口分配子网IP网段;子网ID由虚拟网卡所属的本地节点设备生成或由其它节点设备发送。
在本发明实施例中,子网ID为标识本地节点设备与其他节点设备之间VPN网络的标识信息。子网ID与VPN网络一一对应,当节点设备之间存在VPN网络创建需求时,首先需要互相交换子网ID,并依照子网ID执行后续动作。进一步,节点设备之间通过子网接口进行VPN通信,每一子网接口均设置有不同的子网IP网段,而该网段用于为同一VPN网络中的各节点设备分配子网IP地址。简单来说,在本发明实施例中,当节点设备之间存在VPN网络创建需求时,便会各自依照子网ID设置子网接口及子网IP网段,并为该网络中的各节点设备分配子网IP地址,以将这些节点设备添加至一个类虚拟局域网(即子网)中(虚拟局域网,VLAN,Virtual Local Area Network),进而各节点设备之间的VPN通信便可抽象为在这一子网中的通信。
需要说明的是,本发明实施例并不限定子网ID的具体形式,可根据实际应用需求进行设置,只要子网ID能够唯一标识一个VPN网络即可。在本发明实施例中,子网ID可以由本地节点设备或其他节点设备生成。为方便用户控制节点设备进行子网创建,在虚拟网卡上可设置相关的API接口(Application Programming Interface,应用程序接口),例如设置专用的子网创建接口,当用户调用该接口时,本地节点设备生成子网ID,并将子网ID发送至虚拟网卡,以使虚拟网卡进行子网接口的相关配置。本发明实施例并不限定API接口的具体形式,可根据实际应用需求进行设定。进一步,可以理解的是,当子网ID由本地节点设备生成时,设备需要将子网ID发送至加入同一VPN网络的其他节点设备;同样的,当子网ID由其他节点设备生成,且本地节点设备也需加入子网ID对应的VPN网络时,则其他节点设备也需要将子网ID发送至本地节点设备。本发明实施例并不限定节点设备之间交换子网ID的具体方式,例如可通过短信、邮件等方式进行交换。子网ID的交换可节点设备中需要创建该VPN网络的应用程序(即业务层)完成。
进一步,本发明实施例也不限定子网接口的具体形式,可参考虚拟网卡、虚拟局域网的相关技术,关于子网接口的其他功能请参考后文的描述。本发明实施例也不限定子网IP网段的具体形式,可参考IP网段的相关技术。
进一步,本发明实施例也不限定每一节点设备可加入VPN网络的最大数量,可根据实际应用需求进行设定。本发明实施例也不限定每一VPN网络中节点设备的最大数量,同样可根据实际应用需求进行设定。
S102、当接收到与子网ID对应的节点信息时,将节点信息记录至子网接口,并利用子网IP网段为节点信息分配子网IP地址;节点信息包括本地节点设备的本地节点信息和其它节点设备的其它节点信息。
在本发明实施例中,子网接口对接收到的与子网ID相对应的节点信息进行记录,并利用子网IP地址为其分配子网IP地址,其中节点信息用于唯一标识一个节点设备。简单来说,子网接口中记录有如下对应关系:子网ID与各节点信息的对应关系,以及各节点信息与子网IP地址的对应关系。在本发明实施例中,正是由于节点信息对节点设备具有标识性,因此可利用节点信息生成VPN数据包,并利用节点信息标识VPN通信中的源设备及目标设备。可以理解的是,加入同一VPN网络的各节点设备若需要进行VPN通信,则也需要互相交换节点信息。关于如何交换节点信息的描述与上述交换子网ID的描述类似,,例如节点A需要节点B加入VPN网络,此时节点A首先需要将这一VPN网络的子网ID发送至节点B,以使节点B利用子网ID创建VPN网络;在节点B完成网络创建后,便将子网ID及其节点信息返回至节点A,以便节点A感知到节点B已同意加入VPN网络。同样的,节点信息的交换也可由节点设备中需要创建该VPN网络的应用程序(即业务层)完成,在进行信息交换过程中,可将子网ID或是子网ID与节点信息的组合封装至请求中进行发送。同样的,也可以在虚拟网卡上设置相应的API接口,例如节点添加接口,当业务层接收到其他节点设备所发送的与子网ID对应的节点信息,便可将这一子网ID和节点信息传入节点添加接口,以便虚拟网卡执行相应的节点信息记录步骤。本发明实施例并不限定节点信息的具体内容,例如可以为节点ID;当然,若用户具有多个节点设备,需要对同一用户的所有节点设备进行统一管理及标识时,节点信息中也可以包含用户ID。
进一步,子网IP网段中包含多个空闲的子网IP地址,因此可根据子网IP网段中各子网IP地址的空闲情况,为节点设备分配子网IP地址。需要说明的是,当节点信息中包含用户ID及节点ID时,本发明实施例并不限定子网接口是否需要为用户ID分配子网IP地址,当能够快速查询到节点设备对应的子网IP地址时,可不需要为用户ID分配子网IP地址;当需要通过路由方式提升节点设备子网IP地址的查询效率时,也可以为用户ID分配子网IP地址。在本发明实施例中,为提升查询效率,可同时为用户ID及节点ID分配子网IP地址。
在一种可能的情况中,节点信息包括用户ID及节点ID,将节点信息记录至子网接口,并利用子网IP网段为节点信息分配子网IP地址,可以包括:
步骤11:将用户ID及节点ID的对应关系记录至子网接口,并利用子网IP网段为用户ID及节点ID分配子网IP地址。
S103、利用子网ID、节点信息及子网IP地址,建立本地节点设备与其它节点设备之间的VPN通信。
可以理解的是,VPN通信主要使用VPN数据包进行数据交互。由于节点ID、节点信息及子网IP地址能够有效标识VPN网络,以及进行VPN通信的源设备及目标设备,因此可利用子网ID、节点信息及子网IP地址构造VPN数据包,进而便可利用VPN数据包实现同一VPN网络中各节点设备之间的VPN通信。
需要说明的是,本发明实施例并不限定VPN通信的具体过程,可参考VPN网络的相关技术,也可参考本发明后文中的描述;本发明实施例也不限定VPN数据包的具体结构,同样可参考VPN的相关技术,或是参考本发明后文中的描述。
基于上述实施例,在本发明中,本地节点设备若需与其他节点设备建立VPN通信,首先会统一可标识相互间VPN网络的子网ID,当本地节点设备的虚拟网卡接收到该子网ID时,将会在本地为该ID创建对应的子网接口及分配相应的子网IP网段。由于子网ID由本地节点设备生成,或是由其他节点设备发送,换而言之,当本地节点设备与其他节点设备之间存在VPN网络建立需求时,会自行交换VPN网络标识及进行后续的子网创建动作,无需网络控制器参与,可有效提升节点设备之间构建VPN网络的灵活性,同时能够有效避免网络控制器对节点设备间VPN网络的记录所导致的隐私泄露问题;进一步,当上述虚拟网卡接收到与子网ID对应的节点信息时,将会利用相应的子网IP网段为节点信息分配对应的子网IP地址,以便利用子网ID、节点信息及子网IP地址建立本地节点设备与其它节点设备之间的VPN通信,由于子网ID及子网IP地址的分配均由节点设备进行而非网络控制器,此外子网ID及子网IP地址又为VPN通信的重要信息,因此能够避免网络控制器对节点设备间VPN通信的感知。简单来说,本发明可有效避免网络控制器对节点设备之间构建VPN网络的限制问题及对VPN通信的感知问题,并进一步提升节点设备之间构建VPN网络的灵活性以及提升该网络的安全性及隐蔽性,实现节点设备对VPN网络的自治管理。
基于上述实施例,下面对本发明实施例所提供的VPN数据包构造方式及通信方式进行介绍。在一种可能的情况中,建立本地节点设备与其它节点设备之间的VPN通信,可以包括:
S201、将本地节点设备的子网IP地址发送至本地节点设备的应用程序。
为避免应用程序反复请求其所属本地节点设备在某一VPN网络中的子网IP地址,可在生成子网接口后,便将本地节点设备的子网IP地址发送至应用程序进行存储。
S202、当接收到应用程序发送的IP地址请求时,根据IP地址请求中包含的子网ID及其它节点信息,向应用程序发送对应的其它节点设备的子网IP地址,以使应用程序利用本地节点设备及IP地址请求对应的其它节点设备的子网IP地址构造IP数据包。
为了构造IP数据包,应用程序需要根据应用层的需求向虚拟网卡请求相应的子网IP地址。具体的,应用程序会将子网ID以及所需通信的其他节点的节点信息封装至IP地址请求中,并发送至虚拟网卡,而虚拟网卡则会根据请求中的子网ID确定对应的子网接口,进而根据其他节点信息在子网接口中查找对应的子网IP地址,最后将该子网IP地址发送至应用程序。为了便于应用程序查询,可在虚拟网卡中设置相关的API接口,这样应用程序便可通过调用API接口的方式,向虚拟网卡发送上述IP地址请求。
进一步,在获取到所需的子网IP地址后,应用程序便会将本地节点设备的子网IP地址设置为源IP地址,将作为通信目标的其他节点设备的子网IP地址设置为目标IP地址,进而利用源IP地址及目标IP地址构造IP数据包。需要说明的是,本发明实施例并不限定IP数据包的具体构造步骤,可参考IP数据包的相关技术。
S203、当接收到IP数据包时,根据IP数据包中的源IP地址及目标IP地址的IP网段确定对应的子网接口,并在子网接口中确定对应的子网ID,以及源IP地址和目标IP地址对应的源节点信息和目标节点信息。
根据上述描述,源IP地址为本地节点设备的子网IP地址,目标IP地址则为其他节点设备的子网IP地址,由于同一VPN网络中的子网IP地址具有相同的子网IP网段,因此可根据源IP地址及目标IP地址的IP网段确定对应的子网接口;进一步,由于子网接口中记录有子网IP地址与节点信息的对应关系,因此可根据源IP地址及目标IP地址,在子网接口中查找对应的源节点信息及目标节点信息。
S204、根据源节点信息和目标节点信息查找对应的外部IP地址,并利用IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装IP数据包,得到VPN数据包。
可以理解的是,为了在外部网络中传输VPN数据包,需要获取源节点和目标节点在外部网络中的外部IP地址。在得到外部IP地址后,便可利用外部IP地址、子网ID、源节点信息及目标节点信息封装IP数据包,得到VPN数据包。考虑到VPN数据包也属于一种IP数据包,需要包含IP头部,因此可利用外部IP地址生成IP头部;此外,在VPN数据包中,通常具有包含VPN通信关键信息的VPN帧头部,在本发明实施例中,由于子网ID、源节点信息及目标节点信息用于标识VPN网络以及在该网络中进行VPN通信的源设备及目标设备,因此可利用子网ID、源节点信息及目标节点信息生成VPN帧头部。在得到IP头部及VPN帧头部后,便可对IP数据包进行封装得到VPN数据包。
在一种可能的情况中,利用IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装IP数据包,可以包括:
步骤31:利用外部IP地址生成IP头部,并利用子网ID、源节点信息和目标节点信息生成VPN帧头部;
步骤32:利用IP头部及VPN帧头部对IP数据包进行封装,得到VPN数据包。
可以理解的是,IP头部以及VPN帧头部中通常还包含有其它信息,本发明在此不作限定,可参考IP数据包及VPN帧的相关技术,并根据实际应用需求进行设定。
进一步,在OSI(Open System Interconnection,开放系统互联)七层结构中,IP地址不仅用于标识网络层中正在进行通信的源设备及目标设备,还用于支撑上层(如传输层、会话层、表示层及应用层)的正常通信。但在本发明实施例中,由于VPN数据包中的子网ID、源节点信息及目标节点信息已经能够标识一个特定的VPN网络及该网络中进行通信的源设备及目标设备,因此各节点设备在子网接口中设置的子网IP地址可仅用于支撑上层正常通信。换而言之,同一VPN网络中的各节点设备并不需要统一子网IP网段,各节点设备仅需设置在本地有效的子网IP网段即可,即同一VPN网络中各节点子网接口所设置的子网IP网段可以不相同。而在通信时,具体的,节点设备A若需通过某一特定VPN网络向节点设备B发送IP数据包,则会查询节点设备A和B在节点设备A本地所设置的子网IP地址A,并利用子网IP地址A封装IP数据包;而节点设备B在接收到该IP数据包,且确定IP数据包属于该特定VPN网络以及节点设备A已加入该特定VPN网络后,便会查询节点设备A和B在节点设备B本地所设置的子网IP地址B,进而利用子网IP地址B替换IP数据包中的子网IP地址A,从而维持节点设备B上层的正常通信。这样设置的好处在于,同一VPN网络中的节点设备并不需要协商及交换子网IP网段信息,能够有效简化节点之间构造VPN网络的复杂度,进而提升VPN网络的构造效率。
进一步,为了通过外网传输VPN数据包,需要获取源节点及目标节点在外网中的外部IP地址。该外部IP地址既可保存在本地,并通过读取本地存储的方式进行获取,当然可在网络控制器中保存各节点设备的外部IP地址。进一步,也可通过网络控制器为各节点分配外部IP地址,具体的,当各节点设备上线时,便可向网络控制器发送相应的节点信息,以便网络控制器记录节点信息,并根据该信息为节点设备分配外部IP地址;而各节点设备在存在外部网络通信需求时,便可根据节点信息向网络控制器获取外部IP地址。
在一种可能的情况中,根据源节点信息和目标节点信息查找对应的外部IP地址,可以包括:
步骤41:根据源节点信息及目标节点信息向网络控制器查询外部IP地址。
进一步,本发明实施例并不限定网络控制器如何分配外部IP地址,例如可设置IP地址池,进而根据节点设备的上线情况,在该IP地址池中为其分配空闲的外部IP地址;当然,假若每一用户拥有多个节点设备,同时需要确保同一用户的节点设备能够相互通信,此时网络控制器可为每一用户分配一个外部IP网段,进而利用该外部IP网段,为相应的节点设备分配外部IP网段。
在一种可能的情况中,当节点信息包括用户ID及节点ID时,还可以包括:
步骤51:当本地节点设备上线时,将本地节点信息发送至网络控制器,以使网络控制器查找用户ID对应的外部IP网段,并利用外部IP网段为节点ID分配外部IP地址。
S205、将VPN数据包发送至IP数据包对应的其它节点设备。
进一步,下面将对本地节点设备接收及解析VPN数据包的具体过程进行介绍。在一种可能的情况中,建立本地节点设备与其它节点设备之间的VPN通信,可以包括:
步骤61:当接收到VPN数据包时,判断是否设置有与VPN数据包中的子网ID对应的目标子网接口,以及目标子网接口中是否记录有VPN数据包中的源节点信息和目标节点信息;
步骤62:若设置有目标子网接口且目标子网接口中记录有源节点信息和目标节点信息,则在目标子网接口中查找源节点信息和目标节点信息对应的目标子网IP地址;利用目标子网IP地址替换IP数据包中对应的源IP地址及目标IP地址,并将完成替换的IP数据包发送至应用程序;
可以理解的是,利用源节点信息对应的目标子网IP地址替换源IP地址,利用目标节点信息对应的目标子网IP地址替换目标IP地址。当然,IP数据包中还包含有其他与源IP地址及目标IP地址相关的特征信息,当源IP地址及目标IP地址发生变化时,也需要对这些特征信息进行修改,具体的修改内容可参考IP数据包的相关技术。
步骤63:若未设置有目标子网接口,或是目标子网接口中未记录有源节点信息或目标节点信息,则移除VPN数据包。
可以理解的是,当虚拟网卡中未设置有目标子网接口时,则说明VPN网络并不存在,或是本地节点设备尚未加入该VPN网络,不能进行VPN通信;或者,当目标子网接口中未设置有源节点信息或目标节点信息时,则说明源节点信息或目标节点信息未加入该VPN网络,不能进行VPN通信。当上述不能进行VPN通信的条件成立时,说明VPN数据包存在异常,应当被移除。
基于上述实施例,本发明中的本地节点设备在向作为目标的其他节点设备进行VPN通信时,会利用外网IP地址、子网ID、源节点信息、目标节点信息封装IP数据包,生成VPN数据包,确保其他节点设备可通过VPN数据包中的子网ID、源节点信息及目标节点信息识别VPN网络,以及在该VPN网络中进行通信的源设备及目标设备,能够确保VPN通信可在节点设备间单独完成,避免网络控制器对VPN通信的感知,进而可提升VPN网络的安全性,实现节点设备对VPN网络的自治管理。
下面对本发明实施例提供的虚拟网卡、节点设备及计算机可读存储介质进行介绍,下文描述的虚拟网卡、节点设备及计算机可读存储介质与上文描述的VPN通信方法可相互对应参照。
请参考图2,图2为本发明实施例所提供的一种虚拟网卡的结构框图,虚拟网卡可以包括:
子网接口创建模块201,用于当接收到子网ID时,为子网ID创建子网接口,并为子网接口分配子网IP网段;子网ID由虚拟网卡所属的本地节点设备生成或由其它节点设备发送;
子网成员配置模块202,用于当接收到与子网ID对应的节点信息时,将节点信息记录至子网接口,并利用子网IP网段为节点信息分配子网IP地址;节点信息包括本地节点设备的本地节点信息和其它节点设备的其它节点信息;
通信模块203,用于利用子网ID、节点信息及子网IP地址,建立本地节点设备与其它节点设备之间的VPN通信。
可选地,子网成员配置模块202,可以包括:
子网成员配置子模块,用于将用户ID及节点ID的对应关系记录至子网接口,并利用子网IP网段为用户ID及节点ID分配子网IP地址。
可选地,通信模块203,可以包括:
子网地址发送子模块,用于将本地节点设备的子网IP地址发送至本地节点设备的应用程序;
子网地址查询子模块,用于当接收到应用程序发送的IP地址请求时,根据IP地址请求中包含的子网ID及其它节点信息,向应用程序发送对应的其它节点设备的子网IP地址,以使应用程序利用本地节点设备及IP地址请求对应的其它节点设备的子网IP地址构造IP数据包;
子网信息查询子模块,用于当接收到IP数据包时,根据IP数据包中的源IP地址及目标IP地址的IP网段确定对应的子网接口,并在子网接口中确定对应的子网ID,以及源IP地址和目标IP地址对应的源节点信息和目标节点信息;
VPN数据包构造子模块,用于根据源节点信息和目标节点信息查找对应的外部IP地址,并利用IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装IP数据包,得到VPN数据包;
VPN数据包发送子模块,用于将VPN数据包发送至IP数据包对应的其它节点设备。
可选地,通信模块203,可以包括:
判断子模块,用于当接收到VPN数据包时,判断是否设置有与VPN数据包中的子网ID对应的目标子网接口,以及目标子网接口中是否记录有VPN数据包中的源节点信息和目标节点信息;
替换子模块,用于若设置有目标子网接口且目标子网接口中记录有源节点信息和目标节点信息,则在目标子网接口中查找源节点信息和目标节点信息对应的目标子网IP地址;利用目标子网IP地址替换IP数据包中对应的源IP地址及目标IP地址,并将完成替换的IP数据包发送至应用程序;
移除子模块,用于若未设置有目标子网接口,或是目标子网接口中未记录有源节点信息或目标节点信息,则移除VPN数据包。
可选地,VPN数据包构造子模块,包括:
头部构造单元,用于利用外部IP地址生成IP头部,并利用子网ID、源节点信息和目标节点信息生成VPN帧头部;
封装单元,用于利用IP头部及VPN帧头部对IP数据包进行封装,得到VPN数据包。
可选地,VPN数据包构造子模块,包括:
外部地址查询单元,用于根据源节点信息及目标节点信息向网络控制器查询外部IP地址。
可选地,虚拟网卡还可以包括:
登记模块,用于当本地节点设备上线时,将本地节点信息发送至网络控制器,以使网络控制器查找用户ID对应的外部IP网段,并利用外部IP网段为节点ID分配外部IP地址。
本发明实施例还提供一种节点设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的VPN通信方法的步骤。
由于节点设备部分的实施例与VPN通信方法部分的实施例相互对应,因此节点设备部分的实施例请参见VPN通信方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的VPN通信方法的步骤。
由于计算机可读存储介质部分的实施例与VPN通信方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见VPN通信方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种VPN通信方法、虚拟网卡、节点设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种VPN通信方法,其特征在于,应用于虚拟网卡,所述虚拟网卡设置于节点设备,所述方法包括:
当接收到子网ID时,为所述子网ID创建子网接口,并为所述子网接口分配子网IP网段;所述子网ID由所述虚拟网卡所属的本地节点设备生成或由其它节点设备发送;
当接收到与所述子网ID对应的节点信息时,将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址;所述节点信息包括所述本地节点设备的本地节点信息和所述其它节点设备的其它节点信息;
利用所述子网ID、所述节点信息及所述子网IP地址,建立所述本地节点设备与所述其它节点设备之间的VPN通信。
2.根据权利要求1所述的VPN通信方法,其特征在于,所述节点信息包括用户ID及节点ID,所述将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址,包括:
将所述用户ID及所述节点ID的对应关系记录至所述子网接口,并利用所述子网IP网段为所述用户ID及所述节点ID分配所述子网IP地址。
3.根据权利要求1或2所述的VPN通信方法,其特征在于,所述建立所述本地节点设备与所述其它节点设备之间的VPN通信,包括:
将所述本地节点设备的子网IP地址发送至所述本地节点设备的应用程序;
当接收到所述应用程序发送的IP地址请求时,根据所述IP地址请求中包含的子网ID及其它节点信息,向所述应用程序发送对应的其它节点设备的子网IP地址,以使所述应用程序利用所述本地节点设备及所述IP地址请求对应的其它节点设备的子网IP地址构造IP数据包;
当接收到所述IP数据包时,根据所述IP数据包中的源IP地址及目标IP地址的IP网段确定对应的子网接口,并在所述子网接口中确定对应的子网ID,以及所述源IP地址和目标IP地址对应的源节点信息和目标节点信息;
根据所述源节点信息和所述目标节点信息查找对应的外部IP地址,并利用所述IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装所述IP数据包,得到VPN数据包;
将所述VPN数据包发送至所述IP数据包对应的其它节点设备。
4.根据权利要求3所述的VPN通信方法,其特征在于,所述建立所述本地节点设备与所述其它节点设备之间的VPN通信,包括:
当接收到所述VPN数据包时,判断是否设置有与所述VPN数据包中的子网ID对应的目标子网接口,以及所述目标子网接口中是否记录有所述VPN数据包中的源节点信息和目标节点信息;
若设置有所述目标子网接口且所述目标子网接口中记录有所述源节点信息和所述目标节点信息,则在所述目标子网接口中查找所述源节点信息和所述目标节点信息对应的目标子网IP地址;利用所述目标子网IP地址替换所述IP数据包中对应的源IP地址及目标IP地址,并将完成替换的IP数据包发送至所述应用程序;
若未设置有所述目标子网接口,或是所述目标子网接口中未记录有所述源节点信息或所述目标节点信息,则移除所述VPN数据包。
5.根据权利要求3所述的VPN通信方法,其特征在于,所述利用所述IP数据包对应的外部IP地址、子网ID、源节点信息和目标节点信息封装所述IP数据包,包括:
利用所述外部IP地址生成IP头部,并利用所述子网ID、所述源节点信息和所述目标节点信息生成VPN帧头部;
利用所述IP头部及所述VPN帧头部对所述IP数据包进行封装,得到所述VPN数据包。
6.根据权利要求3所述的VPN通信方法,其特征在于,所述根据所述源节点信息和所述目标节点信息查找对应的外部IP地址,包括:
根据所述源节点信息及所述目标节点信息向网络控制器查询所述外部IP地址。
7.根据权利要求6所述的VPN通信方法,其特征在于,当所述节点信息包括用户ID及节点ID时,还包括:
当所述本地节点设备上线时,将所述本地节点信息发送至所述网络控制器,以使所述网络控制器查找所述用户ID对应的外部IP网段,并利用所述外部IP网段为所述节点ID分配所述外部IP地址。
8.一种虚拟网卡,其特征在于,包括:
子网接口创建模块,用于当接收到子网ID时,为所述子网ID创建子网接口,并为所述子网接口分配子网IP网段;所述子网ID由所述虚拟网卡所属的本地节点设备生成或由其它节点设备发送;
子网成员配置模块,用于当接收到与所述子网ID对应的节点信息时,将所述节点信息记录至所述子网接口,并利用所述子网IP网段为所述节点信息分配子网IP地址;所述节点信息包括所述本地节点设备的本地节点信息和所述其它节点设备的其它节点信息;
通信模块,用于利用所述子网ID、所述节点信息及所述子网IP地址,建立所述本地节点设备与所述其它节点设备之间的VPN通信。
9.一种节点设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的VPN通信方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述的VPN通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111249496.2A CN113973028A (zh) | 2021-10-26 | 2021-10-26 | 一种vpn通信方法、虚拟网卡、节点设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111249496.2A CN113973028A (zh) | 2021-10-26 | 2021-10-26 | 一种vpn通信方法、虚拟网卡、节点设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113973028A true CN113973028A (zh) | 2022-01-25 |
Family
ID=79588460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111249496.2A Withdrawn CN113973028A (zh) | 2021-10-26 | 2021-10-26 | 一种vpn通信方法、虚拟网卡、节点设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113973028A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065125A (zh) * | 2010-11-18 | 2011-05-18 | 广州致远电子有限公司 | 一种嵌入式ssl vpn的实现方法 |
US20110206052A1 (en) * | 2010-02-25 | 2011-08-25 | Gemtek Technology Co., Ltd | Data transfer system enabling access to multiple subnets and method thereof |
CN103607430A (zh) * | 2013-10-30 | 2014-02-26 | 中兴通讯股份有限公司 | 一种网络处理的方法和系统及网络控制中心 |
CN104144096A (zh) * | 2014-08-25 | 2014-11-12 | 深圳市中兴移动通信有限公司 | 虚拟网络层构建方法、装置及系统 |
CN104579879A (zh) * | 2014-12-05 | 2015-04-29 | 上海斐讯数据通信技术有限公司 | 一种虚拟专用网络通信系统、连接方法及数据包传输方法 |
CN103442098B (zh) * | 2013-09-02 | 2016-06-08 | 三星电子(中国)研发中心 | 一种分配虚拟ip地址的方法、系统和服务器 |
CN106487695A (zh) * | 2015-08-25 | 2017-03-08 | 华为技术有限公司 | 一种数据传输方法、虚拟网络管理装置及数据传输系统 |
CN106789367A (zh) * | 2017-02-23 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种网络系统的构建方法及装置 |
CN109067718A (zh) * | 2018-07-23 | 2018-12-21 | 浙江吉利汽车研究院有限公司 | 车载多媒体主机与移动终端共享网络的方法、装置、系统 |
CN109120482A (zh) * | 2018-09-28 | 2019-01-01 | 北京小米移动软件有限公司 | 监控应用程序使用流量的方法及装置 |
CN111786989A (zh) * | 2020-06-29 | 2020-10-16 | 联想(北京)有限公司 | 通信处理方法、装置及电子设备 |
CN111786867A (zh) * | 2019-04-04 | 2020-10-16 | 厦门网宿有限公司 | 一种数据传输方法及服务器 |
CN111885075A (zh) * | 2020-07-30 | 2020-11-03 | 广州华多网络科技有限公司 | 容器通信方法、装置、网络设备及存储介质 |
CN112887444A (zh) * | 2021-01-19 | 2021-06-01 | 网宿科技股份有限公司 | 一种vpn网络的请求处理方法、客户端设备及系统 |
CN112929419A (zh) * | 2021-01-22 | 2021-06-08 | 苏州浪潮智能科技有限公司 | 一种数据包传输方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-10-26 CN CN202111249496.2A patent/CN113973028A/zh not_active Withdrawn
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110206052A1 (en) * | 2010-02-25 | 2011-08-25 | Gemtek Technology Co., Ltd | Data transfer system enabling access to multiple subnets and method thereof |
CN102065125A (zh) * | 2010-11-18 | 2011-05-18 | 广州致远电子有限公司 | 一种嵌入式ssl vpn的实现方法 |
CN103442098B (zh) * | 2013-09-02 | 2016-06-08 | 三星电子(中国)研发中心 | 一种分配虚拟ip地址的方法、系统和服务器 |
CN103607430A (zh) * | 2013-10-30 | 2014-02-26 | 中兴通讯股份有限公司 | 一种网络处理的方法和系统及网络控制中心 |
CN104144096A (zh) * | 2014-08-25 | 2014-11-12 | 深圳市中兴移动通信有限公司 | 虚拟网络层构建方法、装置及系统 |
CN104579879A (zh) * | 2014-12-05 | 2015-04-29 | 上海斐讯数据通信技术有限公司 | 一种虚拟专用网络通信系统、连接方法及数据包传输方法 |
CN106487695A (zh) * | 2015-08-25 | 2017-03-08 | 华为技术有限公司 | 一种数据传输方法、虚拟网络管理装置及数据传输系统 |
CN106789367A (zh) * | 2017-02-23 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种网络系统的构建方法及装置 |
CN109067718A (zh) * | 2018-07-23 | 2018-12-21 | 浙江吉利汽车研究院有限公司 | 车载多媒体主机与移动终端共享网络的方法、装置、系统 |
CN109120482A (zh) * | 2018-09-28 | 2019-01-01 | 北京小米移动软件有限公司 | 监控应用程序使用流量的方法及装置 |
CN111786867A (zh) * | 2019-04-04 | 2020-10-16 | 厦门网宿有限公司 | 一种数据传输方法及服务器 |
CN111786989A (zh) * | 2020-06-29 | 2020-10-16 | 联想(北京)有限公司 | 通信处理方法、装置及电子设备 |
CN111885075A (zh) * | 2020-07-30 | 2020-11-03 | 广州华多网络科技有限公司 | 容器通信方法、装置、网络设备及存储介质 |
CN112887444A (zh) * | 2021-01-19 | 2021-06-01 | 网宿科技股份有限公司 | 一种vpn网络的请求处理方法、客户端设备及系统 |
CN112929419A (zh) * | 2021-01-22 | 2021-06-08 | 苏州浪潮智能科技有限公司 | 一种数据包传输方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8767737B2 (en) | Data center network system and packet forwarding method thereof | |
US9838261B2 (en) | Method, apparatus, and system for providing network traversing service | |
EP4040739B1 (en) | Optical line terminal olt device virtualization method and related device | |
US8250184B2 (en) | System, network entities and computer programs for configuration management of a dynamic host configuration protocol framework | |
CN102404418B (zh) | 为用户终端分配ip地址的方法、装置和系统 | |
US8509239B2 (en) | Method, apparatus and system for processing packets | |
CN104468625B (zh) | 拨号隧道代理装置、利用拨号隧道穿越nat的方法 | |
JP7296993B2 (ja) | 通信方法及び通信装置 | |
CN106878199B (zh) | 一种接入信息的配置方法和装置 | |
EP3331247A1 (en) | Multi-screen control method and device | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN113810512A (zh) | 物联网终端接入系统、方法、装置及存储介质 | |
JP2016034143A (ja) | 認証情報を転送するための方法、中継装置、サーバ、およびシステム | |
WO2024067338A1 (zh) | 云组网系统、安全访问方法、设备及存储介质 | |
US7694015B2 (en) | Connection control system, connection control equipment and connection management equipment | |
US9413590B2 (en) | Method for management of a secured transfer session through an address translation device, corresponding server and computer program | |
EP3503484B1 (en) | Message transmission methods and devices | |
CN113973028A (zh) | 一种vpn通信方法、虚拟网卡、节点设备及存储介质 | |
CN111315037B (zh) | 通信链路建立方法、装置、计算机设备及存储介质 | |
CN114845350A (zh) | 一种路由选择方法及装置 | |
CN114979098A (zh) | 一种基于WebRTC的通讯方法、装置及电子设备 | |
CN108259292B (zh) | 建立隧道的方法及装置 | |
CN104518937B (zh) | 虚拟局域网vlan多设备间通信的方法及装置 | |
CN113328942B (zh) | 一种配置下发方法及装置、计算机设备 | |
CN103701943A (zh) | Mac地址的控制方法及装置 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220125 |
|
WW01 | Invention patent application withdrawn after publication |