多系统的网络隔离共享方法及装置
技术领域
本发明涉及终端技术领域,具体而言,本发明涉及一种多系统的网络隔离共享方法及装置。
背景技术
智能手机、平板电脑和电子阅读器等终端设备已经广泛普及。相当一部分数量的终端设备中安装了两个操作系统;其中一个操作系统主要满足用户生活娱乐需要,另一个操作系统具有较高的安全度负责处理用户的个人隐私数据,以提升用户隐私数据的安全性。
由于终端设备中通常仅配备了一套网络硬件。例如,接入的移动通信网络的Modem(调制解调器)等。现有的一种双系统的网络接入方法包括:由安全性要求较低的一个操作系统独占网络硬件的访问权限,而安全性要求较高的另一个操作系统不具备访问网络硬件的权限。
然而,这种多系统的网络接入方法,虽然可以保证另一个操作系统的安全性,但是也完全剥夺了该另一个操作系统的上网的功能,无法满足用户既需要上网又需要保护密码等隐私数据的需求,用户被迫只能选择在安全性较低的操作系统下上网并进行密码等隐私数据的操作,容易导致用户隐私数据的泄露;并导致安全性要求较高的另一个操作系统的应用范围较窄,实用性下降;降低了用户体验。
现有的另一个双系统的网络接入方法,包括:处于前台的操作系统拥有网络硬件的访问权限,处于后台的操作系统被剥夺网络硬件的访问权限。然而,本发明的发明人发现,该方法中操作系统网络功能受到其前后台状态的限制,当操作系统处于后台时无论有无上网的需求都是无法使用网络功能的,给用户的使用带来不便,容易导致降低用户体验。
综上,现有的双系统的网络接入方法具有某一操作系统无法使用网络功能或者无法在后台状态下使用网络功能的缺陷。
发明内容
本发明针对现有方式的缺点,提出一种多系统的网络隔离共享方法及装置,用以解决现有技术存在双操作系统中某一操作系统无法使用网络功能或者无法在后台状态下使用网络功能的问题。
本发明的实施例根据一个方面,提供了一种多系统的网络隔离共享方法,包括:
第二容器系统通过预设的虚拟网络通道向第一容器系统发送网络连接请求;
第一容器系统中的网络数据处理服务对接收到的所述网络连接请求的发送方进行检测;当检测出所述网络连接请求的发送方为第二容器系统时,将所述网络连接请求进行发送;
第一容器系统中的网络代理服务接收到所述网络连接请求后,开启预设的第二专网节点;待第二专网节点接入第二专用网络后,生成第二专网准用消息并返回;
所述网络数据处理服务将接收的第二专网准用消息,通过所述虚拟网络通道返回;
第二容器系统接收到第二专网准用消息后,通过所述虚拟网络通道与所述网络数据处理服务进行通信,由所述网络数据处理服务通过第二专网节点与第二专用网络进行通信。
本发明的实施例根据另一个方面,还提供了一种多系统的网络隔离共享装置,包括:第一、二容器系统;
第一容器系统包括:网络数据处理模块、网络代理模块和第二专网节点;第二容器系统包括:第二专网通信模块;
第二专网通信模块用于通过预设的虚拟网络通道向第一容器系统发送网络连接请求;以及接收到第二专网准用消息后,通过所述虚拟网络通道与所述网络数据处理模块进行通信;
所述网络数据处理模块用于对接收到的所述网络连接请求的发送方进行检测;当检测出所述网络连接请求的发送方为第二容器系统时,将所述网络连接请求进行发送;以及将接收的所述网络代理模块返回的第二专网准用消息,通过所述虚拟网络通道返回;以及通过第二专网节点与第二专用网络进行通信;
所述网络代理模块用于接收到所述网络数据处理模块发送的网络连接请求后,开启预设的第二专网节点;待第二专网节点接入第二专用网络后,生成第二专网准用消息并返回。
较佳地,本发明实施例的多系统的网络隔离共享装置,还包括:容器宿主系统;所述容器宿主系统包括网桥;第一容器系统还包括第一虚拟接口;第二容器系统还包括:第二虚拟接口;所述虚拟网络通道包括:所述网桥及其连接的第一、二虚拟接口;以及
所述网络代理模块还用于生成第二路由表、第二路由规则和第二专网准用消息并返回;
所述网络数据处理模块还用于接收到所述网络代理模块返回的第二路由表、第二路由规则和第二专网准用消息后,将接收到的第二专网准用消息,通过所述虚拟网络通道返回;以及
第二专网通信模块还用于通过第二虚拟接口和所述网桥向第一虚拟接口发送上行数据包;
所述网络数据处理模块还用于通过第一虚拟接口接收到上行数据包时,根据第二路由规则调用第二路由表,将接收到的上行数据包通过第二专网节点向第二专用网络发送。
较佳地,所述网络数据处理模块具体用于将所述上行数据包中的发送方地址和目标方地址转换为符合第二专用网络格式的地址后,根据第二路由规则调用第二路由表,将地址格式转换后的上行数据包通过第二专网节点向所述第二专用网络发送。
较佳地,所述网络数据处理模块还用于通过所述第二专网节点接收到所述第二专用网络下发的下行数据包时,将所述下行数据包通过第一虚拟接口和所述网桥,向第二虚拟接口发送;以及
第二专网通信模块还用于通过第二虚拟接口接收所述下行数据包。
较佳地,所述网络数据处理模块具体用于将所述下行数据包中的目标方地址转换为符合虚拟网络通道格式的地址;当确定所述目标方地址为第一虚拟接口的地址时,将目标方地址已转换为符合虚拟网络通道格式的地址的下行数据包,通过第一虚拟接口和所述网桥,向第二虚拟接口发送。
较佳地,所述网络数据处理模块还用于当检测出所述网络连接请求的发送方为第一容器系统的应用时,开启第一容器系统中预设的公网节点,使得第一容器系统中发送网络连接请求的应用通过所述公网节点与公共网络进行通信。
本发明实施例中,当第一容器系统中的网络数据处理服务,检测出网络连接请求来自第二容器系统时,调用网络代理服务开启第二专网节点;网络数据处理服务一方面与第二容器系统通过虚拟网络通道进行通信,另一方面通过第二专网节点与第二专用网络进行通信,相当于第二容器系统经过虚拟网络通道和网络数据处理服务的中转与第二专用网络进行通信;使得本发明实施例中的容器系统无论其处于前、后台状态,无论其是否具有网络硬件的访问权限,都可以实现其网络功能,给用户带来便利,可以提升用户的体验。而且,第二容器系统与指定的第二专用网络进行通信,可以保证第二容器系统的网络通信功能的安全性。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1a为本发明实施例的终端设备的内部结构的框架示意图;
图1b为本发明实施例的终端设备的内部结构的一个实例的框架示意图;
图2为本发明实施例的多系统的网络隔离共享方法的流程示意图;
图3为本发明实施例的第二容器系统通过虚拟网络通道和第一容器系统向第二专用网络发送上行数据包的方法的流程示意图;
图4为本发明实施例的第一容器系统将下行数据包向第二容器系统发送的方法的流程示意图;
图5为本发明实施例的多系统的网络隔离共享装置的内部结构的框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本发明的发明人考虑到,可以由终端设备中的一个操作系统控制本终端设备中的网络硬件,并对该操作系统进行改进,在该操作系统中针对其它操作系统设置一些网络代理服务,使得其它操作系统可以借助于该操作系统实现网络功能,与外部的网络进行通信。
基于上述考虑,本发明实施例中,将第一容器系统设置为控制终端设备中的网络硬件的操作系统,其它容器系统将通过第一容器系统实现网络功能。第二容器系统通过预设的虚拟网络通道向第一容器系统发送网络连接请求;第一容器系统中的网络数据处理服务对接收到的网络连接请求的发送方进行检测;当检测出网络连接请求的发送方为第二容器系统时,将网络连接请求进行发送;第一容器系统中的网络代理服务接收到网络连接请求后,开启预设的第二专网节点;待第二专网节点接入第二专用网络后,生成第二专网准用消息并返回;网络数据处理服务将接收的第二专网准用消息,通过虚拟网络通道返回;第二容器系统接收到第二专网准用消息后,通过虚拟网络通道与网络数据处理服务进行通信,由网络数据处理服务通过第二专网节点与第二专用网络进行通信。可见,本发明实施例中,当第一容器系统中的网络数据处理服务,检测出网络连接请求来自第二容器系统时,调用网络代理服务开启第二专网节点;网络数据处理服务一方面与第二容器系统通过虚拟网络通道进行通信,另一方面通过第二专网节点与第二专用网络进行通信,相当于第二容器系统经过虚拟网络通道和网络数据处理服务的中转与第二专用网络进行通信;使得本发明实施例中的容器系统无论其处于前、后台状态,无论其是否具有网络硬件的访问权限,都可以实现其网络功能,给用户带来便利,可以提升用户的体验。
下面结合附图具体介绍本发明实施例的技术方案。
本发明实施例的终端设备的内部结构的框架示意图如图1a所示,包括:容器宿主系统和两个以上容器系统。
其中,两个以上容器系统可以包括第一容器系统、第二容器系统、…、第N容器系统。N为大于2的正整数。
本发明实施例中的容器系统,是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的操作系统,例如Android系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的容器系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。为便于描述,下面以Android系统作为容器系统为例阐述本发明的技术方案。
较佳地,容器宿主系统可以是上述传统的操作系统,也可以是对传统的操作系统进行改进得到的操作系统。内核为kernel,或者在kernel基础上增加功能模块之后得到的增强型kernel。较佳地,容器宿主系统可以包括内核;上述容器系统通过容器宿主系统调用或访问内核以实现各种功能。或者,容器系统和容器宿主系统共享内核;本发明的容器系统和容器宿主系统包含现有操作系统中kernel之外的部分,例如框架层和应用层的部分;容器系统和容器宿主系统都可以独立调用或访问内核以实现各种功能。
容器宿主系统主要用于对多个容器系统进行启动/关闭、前后台进行管理,与各容器系统进行交互等。
较佳地,容器宿主系统可以通过容器通道与容器系统进行通信。进一步,容器通道可以是socket(套接字)通道。
下面介绍容器宿主系统与容器系统之间的容器通道的创建方法。
具体地,容器系统向容器宿主系统发送容器通道创建请求,该容器通道创建请求中包括容器通道对应的文件描述符、文件权限、允许访问该容器通道的两个以上操作系统的系统标识、允许的最大访问数量、以及待生成文件的描述符的标识等。两个以上操作系统包括(发送容器通道创建请求的)容器系统、和该容器系统期待交互的操作系统。
容器宿主系统接到该容器系统的容器通道创建请求后,创建一对socket文件描述符(socketpair)和连接该对文件描述符的容器通道,并为该对文件描述符命名。将容器通道创建请求中的文件权限、允许访问的系统标识、允许的最大访问数量、以及待生成文件的描述符的标识记录到所创建的容器通道中。
容器宿主系统将容器通道及其标识和一对文件描述符、以及允许访问该容器通道的系统标识注册在内核的NSS(Name Space Server,域名空间服务)虚拟设备中。容器宿主系统和内核都对应记录已经注册的容器通道及其标识和文件描述符对、以及允许访问该容器通道的系统标识。
内核的NSS将容器通道的标识、以及允许访问该容器通道的各系统标识返回给该容器系统。并将容器通道的标识和允许访问该容器通道的各系统标识,分别向与各系统标识相符的操作系统返回。
该容器系统根据获取的容器通道的标识从NSS中获取该容器通道的文件描述符对中的一个文件描述符。
容器宿主系统接收到容器宿主系统针对上述容器通道的获取请求后,查找出已经注册的该容器通道的标识,向该容器宿主系统返回。
容器宿主系统获取容器通道的标识后,向内核中的NSS虚拟设备发送,携带有该容器通道的标识的文件描述符获取请求。
内核中的NSS虚拟设备根据接收到的该文件描述符获取请求中的容器通道的标识,从已注册的容器通道及其标识和文件描述符对中,查找出该容器通道的文件描述符对中的另一个文件描述符返回。较佳地,NSS校验发送文件描述符获取请求的容器系统的系统标识、访问数量等安全信息是否与容器通道中记录的对应信息相符;若校验结果为相符,则根据接收到的该文件描述符获取请求中的容器通道的标识,从已注册的容器通道及其标识和文件描述符对中,查找出该容器通道的文件描述符对中的另一个文件描述符,向容器宿主系统返回。
相当于,将连接容器通道两端的一对文件描述符中的一个文件描述符向容器系统返回,将另一个文件描述符向容器宿主系统的进程返回。
容器宿主系统获取内核返回的另一个文件描述符后,容器宿主系统与容器系统之间的容器通道建立完毕。容器宿主系统可以通过该另一个文件描述符,与拥有该另一个文件描述符所属容器通道的一个文件描述符的容器系统进行通信。
较佳地,容器宿主系统对于一对文件描述符,根据返回给一个容器系统的一个文件描述符,从内核获取socket描述文件的结构体,与该一个文件描述符相关联,并记录在容器通道中。之后,将容器通道注册到内核的NSS虚拟设备中。
内核中的NSS虚拟设备接收到容器宿主系统的进程的文件描述符获取请求后,查询出容器宿主系统的进程中未使用的文件描述符,将该未使用的文件描述符与容器通道中保存的socket描述文件的文件结构体相关联,并向容器宿主系统的该进程返回关联后的文件描述符。此时,关联后的文件描述符相当于同一容器通道的文件描述符中的另一个文件描述符。
较佳地,本发明实施例中将可以直接控制终端设备中的网络硬件及相关软件(例如驱动程序)的容器系统称为第一容器系统;将无法直接控制网络硬件及相关软件的容器系统都称为其它容器系统。
较佳地,为了便于描述和理解,以第一容器系统和其它容器系统中的第二容器系统为例,介绍本发明实施例的技术方案。
第一容器系统中设置有网络数据处理服务、网络代理服务、专网节点和公网节点。其中,专网节点可以有多个;例如,专门为第二容器系统接入第二专用网络设置的第二专网节点。网络数据处理服务主要具有在识别网络数据的发送方或者目标方后,进行相应的专用/公共网络的选择、数据转换和/或数据传输,开启/关闭公网节点,以及通过专网节点与专用网络进行通信、通过公网节点与公共网络进行通信等功能;网络代理服务主要具有开启/关闭专网节点的功能;上述服务和节点的具体功能将在后续详细描述,此处不再赘述。
较佳地,本发明实施例中的虚拟网络通道包括:设置于容器宿主系统中的网桥,以及该网桥连接的分设于第一、二容器系统中的第一、二虚拟接口。第一、二容器系统可以通过该虚拟网络通道进行通信。
较佳地,图1b是本发明实施例的终端设备的内部结构的一个实例的框架示意图。如图1b所示,容器B(外域)、容器A(内域)分别表示第一、二容器系统,容器A侧的虚拟节点对表示第二虚拟接口,容器B侧的虚拟节点对表示第一虚拟接口;容器宿主表示容器宿主系统,其中的网桥用于连接上述虚拟节点对;容器A和B可以通过基于网桥连接的虚拟节点对进行通信;专网节点表示为第二容器系统专门设置的第二专网节点;网络管理模块表示网络数据处理服务;移动网络开关模块表示网络代理服务。
本发明实施例中,在执行多系统的网络隔离共享方法之前,本发明实施例中的容器宿主系统启动后,启动第一容器系统和第二容器系统,并创建第一、二容器系统之间的虚拟网络通道。其中,虚拟网络通道包括:设置于容器宿主系统中的网桥及其连接的分设于第一、二容器系统中的第一、二虚拟接口。
具体地,容器宿主系统针对第一、二容器系统,创建虚拟接口对和网桥;将虚拟接口对中的一个虚拟接口作为第一虚拟接口设置于第一容器系统中,将另一个虚拟接口作为第二虚拟接口设置于第二容器系统中;将对应的网桥设置于本容器宿主系统中,分别连接第一、二容器系统。相当于搭建了一个虚拟网络通道,第一虚拟接口为该虚拟网络通道的网关节点、第二虚拟接口为该虚拟网络通道的子网节点。第一、二容器系统可以通过该虚拟网络通道进行通信。虚拟接口的信息可以包括网络地址;虚拟接口的网络地址可以包括下述至少一项:IP(Internet Protocol,互联网协议)地址、MAC(Media Access Control,媒体访问控制)地址、端口号。较佳地,容器宿主系统将第一虚拟接口的信息、第二虚拟接口的信息,以及连接第一、二虚拟接口的网桥对应记录,并分别发送至第一、二容器系统。
本发明实施例提供了一种多系统的网络隔离共享方法,该方法的流程示意图如图2所示,包括:
S201:第二容器系统通过预设的虚拟网络通道向第一容器系统发送网络连接请求。和/或,第一容器系统中的应用发送网络连接请求。
第二容器系统的应用接收到用户输入的网络连接指令后,生成网络连接请求,通过虚拟网络通道向第一容器系统发送。
具体地,第二容器系统将第二虚拟接口的网络地址作为发送方地址携带于网络连接请求中;将网络连接请求通过第二虚拟接口、容器宿主系统中的网桥,向第一容器系统中的第一虚拟接口发送。
较佳地,第二容器系统将第二虚拟接口的网络地址作为发送方地址携带于网络连接请求中;将网络连接请求通过第二虚拟接口、网桥,向容器宿主系统发送;容器宿主系统从接收到的网络连接请求中解析出作为发送方地址的第二虚拟接口的网络地址,查找出与解析出的第二虚拟接口的网络地址对应的第一虚拟接口的网络地址。
以及,容器宿主系统将网络连接请求中发送方地址修改为第一虚拟接口的网络地址,将修改后的网络连接请求向第一容器系统的第一虚拟接口发送。
或者,容器宿主系统将整个网络连接请求作为数据包携带的数据内容,将第一虚拟接口的网络地址作为发送方地址,封装成数据包,向第一容器系统的第一虚拟接口发送。
此外,第一容器系统中的应用接收到用户输入的网络连接指令后,根据预先分配给第一容器系统中的应用的网络地址,生成网络连接请求。具体地,将预先分配给第一容器系统中的应用的网络地址作为发送方地址携带于网络连接请求中。该应用将生成的网络连接请求向第一容器系统中的网络数据处理服务发送。
S202:第一容器系统中的网络数据处理服务对接收到的网络连接请求的发送方进行检测。
第一容器系统中的网络数据处理服务,通过第一容器系统中的第一虚拟接口接收到网络连接请求后,对接收到的网络连接请求的发送方进行检测。
具体地,网络数据处理服务接收到网络连接请求后,从中解析出发送方地址与预存的第一虚拟接口和第二虚拟接口的网络地址、以及分配给第一容器系统中应用的网络地址进行比较。
或者,网络数据处理服务接收到数据包后,从中解析出发送方地址;将解析出的发送方地址与预存的第一虚拟接口和第二虚拟接口的网络地址、以及分配给第一容器系统中应用的网络地址进行比较。
较佳地,第一虚拟接口将整个网络连接请求作为数据包携带的数据内容,将第一虚拟接口的网络地址作为发送方地址,封装成数据包,向网络代理服务发送。
S203:当网络数据处理服务检测出接收的网络连接请求的发送方为第二容器系统时,将该网络连接请求进行发送。
第一容器系统中的网络数据处理服务确定出上述比较结果为网络连接请求中的发送方地址与预存的第一虚拟接口或第二虚拟接口的网络地址相一致时,确定网络连接请求的发送方为第二容器系统。
网络数据处理服务确定出网络连接请求的发送方为第二容器系统时,将接收的网络连接请求向第一容器系统中的网络代理服务进行发送。
S204:网络代理服务接收到网络连接请求后,开启预设的第二专网节点;待第二专网节点接入第二专用网络后,生成第二专网准用消息并返回。
网络代理服务接收到网络连接请求后,开启第一容器系统中为第二容器系统预设的第二专网节点。其中,专网节点是接入专用网络的网络节点。网络节点可以包下述至少一项:APN(Access Point Name,接入点名称)节点、无线局域网的AP(AccessPoint,接入点)。网络节点对应接入的网络可以包括:移动通信网络、或无线局域网。
较佳地,当专网节点具体为专用的APN节点时;相应的网络具体为专用的移动通信网络。专用的APN节点可以是根据企业等用户对网络安全的特殊要求,专门为该用户分配的专用的APN节点,通过专用的APN节点可以连接到专用的独立的移动通信网络,例如集团企业内部网络、或行业内部专用网络等。
第二专网节点与第二专用网络握手成功后,确定接入第二专网网络;将接入成功的消息返回网络代理服务。
网络代理服务接收到接入成功的消息后,生成第二专网准用消息并返回。网络数据处理服务
较佳地,网络代理服务接收到接入成功的消息后,获取第二专网节点接入第二专网网络的信息;例如,第二专网节点在第二专用网络中的网络地址,该网络地址符合第二专网网络的格式。
网络代理服务根据获取的第二专网节点接入第二专网网络的信息、以及源自第二容器系统的网络连接请求,生成第二路由表、第二路由规则和第二专网准用消息并向网络数据处理服务返回。
其中,第二路由规则中指定,调用第二路由表对来自第二容器系统的上行数据包(例如包括第一虚拟接口的网络地址的上行数据包)进行数据传输。第二路由表中记录了涉及第二专网节点的路由信息;例如,将来自第二容器系统(例如包括第一虚拟接口或第二虚拟接口的网络地址)的上行数据包发送至第二专网节点的路由信息、以及第二专网节点为发送方的路由信息。
S205:网络数据处理服务将接收的第二专网准用消息,通过虚拟网络通道向第二容器系统返回。
较佳地,网络数据处理服务接收到网络代理服务返回的第二路由表、第二路由规则和第二专网准用消息后,将第二专网准用消息通过第一虚拟接口、对应的网桥向第二容器系统中的第二虚拟接口返回。
S206:第二容器系统接收到专网准用消息后,通过虚拟网络通道与网络数据处理服务进行通信,由网络数据处理服务通过第二专网节点与对应的第二专用网络进行通信。
具体地,第二容器系统通过第二虚拟接口接收到第一容器系统返回的专网准用消息后,可以通过上述虚拟网络通道和第一容器系统向第二专用网络发送上行数据包,具体方法将在后续详细介绍,此处不赘述。
此外,第一容器系统接收到第二专网网络下发的下行数据包后,可以通过上述虚拟网络通道向第二容器系统进行发送,具体方法将在后续详细介绍,此处不赘述。
较佳地,如图2所示,本发明实施例的多系统的网络隔离共享方法的流程,除了包括上述步骤S201-S206之外,还包括下述步骤:
S207:当检测出网络连接请求的发送方为第一容器系统的应用时,开启第一容器系统中预设的公网节点。
第一容器系统中的网络数据处理服务,确定出网络连接请求中的发送方地址与预存的分配给第一容器系统中应用的网络地址相一致时,确定网络连接请求的发送方为第一容器系统的应用,开启第一容器系统中预设的公网节点。
公网节点接入公网网络,向网络数据处理服务返回公网准用消息;网络数据处理服务向第一容器系统中发送网络连接请求的应用返回公网准用消息。
S208:第一容器系统中发送网络连接请求的应用通过公网节点与公共网络进行通信。
第一容器系统中发送网络连接请求的应用接收到公网准用消息后,调用网络数据处理服务,通过公网节点与公共网络进行通信。
具体地,第一容器系统中的应用将上行数据包发送至网络数据处理服务;由网络数据处理服务,通过本系统中的公网节点向公共网络发送该上行数据包;网络数据处理服务,通过公网节点接收公共网络下发的下行数据包后,转发至第一容器系统中的应用。
较佳地,由于第一容器系统具有控制本发明实施例的终端设备中的网络硬件的权限,因此第一容器系统中的应用与公共网络之间可以采用传统的通信方法,此处不再赘述。
上述步骤S206中,第二容器系统通过虚拟网络通道和第一容器系统向第二专用网络发送上行数据包的方法的流程示意图如图3所示,包括下述步骤:
S301:第二容器系统通过第二虚拟接口和网桥向第一虚拟接口发送上行数据包。
第二容器系统接收到专网准用消息后,将本系统中的第二虚拟接口的网络地址作为发送方地址、将预设的第二专用网络中的某一网络节点的网络地址作为目标方地址,携带于本系统的应用待发送的上行数据包中;将该上行数据包通过本系统中的第二虚拟接口、容器宿主系统中的网桥,向第一容器系统中的第一虚拟接口发送。
较佳地,第二容器系统将第二虚拟接口的网络地址作为发送方地址携带于上行数据包中;将上行数据包通过第二虚拟接口、网桥,向容器宿主系统发送;容器宿主系统从接收到的上行数据包中解析出作为发送方地址的第二虚拟接口的网络地址,查找出与解析出的第二虚拟接口的网络地址对应的第一虚拟接口的网络地址。
以及,容器宿主系统将上行数据包中发送方地址修改为第一虚拟接口的网络地址,将修改后的上行数据包向第一容器系统的第一虚拟接口发送。
或者,容器宿主系统将整个上行数据包作为数据包携带的数据内容,将第一虚拟接口的网络地址作为发送方地址,对上行数据包进行二次封装,向第一容器系统的第一虚拟接口发送。
S302:网络数据处理服务通过第一虚拟接口接收到上行数据包时,根据第二路由规则调用第二路由表,将接收到的上行数据包通过第二专网节点向第二专用网络发送。
第一容器系统中的网络数据处理服务通过第一虚拟接口(而不是其他接口)接收到上行数据包时,确定接收到第二容器系统发送的上行数据包。
具体地,网络数据处理服务通过第一虚拟接口接收到上行数据包时,解析出上行数据包中的发送方地址,与预存的第一虚拟接口和第二虚拟接口的网络地址、以及分配给第一容器系统中应用的网络地址进行比较。
网络数据处理服务确定比较结果为上行数据包中的发送方地址与预存的第一虚拟接口或者第二虚拟接口的网络地址相一致时,确定上行数据包的发送方为第二容器系统。
较佳地,网络数据处理服务通过第一虚拟接口接收到二次封装的上行数据包时,从中解析出发送方地址,与预存的第一虚拟接口和第二虚拟接口的网络地址、以及分配给第一容器系统中应用的网络地址进行比较。
网络数据处理服务确定比较结果为二次封装的上行数据包的发送方地址与预存的第一虚拟接口或者第二虚拟接口的网络地址相一致时,确定二次封装的上行数据包的发送方为第二容器系统。
网络数据处理服务确定出上行数据包的或二次封装的上行数据包的发送方为第二容器系统时,根据第二路由规则指定的内容调用第二路由表;根据第二路由表的内容,将接收到的第二容器系统的上行数据包通过第二专网节点向第二专用网络发送。
其中,第二路由规则中指定,调用第二路由表对来自第二容器系统的上行数据包(例如包括第一虚拟接口的网络地址的上行数据包)进行数据传输。第二路由表中记录了涉及第二专网节点的路由信息;例如,将来自第二容器系统(例如包括第一虚拟接口或第二虚拟接口的网络地址)的上行数据包发送至第二专网节点的路由信息、以及第二专网节点为发送方的路由信息。
较佳地,第二路由表中未记载涉及公网节点的路由信息,也未记载除了第一、二容器系统之外的其它容器系统对应的专网节点的路由信息。因此,第一容器系统以及除了第一、二容器系统之外的其它容器系统,都无法根据第二路由规则调用第二路由表,也无法根据第二路由表使用第二专网节点,相当于第二容器系统根据第二路由规则和第二路由表独占使用第二专网节点。可以保证第二容器系统通过虚拟网络通道和第二专网节点与第二专用网络进行通信的数据,不被侵入其他容器系统的恶意程序窃取,保证了第二容器系统的网络通信的安全性。
较佳地,网络数据处理服务将第二容器系统的上行数据包中的发送方地址和目标方地址转换为符合第二专用网络格式的地址后,根据第二路由规则指定的内容调用第二路由表;根据第二路由表的内容,将地址格式转换后的(即发送方地址和目标方地址已转换为符合第二专用网络格式的地址的)上行数据包,通过第二专网节点向第二专用网络发送。例如,第一虚拟接口可以利用NAT(Network Address Translation,网络地址转换)的方法,将上行数据包中的发送方地址和目标方地址转换为符合第二专用网络格式的地址。
网络数据处理服务在将第二容器系统的上行数据包中的发送方地址和目标方地址转换为符合第二专用网络格式的地址后,对于上行数据包中的同一地址(发送方地址或目标方地址),将格式转换前的符合虚拟网络通道格式的第一虚拟接口和/或第二虚拟接口的地址,与格式转换后的符合第二专用网络的地址对应记录。
下面介绍上述步骤S206中,第一容器系统接收到第二专网网络下发的下行数据包后通过虚拟网络通道向第二容器系统发送的方法,该方法的流程示意图如图4所示,包括下述步骤:
S401:网络数据处理服务通过第二专网节点接收到第二专用网络下发的下行数据包时,将所述下行数据包通过第一虚拟接口和所述网桥,向第二虚拟接口发送。
第一容器系统中的网络数据处理服务通过第二专网节点接收到第二专用网络下发的下行数据包时,从中解析出目标方地址;当确定解析出的下行数据包的目标方地址为第二虚拟接口或第一虚拟接口的网络地址时,将接收的下行数据包通过第一虚拟接口和网桥,向第二虚拟接口发送。
较佳地,网络数据处理服务对于第二专用网络下发的下行数据包,从中解析出符合第二专用网络格式的目标方地址。若从预先对应记录的符合虚拟网络通道格式的第一虚拟接口和/或第二虚拟接口的地址、与符合第二专用网络的地址中,查找出与解析出的目标方地址相对应的第一虚拟接口和/或第二虚拟接口的地址,说明接收到以第二容器系统为目标方(发送目标)的下行数据包。将接收的下行数据包中的目标方地址转换为符合虚拟网络通道格式的地址后,通过第一虚拟接口和网桥,向第二虚拟接口发送。
较佳地,网络数据处理服务将下行数据包中的目标方地址转换为符合虚拟网络通道格式的地址。当确定目标方地址为第二虚拟接口或第一虚拟接口的地址时,将目标方地址已转换为符合虚拟网络通道格式的地址的下行数据包,通过第一虚拟接口和网桥,向第二虚拟接口发送。
S402:第二容器系统通过第二虚拟接口接收下行数据包。
第二容器系统中的应用通过本系统中的第二虚拟接口接收上述下行数据包。该应用根据接收的下行数据包中的数据进行相应操作。
可以理解,第二容器系统通过如图4所示的方法,通过第一容器系统和虚拟网络通道接收第二专用网下发的下行数据包。
基于上述多系统的网络隔离共享方法,本发明实施例还提供了一种多系统的网络隔离共享装置,该装置设置于本发明实施例的终端设备中,该装置的内部结构的框架示意图如图5所示,包括:第一、二容器系统。
其中,第一容器系统包括:网络数据处理模块501、网络代理模块502和第二专网节点;第二容器系统包括:第二专网通信模块511。
其中,第二专网通信模块511用于通过预设的虚拟网络通道向第一容器系统发送网络连接请求;以及接收到第二专网准用消息后,通过虚拟网络通道与网络数据处理模块501进行通信。
网络数据处理模块501用于对接收到的网络连接请求的发送方进行检测;当检测出网络连接请求的发送方为第二容器系统时,将网络连接请求进行发送;将接收的网络代理模块502返回的第二专网准用消息,通过虚拟网络通道返回;以及通过第二专网节点与第二专用网络进行通信。
网络代理模块502用于接收到网络数据处理模块501发送的网络连接请求后,开启预设的第二专网节点;待第二专网节点接入第二专用网络后,生成第二专网准用消息并返回。
较佳地,如图5所示,本发明实施例的多系统的网络隔离共享装置,还包括:容器宿主系统。
容器宿主系统包括网桥;第一容器系统还包括第一虚拟接口;第二容器系统还包括:第二虚拟接口;虚拟网络通道包括:网桥及其连接的第一、二虚拟接口。
以及,网络代理模块502还用于生成第二路由表、第二路由规则和第二专网准用消息并返回。
网络数据处理模块501还用于接收到网络代理模块502返回的第二路由表、第二路由规则和第二专网准用消息后,将接收到的第二专网准用消息,通过虚拟网络通道返回。
第二专网通信模块511还用于通过第二虚拟接口和网桥向第一虚拟接口发送上行数据包。
网络数据处理模块501还用于通过第一虚拟接口接收到上行数据包时,根据第二路由规则调用第二路由表,将接收到的上行数据包通过第二专网节点向第二专用网络发送。
较佳地,网络数据处理模块501具体用于将上行数据包中的发送方地址和目标方地址转换为符合第二专用网络格式的地址后,根据第二路由规则调用第二路由表,将地址格式转换后的上行数据包通过第二专网节点向第二专用网络发送。
较佳地,网络数据处理模块501还用于通过第二专网节点接收到第二专用网络下发的下行数据包时,将下行数据包通过第一虚拟接口和网桥,向第二虚拟接口发送。
以及,第二专网通信模块511还用于通过第二虚拟接口接收下行数据包。
较佳地,网络数据处理模块501具体用于将下行数据包中的目标方地址转换为符合虚拟网络通道格式的地址;当确定目标方地址为第一虚拟接口的地址时,将目标方地址已转换为符合虚拟网络通道格式的地址的下行数据包,通过第一虚拟接口和网桥,向第二虚拟接口发送。
较佳地,如图5所示,本发明实施例的第一容器系统还包括:公网节点。
以及,网络数据处理模块501还用于当检测出网络连接请求的发送方为第一容器系统的应用时,开启第一容器系统中预设的公网节点,使得第一容器系统中发送网络连接请求的应用通过公网节点与公共网络进行通信。
上述第一容器系统中网络数据处理模块501、网络代理模块502,以及第二容器系统中的第二专网通信模块511功能的实现方法,可以参考上述如图2-4的流程步骤中的具体内容,此处不再赘述。
更优的,本领域技术人员可以根据实际需要,可以将本发明实施例中的第一、二容器系统分别设置为外域容器系统、内域容器系统。其中,内域容器系统是高安全系统,具有较高的安全度,主要负责处理用户的个人隐私数据及安全级别较高的数据(例如金融数据操作);外域容器系统是开放系统,主要用于用户安全级别较低的数据处理,满足用户生活娱乐需要,可以直接将现有的操作系统(例如第三方操作系统)作为外域容器系统。
需要指出的是,本发明实施例的上述技术方案虽然是以第一、二容器系统为例子进行的说明,但是实际上,本发明实施例的技术方案可以适用于包括第一容器系统在内的至少两个容器系统的终端设备。
例如,终端设备中包括上述第一容器系统和第N容器系统,容器宿主系统为第一容器系统、第N容器系统分别创建第(N+M)虚拟接口、和第(N+M+1)虚拟接口,以及对应的网桥,例如第(N+M)网桥;并将第(N+M)虚拟接口、第(N+M+1)虚拟接口分别设置于第一、N容器系统中。第一容器系统为第N容器系统在第一容器系统中预先创设第N专网节点、以及相应的第N路由表。使得第N容器系统可以通过本系统中的第(N+M+1)虚拟接口、容器宿主系统中对应的网桥、第一容器系统中的第(N+M)虚拟接口和第N专网节点接入第N专用网络进行通信。其中,N为大于2的正整数,M为自然数。
本发明实施例中,本发明实施例中,当第一容器系统中的网络数据处理服务,检测出网络连接请求来自第二容器系统时,调用网络代理服务开启第二专网节点;网络数据处理服务一方面与第二容器系统通过虚拟网络通道进行通信,另一方面通过第二专网节点与第二专用网络进行通信,相当于第二容器系统经过虚拟网络通道和网络数据处理服务的中转与第二专用网络进行通信;使得本发明实施例中的容器系统无论其处于前、后台状态,无论其是否具有网络硬件的访问权限,都可以实现其网络功能,给用户带来便利,可以提升用户的体验。而且,第二容器系统与指定的第二专用网络进行通信,可以保证第二容器系统的网络通信功能的安全性。
而且,本发明实施例中,当第一容器系统中的网络数据处理服务,检测出网络连接请求来自第一容器系统的应用时,开启公网节点;使得第一容器系统的应用的通过公网节点与公共网络进行通信。可见,本发明实施例中,第一、二容器系统可以共享同一套网络软硬件同时进行网络通信;而且第一、二容器系统分别接入公共网络、第二专用网络进行通信,使得第二容器系统与专用网络的通信不受公共网络的影响,可以保证第二容器系统的网络通信的安全性。
进一步,本发明实施例中,为第二容器系统设置专门的第二路由规则和第二路由表,第二路由规则中指定调用第二路由表对来自第二容器系统数据进行传输,第二路由表中包括将包括第一或第二虚拟接口的网络地址的数据发送至第二专网节点、以及以第二专网节点以发送方的路由信息。相当于,第一、二虚拟接口和第二专网节点及其之间的路径实际上被第二容器系统独占;即使恶意程序侵入了第一容器系统或者除第一、二容器系统之外的其它容器系统,也无法获知存在第二路由表、无法获取第二路由表的存放地址,无法分辨哪个文件为第二路由表,可以大大降低第二容器系统通过该路径进行传输的数据包被恶意程序非法截取的几率,进一步提升第二容器系统的网络通信的安全性。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。