CN111294316B - 基于用户态协议栈虚拟路由器的网络隔离方法和装置 - Google Patents

基于用户态协议栈虚拟路由器的网络隔离方法和装置 Download PDF

Info

Publication number
CN111294316B
CN111294316B CN201811496544.6A CN201811496544A CN111294316B CN 111294316 B CN111294316 B CN 111294316B CN 201811496544 A CN201811496544 A CN 201811496544A CN 111294316 B CN111294316 B CN 111294316B
Authority
CN
China
Prior art keywords
target
network card
isolation
isolation space
space
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
CN201811496544.6A
Other languages
English (en)
Other versions
CN111294316A (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201811496544.6A priority Critical patent/CN111294316B/zh
Publication of CN111294316A publication Critical patent/CN111294316A/zh
Application granted granted Critical
Publication of CN111294316B publication Critical patent/CN111294316B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Abstract

本发明公开了一种基于用户态协议栈虚拟路由器的网络隔离方法和装置,属于云计算技术领域。所述方法包括:当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,隔离空间私有表项至少包括路由表;针对每个隔离空间,通过隔离空间的隔离空间私有表项处理隔离空间对应的数据报文。本发明可以降低系统资源消耗。

Description

基于用户态协议栈虚拟路由器的网络隔离方法和装置
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于用户态协议栈虚拟路由器的网络隔离方法和装置。
背景技术
在云计算系统中,可以通过网络隔离技术,在一台网络设备中为多个用户分别对应设置一个隔离空间,各个用户的数据存储在对应的隔离空间中,并通过该隔离空间为用户提供各种服务。
虚拟路由器用于内网间或者内网与公网间的数据报文转发,当接收到数据报文后,虚拟路由器可以根据数据报文的目的IP,从预先设置的路由表中,选择对应的路由规则,将数据报文转发出去。在提供服务的过程中,虚拟路由器可以通过LXC、Jail等方法来实现不同用户的网络隔离,但是上述方法不能应用在基于DPDK等技术的用户态协议栈上。当面对大量不同用户时,需要为每个用户单独运行一个虚拟路由器,然而,同时启动和运行多个虚拟路由器会消耗大量的系统资源。因此,目前亟需一种基于用户态协议栈虚拟路由器的网络隔离方法,能够在用户态协议栈实现虚拟路由器的网络隔离,降低系统资源消耗。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于用户态协议栈虚拟路由器的网络隔离方法和装置。所述技术方案如下:
第一方面,提供了一种基于用户态协议栈虚拟路由器的网络隔离方法,系统中运行有多个用户态协议栈,所述方法包括:
当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表;
针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文。
进一步的,所述方法还包括:
将网卡与至少一个所述隔离空间建立关联,且对于所述每个用户态协议栈,每个所述网卡至多关联所述用户态协议栈对应的一个所述隔离空间,不同所述用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个所述网卡。
进一步的,所述针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文,包括:
在目标网卡接收到数据报文后,基于目标用户态协议栈确定所述目标网卡关联的隔离空间,并将所述数据报文发送到所述目标网卡关联的隔离空间;
根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理,包括:
通过所述目标网卡关联的隔离空间的路由表,确定所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标发送网卡标识和所述目标MAC地址,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述隔离空间私有表项还包括地址转换表,所述根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理,包括:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
在所述目标网卡关联的隔离空间的地址转换表中,查找所述数据报文的目的IP对应的地址转换信息;
根据所述目标发送网卡标识、所述目标MAC地址和所述地址转换信息,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述隔离空间私有表项还包括带宽控制表,所述根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理,包括:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标网卡关联的隔离空间的带宽控制表,确定所述目标发送网卡标识对应的当前带宽使用率;
根据所述当前带宽使用率,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述方法还包括:
加载添加有目标隔离空间的空间标识的隔离空间管理工具;
通过所述隔离空间管理工具,以共享内存的方式管理所述目标隔离空间的隔离空间私有表项。
第二方面,提供了一种基于用户态协议栈虚拟路由器的网络隔离装置,所述装置的系统中运行有多个用户态协议栈,所述装置包括:
设置模块,用于当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表;
处理模块,用于针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文。
进一步的,所述装置还包括:
绑定模块,用于将网卡与至少一个所述隔离空间建立关联,且对于所述每个用户态协议栈,每个所述网卡至多关联所述用户态协议栈对应的一个所述隔离空间,不同所述用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个所述网卡。
进一步的,所述处理模块,具体用于:
在目标网卡接收到数据报文后,基于目标用户态协议栈确定所述目标网卡关联的隔离空间,并将所述数据报文发送到所述目标网卡关联的隔离空间;
根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述处理模块,具体用于:
通过所述目标网卡关联的隔离空间的路由表中,确定所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标发送网卡标识和所述目标MAC地址,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述隔离空间私有表项还包括地址转换表,所述处理模块,具体用于:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
在所述目标网卡关联的隔离空间的地址转换表中,查找所述数据报文的目的IP对应的地址转换信息;
根据所述目标发送网卡标识、所述目标MAC地址和所述地址转换信息,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述隔离空间私有表项还包括带宽控制表,所述处理模块,具体用于:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标网卡关联的隔离空间的带宽控制表,确定所述目标发送网卡标识对应的当前带宽使用率;
根据所述当前带宽使用率,对所述数据报文执行所述虚拟路由器的业务处理。
进一步的,所述装置还包括:
加载模块,用于加载添加有目标隔离空间的空间标识的隔离空间管理工具;
管理模块,用于通过所述隔离空间管理工具,以共享内存的方式管理所述目标隔离空间的隔离空间私有表项。
第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的基于用户态协议栈虚拟路由器的网络隔离方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的基于用户态协议栈虚拟路由器的网络隔离方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表;针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文。这样,每个隔离空间中都有基于虚拟路由器的配置文件设置的隔离空间私有表项,网络设备可以通过不同隔离空间对不同用户的数据报文进行业务处理,相互之间互不干扰,从而在用户态协议栈上实现虚拟路由器的网络隔离,避免同时运行多个虚拟路由器,降低系统资源消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于用户态协议栈虚拟路由器的网络隔离方法的流程图;
图2是本发明实施例提供的一种基于用户态协议栈虚拟路由器的网络隔离装置的结构示意图;
图3是本发明实施例提供的一种基于用户态协议栈虚拟路由器的网络隔离装置的结构示意图;
图4是本发明实施例提供的一种基于用户态协议栈虚拟路由器的网络隔离装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种基于用户态协议栈虚拟路由器的网络隔离方法,该方法可以应用在云计算系统中安装了虚拟路由器的网络设备上,网络设备可以是安装有Linux等操作系统的服务器或其他设备,网络设备上设置有基于DPDK或其他技术的用户态协议栈,通过基于用户态协议栈的虚拟路由器,可以实现云计算系统中内网之间、内网和公网之间的数据报文传输。网络设备中可以包括处理器、存储器和收发器,处理器可以用于进行下述流程中的网络隔离方法,存储器可以用于存储下述处理过程中需要的数据及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。本实施例的应用场景可以是:基于虚拟路由器的配置文件,预先对网络设备上运行的每个用户态协议栈分别设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,在接收到数据报文后,网络设备就可以使用隔离空间的隔离空间私有表项处理该隔离空间对应的数据报文。
步骤101:当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项。
其中,隔离空间私有表项至少包括路由表,还可以包括地址转换表或带宽控制表。
在实施中,网络设备上安装有虚拟路由器,虚拟路由器可以基于网络设备的用户态协议栈执行包括路由查找、地址转换、带宽控制在内的各种业务处理。网络设备的Linux操作系统上可以运行有一个或多个用户态协议栈,每个用户态协议栈可以与一个CPU核实现一对一绑定。虚拟路由器首次启动或者故障重启时,可以进行初始化操作,此时,基于虚拟路由器的配置文件,网络设备可以为每个用户态协议栈分别设置一个或多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项。隔离空间私有表项至少包括路由表,还可以包括地址转换表或带宽控制表等。每个隔离空间都具备各自的私有空间地址,每个隔离空间的隔离空间私有表项相互独立。不同隔离空间的隔离空间私有表项可以完全相同、部分相同也可以完全不同,但是,每个隔离空间都设置有路由表,有些隔离空间还可以同时分配路由表和地址转换表、路由表和带宽控制表或者路由表、地址转换表和带宽控制表。网络设备为每个用户态协议栈设置隔离空间的具体数量,可以是管理人员在网络设备上预先设置的,也可以是网络设备根据上次虚拟路由器运行时使用的隔离空间的数量自动记录的。如果实际需求的隔离空间数量大于设置的隔离空间数量,还可以在虚拟路由器运行的过程中,随时增设隔离空间。
步骤102:针对每个隔离空间,通过隔离空间的隔离空间私有表项处理隔离空间对应的数据报文。
在实施中,在为每个隔离空间都设置好隔离空间私有表项后,当接收到数据报文时,网络设备就可以使用该数据报文对应的隔离空间在步骤101中被设置的隔离空间私有表项,对该数据报文进行相应的处理。
网络设备在基于用户态协议栈设置多个隔离空间后,还可以将隔离空间与虚拟路由器的网卡建立关联,这样,网络设备接收到的数据报文就可以直接发送到隔离空间等待处理,相应的处理可以如下:将网卡与至少一个隔离空间建立关联,且对于每个用户态协议栈,每个网卡至多关联该用户态协议栈对应的一个隔离空间,不同用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个网卡。
在实施中,在为系统运行的每个用户态协议栈设置完成多个隔离空间之后,网络设备还可以将虚拟路由器的网卡与隔离空间建立关联。每个网卡可以与至少一个隔离空间建立关联,由于系统可能同时运行有多个用户态协议栈,同一个用户态协议栈对应的每个隔离空间均具有不同的隔离空间标识,不同用户态协议栈对应的隔离空间可以具有相同隔离空间标识,故而,对于每个用户态协议栈,每个网卡至多只能关联该用户态协议栈对应的一个隔离空间;而不同用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个网卡。这样,通过网卡接收到的数据报文,就可以直接发送到与该网卡关联的隔离空间,而该隔离空间也可以通过该网卡将数据报文向外发送。可以理解的,与隔离空间建立关联的虚拟路由器的网卡,可以是物理网卡,也可以是虚拟网卡。
基于上述网卡绑定隔离空间的处理,可以通过网卡对应的隔离空间处理接收到的数据报文,相应的,步骤102的处理可以如下:在目标网卡接收到数据报文后,基于目标用户态协议栈确定目标网卡关联的隔离空间,并将数据报文发送到目标网卡关联的隔离空间;根据目标网卡关联的隔离空间的隔离空间私有表项,对数据报文执行虚拟路由器的业务处理。
在实施中,在为每个隔离空间都设置好隔离空间私有表项后,当接收到数据报文时,参考上文,网络设备可以通过接收该数据报文的网卡(以目标网卡为例),根据负载均衡规则或其他预设规则,确定处理该数据报文的用户态协议栈,然后,进一步从该用户态协议栈对应的所有隔离空间中,确定目标网卡关联的隔离空间;之后,根据该隔离空间的隔离空间私有表项,网络设备再对数据报文进行虚拟路由器的业务处理。
不同隔离空间可以设置有不同的隔离空间私有表项,根据不同的隔离空间私有表项,对数据报文执行虚拟路由器的业务处理也不相同,相应的,基于路由表对数据报文执行虚拟路由器的业务处理具体可以如下:通过目标网卡关联的隔离空间的路由表,确定数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;根据目标发送网卡标识和目标MAC地址,对数据报文执行虚拟路由器的业务处理。
在实施中,在步骤101中为目标网卡关联的隔离空间预先设置路由表作为该隔离空间的隔离空间私有表项。通过在隔离空间对数据报文进行格式分析,根据数据报文的格式及字段长度,网络设备可以确定数据报文的目的IP。网络设备从上述隔离空间的路由表中,查找上述目的IP对应的目标发送网卡标识,并确定数据报文的目标MAC地址,之后,网络设备进一步确定目标发送网卡,并将数据报文的目的MAC地址修改为目标MAC地址。完成上述操作后,就可以将数据报文通过目标发送网卡发送出去。可以理解的,网络设备也可以通过解封装数据报文得到数据报文的目的IP,相应的,在发送数据报文之前,就需要再对数据报文进行封装操作。
不同隔离空间可以设置有不同的隔离空间私有表项,根据不同的隔离空间私有表项,对数据报文执行虚拟路由器的业务处理也不相同,相应的,基于路由表和地址转换表对数据报文执行虚拟路由器的业务处理具体可以如下:在目标网卡关联的隔离空间的路由表中,查找数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;在目标网卡关联的隔离空间的地址转换表中,查找数据报文的目的IP对应的地址转换信息;根据目标发送网卡标识、目标MAC地址和地址转换信息,对数据报文执行虚拟路由器的业务处理。
在实施中,在步骤101中为目标网卡关联的隔离空间预先设置路由表和地址转换表作为该隔离空间的隔离空间私有表项。通过在隔离空间对数据报文进行格式分析,根据数据报文的格式及字段长度,网络设备可以确定数据报文的目的IP。网络设备从上述隔离空间的路由表中,查找上述目的IP对应的目标发送网卡标识,并确定数据报文的目标MAC地址,之后,网络设备进一步确定目标发送网卡。网络设备从上述隔离空间对应的地址转换表中,查找上述目的IP对应的地址转换信息,地址转换信息包括目标源IP、目标目的IP、目标源端口和目标目的端口。网络设备根据数据报文的目的IP可以从地址转换信息表中确定上述的一个或几个地址转换信息。最后,网络设备可以根据确定的目标MAC地址和地址转换信息,将数据报文的目的MAC地址修改成目标MAC地址,将数据报文中的源IP、目的IP、源端口和/或目的端口,修改成对应的目标源IP、目标目的IP、目标源端口和/或目标目的端口。可以理解的,地址转换表中也可能不存在数据报文的目的IP对应的地址转换信息,此时,只修改数据报文的目的MAC地址,不需要对其他信息进行修改。完成上述操作后,就可以将数据报文通过目标发送网卡发送出去。可以理解的,网络设备也可以通过解封装数据报文得到数据报文的目的IP,相应的,在发送数据报文之前,就需要再对数据报文进行封装操作。
不同隔离空间可以设置有不同的隔离空间私有表项,根据不同的隔离空间私有表项,对数据报文执行虚拟路由器的业务处理也不相同,相应的,基于路由表和带宽控制表对数据报文执行虚拟路由器的业务处理具体可以如下:在目标网卡关联的隔离空间的路由表中,查找数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;根据目标网卡关联的隔离空间的带宽控制表,确定目标发送网卡标识对应的当前带宽使用率;根据当前带宽使用率,对数据报文执行虚拟路由器的业务处理。
在实施中,在步骤101中为目标网卡关联的隔离空间预先设置路由表和带宽控制表作为该隔离空间的隔离空间私有表项。通过在隔离空间对数据报文进行格式分析,根据数据报文的格式及字段长度,网络设备可以确定数据报文的目的IP。网络设备从上述隔离空间的路由表中,查找上述目的IP对应的目标发送网卡标识,并确定数据报文的目标MAC地址,之后,网络设备进一步确定目标发送网卡。然后,网络设备继续从目标隔离空间的带宽控制表中,确定目标发送网卡标识对应的当前带宽使用率。如果当前带宽使用率小于预设的带宽阈值,网络设备将数据报文的目的MAC地址修改为目标MAC地址后,就可以将数据报文通过目标发送网卡发送出去;如果当前带宽使用率大于等于预设的带宽阈值,网络设备可以等待当前带宽使用率小于预设的带宽阈值时,再将数据报文的目的MAC地址修改为目标MAC地址后,然后将数据报文通过目标发送网卡发送出去,或者,网络设备可以根据预设路由规则,选择隔离空间的路由表中的其他目标发送网卡标识,重新确定目标发送网卡以及目标网卡标识对应的当前带宽使用率,或者,网络设备还可以直接丢弃该数据报文。
可选的,可以对隔离空间管理工具进行一定改造后,通过隔离空间管理工具管理隔离空间的隔离空间私有表项,相应的处理可以如下:加载添加有目标隔离空间的空间标识的隔离空间管理工具;通过隔离空间管理工具,以共享内存的方式管理目标隔离空间的隔离空间私有表项。
在实施中,可以对现有的适用于Linux内核级别的网络隔离技术的隔离空间管理工具(如ip、ifconfig等工具)进行改造,即在隔离空间管理工具中添加隔离空间的空间标识这一参数。这样,以目标隔离空间为例,网络设备可以加载添加有目标隔离空间的空间标识的隔离空间管理工具,然后通过该隔离空间管理工具,以共享内存的方式实现隔离空间管理工具与用户态协议栈的隔离空间的通讯,从而可以实现对目标隔离空间的隔离空间私有表项进行管理。
本发明实施例中,当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表;针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文。这样,每个隔离空间中都有基于虚拟路由器的配置文件设置的隔离空间私有表项,网络设备可以通过不同隔离空间对不同用户的数据报文进行业务处理,相互之间互不干扰,从而在用户态协议栈上实现虚拟路由器的网络隔离,避免同时运行多个虚拟路由器,降低系统资源消耗。
基于相同的技术构思,本发明实施例还提供了一种基于用户态协议栈虚拟路由器的网络隔离装置,装置的系统中运行有多个用户态协议栈,如图2所示,装置包括:
设置模块201,用于当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表。
处理模块202,用于针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文。
可选的,如图3所示,所述装置还包括:
绑定模块203,用于将网卡与至少一个隔离空间建立关联,且对于每个用户态协议栈,每个网卡至多关联所述用户态协议栈对应的一个所述隔离空间,不同用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个网卡。
可选的,所述处理模块202,具体用于:
在目标网卡接收到数据报文后,基于目标用户态协议栈确定所述目标网卡关联的隔离空间,并将所述数据报文发送到所述目标网卡关联的隔离空间;
根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理。
可选的,所述处理模块202,具体用于:
通过所述目标网卡关联的隔离空间的路由表中,确定所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标发送网卡标识和所述目标MAC地址,对所述数据报文执行所述虚拟路由器的业务处理。
可选的,所述隔离空间私有表项还包括地址转换表,所述处理模块202,具体用于:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
在所述目标网卡关联的隔离空间的地址转换表中,查找所述数据报文的目的IP对应的地址转换信息;
根据所述目标发送网卡标识、所述目标MAC地址和所述地址转换信息,对所述数据报文执行所述虚拟路由器的业务处理。
可选的,所述隔离空间私有表项还包括带宽控制表,所述处理模块202,具体用于:
在所述目标网卡关联的隔离空间对应的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识;
根据所述目标网卡关联的隔离空间的带宽控制表,确定所述目标发送网卡标识对应的当前带宽使用率和目标MAC地址;
根据所述当前带宽使用率,对所述数据报文执行所述虚拟路由器的业务处理。
可选的,如图4所示,所述装置还包括:
加载模块204,用于加载添加有目标隔离空间的空间标识的隔离空间管理工具;
管理模块204,用于通过所述隔离空间管理工具,以共享内存的方式管理所述目标隔离空间的隔离空间私有表项。
需要说明的是:上述实施例提供的基于用户态协议栈虚拟路由器的网络隔离装置在实现基于用户态协议栈虚拟路由器的网络隔离时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于用户态协议栈虚拟路由器的网络隔离装置与基于用户态协议栈虚拟路由器的网络隔离方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于相同的技术构思,本发明实施例还提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的基于用户态协议栈虚拟路由器的网络隔离方法。
基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述的基于用户态协议栈虚拟路由器的网络隔离方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.基于用户态协议栈虚拟路由器的网络隔离方法,其特征在于,系统中运行有多个用户态协议栈,所述方法包括:
当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个所述隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表,将网卡与至少一个所述隔离空间建立关联;
针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文,包括:在目标网卡接收到数据报文后,基于目标用户态协议栈确定所述目标网卡关联的隔离空间,并将所述数据报文发送到所述目标网卡关联的隔离空间;根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述每个用户态协议栈,每个所述网卡至多关联所述用户态协议栈对应的一个所述隔离空间,不同所述用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个所述网卡。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理,包括:
通过所述目标网卡关联的隔离空间的路由表,确定所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标发送网卡标识和所述目标MAC地址,对所述数据报文执行所述虚拟路由器的业务处理。
4.根据权利要求1所述的方法,其特征在于,所述隔离空间私有表项还包括地址转换表,所述根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理,包括:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
在所述目标网卡关联的隔离空间的地址转换表中,查找所述数据报文的目的IP对应的地址转换信息;
根据所述目标发送网卡标识、所述目标MAC地址和所述地址转换信息,对所述数据报文执行所述虚拟路由器的业务处理。
5.根据权利要求1所述的方法,其特征在于,所述隔离空间私有表项还包括带宽控制表,所述根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理,包括:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标网卡关联的隔离空间的带宽控制表,确定所述目标发送网卡标识对应的当前带宽使用率;
根据所述当前带宽使用率,对所述数据报文执行所述虚拟路由器的业务处理。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
加载添加有目标隔离空间的空间标识的隔离空间管理工具;
通过所述隔离空间管理工具,以共享内存的方式管理所述目标隔离空间的隔离空间私有表项。
7.基于用户态协议栈虚拟路由器的网络隔离装置,其特征在于,所述装置的系统中运行有多个用户态协议栈,所述装置包括:
设置模块,用于当虚拟路由器初始化时,基于虚拟路由器的配置文件为系统运行的每个用户态协议栈设置多个隔离空间,并为每个隔离空间设置独立的隔离空间私有表项,所述隔离空间私有表项至少包括路由表;
绑定模块,用于将网卡与至少一个所述隔离空间建立关联;
处理模块,用于针对每个隔离空间,通过所述隔离空间的隔离空间私有表项处理所述隔离空间对应的数据报文,具体用于:在目标网卡接收到数据报文后,基于目标用户态协议栈确定所述目标网卡关联的隔离空间,并将所述数据报文发送到所述目标网卡关联的隔离空间;根据所述目标网卡关联的隔离空间的隔离空间私有表项,对所述数据报文执行所述虚拟路由器的业务处理。
8.根据权利要求7所述的装置,其特征在于,所述绑定模块具体用于:
对于所述每个用户态协议栈,每个所述网卡至多关联所述用户态协议栈对应的一个所述隔离空间,不同所述用户态协议栈对应的具有相同隔离空间标识的隔离空间关联同一个所述网卡。
9.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于:
通过所述目标网卡关联的隔离空间的路由表,确定所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标发送网卡标识和所述目标MAC地址,对所述数据报文执行所述虚拟路由器的业务处理。
10.根据权利要求7所述的装置,其特征在于,所述隔离空间私有表项还包括地址转换表,所述处理模块,具体用于:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
在所述目标网卡关联的隔离空间的地址转换表中,查找所述数据报文的目的IP对应的地址转换信息;
根据所述目标发送网卡标识、所述目标MAC地址和所述地址转换信息,对所述数据报文执行所述虚拟路由器的业务处理。
11.根据权利要求7所述的装置,其特征在于,所述隔离空间私有表项还包括带宽控制表,所述处理模块,具体用于:
在所述目标网卡关联的隔离空间的路由表中,查找所述数据报文的目的IP对应的目标发送网卡标识和目标MAC地址;
根据所述目标网卡关联的隔离空间的带宽控制表,确定所述目标发送网卡标识对应的当前带宽使用率;
根据所述当前带宽使用率,对所述数据报文执行所述虚拟路由器的业务处理。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
加载模块,用于加载添加有目标隔离空间的空间标识的隔离空间管理工具;
管理模块,用于通过所述隔离空间管理工具,以共享内存的方式管理所述目标隔离空间的隔离空间私有表项。
13.一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-6任一项所述的基于用户态协议栈虚拟路由器的网络隔离方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-6任一项所述的基于用户态协议栈虚拟路由器的网络隔离方法。
CN201811496544.6A 2018-12-07 2018-12-07 基于用户态协议栈虚拟路由器的网络隔离方法和装置 Active CN111294316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811496544.6A CN111294316B (zh) 2018-12-07 2018-12-07 基于用户态协议栈虚拟路由器的网络隔离方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811496544.6A CN111294316B (zh) 2018-12-07 2018-12-07 基于用户态协议栈虚拟路由器的网络隔离方法和装置

Publications (2)

Publication Number Publication Date
CN111294316A CN111294316A (zh) 2020-06-16
CN111294316B true CN111294316B (zh) 2022-07-01

Family

ID=71022097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811496544.6A Active CN111294316B (zh) 2018-12-07 2018-12-07 基于用户态协议栈虚拟路由器的网络隔离方法和装置

Country Status (1)

Country Link
CN (1) CN111294316B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640627B (zh) * 2022-03-10 2024-02-20 网宿科技股份有限公司 报文转发方法及装置、非易失性存储介质、处理器
CN114697391B (zh) * 2022-04-08 2023-08-18 北京百度网讯科技有限公司 数据处理方法、装置、设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617327B1 (en) * 2003-03-17 2009-11-10 Network Equipment Technologies, Inc. Method and system for implementing external applications using remote socket application programming interface for virtual routers
WO2016206171A1 (zh) * 2015-06-26 2016-12-29 宇龙计算机通信科技(深圳)有限公司 一种基于网络隔离的安全连网方法及终端
CN106534182A (zh) * 2016-12-10 2017-03-22 武汉白虹软件科技有限公司 一种基于用户态协议栈的无痕网络取证方法
CN108566445A (zh) * 2018-03-15 2018-09-21 华为技术有限公司 一种报文传输方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617327B1 (en) * 2003-03-17 2009-11-10 Network Equipment Technologies, Inc. Method and system for implementing external applications using remote socket application programming interface for virtual routers
WO2016206171A1 (zh) * 2015-06-26 2016-12-29 宇龙计算机通信科技(深圳)有限公司 一种基于网络隔离的安全连网方法及终端
CN106534182A (zh) * 2016-12-10 2017-03-22 武汉白虹软件科技有限公司 一种基于用户态协议栈的无痕网络取证方法
CN108566445A (zh) * 2018-03-15 2018-09-21 华为技术有限公司 一种报文传输方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"协议栈并行化技术的研究与实现";王静;《中国优秀博硕士学位论文全文数据库(硕士)》;20160315;全文 *

Also Published As

Publication number Publication date
CN111294316A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
US10320683B2 (en) Reliable load-balancer using segment routing and real-time application monitoring
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
CN107046506B (zh) 一种报文处理方法、流分类器和业务功能实例
EP2747381B1 (en) Method, network device and system for implementing network card offloading function
CN112965824A (zh) 报文的转发方法及装置、存储介质、电子设备
US10693785B2 (en) Method and system for forwarding data, virtual load balancer, and readable storage medium
CN112040030B (zh) 报文传输方法、装置、计算机设备及存储介质
CN102857414A (zh) 一种转发表写入、报文转发方法及装置
CN110932890B (zh) 一种数据传输方法、服务器及计算机可读存储介质
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
CN1946061B (zh) 一种快速处理报文的方法及装置
WO2020108340A1 (zh) 分配转发域的方法、装置、存储介质及电子装置
CN111294316B (zh) 基于用户态协议栈虚拟路由器的网络隔离方法和装置
CN112929264B (zh) 业务流量传输方法、系统及网络设备
CN112242952B (zh) 一种数据转发方法、柜顶式交换机和存储介质
US9479438B2 (en) Link aggregation based on virtual interfaces of VLANs
CN111294293B (zh) 一种基于用户态协议栈的网络隔离方法和装置
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
US9749240B2 (en) Communication system, virtual machine server, virtual network management apparatus, network control method, and program
CN112671941A (zh) 报文处理方法、装置、设备及介质
KR101996337B1 (ko) 교환기 처리 방법, 제어기, 교환기 및 교환기 처리 시스템
CN106209634B (zh) 地址映射关系的学习方法及装置
CN114785733B (zh) 一种实现跨vpc网络流量转发中会话溯源的方法
EP4216510A1 (en) Method for acquiring address, apparatus and system
CN112787932B (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