CN114050992B - 多域系统的数据处理方法、装置和设备 - Google Patents

多域系统的数据处理方法、装置和设备 Download PDF

Info

Publication number
CN114050992B
CN114050992B CN202111223394.3A CN202111223394A CN114050992B CN 114050992 B CN114050992 B CN 114050992B CN 202111223394 A CN202111223394 A CN 202111223394A CN 114050992 B CN114050992 B CN 114050992B
Authority
CN
China
Prior art keywords
domain
network card
data
guest
virtual network
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
CN202111223394.3A
Other languages
English (en)
Other versions
CN114050992A (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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202111223394.3A priority Critical patent/CN114050992B/zh
Publication of CN114050992A publication Critical patent/CN114050992A/zh
Application granted granted Critical
Publication of CN114050992B publication Critical patent/CN114050992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种多域系统的数据处理方法、装置和设备,所述方法包括:获取客域中待处理数据对应的客域路由表;根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。本发明的技术方案可以实现主域和客域的网络设备类型的一致。

Description

多域系统的数据处理方法、装置和设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种多域系统的数据处理方法、装置和设备。
背景技术
相关技术中,为了扩展Linux操作系统的应用生态,可以通过Anbox等方案实现对Android应用的支持。在这类方案中,容器环境中的Android应用访问网络是利用网络NAT路由转发的方式实现的。
发明内容
本发明提供一种多域系统的数据处理方法、装置、电子设备和非暂态计算机可读存储介质,实现了主域和客域的网络设备类型一致。
第一方面,本发明提供一种多域系统的数据处理方法,包括:获取客域中待处理数据对应的客域路由表;根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
根据本发明提供一种的多域系统的数据处理方法,所述客域虚拟网卡包括客域无线虚拟网卡和/或客域有线虚拟网卡,对应地,所述主域物理网卡包括主域无线物理网卡和/或主域有线物理网卡,所述根据所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,包括:通过所述客域无线虚拟网卡对应的主域无线物理网卡发送所述待处理数据;或者,通过所述客域有线虚拟网卡对应的主域有线物理网卡发送所述待处理数据。
根据本发明提供一种的多域系统的数据处理方法,所述获取客域中待处理数据对应的客域路由表,包括:根据预配置的策略路由获取所述待处理数据对应的客域路由表,其中,所述策略路由用于为不同网络域配置不同的路由表。
根据本发明提供一种的多域系统的数据处理方法,所述方法还包括:获取主域系统中的主域数据对应的主域路由表;根据所述主域路由表获取所述主域数据所使用的链路的主域物理网卡;通过所述主域物理网卡发送所述主域数据。
根据本发明提供一种的多域系统的数据处理方法,所述方法还包括:获取所述客域虚拟网卡通过监听对应的主域物理网卡得到的网络状态;将所述网络状态更新为所述客域的网络状态。
根据本发明提供一种的多域系统的数据处理方法,所述主域为主域系统,所述客域为客域,所述方法还包括:获取客域中待处理数据对应的客域路由表;根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
根据本发明提供一种的多域系统的数据处理方法,所述方法还包括:获取所述客域虚拟网卡通过监听对应的主域物理网卡得到的数据包;根据所述数据包所属流的标记判断所述数据包是否需要所述客域虚拟网卡处理,以在需要时将所述数据包发送给所述客域虚拟网卡进行处理。
第二方面,本发明提供一种多域系统的数据处理装置,包括:第一获取单元,用于获取客域中待处理数据对应的客域路由表;第二获取单元,用于根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;发送单元,用于通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
根据本发明提供一种的多域系统的数据处理装置,所述客域虚拟网卡包括客域无线虚拟网卡和客域有线虚拟网卡,对应地,所述主域物理网卡包括主域无线物理网卡和主域有线物理网卡,所述发送单元用于:通过所述客域无线虚拟网卡对应的主域无线物理网卡发送所述待处理数据;或者,通过所述客域有线虚拟网卡对应的主域有线物理网卡发送所述待处理数据。
根据本发明提供一种的多域系统的数据处理装置,所述第一获取单元还用于:根据预配置的策略路由获取所述待处理数据对应的客域路由表,其中,所述策略路由用于为不同网络域配置不同的路由表。
根据本发明提供一种的多域系统的数据处理装置,所述第一获取单元还用于获取主域系统中的主域数据对应的主域路由表;所述第二获取单元还用于根据所述主域路由表获取所述主域数据所使用的链路的主域物理网卡;所述发送单元还用于通过所述主域物理网卡发送所述主域数据。
根据本发明提供一种的多域系统的数据处理装置,所述装置还包括:监听单元,用于获取所述客域虚拟网卡通过监听对应的主域物理网卡得到的网络状态;更新单元,用于将所述网络状态更新为所述客域的网络状态。
根据本发明提供一种的多域系统的数据处理装置,所述装置还包括接收单元,用于获取所述客域虚拟网卡通过监听对应的主域物理网卡得到的数据包,并根据所述数据包所属流的标记判断所述数据包是否需要所述客域虚拟网卡处理,以在需要时将所述数据包发送给所述客域虚拟网卡进行处理。
根据本发明提供一种的多域系统的数据处理装置,所述主域为Linux系统,所述客域为Android系统,所述第一获取单元还用于获取Android系统中待处理数据对应的Android路由表;所述第二获取单元还用于根据所述Android路由表获取所述待处理数据所使用的链路的Android虚拟网卡;所述发送单元还用于通过所述Android虚拟网卡对应的Linux物理网卡发送所述待处理数据,其中,所述Android虚拟网卡与对应的Linux物理网卡链接且网际互连协议IP地址相同。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述多域系统的数据处理方法的步骤。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述多域系统的数据处理方法的步骤。
本发明提供的多域系统的数据处理方法、装置、电子设备和非暂态计算机可读存储介质,通过在客域中设置与主域的主域物理网卡对应的客域虚拟网卡,并通过客域虚拟网卡和主域虚拟网卡发送待处理数据,解决了客域与主域网络设备类型不一致的问题,从而可以避免因为主域和客域网络设备类型不一致导致的用户损失。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明提供的多域系统的数据处理方法的流程示意图;
图2是本发明提供的Linux兼容Android系统的数据处理方法的流程示意图;
图3是本发明提供的Android系统与Linux系统网络状态同步方法的流程示意图;
图4是本发明提供的Android系统接收数据包的方法的流程示意图之一;
图5是本发明提供的Android系统接收数据包的方法的流程示意图之二;
图6是本发明提供的多域系统的数据处理装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
相关技术中,多域系统是包含至少两个域(domain),即至少一个主域和一个客域的系统。在包含主域和客域的多域系统中,存在主域和客域的网络设备类型不一致的情况。
例如,在主域为Linux系统,客域为Android系统时,可以采用Anbox实现Linux系统对Android系统的兼容,在Linux系统实现对Android系统兼容的方案中,采用网络命名空将两个系统的网络隔离,然后利用NAT路由转发的方式实现两个系统的兼容。
其中,Anbox是“Android in a box”的缩写。Anbox是一个基于容器的方法,采用Anbox方案可以在Linux系统上运行Android,而没有虚拟化的迟钝。这是因为核心的Android操作系统已经使用Linux网络命名空间放置到容器中了。Android容器不能直接访问到任何硬件,所有硬件的访问都是通过在主机上的守护进程进行的。每个应用程序像其它本地系统应用程序一样在一个单独窗口打开,并且可以显示在启动器中。
采用Anbox方案时,会出现Linux系统和Android系统的网络设备类型不一致的情况。Android系统的应用对于当前连接的不同的网络设备类型可能具有不同的处理方式。例如,在使用5G网络时,Android系统会提示用户正在使用5G网络提供服务,以及会产生额外费用,并请用户确认是否继续使用5G网络。如果Linux系统实际上使用的是5G网络,而Android系统认为自身使用的网络是以太网络,则Android系统的应用不会对用户进行相关提示,这样就会出现损害用户利益的情况。
如上所描述,仅为一种示例性描述,并不用于限制本发明的技术方案仅用于解决上述所描述的技术问题。
为了实现在主域系统中运行客域系统,通常有两种解决方案。一种是虚拟机的方案,通过Vmware、Virtual Box等为构建一套虚拟的硬件提供客域环境以支持操作系统的运行;另一种为基于Linux kernel发展的容器方案,通过LXC、LXD、Docker等容器技术实现部署客域操作系统环境。
无论上述何种方案,在发明人所知的技术中,均需要通过前述NAT路由转发的方式实现客域中的操作系统及其应用实现对真实物理网络的访问,会出现客域中的操作系统及其应用无法准确、及时获知主域中的操作系统真实物理网络环境的情况。
在下述实施例中,Android(安卓)系统,涵盖Google发行的Android OS以及AOSP和基于AOSP的各种衍生系统,如MIUI、EMUI、One UI等。
在下述实施例中,Linux系统,全称GNU/Linux操作系统,如Ubuntu、Debian、RedHat等。
在下述实施例中,客域和主域中的操作系统可以是同类型的,也可以是不同类型的,例如客域和主域中的操作系统可以均为Android或Linux,或者,客域和主域中的操作系统一者为Android,一者为Linux。
为解决该问题,本发明实施例提供一种多域系统的数据处理方法、装置、电子设备和非暂态计算机可读存储介质。
以下结合附图,详细说明本发明各实施例提供的技术方案。
如图1所示的是本发明实施例的多域系统的数据处理方法的流程图。本发明实施例提供的方法可以由任意具备计算机处理能力的电子设备执行,例如终端设备和/或服务器。如图1所示,该多域系统的数据处理方法包括:
步骤102,获取客域中待处理数据对应的客域路由表。
具体地,路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由表(routing table)或称RIB(Routing Information Base,路由择域信息库),是一个存储在路由器或者联网计算机中的电子表格或类数据库,路由表存储着指向特定网络地址的路径。客域路由表指的是客域网络流对应的客域的路由表。
步骤104,根据客域路由表获取待处理数据所使用的链路的客域虚拟网卡。
具体地,待处理数据所使用的链路可以为无线链路,也可以为有线链路。虚拟网卡又称虚拟网络适配器,其可以实现使用软件模拟网络环境。客域虚拟网卡指的是为客域系统进行网络适配的虚拟网络适配器。在本发明实施例中,无线链路和有线链路均对应有不同的客域虚拟网卡。客域虚拟网卡的路由生成在客域路由表中。
步骤106,通过客域虚拟网卡对应的主域物理网卡发送待处理数据,其中,客域虚拟网卡与对应的主域物理网卡链接且IP(Internet Protocol,网际互连协议)地址相同。
具体地,主域物理网卡是主域系统中的真实的网卡,也称为主域真实网卡。这里,真实的网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,其可以使得用户可以通过电缆或无线相互连接。通过客域虚拟网卡对应的主域物理网卡发送待处理数据时,待处理数据的数据包会到达当前使用链路的客域虚拟网卡,然后该客域虚拟网卡驱动再使用主域物理网卡的驱动将数据包发送出去。
本发明实施例的技术方案中,通过设置客域虚拟网卡,并将客域虚拟网卡与主域物理网卡对应链接,可以使得客域系统的网络设备类型与主域系统的网络设备类型一致,相比较现有技术,可以避免用户在使用客域系统时因为网络设备类型判断错误导致的额外损失。
在本发明的一些实施例中,主域可以为Linux系统,客域可以为Android系统,在进行数据处理时,可以获取Android系统中待处理数据对应的Android路由表,并根据Android路由表获取待处理数据所使用的链路的Android虚拟网卡,最后通过Android虚拟网卡对应的Linux物理网卡发送待处理数据,其中,Android虚拟网卡与对应的Linux物理网卡链接且网际互连协议IP地址相同。
在本发明实施例中,客域虚拟网卡可以包括客域无线虚拟网卡和客域有线虚拟网卡,对应地,主域物理网卡包括主域无线物理网卡和主域有线物理网卡,根据客域虚拟网卡对应的主域物理网卡发送待处理数据,包括:通过客域无线虚拟网卡对应的主域无线物理网卡发送待处理数据;或者,通过客域有线虚拟网卡对应的主域有线物理网卡发送待处理数据。
在一些实施例中,主域和客域分别为Linux系统和Android系统,如图2所示,Android虚拟网卡可以由Android系统创建,其可以为Android无线虚拟网卡231和/或Android有线虚拟网卡232。其中,Android无线虚拟网卡可以为Wi-Fi网卡、WWAN网卡(如4G或5G网卡),Android有线虚拟网卡可以为以太网卡,且都不局限于此。
Android虚拟网卡和相对应的Linux真实网卡的IP地址配置相同,Android虚拟网卡的路由生成在Android路由表,Linux物理网卡的路由生成在Linux路由表,Android路由表与Linux系统使用的Linux路由表不冲突。
具体地,每一个Android虚拟网卡与一个Linux物理网卡通过net dev link(网络物理接口链接)方式连接。这里,net dev link是Linux系统实现网络设备支持的一种方式。
如图2所示,与Android虚拟网卡相对应,Linux物理网卡包括Linux无线物理网卡241和/或Linux有线物理网卡242,其中,Linux无线物理网卡可以为Wi-Fi网卡、WWAN网卡(如4G或5G网卡),Linux有线物理网卡可以为以太网卡,且都不局限于此。Android无线虚拟网卡与Linux无线物理网卡通过net dev link方式链接,Android有线虚拟网卡与Linux有线物理网卡通过net dev link方式链接。
在一些实施例中,Android虚拟网卡可以为多个,例如两个不同的Android无线虚拟网卡,对应的,Linux物理网卡可以对应设置。
在待处理数据使用的链路为无线链路时,待处理数据使用的链路对应的Android虚拟网卡为Android无线虚拟网卡。这时,通过Android无线虚拟网卡对应的Linux无线物理网卡发送待处理数据。
在待处理数据使用的链路为有线链路时,待处理数据使用的链路对应的Android虚拟网卡为Android有线虚拟网卡。这时,通过Android有线虚拟网卡对应的Linux有线物理网卡发送待处理数据。
在本发明实施例中,可以根据预配置的策略路由获取待处理数据对应的客域路由表,其中,策略路由用于为不同网络域配置不同的路由表。
在主域和客域分别为Linux系统和Android系统时,可以通过配置策略路由使得Android系统和Linux网络使用不同的路由表,从而实现Android网络和Linux网络的区分。策略路由是指对数据包的理由过程中以预先设定的策略为依据进行路由。策略路由的配置内容包括处于不同网络域的Android路由表和Linux路由表。Android路由表和Linux路由表可以设置在一个总的策略路由表中。
这样,Linux系统和Android系统的网络不做网络命名空间的隔离,而是通过策略路由划分出Linux系统和Android系统的网络域,通过不同的路由表实现网络区分,在此基础上,通过Android虚拟网卡与Linux物理网卡的对应链接,实现了Android系统与Linux系统的网络设备类型的一致。
在本发明实施例中,可以获取主域系统中的主域数据对应的主域路由表;根据主域路由表获取主域数据所使用的链路的主域物理网卡;通过主域物理网卡发送主域数据。
在一些实施例中,主域和客域分别为Linux系统和Android系统,如图2所示,在对Linux系统的Linux应用程序211的数据进行处理时,需要获取Linux系统中的Linux数据对应的Linux路由表212,并根据Linux路由表获取Linux数据所使用的链路的Linux物理网卡;之后通过Linux物理网卡发送Linux数据。具体地,通过该Linux路由表,会直接找到Linux真实网卡,相关的数据包会直接从Linux真实网卡发送出去。
在对Android系统的Android应用程序221的数据进行处理时,过Android系统使用Android路由表222,数据包会到达当前使用链路的Android虚拟网卡,然后该Android虚拟网卡驱动再使用其对应的Linux真实网卡的驱动将数据包发送出去。
在现有技术中,采用NAT方案时,Linux系统的真实网络状态的变化无法及时反馈到Android系统。具体地,在采用NAT方案时,假如Linux系统网络断开,Android系统仅仅显示为网络路由不可达,并不显示网络状态断开。
在本发明实施例中,可以将主域和客域进行网络状态的同步。具体地,可以获取客域虚拟网卡通过监听对应的主域物理网卡得到的网络状态;将网络状态更新为客域的网络状态。
在一些实施例中,主域和客域分别为Linux系统和Android系统,可以将Android系统与Linux系统进行网络状态的同步。如图3所示,将Android系统与Linux系统进行网络状态同步的方法包括以下步骤:
步骤302,可以获取Android虚拟网卡通过监听对应的Linux物理网卡得到的网络状态。
步骤304,将网络状态更新为Android系统的网络状态。
具体地,Android虚拟网卡可以通过监听lower net dev(下级网络物理接口)的网络状态。作为虚拟设备,Android虚拟网卡是通过链接到真实网络设备创建生成的,因此Android虚拟网卡的下级网络物理接口就是真实网络设备即Linux物理网卡,从而可以同步Linux物理网卡的状态变化。这样就可以实现Linux网络状态与Android系统的网络状态一致。
在本发明实施例中,可以获取客域虚拟网卡通过监听对应的主域物理网卡得到的数据包;根据数据包所属流的标记判断数据包是否需要客域虚拟网卡处理,以在需要时将数据包发送给客域虚拟网卡进行处理。
在一些实施例中,主域和客域分别为Linux系统和Android系统,通过Android虚拟网卡对对应的Linux物理网卡的监听,还可以得到Android系统发送待处理数据后得到的返回数据,从而实现Android系统的应用与Linux系统的外部的数据交互。具体地,可以获取Android虚拟网卡通过监听对应的Linux物理网卡得到的数据包,并根据数据包所属流的标记判断数据包是否需要Android虚拟网卡处理,以在需要时将数据包发送给Android虚拟网卡进行处理。
具体地,如图4所示,可以通过dev link(物理接口链接)机制中的虚拟网卡配置的rx_handler 412,在Linux物理网卡411接收数据包时截获处理上述返回数据。
rx_handler在处理过程中,首先判断是否是IP包,如果不是IP包直接交由物理网卡处理。如果是IP包则解出数据包IP头,根据数据包特征通过查找conntrack(链接跟踪)流表,得到本数据包所属流的fwmark(标记)值。
如果判断fwmark值需要Android虚拟网卡413处理,则数据所属的net dev(网络物理接口)修改为虚拟网卡。然后将该数据包交由Android虚拟网卡处理,并最终由Android进程415处理。如果判断fwmark值不需要虚拟网卡处理,则该数据包会送到IP协议栈414,最终由Linux进程416处理。
该实现方法存在一定的性能损失,在rx_handler这个钩子处理函数中需要解数据包头等操作,并且增加了conntrack查表操作。
此外,如图5所示,还有一种实现方法可以截获处理上述返回数据。具体地,在IP层的Linux物理网卡511的数据包接收处,增加虚拟设备配置接收钩子函数。对于Android域,仅需要支持IP协议即可。因此在预路由(pre-routing)512后,进入IP协议栈前,可以增加一个虚拟设备配置的L3 Hook钩子函数。这样,数据包首先到达物理网卡,然后送入预路由处理。在pre-routing的iptables配置中,在此可以根据conntrack流,将数据包打上fwmark值。之后,进入L3 Hook钩子函数,在本函数中会执行步骤513,使用钩子函数处理数据,即检查数据包所属流的标记即fwmark值。在步骤514中,判断标记是否属于Android域。如果值不属于Android域,则数据包直接送到IP协议栈517,然后由Linux进程519接收处理。如果fwmark值属于Android域,则执行步骤515,修改数据包的网络物理接口为Android虚拟网卡。即将数据包的net dev替换为Android域的虚拟网卡。然后再进入虚拟网卡的预路由516处理。数据包下一步进入协议栈,然后由Android进程518接收处理。
在步骤102中,获取待处理数据对应的Android路由表时,可以基于待处理数据的目标IP地址获取Android路由表,也可以基于待处理数据的数据包所属流的标记获取该Android路由表。具体的,可以为待处理数据设置待处理数据的数据包所属流的标记,以基于待处理数据的数据包所属流的标记获取对应的Android路由表。
Linux策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。它能根据配置对数据包打上标识,使得在查询路由表时,可根据打上的标识优先查找特定的路由表,而不是查找默认的路由表转发,并以此来达到对数据包的灵活分类转发。
可以理解的是,Linux最多可以支持255张路由表,其中有3张表是内置的,即本地路由表(Local table)、主路由表(Main table)和默认路由表(Default table)。
这里,基于待处理的目标IP地址以及基于待处理数据的数据包所属流的标记获取Android路由表,均属于根据Linux的策略性理由机制预先设定的策略。Linux是在内核2.1开始采用策略性路由机制的。策略性路由机制与传统的路由算法相比主要是引入了多路由表以及规则的概念。
系统根据满足路由策略条件来指定由哪个路由表来路由,多个策略可以指向同一个路由表。
在一种策略路由的配置过程中,可以建立以下路由策略:
ip route flush table 100
ip rule add fwmark 100lookup 100
ip route add default via 192.168.11.1dev eno2 proto static table 100
ip route flush cache
该代码中,192.168.11.1为接口eno2的网关地址。此时默认表中default路由指向接口eno2之外的其它接口,在新建的100号表中,default路由指向eno2。通过该ip rule,符合fwmark=100的数据包用100号表进行处理。这里,fwmark即为数据包所属流的标记,因此在数据包所属流的标记为100时,使用100号路由表进行处理。
使用Linux的ip rule命令可以添加ip rule规则。需要说明的是,ip rule可以用自然语言描述规则,例如可以指定这样的规则:规则一:“所有来自192.16.152.24的IP包,使用路由表10,本规则的优先级别是1500”。规则二:“所有的包,使用路由表253,本规则的优先级别是32767”。可以看出,规则包含3个要素:什么样的包,将应用本规则;符合本规则的包将对其采取什么动作,例如用哪个路由表;以及本规则的优先级。
在一种基于网络设备物理接口的策略路由的配置中,可以建立以下路由策略:
#ip rule add dev eth0 table route5 prio 14
#ip rule add dev eth1 table route6 prio 15
在以上代码中,当数据包是从物理接口eth0进入时,则用route5路由表进行处理;从物理接口eth1进入的数据包则用route6路由表进行处理。
本发明实施例的多域系统的数据处理方法,通过在客域中设置与主域的主域物理网卡对应的客域虚拟网卡,并通过客域虚拟网卡和主域虚拟网卡发送待处理数据,解决了客域与主域网络设备类型不一致的问题,从而可以避免因为主域和客域网络设备类型不一致导致的用户损失。
下面对本发明提供的多域系统的数据处理装置进行描述,下文描述的多域系统的数据处理装置与上文描述的多域系统的数据处理方法可相互对应参照。
如图5所示,本发明实施例提供的多域系统的数据处理装置包括:
第一获取单元502,用于获取客域中待处理数据对应的客域路由表。
第二获取单元504,用于根据客域路由表获取待处理数据所使用的链路的客域虚拟网卡。
发送单元506,用于通过客域虚拟网卡对应的主域物理网卡发送待处理数据,其中,客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
本发明实施例的技术方案中,通过设置客域虚拟网卡,并将客域虚拟网卡与主域物理网卡对应链接,可以使得客域系统的网络设备类型与主域系统的网络设备类型一致,相比较现有技术,可以避免用户在使用客域系统时因为网络设备类型判断错误导致的额外损失。
在本发明实施例中,客域虚拟网卡包括客域无线虚拟网卡和客域有线虚拟网卡,对应地,主域物理网卡包括主域无线物理网卡和主域有线物理网卡,发送单元用于:通过客域无线虚拟网卡对应的主域无线物理网卡发送待处理数据;或者,通过客域有线虚拟网卡对应的主域有线物理网卡发送待处理数据。
在本发明实施例中,第一获取单元还用于:根据预配置的策略路由获取待处理数据对应的客域路由表,其中,策略路由用于为不同网络域配置不同的路由表。
其中,客域虚拟网卡和相对应的主域真实网卡的IP地址配置相同,客域虚拟网卡的路由生成在客域路由表,该客域路由表与主域系统使用的主域路由表不冲突。
通过配置策略路由使得客域系统和主域网络使用不同的路由表,从而实现客域网络和主域网络的区分。策略路由是指对数据包的理由过程中以预先设定的策略为依据进行路由。具体地,策略路由配置内容包括处于不同网络域的客域路由表和主域路由表。客域路由表和主域路由表可以设置在一个总的策略路由表中。
在本发明实施例中,第一获取单元还用于获取主域系统中的主域数据对应的主域路由表;第二获取单元还用于根据主域路由表获取主域数据所使用的链路的主域物理网卡;发送单元还用于通过主域物理网卡发送主域数据。
在本发明实施例中,装置还包括:监听单元,用于获取客域虚拟网卡通过监听对应的主域物理网卡得到的网络状态;更新单元,用于将网络状态更新为客域系统的网络状态。
具体地,客域虚拟网卡可以通过监听lower net dev(下级网络物理接口)的网络状态。作为虚拟设备,客域虚拟网卡是通过链接到真实网络设备创建生成的,因此客域虚拟网卡的lower net device就是真实网络设备即主域物理网卡,从而可以同步主域物理网卡的状态变化。这样就可以实现主域网络状态与Android系统的网络状态一致。
在本发明实施例中,装置还包括接收单元,用于获取客域虚拟网卡通过监听对应的主域物理网卡得到的数据包,并根据数据包所属流的标记判断数据包是否需要客域虚拟网卡处理,以在需要时将数据包发送给客域虚拟网卡进行处理。
在本发明实施例中,主域可以为Linux系统,客域可以为Android系统,第一获取单元还用于获取Android系统中待处理数据对应的Android路由表;第二获取单元还用于根据Android路由表获取待处理数据所使用的链路的Android虚拟网卡;发送单元还用于通过Android虚拟网卡对应的Linux物理网卡发送待处理数据,其中,Android虚拟网卡与对应的Linux物理网卡链接且网际互连协议IP地址相同。
在本发明实施例中,获取待处理数据对应的Android路由表时,第一获取单元还可以基于待处理数据的目标IP地址获取Android路由表,也可以基于待处理数据的数据包所属流的标记获取该Android路由表。具体的,可以为待处理数据设置待处理数据的数据包所属流的标记,以基于待处理数据的数据包所属流的标记获取对应的Android路由表。
这里,基于待处理的目标IP地址以及基于待处理数据的数据包所属流的标记获取Android路由表,均属于根据Linux的策略性理由机制预先设定的策略。系统可以根据满足路由策略条件来指定由哪个路由表来路由,多个策略可以指向同一个路由表。
能够理解,上述多域系统的数据处理装置,能够实现前述实施例中提供的多域系统的数据处理方法的各个步骤,关于多域系统的数据处理方法的相关阐释均适用于多域系统的数据处理装置,此处不再赘述。
本发明实施例的多域系统的数据处理装置,通过在客域中设置与主域的主域物理网卡对应的客域虚拟网卡,并通过客域虚拟网卡和主域虚拟网卡发送待处理数据,解决了客域与主域网络设备类型不一致的问题,从而可以避免因为主域和客域网络设备类型不一致导致的用户损失。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行多域系统的数据处理方法,该方法包括:获取客域中待处理数据对应的客域路由表;根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的多域系统的数据处理方法,该方法包括:获取客域中待处理数据对应的客域路由表;根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的多域系统的数据处理方法,该方法包括:获取客域中待处理数据对应的客域路由表;根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种多域系统的数据处理方法,其特征在于,包括:
获取客域中待处理数据对应的客域路由表;
根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;
通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同;所述通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,包括:
响应于所述待处理数据到达所述客域虚拟网卡,通过所述客域虚拟网卡的驱动使用主域物理网卡的驱动发送所述待处理数据;
其中,主域和客域操作系统为不同类型,客域虚拟网卡与对应的主域物理网卡相链接,且主域物理网卡的网络配置与客域虚拟网卡的网络配置不同。
2.根据权利要求1所述的方法,其特征在于,所述客域虚拟网卡包括客域无线虚拟网卡和客域有线虚拟网卡,对应地,所述主域物理网卡包括主域无线物理网卡和主域有线物理网卡,所述根据所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,包括:
通过所述客域无线虚拟网卡对应的主域无线物理网卡发送所述待处理数据;或者,
通过所述客域有线虚拟网卡对应的主域有线物理网卡发送所述待处理数据。
3.根据权利要求1所述的方法,其特征在于,所述获取客域中待处理数据对应的客域路由表,包括:根据预配置的策略路由获取所述待处理数据对应的客域路由表,其中,所述策略路由用于为不同网络域配置不同的路由表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取主域系统中的主域数据对应的主域路由表;
根据所述主域路由表获取所述主域数据所使用的链路的主域物理网卡;
通过所述主域物理网卡发送所述主域数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述客域虚拟网卡通过监听对应的主域物理网卡得到的网络状态;
将所述网络状态更新为所述客域的网络状态。
6.根据权利要求1所述的方法,其特征在于,主域为Linux系统,所述客域为Android系统,所述方法还包括:
获取Android系统中待处理数据对应的Android路由表;
根据所述Android路由表获取所述待处理数据所使用的链路的Android虚拟网卡;
通过所述Android虚拟网卡对应的Linux物理网卡发送所述待处理数据,其中,所述Android虚拟网卡与对应的Linux物理网卡链接且网际互连协议IP地址相同。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述客域虚拟网卡通过监听对应的主域物理网卡得到的数据包;
根据所述数据包所属流的标记判断所述数据包是否需要所述客域虚拟网卡处理,以在需要时将所述数据包发送给所述客域虚拟网卡进行处理。
8.一种多域系统的数据处理装置,其特征在于,包括:
第一获取单元,用于获取客域中待处理数据对应的客域路由表;
第二获取单元,用于根据所述客域路由表获取所述待处理数据所使用的链路的客域虚拟网卡;
发送单元,用于通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,其中,所述客域虚拟网卡与对应的主域物理网卡链接且网际互连协议IP地址相同;所述通过所述客域虚拟网卡对应的主域物理网卡发送所述待处理数据,包括:
响应于所述待处理数据到达所述客域虚拟网卡,通过所述客域虚拟网卡的驱动使用主域物理网卡的驱动发送所述待处理数据;
其中,主域和客域操作系统为不同类型,客域虚拟网卡与对应的主域物理网卡相链接,且主域物理网卡的网络配置与客域虚拟网卡的网络配置不同。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202111223394.3A 2021-10-20 2021-10-20 多域系统的数据处理方法、装置和设备 Active CN114050992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111223394.3A CN114050992B (zh) 2021-10-20 2021-10-20 多域系统的数据处理方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111223394.3A CN114050992B (zh) 2021-10-20 2021-10-20 多域系统的数据处理方法、装置和设备

Publications (2)

Publication Number Publication Date
CN114050992A CN114050992A (zh) 2022-02-15
CN114050992B true CN114050992B (zh) 2023-08-29

Family

ID=80205708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111223394.3A Active CN114050992B (zh) 2021-10-20 2021-10-20 多域系统的数据处理方法、装置和设备

Country Status (1)

Country Link
CN (1) CN114050992B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594690A (zh) * 2012-02-23 2012-07-18 重庆广用通信技术有限责任公司 多路以太网、PPPoE网络混合传输通道中的地址借用方法
CN102611607A (zh) * 2011-01-21 2012-07-25 中兴通讯股份有限公司 域间链路信息的处理方法及路径计算单元
CN111030980A (zh) * 2019-08-09 2020-04-17 哈尔滨安天科技集团股份有限公司 一种Linux透明网络设备平台实现方法、装置及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441017B2 (en) * 2001-06-29 2008-10-21 Thomas Lee Watson System and method for router virtual networking
US7965714B2 (en) * 2008-02-29 2011-06-21 Oracle America, Inc. Method and system for offloading network processing
CN101645873B (zh) * 2008-08-07 2012-08-22 联想(北京)有限公司 一种计算机以及虚拟机环境中实现网络隔离的方法
CN101409714A (zh) * 2008-11-18 2009-04-15 华南理工大学 一种基于虚拟机的防火墙系统
US9201704B2 (en) * 2012-04-05 2015-12-01 Cisco Technology, Inc. System and method for migrating application virtual machines in a network environment
US9621968B2 (en) * 2013-11-11 2017-04-11 Infinera Corporation Multi layer, multi vendor, multi domain, applications for software defined networking enabled networks
CN105430110A (zh) * 2015-10-30 2016-03-23 浪潮(北京)电子信息产业有限公司 一种虚拟网络系统的容器配置方法及网络传输装置
CN106685860B (zh) * 2015-11-06 2020-09-11 阿里巴巴集团控股有限公司 网络虚拟化方法及设备
CN106789931B (zh) * 2016-11-29 2020-05-19 北京元心科技有限公司 多系统的网络隔离共享方法及装置
EP3883214B1 (en) * 2020-03-20 2023-09-06 Mitsubishi Electric R&D Centre Europe B.V. A method for implementing an industrial communication gateway

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611607A (zh) * 2011-01-21 2012-07-25 中兴通讯股份有限公司 域间链路信息的处理方法及路径计算单元
CN102594690A (zh) * 2012-02-23 2012-07-18 重庆广用通信技术有限责任公司 多路以太网、PPPoE网络混合传输通道中的地址借用方法
CN111030980A (zh) * 2019-08-09 2020-04-17 哈尔滨安天科技集团股份有限公司 一种Linux透明网络设备平台实现方法、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘百峰等.《Linux操作系统教程》.北京理工大学出版社,2016,正文第150-152页. *

Also Published As

Publication number Publication date
CN114050992A (zh) 2022-02-15

Similar Documents

Publication Publication Date Title
US11003480B2 (en) Container deployment method, communication method between services, and related apparatus
US20210168072A1 (en) Universal Customer Premise Equipment
US11374899B2 (en) Managing network connectivity between cloud computing service endpoints and virtual machines
CN106850324B (zh) 虚拟网络接口对象
US9407600B2 (en) Service access method and device for conducting the same
CN109802985A (zh) 数据传输方法、装置、设备及可读取存储介质
US11032369B1 (en) System and method for non-disruptive migration of software components to a public cloud system
US20170359198A1 (en) Non-transitory computer-readable storage medium, communication control method, and communication control device
US10033631B1 (en) Route distribution for service appliances
CN109240796A (zh) 虚拟机信息获取方法及装置
CN107547665A (zh) 一种dhcp地址分配的方法、设备及系统
US11558246B2 (en) Implementing service function chains
US10103995B1 (en) System and method for automated policy-based routing
CN113176930A (zh) 一种容器内虚拟机的浮动地址管理方法及系统
JP2021019348A (ja) ユーザの要求に基づいて効率的にネットワークを管理するためのトラフィック管理方法及び装置
US20190334862A1 (en) Seamless Network Characteristics For Hardware Isolated Virtualized Environments
CN114050992B (zh) 多域系统的数据处理方法、装置和设备
CN107210934B (zh) 分布式网关
CN110830598B (zh) Bgp会话建立、发送接口地址和别名的方法及网络设备
CN113709016B (zh) 通信系统以及通信方法、装置、设备和存储介质
CN109218415B (zh) 一种分布式节点管理的方法、节点及存储介质
JP2012203421A (ja) 情報処理方法、管理サーバおよび管理プログラム
CN116915585B (zh) 软件定义的广域网组网方法、装置、电子设备及存储介质
CN116055312A (zh) 虚拟化平台的融合方法、装置、设备及存储介质
US20190250907A1 (en) Techniques for simplified service modification utilizing a split design-assign framework

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220330

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Address before: 2005, floor 2, No. 39, West Street, Haidian District, Beijing 100082

Applicant before: Beijing jingling Information System Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant