CN111224855B - 基于Linux的虚拟网卡实现方法、装置、设备及介质 - Google Patents

基于Linux的虚拟网卡实现方法、装置、设备及介质 Download PDF

Info

Publication number
CN111224855B
CN111224855B CN201911295715.3A CN201911295715A CN111224855B CN 111224855 B CN111224855 B CN 111224855B CN 201911295715 A CN201911295715 A CN 201911295715A CN 111224855 B CN111224855 B CN 111224855B
Authority
CN
China
Prior art keywords
data
message
ppp
ppp protocol
packet
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
Application number
CN201911295715.3A
Other languages
English (en)
Other versions
CN111224855A (zh
Inventor
郑聪
张云鹤
梅松
万雷
叶志强
任永和
宋峰峰
付宁静
张平
陈高金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd
Original Assignee
Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd filed Critical Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd
Priority to CN201911295715.3A priority Critical patent/CN111224855B/zh
Publication of CN111224855A publication Critical patent/CN111224855A/zh
Application granted granted Critical
Publication of CN111224855B publication Critical patent/CN111224855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2858Access network architectures
    • H04L12/2859Point-to-point connection between the data network and the subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Abstract

本发明提出了一种基于Linux的虚拟网卡实现方法、装置、设备及介质。包括:VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。本发明通过利用系统现有的PPP驱动接口,采用上层仿造PPP协议来实现底层VPN数据的传输,完成自有VPN的实现。

Description

基于Linux的虚拟网卡实现方法、装置、设备及介质
技术领域
本发明涉及虚拟专用网络技术领域,尤其涉及一种基于Linux的虚拟网卡实现方法、装置、设备及介质。
背景技术
虚拟网卡主要是建立远程计算机间的局域网。但是,针对Linux系统或者Android系统下的虚拟专用网络的虚拟网卡功能需要配合TUN网卡来实现,TUN网卡就是一种虚拟网卡,但是大部分系统中TUN模块并未内置在系统内核中,所以这样就会导致系统中自带的虚拟网卡功能无法实现,此时只能通过下载并编译这个TUN模块对应的Linux内核版本,开放TUN设备选项,得到TUN设备内核模块,进行系统加载才能实现虚拟网卡功能,在技术难度上对使用者并不友好,使用局限性太大,同时也存在平台适配性问题。所以,需要一种能适应Linux系统的虚拟专用网络的虚拟网卡通用实现方法。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
有鉴于此,本发明提出了一种基于Linux的虚拟网卡实现方法、装置、设备及介质,旨在解决现有技术在TUN模块没有配置在系统内核时,无法实现虚拟网卡功能的技术问题。
本发明的技术方案是这样实现的:
一方面,本发明提供了一种基于Linux的虚拟网卡实现方法,所述基于Linux的虚拟网卡实现方法包括以下步骤:
S1,VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;
S2,设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;
S3,设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;
S4,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
在以上技术方案的基础上,优选的,步骤S1中,VPN系统通过PPP接口获取带有PPP协议的网络封包之前,还包括以下步骤,VPN系统初始化PPP接口,给该PPP接口分配IP地址,获取通过该IP地址到达PPP接口的网络封包,获取各网络封包的网络协议,筛选出带有PPP协议的网络封包。
在以上技术方案的基础上,优选的,步骤S1中,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度,还包括以下步骤,设定标识字段范围,从网络封包中读取PPP协议数据,根据该标识字段范围对PPP协议数据进行查找,将满足该标识字段范围的标识字段从该PPP协议数据中删除,获取该PPP协议数据剩下的数据,从该PPP协议数据剩下的数据中提取真实数据报文内容以及报文长度。
在以上技术方案的基础上,优选的,从该PPP协议数据剩下的数据中提取真实数据报文内容以及报文长度,还包括以下步骤,设定数据报文格式,通过该数据报文格式对该PPP协议数据剩下的数据进行筛选,选出符合该数据报文格式的数据报文作为真实数据报文,并获取该真实数据报文的长度。
在以上技术方案的基础上,优选的,步骤S2中,设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,还包括以下步骤,设定安全检查规则,从PPP协议数据中提取数据信息,所述数据信息包括:报文的源地址、目的地址以及协议,通过安全检查规则对该数据信息进行判断,当数据信息的内容都满足安全检查规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;当数据信息的内容有一项不满足安全检查规则时,将该数据信息对应的PPP协议数据删除。
在以上技术方案的基础上,优选的,步骤S3中,设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,还包括以下步骤,设定加密格式,根据该加密格式对加密数据包的加密格式进行检测,当该加密数据包的加密格式满足加密格式时,对该加密数据包进行解封装;当该加密数据包的加密格式不满足加密格式时,重新对该加密数据包进行加密。
在以上技术方案的基础上,优选的,步骤S4中,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序,还包括以下步骤,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,将该数据报文写入到PPP接口,通过PPP接口对该数据报文进行记录,然后将该数据报文发送至应用程序。
更进一步优选的,所述基于Linux的虚拟网卡实现装置包括:
获取模块,用于VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;
加密模块,用于设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;
解封装模块,用于设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;
报文填充模块,用于设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
第二方面,所述基于Linux的虚拟网卡实现方法还包括一种设备,所述设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于Linux的虚拟网卡实现方法程序,所述基于Linux的虚拟网卡实现方法程序配置为实现如上文所述的基于Linux的虚拟网卡实现方法的步骤。
第三方面,所述基于Linux的虚拟网卡实现方法还包括一种介质,所述介质为计算机介质,所述计算机介质上存储有基于Linux的虚拟网卡实现方法程序,所述基于Linux的虚拟网卡实现方法程序被处理器执行时实现如上文所述的基于Linux的虚拟网卡实现方法的步骤。
本发明的一种基于Linux的虚拟网卡实现方法相对于现有技术具有以下有益效果:
(1)通过利用系统现有的PPP接口来接收文件,并获取真实数据报文,然后通过伪造PPP协议来对真实数据报文进行填充,通过这样的方式来实现底层VPN数据的传输,实现了系统自由的VPN功能,节省了资源的使用;
(2)通过利用系统对真实数据报文进行检测之后对该真实数据报文加密,在对加密报文进行检测之后对加密报文进行解密,通过这两个检测过程,可以对真实数据报文的安全性进行检测,对加密数据报文的加密方式进行检测,增加了整个数据传输过程的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例方案涉及的硬件运行环境的设备的结构示意图;
图2为本发明基于Linux的虚拟网卡实现方法第一实施例的流程示意图;
图3为本发明基于Linux的虚拟网卡实现方法第一实施例的功能模块示意图。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,该设备可以包括:处理器1001,例如中央处理器(CentralProcessingUnit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对设备的限定,在实际应用中设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于Linux的虚拟网卡实现方法程序。
在图1所示的设备中,网络接口1004主要用于建立设备与存储基于Linux的虚拟网卡实现方法系统中所需的所有数据的服务器的通信连接;用户接口1003主要用于与用户进行数据交互;本发明基于Linux的虚拟网卡实现方法设备中的处理器1001、存储器1005可以设置在基于Linux的虚拟网卡实现方法设备中,所述基于Linux的虚拟网卡实现方法设备通过处理器1001调用存储器1005中存储的基于Linux的虚拟网卡实现方法程序,并执行本发明实施提供的基于Linux的虚拟网卡实现方法。
结合图2,图2为本发明基于Linux的虚拟网卡实现方法第一实施例的流程示意图。
本实施例中,所述基于Linux的虚拟网卡实现方法包括以下步骤:
S10:VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度。
应当理解的是,VPN系统在启动时,会对PPP接口进行初始化,并给PPP接口分配相应的IP地址,并创建对应的路由策略,然后,获取通过该IP地址到达PPP接口的网络封包,获取各网络封包的网络协议,筛选出带有PPP协议的网络封包。
应当理解的是,路由策略是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。应用了路由策略,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。
应当理解的是,当应用程序开始访问相关资源信息的时候,系统会通过路由表策略将网络封包投递到PPP驱动层,由VPN系统从PPP接口读出带有PPP协议的网络封包,并从该网络封包中提取对应的PPP协议数据,通过对PPP数据的头部分析,截取去掉原有PPP协议的头部标识字段,及结尾的FCS的帧校验区域,提取中部的真实数据包文内容及长度。
应当理解的是,路由表是指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径。路由表的建的主要是为了实现路由协议和静态路由的选择。
应当理解的是,FCS(帧校验序列,frame check sequence),让接收帧的网卡或接口判断是否发生了错误,主要工作过程为:发送网卡利用多项式计算,称循环冗余校验(CRC),将计算结果写入FCS字段,接收方收到这个帧,对其做相同的循环冗余校验计算。如果计算结果与接收的FCS字段相同,则帧没有发生错误。如果不同,接收方就相信帧肯定发生了错误,并丢弃这个帧。
S20:设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包。
应当理解的是,此时系统会设定安全检测规则,从PPP协议数据中提取数据信息,所述数据信息包括:报文的源地址、目的地址以及协议,通过安全检查规则对该数据信息进行判断,当数据信息的内容都满足安全检查规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;当数据信息的内容有一项不满足安全检查规则时,将该数据信息对应的PPP协议数据删除。通过这样的方式来对接收到的真实数据报文的安全性进行判断,以保证整个系统的安全性。
应当理解的是,UDP(用户数据报协议,User Datagram Protocol)为应用程序提供了一种无需建立连接就可以发送封装的IP数据报的方法。
S30:设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度。
应当理解的是,系统会设定加密格式,当系统从UDP套接字收到对应VPN套接字加密数据包后,根据该加密格式对加密数据包的加密格式进行检测,当该加密数据包的加密格式满足加密格式时,对该加密数据包进行解封装;当该加密数据包的加密格式不满足加密格式时,重新对该加密数据包进行加密。通过这种方式,对加密包的安全性进行验证,当加密包的格式符合时,表示这个加密包封装完好,安全性高;当加密包的格式不符合时,表示该加密包没有加密完整,需要重新加密。
S40:设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
应当理解的是,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,具体步骤如下:在获取到真实数据报文内容以及长度后,系统会开始伪造PPP协议报文格式,首先会进行头部标示字段填充,地址域为FF,控制域03,协议域采用0021标示IP分组。后续填入真实数据包,并对整体数据包进行FCS校验填充,加入PPP_FLAG标示,这样就完成了对数据报文的填充,然后将该数据报文写入到PPP接口,由系统协议栈将该数据报文发送至应用程序,从而完成整个访问到接收的过程。
需要说明的是,以上仅为举例说明,并不对本申请的技术方案构成任何限定。
通过上述描述不难发现,本实施例通过获取VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。本实施例通过利用系统现有的PPP驱动接口,采用上层仿造PPP协议来实现底层VPN数据的传输,可以在已经root后的Android系统中实现自有VPN的功能。
此外,本发明实施例还提出一种基于Linux的虚拟网卡实现装置。如图3所示,该基于Linux的虚拟网卡实现装置包括:获取模块10、加密模块20、解封装模块30、报文填充模块40。
获取模块10,用于VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;
加密模块20,用于设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;
解封装模块30,用于设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;
报文填充模块40,用于设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
此外,需要说明的是,以上所描述的装置实施例仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于Linux的虚拟网卡实现方法,此处不再赘述。
此外,本发明实施例还提出一种介质,所述介质为计算机介质,所述计算机介质上存储有基于Linux的虚拟网卡实现方法程序,所述基于Linux的虚拟网卡实现方法程序被处理器执行时实现如下操作:
S1,VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;
S2,设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;
S3,设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;
S4,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
进一步地,所述基于Linux的虚拟网卡实现方法程序被处理器执行时还实现如下操作:
VPN系统初始化PPP接口,给该PPP接口分配IP地址,获取通过该IP地址到达PPP接口的网络封包,获取各网络封包的网络协议,筛选出带有PPP协议的网络封包。
进一步地,所述基于Linux的虚拟网卡实现方法程序被处理器执行时还实现如下操作:
设定标识字段范围,从网络封包中读取PPP协议数据,根据该标识字段范围对PPP协议数据进行查找,将满足该标识字段范围的标识字段从该PPP协议数据中删除,获取该PPP协议数据剩下的数据,从该PPP协议数据剩下的数据中提取真实数据报文内容以及报文长度。
进一步地,所述基于Linux的虚拟网卡实现方法程序被处理器执行时还实现如下操作:
设定数据报文格式,通过该数据报文格式对该PPP协议数据剩下的数据进行筛选,选出符合该数据报文格式的数据报文作为真实数据报文,并获取该真实数据报文的长度。
进一步地,所述基于Linux的虚拟网卡实现方法程序被处理器执行时还实现如下操作:
设定安全检查规则,从PPP协议数据中提取数据信息,所述数据信息包括:报文的源地址、目的地址以及协议,通过安全检查规则对该数据信息进行判断,当数据信息的内容都满足安全检查规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;当数据信息的内容有一项不满足安全检查规则时,将该数据信息对应的PPP协议数据删除。
进一步地,所述基于Linux的虚拟网卡实现方法程序被处理器执行时还实现如下操作:
设定加密格式,根据该加密格式对加密数据包的加密格式进行检测,当该加密数据包的加密格式满足加密格式时,对该加密数据包进行解封装;当该加密数据包的加密格式不满足加密格式时,重新对该加密数据包进行加密。
进一步地,所述基于Linux的虚拟网卡实现方法程序被处理器执行时还实现如下操作:
设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,将该数据报文写入到PPP接口,通过PPP接口对该数据报文进行记录,然后将该数据报文发送至应用程序。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Linux的虚拟网卡实现方法,其特征在于:包括以下步骤;
S1,VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;
S2,设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;
S3,设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;
S4,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
2.如权利要求1所述的基于Linux的虚拟网卡实现方法,其特征在于:步骤S1中,VPN系统通过PPP接口获取带有PPP协议的网络封包之前,还包括以下步骤,VPN系统初始化PPP接口,给该PPP接口分配IP地址,获取通过该IP地址到达PPP接口的网络封包,获取各网络封包的网络协议,筛选出带有PPP协议的网络封包。
3.如权利要求2所述的基于Linux的虚拟网卡实现方法,其特征在于:步骤S1中,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度,还包括以下步骤,设定标识字段范围,从网络封包中读取PPP协议数据,根据该标识字段范围对PPP协议数据进行查找,将满足该标识字段范围的标识字段从该PPP协议数据中删除,获取该PPP协议数据剩下的数据,从该PPP协议数据剩下的数据中提取真实数据报文内容以及报文长度。
4.如权利要求3所述的基于Linux的虚拟网卡实现方法,其特征在于:从该PPP协议数据剩下的数据中提取真实数据报文内容以及报文长度,还包括以下步骤,设定数据报文格式,通过该数据报文格式对该PPP协议数据剩下的数据进行筛选,选出符合该数据报文格式的数据报文作为真实数据报文,并获取该真实数据报文的长度。
5.如权利要求4所述的基于Linux的虚拟网卡实现方法,其特征在于:步骤S2中,设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,还包括以下步骤,设定安全检查规则,从PPP协议数据中提取数据信息,所述数据信息包括:报文的源地址、目的地址以及协议,通过安全检查规则对该数据信息进行判断,当数据信息的内容都满足安全检查规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;当数据信息的内容有一项不满足安全检查规则时,将该数据信息对应的PPP协议数据删除。
6.如权利要求5所述的基于Linux的虚拟网卡实现方法,其特征在于:步骤S3中,设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,还包括以下步骤,设定加密格式,根据该加密格式对加密数据包的加密格式进行检测,当该加密数据包的加密格式满足加密格式时,对该加密数据包进行解封装;当该加密数据包的加密格式不满足加密格式时,重新对该加密数据包进行加密。
7.如权利要求6所述的基于Linux的虚拟网卡实现方法,其特征在于:步骤S4中,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序,还包括以下步骤,设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,将该数据报文写入到PPP接口,通过PPP接口对该数据报文进行记录,然后将该数据报文发送至应用程序。
8.一种基于Linux的虚拟网卡实现装置,其特征在于,所述基于Linux的虚拟网卡实现装置包括:
获取模块,用于VPN系统通过PPP接口获取带有PPP协议的网络封包,从该网络封包中读取PPP协议数据,从该PPP协议数据中提取真实数据报文内容以及报文长度;
加密模块,用于设定安全检测规则,从PPP协议数据中提取数据信息,根据该安全检测规则对该数据信息进行检测,当该数据信息满足安全检测规则时,通过UDP对真实数据报文内容以及报文长度进行封装,作为加密数据包;
解封装模块,用于设定加密格式,根据该加密格式对加密数据包进行检测,当该加密数据包满足加密格式时,对该加密数据包进行解封装,并获取真实数据报文内容以及报文长度;
报文填充模块,用于设定PPP协议报文格式,根据该PPP协议报文格式以及报文长度对该真实数据报文内容进行填充,获取填充完成的数据报文,并将该数据报文发送至应用程序。
9.一种设备,其特征在于,所述设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于Linux的虚拟网卡实现方法程序,所述基于Linux的虚拟网卡实现方法程序配置为实现如权利要求1至7任一项所述的基于Linux的虚拟网卡实现方法的步骤。
10.一种介质,其特征在于,所述介质为计算机介质,所述计算机介质上存储有基于Linux的虚拟网卡实现方法程序,所述基于Linux的虚拟网卡实现方法程序被处理器执行时实现如权利要求1至7任一项所述的基于Linux的虚拟网卡实现方法的步骤。
CN201911295715.3A 2019-12-16 2019-12-16 基于Linux的虚拟网卡实现方法、装置、设备及介质 Active CN111224855B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911295715.3A CN111224855B (zh) 2019-12-16 2019-12-16 基于Linux的虚拟网卡实现方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911295715.3A CN111224855B (zh) 2019-12-16 2019-12-16 基于Linux的虚拟网卡实现方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN111224855A CN111224855A (zh) 2020-06-02
CN111224855B true CN111224855B (zh) 2021-11-30

Family

ID=70829835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911295715.3A Active CN111224855B (zh) 2019-12-16 2019-12-16 基于Linux的虚拟网卡实现方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN111224855B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113111015B (zh) * 2021-03-30 2024-03-19 南京翼辉信息技术有限公司 一种无驱动虚拟设备管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1585270A1 (en) * 2003-01-14 2005-10-12 Matsushita Electric Industrial Co., Ltd. Service in wlan inter-working, address management system, and method
CN101286896A (zh) * 2008-06-05 2008-10-15 上海交通大学 基于流的IPSec VPN协议深度检测方法
CN101296227A (zh) * 2008-06-19 2008-10-29 上海交通大学 基于报文偏移量匹配的IPSec VPN协议深度检测方法
CN101426004A (zh) * 2007-10-29 2009-05-06 华为技术有限公司 三层会话的接入方法、系统及设备
CN101753531A (zh) * 2008-12-19 2010-06-23 上海安达通信息安全技术股份有限公司 利用https/http协议实现IPsec协议封装的方法
CN107104929A (zh) * 2016-02-23 2017-08-29 阿里巴巴集团控股有限公司 防御网络攻击的方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10374803B2 (en) * 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1585270A1 (en) * 2003-01-14 2005-10-12 Matsushita Electric Industrial Co., Ltd. Service in wlan inter-working, address management system, and method
CN101426004A (zh) * 2007-10-29 2009-05-06 华为技术有限公司 三层会话的接入方法、系统及设备
CN101286896A (zh) * 2008-06-05 2008-10-15 上海交通大学 基于流的IPSec VPN协议深度检测方法
CN101296227A (zh) * 2008-06-19 2008-10-29 上海交通大学 基于报文偏移量匹配的IPSec VPN协议深度检测方法
CN101753531A (zh) * 2008-12-19 2010-06-23 上海安达通信息安全技术股份有限公司 利用https/http协议实现IPsec协议封装的方法
CN107104929A (zh) * 2016-02-23 2017-08-29 阿里巴巴集团控股有限公司 防御网络攻击的方法、装置和系统

Also Published As

Publication number Publication date
CN111224855A (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
KR100574157B1 (ko) 컴퓨터 장치, 이동 전화, 서버 컴퓨터 시스템, 컴퓨터 장치와 원격 컴퓨터 사이의 데이터 통신 방법 및 컴퓨터 판독 가능 기록 매체
US8799504B2 (en) System and method of TCP tunneling
US7395342B2 (en) Pre-execution environment compliant dynamic host configuration protocol relay agent
CN105591982B (zh) 一种报文传输的方法和装置
US9231908B2 (en) Ensuring symmetric routing to private network
CN105939239B (zh) 虚拟网卡的数据传输方法及装置
US9015822B2 (en) Automatic invocation of DTN bundle protocol
US8843639B2 (en) System and method for creating a transparent data tunnel
US9106257B1 (en) Checksumming encapsulated network packets
CN106507414B (zh) 报文转发方法及装置
CN111224855B (zh) 基于Linux的虚拟网卡实现方法、装置、设备及介质
CN110247926B (zh) 一种交互方法和系统
US9762486B2 (en) Method and system for using extension headers to support protocol stack migration
US9913304B2 (en) Method and system for facilitating the establishment of a virtual private network in a cellular communication network
CN114095587A (zh) 一种客户端、报文发送、接收方法、设备及存储介质
CN110581792B (zh) 一种报文传输方法及装置
CN114710560A (zh) 数据处理方法、系统及代理设备、终端设备
CN113709016B (zh) 通信系统以及通信方法、装置、设备和存储介质
CN108259294A (zh) 报文处理方法及装置
CN113014490A (zh) 一种ip报文转发方法及装置
CN114915492B (zh) 一种流量转发方法、装置、设备及介质
CN115189969B (zh) 一种网络加密通信方法、装置、介质及设备
US20230164246A1 (en) Radio access network (ran) architecture
EP4319094A1 (en) Control method and apparatus, and computing device
CN105847289A (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