CN107682300A - 确定安全组规则链的方法和装置 - Google Patents

确定安全组规则链的方法和装置 Download PDF

Info

Publication number
CN107682300A
CN107682300A CN201610622199.0A CN201610622199A CN107682300A CN 107682300 A CN107682300 A CN 107682300A CN 201610622199 A CN201610622199 A CN 201610622199A CN 107682300 A CN107682300 A CN 107682300A
Authority
CN
China
Prior art keywords
title
virtual port
node
matched
character
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.)
Granted
Application number
CN201610622199.0A
Other languages
English (en)
Other versions
CN107682300B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610622199.0A priority Critical patent/CN107682300B/zh
Publication of CN107682300A publication Critical patent/CN107682300A/zh
Application granted granted Critical
Publication of CN107682300B publication Critical patent/CN107682300B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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

Landscapes

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

Abstract

本发明实施例提供了一种确定安全组规则链的方法和装置,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。该方法包括:确定待匹配虚拟端口名称,该待匹配虚拟端口名称包括M个字符;根据该待匹配虚拟端口名称,确定查询树,该查询树的根节点的名称与该待匹配虚拟端口名称的N个字符相同;从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,该第一叶子节点对应至少一个虚拟端口的名称;在该至少一个虚拟端口的名称中,确定与该待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;获取该目标虚拟端口名称对应的目标安全组规则链。

Description

确定安全组规则链的方法和装置
技术领域
本发明实施例涉及计算机领域,更具体地,涉及确定安全组规则链的方法和装置。
背景技术
虚拟机是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。每个虚拟机可 运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显 著提高计算机的工作效率。安全组是一些规则的集合,用来对进出虚拟机的报文加以限制。 例如,Linux操作系统采用安全组规则,实现了对数据包进行过滤的功能,即Linux防火墙, 它由netfilter组件和iptables组件两部分组成。netfilter组件也称为内核空间,是内核 的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的安全组 规则链,安全组规则链中包括用户设置的过滤规则,用于对数据包进行过滤操作。iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的安全组规则变 得容易。
在现有的云计算管理平台,例如,在Openstack中,在计算节点上为每个虚拟机的虚拟网卡创建了Linux网桥,将和虚拟网卡相连的虚拟端口挂接在Linux网桥上,通过一个veth虚拟网络设备对连接到虚拟交换机上。安全组规则作用在Linux网桥的虚拟端口上,对进出与该虚拟端口对应的虚拟机的报文进行过滤。每个虚拟端口配置有自身的安全组规则链,安全组规则链中包括用于过滤报文的至少一个安全组规则。但对于一台计算机而言,安全组规则链统一存放在主机中,因此,在对进出某个虚拟端口的数据包进行过滤时,需要从主机中的所有安全组规则链中确定出与该虚拟端口对应的安全组规则链。
现有的确定安全组规则链的方法,采用顺序匹配的方式,依次查找主机中存储的安全组规则链,从中确定出于目标虚拟端口名称相匹配的安全组规则链。但是,这样的方式效率比较低,当计算节点上存在较多虚拟端口的时候,会严重影响系统的性能。
发明内容
有鉴于此,本发明实施例提供了一种确定安全组规则链的方法和装置,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
第一方面,提供了一种确定安全组规则链的方法,包括:确定待匹配虚拟端口名称,该待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,该待匹配虚拟端口名称包括M个字符;根据该待匹配虚拟端口名称,确定查询树,该查询树的根节点的名称与该待匹配虚拟端口名称的N个字符相同;从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,该第一叶子节点的名称为包括该N个字符的P个字符,该第一叶子节点对应至少一个虚拟端口的名称,该P个字符为该至少一个虚拟端口的名称中的公共字符;在该至少一个虚拟端口的名称中,对该待匹配虚拟端口名称的全部字符进行匹配,确定与该待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;获取该目标虚拟端口名称对应的目标安全组规则链,该目标安全组规则链包括至少一个目标安全组规则,该至少一个目标安全组规则用于对流经该目标虚拟端口的该数据包进行过滤;其中,该M、该N和该P均为大于0的整数,且该M大于或等于该N与该P之和。
可选地,上述N个字符可以是待匹配虚拟端口名称的前缀字符,即先在所有虚拟端口中对该待匹配虚拟端口名称的前缀字符进行匹配,再在前缀字符相同的虚拟端口中对该待匹配虚拟端口名称的P个字符进行匹配,该P个字符可以为M个字符中包括该前缀字符的部分字符,本发明实施例对此不作限定。
因此,本发明实施例的确定安全组规则链的方法,通过采用查询树对待匹配虚拟端口名称进行匹配,先确定与该待匹配虚拟端口名称的部分字符对应的节点,再从该节点对应的至少一个虚拟端口的名称中确定与该待匹配虚拟端口名称相同的目标虚拟端口,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
在第一方面的第一种可能的实现方式中,该N个字符为该待匹配虚拟端口名称的前N个字符,该查询树包括W层节点,且该查询树的根节点为该W层节点中的第一层节点,该W为大于1的整数;该从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,包括:在第i层节点中的第一节点下,将该待匹配虚拟端口名称的该N个字符以及该N个字符后的i个字符与该第一节点的至少一个子节点的名称进行匹配,确定第i+1层节点中的第二节点,其中,该第一节点的名称为该N个字符以及该N个字符后的i-1个字符,该i为取遍1至W-1的整数;当该i为W-1时,该第二节点为该第一叶子节点。
该实施例为对待匹配虚拟端口名称进行逐字符匹配的过程。具体地,查询树为W层,从该查询树的根节点逐层往下,分别为第一层至第W层。在进行逐层匹配的过程中,首先从根节点开始,即上述i为1时,上述第一节点为根节点,在该根节点下,将该待匹配虚拟端口名称的该N个字符以及该N个字符后的1个字符与该根节点的至少一个子节点的名称进行匹配,确定出一个第二层节点,在该第二层节点下,对将该待匹配虚拟端口名称的该N个字符以及该N个字符后2个字符与该第二层节点的至少一个子节点的名称进行匹配,确定出第三层节点,依次类推,直至确定出第W层的叶子节点。这样,通过对待匹配虚拟端口名称进行逐字符匹配,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
结合第一方面的上述可能的实现方式,在第一方面的第二种可能的实现方式中,该查询树对应流经方向标识,该流经方向标识用于表示该查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,该根据该待匹配虚拟端口名称,确定查询树,包括:确定该数据包的流经方向,该流经方向用于表示该数据包需要从该待匹配虚拟端口流入或者该数据包需要从该待匹配虚拟端口流出;根据该数据包的流经方向,确定与该数据包的流经方向所对应的至少一个查询树;根据该待匹配虚拟端口名称,从该至少一个查询树中确定该查询树。
这样,通过按照数据包的流经方向对查询树进行分类,能够更加细化地确定出所需要的安全组规则链,提高系统性能,从而提升用户体验。
结合第一方面的上述可能的实现方式,在第一方面的第三种可能的实现方式中,在该根据该待匹配虚拟端口名称,确定查询树之前,该方法还包括:根据虚拟机中的Q个虚拟端口的名称,创建该查询树,确定该查询树的每个节点的名称,建立该查询树中的父节点与子节点之间的对应关系,以及该查询树的各个叶子节点与该Q个虚拟端口的名称的对应关系;其中,该Q为大于0的整数。
具体地,计算机点可以根据Q各虚拟端口的名称,先创建该查询树,并确定该查询树中每个节点的名称,并创建该查询树的各个叶子节点所对应的至少一个虚拟端口的名称,该各个叶子节点所对应的虚拟端口的总和为Q个。这样,计算节点可以提前创建查询树,以便于后续使用该查询树对与该查询树相关的虚拟端口名称进行匹配。
结合第一方面的上述可能的实现方式,在第一方面的第四种可能的实现方式中,该构造该查询树,确定该查询树的每个节点的名称,包括:创建该查询树的根节点,将预设的该N个字符确定为该查询树的根节点的名称;创建该查询树的该第一叶子节点,从该Q个虚拟端口的名称中确定L个虚拟端口的名称,该L个虚拟端口的名称的公共字符为包括该N个字符的该P个字符,将该P个字符确定为该第一叶子节点的名称;其中,该L为大于0的整数,且该L小于该Q。
可选地,对于创建根节点,计算节点可以在计算节点安全组模块初始化的时候创建2个根节点,包括根节点1和根节点2。根节点1用于入方向数据包的匹配,根节点2用于出方向数据包的匹配。这样,当有数据包要流经虚拟端口时,可以将流经方向为入方向且虚拟端口名以tap字符开头的数据包转到根节点1,将流经方向为出方向且虚拟端口名以tap字符开头的数据包转到根节点2。
结合第一方面的上述可能的实现方式,在第一方面的第五种可能的实现方式中,该构造该查询树,确定该查询树的每个节点的名称,包括:创建该第一叶子节点的父节点,从该Q个虚拟端口名称中确定K个虚拟端口的名称,该K个虚拟端口的名称包括该L个虚拟端口的名称,该K个虚拟端口的名称的公共字符为H个字符,该H个字符包含于该P个字符;将该H个字符确定为该第一叶子节点的父节点的名称;其中,该K和该H均为大于0的整数,且该K大于该L,该H小于该P。
结合第一方面的上述可能的实现方式,在第一方面的第六种可能的实现方式中,该构造该查询树,确定该查询树的每个节点的名称,包括:当该待匹配虚拟端口上线时,添加该待匹配虚拟端口对应的安全组规则链,并在该安全组规则链中添加至少一个安全组规则;根据该待匹配虚拟端口的名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;在该查询树存在名称为该待匹配虚拟端口的P个字符的该第一叶子节点的情况下,添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系。
结合第一方面的上述可能的实现方式,在第一方面的第七种可能的实现方式中,该方法还包括:在该第一叶子节点不存在的情况下,创建该第一叶子节点,并添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系;在该第一叶子节点的父节点不存在的情况下,创建该第一叶子节点的父节点;逐层创建该第一叶子节点至该根节点的路径中的节点,直到确定该第一叶子节点至该根节点的路径中所有节点均存在。
结合第一方面的上述可能的实现方式,在第一方面的第八种可能的实现方式中,该方法还包括:当该待匹配虚拟端口下线时,删除该待匹配虚拟端口对应的该安全组规则链;根据该待匹配虚拟端口名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;在该查询树的叶子节点中确定名称与该待匹配虚拟端口的该P个字符相同的该第一叶子节点;删除该第一叶子节点与该待匹配虚拟端口名称之间的对应关系;在不存在该第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除该第一叶子节点。
结合第一方面的上述可能的实现方式,在第一方面的第九种可能的实现方式中,该方法还包括:在该第一叶子节点存在父节点的情况下,判断该第一叶子节点的父节点是否还存在其他叶子节点;在该第一叶子节点的父节点不存在其他叶子节点的情况下,删除该第一叶子节点的父节点;逐层删除该第一叶子节点至该根节点的路径中不存在其他子节点的节点,直到该根节点。
第二方面,提供了一种确定安全组规则链的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第三方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第四方面,提供了一种计算机程序产品,该计算机程序产品可以为一安装包,该软件安装包被计算设备运行时,执行第一方面或第一方面的任一种实现方式提供的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例应用的系统架构示意图。
图2为本发明实施例提供的确定安全组规则链的方法的示意性流程图。
图3为本发明实施例提供的确定安全组规则链的查询树的示意性流程图。
图4为本发明实施例提供的另一确定安全组规则链的查询树的示意性流程图。
图5为本发明实施例提供的创建与虚拟端口名称对应查询树的节点的方法的示意性流程图。
图6为本发明实施例提供的删除与虚拟端口名称对应查询树的节点的方法的示意性流程图。
图7为本发明实施例提供的确定安全组规则链的装置的示意性框图。
图8为本发明实施例提供的另一确定安全组规则链的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明实施例的方法、装置和物理主机可以应用于包括多种操作系统的虚拟机架构中。例如,可以应用于包括Linux、Windows和Unix等一种或多种操作系统的虚拟机架构中,虚拟机架构中还可以包括其它一些操作系统,本文仅以Linux操作系统为例进行说明,但本发明实施例对此不作限定。
为了便于理解,下面先对本发明实施例中的相关术语进行介绍。
虚拟机(Virtual Machine),在计算机科学中的体系结构中,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。在计算机科学中,虚拟机是指可以像真实机器一样运行程序的计算机的软件实现。因此,虚拟机可以理解为逻辑上的一台计算机。
安全组是一些规则的集合,用来对进出虚拟机的数据包加以限制,能够起到防火墙的作用。这些规则可以由用户定义,来实现对特定数据包的过滤,本文将限制进出虚拟机的数据包的规则统称为安全组规则。应理解,安全组规则包含于链中,具体地,可以理解为表包括链,链包括安全组规则。
具体地,以Linux操作系统为例,Linux操作系统采用安全组规则,实现了对数据包 进行过滤的功能,即Linux防火墙,它由netfilter组件和iptables组件两部分组成。 netfilter组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含 内核用来控制信息包过滤处理的安全组规则链,安全组规则链中包括用户设置的过滤规 则,用于对数据包进行过滤操作。iptables组件是一种工具,也称为用户空间,它使插入、修 改和除去信息包过滤表中的安全组规则变得容易。
在iptables组件中,默认有四个表:filter表、NAT表、mangle表和raw表。其中,和 防火墙相关的表是filter表。表由一组预先定义的链组成,链包含若干规则。默认的filter 表包含INPUT链、OUTPUT链和FORWARD链三条内建的链,这三条链作用于数据包过滤过程中 的不同时间点。默认情况下,任何链中都没有规则,用户可以向链中添加自己想用的规则。 每一条规则包含对数据包的匹配条件和相应的动作(即该规则的目标)。只有当数据包满足 所有的匹配条件时,iptables组件才能根据由该规则的目标所指定的动作来处理该数据 包。其中,对INPUT链,OUTPUT链,FORWARD链详细介绍如下:
1)对于流入的数据包:经过路由处理,决定该数据包是到本地的还是需要转发的。
a、如果该数据包是到本地的,就经过INPUT链处理,比如过滤,然后发往上层协议。
b、如果该数据包是需要转发的,就经过FORWARD链处理,比如过滤,然后经过路由处理,传输到网络上。
2)对于本地产生的数据包:先经过OUTPUT链处理,然后进行路由处理,传输到网络上。
应理解,iptables组件是按顺序对链中的每条安全组规则进行匹配的。
图1示出了本发明实施例应用的系统架构100的示意图。如图1所示,该系统架构100包括虚拟机101和虚拟机102、虚拟网卡103和虚拟网卡104、虚拟端口105和虚拟端口106、Linux网桥107和Linux网桥108、veth对109和veth对110、虚拟交换机111。
具体地,为了实现安全组特性,每个虚拟机的虚拟网卡都具有一个Linux网桥,将和虚拟网卡相连的虚拟端口挂接在Linux网桥上,再通过一个veth虚拟网络设备对接到虚拟交换机上。如图1所示,虚拟机101的虚拟网卡103与虚拟端口105连接,虚拟端口105挂接在Linux网桥107上,Linux网桥107和虚拟交换机111通过veth对109相连,使得虚拟机101和虚拟交换机111之间能够正在通信。同样的,虚拟机102的虚拟网卡104与虚拟端口106连接,虚拟端口106挂接在Linux网桥108上,Linux网桥108和虚拟交换机111通过veth对110相连,使得虚拟机102和虚拟交换机111之间能够正在通信。
应理解,Linux网桥是基于内核实现的二层数据交换设备,其作用类似于现实世界中的二级交换机。虚拟网卡、虚拟端口都可以为虚拟以太网设备(TAP设备),TAP设备是一种工作在二层协议的点对点网络设备,每一个TAP设备都有一个对应的Linux字符设备,用户程序可以通过对字符设备的读写操作,完成与Linux内核网络协议栈的数据交换工作,在虚拟化环境中经常被模拟器使用。总而言之,TAP设备其实就是一个Linux内核虚拟化出来的一个网络接口。veth设备是一种成对出现的点对点网络设备,从一段输入的数据会从另一端改变方向输出,通常用于改变数据方向,或连接其它网络设备。
可选地,该系统架构100可以为一个计算节点,具体地,计算节点为云计算的核心,为运行实例提供计算、内存、网络和存储资源。本发明实施例对此不作限定。在一种实现方式中,计算节点为一台物理计算机。
应理解,图1仅仅示例性地示出了两个虚拟机以及两个虚拟机分别对应的虚拟网卡、虚拟端口、Linux网桥等等,可选地,该系统架构100可以包括更多虚拟机、更多虚拟网卡、更多虚拟端口和更多Linux网桥,本发明实施例对此不做限定。
在上述系统架构100中,多个虚拟端口中的每个虚拟端口都设置有对应的安全组规则链,安全组规则链中包括至少一个安全组规则,用于对进出该虚拟端口的数据包进行过滤。对于计算节点而言,多个虚拟端口对应的多个安全组规则链统一存放在主机的内存中,并且存放了安全组规则链与虚拟端口的对应关系,因此,在对进出某个虚拟端口的数据包进行过滤时,需要从主机中的所有安全组规则链中确定出与该虚拟端口对应的安全组规则链。本发明实施例所涉及的就是从多个安全组规则链中确定目标虚拟端口的安全组规则链。
图2示出了本发明实施例的确定安全组规则链的方法200的示意性流程图。该方法可以应用于图1中的系统架构100,但本发明实施例不限于此。该方法200包括:
S210,确定待匹配虚拟端口名称,该待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,该待匹配虚拟端口名称包括M个字符;
S220,根据该待匹配虚拟端口名称,确定查询树,该查询树的根节点的名称与该待匹配虚拟端口名称的N个字符相同;
S230,从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,该第一叶子节点的名称为包括该N个字符的P个字符,该第一叶子节点对应至少一个虚拟端口的名称,该P个字符为该至少一个虚拟端口的名称中的公共字符;
S240,在该至少一个虚拟端口的名称中,对该待匹配虚拟端口名称的全部字符进行匹配,确定与该待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;
S250,获取该目标虚拟端口名称对应的目标安全组规则链,该目标安全组规则链包括至少一个目标安全组规则,该至少一个目标安全组规则用于对流经该目标虚拟端口的该数据包进行过滤;
其中,该M、该N和该P均为大于0的整数,且该M大于或等于该N与该P之和。
应理解,方法200可以由计算节点执行,在一种具体的实现方式中,该方法可以由具体地一台物理计算机执行。
具体地,当有数据包需要从某个虚拟端口流入或者流出时,该虚拟端口即为待匹配虚拟端口,计算节点需要从内存中存储的多个虚拟端口的安全组规则链中查找出该待匹配虚拟端口的安全组规则链。在内存中,多个虚拟端口的安全组规则链都是以该多个虚拟端口的每个虚拟端口的名称进行标识的,所以在查找该待匹配虚拟端口的安全组规则链时,需要对该待匹配虚拟端口名称进行匹配。
本发明实施例采用多叉树结构实现了对待匹配虚拟端口名称的匹配,本文统称为查询树。查询树包括一个根节点和多个子节点,其中每个节点都分别对应虚拟端口名称的部分字符,因此,在不同虚拟端口的名称的命名方式不同的情况下,在系统中可能会存在至少一个查询树。在具体匹配过程中,计算节点可以先根据待匹配虚拟端口名称,确定根节点与该待匹配虚拟端口名称的N的字符相同的一棵查询树,然后从该查询树的根节点开始逐层对该待匹配虚拟端口名称的部分字符进行匹配,直到叶子节点,从而确定出名称为包括该N个字符的P个字符的第一叶子节点,该第一叶子节点对应公共字符为P个字符的至少一个虚拟端口的名称。在该第一叶子节点下将该待匹配虚拟端口名称的全部字符与该至少一个虚拟端口的名称进行匹配,确定出与该待匹配虚拟端口名称相同的目标虚拟端口名称,从而获取该目标虚拟端口名称对应的安全组规则链。
应理解,查询树的根节点的名称在创建该查询树时就会被确定为预设的N个字符,该N个字符可以为虚拟端口的名称中的任意N个字符。因此,计算节点在进行匹配时,需要根据该查询树的根节点的命名方式,来确定需要匹配该待匹配虚拟端口的哪N个字符。在本发明实施例对此没有限定的情况下,上述N个字符M个字符中的任意N个字符,可以为待匹配虚拟端口名称的前N个字符,也可以为待匹配虚拟端口名称的后N个字符。
在一种具体的实现方式中,上述N个字符可以是待匹配虚拟端口名称的前缀字符,即先在所有虚拟端口中对该待匹配虚拟端口名称的前缀字符进行匹配,再在前缀字符相同的虚拟端口中对该待匹配虚拟端口名称的P个字符进行匹配,该P个字符可以为M个字符中包括该前缀字符的部分字符,本发明实施例对此不作限定。
因此,本发明实施例的确定安全组规则链的方法,通过采用查询树对待匹配虚拟端口名称进行匹配,先确定与该待匹配虚拟端口名称的部分字符对应的节点,再从该节点对应的至少一个虚拟端口的名称中确定与该待匹配虚拟端口名称相同的目标虚拟端口,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
作为一个可选的实施例,该N个字符为该待匹配虚拟端口名称的前N个字符,该查询树包括L层节点,且该查询树的根节点为该L层节点中的第一层节点,该L为大于1的整数;
该从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,包括:
在第i层节点中的第一节点下,将该待匹配虚拟端口名称的该N个字符以及该N个字符后的i个字符与该第一节点的至少一个子节点的名称进行匹配,确定第i+1层节点中的第二节点,其中,该第一节点的名称为该N个字符以及该N个字符后的i-1个字符,该i为取遍1至L-1的整数;
当该i为L-1时,该第二节点为该第一叶子节点。
该实施例为对待匹配虚拟端口名称进行逐字符匹配的过程。具体地,查询树为L层,从该查询树的根节点逐层往下,分别为第一层至第L层。在进行逐层匹配的过程中,首先从根节点开始,即上述i为1时,上述第一节点为根节点,在该根节点下,将该待匹配虚拟端口名称的该N个字符以及该N个字符后的1个字符与该根节点的至少一个子节点的名称进行匹配,确定出一个第二层节点,在该第二层节点下,对将该待匹配虚拟端口名称的该N个字符以及该N个字符后2个字符与该第二层节点的至少一个子节点的名称进行匹配,确定出第三层节点,依次类推,直至确定出第L层的叶子节点。
这样,通过对待匹配虚拟端口名称进行逐字符匹配,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
作为一个可选的实施例,该查询树对应流经方向标识,该流经方向标识用于表示该查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,
该根据该待匹配虚拟端口名称,确定查询树,包括:
确定该数据包的流经方向,该流经方向用于表示该数据包需要从该待匹配虚拟端口流入或者该数据包需要从该待匹配虚拟端口流出;
根据该数据包的流经方向,确定与该数据包的流经方向所对应的至少一个查询树;
根据该待匹配虚拟端口名称,从该至少一个查询树中确定该查询树。
具体地,可以将数据包的流经方向分为入方向和出方向,为查询树设置对应的流经方向标识,不同流经方向标识的查询树用于确定不同安全组规则链。因此,在本发明实施例中,首先需要确定流经该待匹配虚拟端口的数据包的流经方向,根据数据包的流经方向,确定与该流经方向对应的至少一个查询树,再根据该待匹配虚拟端口名称的N个字符,确定根节点名称为该N个字符的查询树。这样,通过按照数据包的流经方向对查询树进行分类,能够更加细化地确定出所需要的安全组规则链,提高系统性能,从而提升用户体验。
应理解,虚拟端口的每个字符可取值的个数可以有多种情况,若虚拟端口以十进制方式命名,那么该虚拟端口的每个字符可以为0至9中的任意字符,若虚拟端口以十六进制方式命名,那么该虚拟端口的每个字符可以为0至9以及a至f中的任意字符,本发明实施例对此不作限定。
图3示出了本发明实施例的确定安全组规则链的查询树的示意性流程图。如图3所示,图中示出了一棵包含四层节点的查询树,每个父节点最多可以有j个子节点,这里j为大于0的整数。例如,若j的取值可以为0至9中的任意一个字符,则每个父节点最多可以有10个子节点;若j的取值可以为0至9以及a至f中的任意一个字符,则每个父节点最多可以有16个子节点。
在图3中,根节点匹配虚拟端口名称中的前缀字符以及其后的第一个字符,如果目标虚拟端口的名称中包含前缀字符+“1”,则跳转到节点1,如果目标虚拟端口的名称中包含前缀字符+“2”,则跳转到节点2,依次类推。二层节点匹配虚拟端口名称中的前缀字符以及其后的两个字符,如果名称中包含前缀字符+“11”,则跳转到节点1-1,如果包含前缀字符+“12”,则跳转到节点1-2,依次类推。三层节点匹配虚拟端口名称中的前缀字符以及其后的三个字符,如果名称中包含字符+“111”,则跳转到节点1-1-1,如果包含前缀字符+“112”,则跳转到节点1-1-2,依次类推。在四层节点中对目标虚拟端口的全名进行匹配,跳转到具体的安全组规则链。
下面以本发明实施例的一种具体实现方式为例进行详细说明。例如在OpenStack平台中,虚拟端口命名方式为前缀字符“tap”和端口对应的通用唯一标识符(UniversallyUnique Identifier,简称为“UUID”)的前11个字符的结合。标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx(8-4-4-4-12),其中每个x是0-9或a-f范围内的一个十六进制的数字。因此,在OpenStack平台为例的查询树中,每个父节点下最多有16个子节点。
图4示出了本发明实施例应用在OpenStack平台中的查询树的示意图。假设要匹配的网卡名称为tapff7820d1-58,则它匹配的路径为:根节点—节点f—节点ff。
假设根节点的链名称为root,则根节点的iptables指令为:
-A root-m physdev tapf+-j chainF
它匹配虚拟端口名称开头字符为“tapf”的端口,如果条件符合,则跳转到相应的 二层节点所对应的iptables链chainF。根节点最多需要16次匹配即可执行到该指令。
二级节点chainF的iptables指令为:
-A chainF-m physdev tapff+-j chainF-F
它匹配虚拟端口名称开头字符为“tapf”的端口,如果条件符合,则跳转到相应的 三层节点所对应的iptables链chainF-F。二层节点最多需要16次匹配即可执行到该指令。
三层节点chainF-F的iptables指令为:
-A chainF-F-m physdev tapff7820d1-58-j neutron-openvswi-off7820d1-5
它匹配虚拟端口的全名,如果条件符合,则跳转到该虚拟端口对应的安全组规则链neutron-openvswi-off7820d1-5。
因此,本发明实施例的确定安全组规则链的方法,通过采用查询树对待匹配虚拟端口名称进行匹配,先确定与该待匹配虚拟端口名称的部分字符对应的节点,再从该节点对应的至少一个虚拟端口的名称中确定与该待匹配虚拟端口名称相同的目标虚拟端口,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
作为一个可选的实施例,在该根据该待匹配虚拟端口名称,确定查询树之前,该方法还包括:
根据虚拟机中的Q个虚拟端口的名称,创建该查询树,确定该查询树的每个节点的名称,建立该查询树中的父节点与子节点之间的对应关系,以及该查询树的各个叶子节点与该Q个虚拟端口的名称的对应关系;
其中,该Q为大于0的整数。
具体地,计算机点可以根据Q各虚拟端口的名称,先创建该查询树,并确定该查询树中每个节点的名称,并创建该查询树的各个叶子节点所对应的至少一个虚拟端口的名称,该各个叶子节点所对应的虚拟端口的总和为Q个。这样,计算节点可以提前创建查询树,以便于后续使用该查询树对与该查询树相关的虚拟端口名称进行匹配。
作为一个可选的实施例,该构造该查询树,确定该查询树的每个节点的名称,包括:
创建该查询树的根节点,将预设的该N个字符确定为该查询树的根节点的名称;
创建该查询树的该第一叶子节点,从该Q个虚拟端口的名称中确定L个虚拟端口的名称,该L个虚拟端口的名称的公共字符为包括该N个字符的该P个字符,将该P个字符确定为该第一叶子节点的名称;
其中,该L为大于0的整数,且该L小于该Q。
具体地,该根节点的名称为提前预设的,例如图4中的前缀字符“tap”,在创建树的根节点时,可以直接将预设的N个字符作为该查询树的根节点的名称。在创建了根节点之后,再创建其他节点。子节点的创建方法由下至上,即先创建叶子节点,再创建该叶子节点的父节点,再创建该父节点的父节点,依次类推,直到根节点。对于只有两层节点的树而言,在创建了根节点之后,仅需创建叶子节点,并确定各个叶子节点与根节点的父子关系即可。在创建叶子节点的过程中,需要确定每个叶子节点的名称,并确定每个叶子节点所对应的至少一个虚拟端口名称。
可选地,对于创建根节点,计算节点可以在计算节点安全组模块初始化的时候创 建2个根节点,包括根节点1和根节点2。根节点1用于入方向数据包的匹配,根节点2用于出 方向数据包的匹配。这样,当有数据包要流经虚拟端口时,可以将流经方向为入方向且虚拟 端口名以tap字符开头的数据包转到根节点1,将流经方向为出方向且虚拟端口名以tap字 符开头的数据包转到根节点2。具体的iptables指令为:
-A neutron-openvswi-FORWARD–m physdev--physdev-in tap+-j root1
-A neutron-openvswi-FORWARD–m physdev--physdev-out tap+-j root2
作为一个可选的实施例,该构造该查询树,确定该查询树的每个节点的名称,包括:
创建该第一叶子节点的父节点,从该Q个虚拟端口名称中确定K个虚拟端口的名称,该K个虚拟端口的名称包括该L个虚拟端口的名称,该K个虚拟端口的名称的公共字符为H个字符,该H个字符包含于该P个字符;
将该H个字符确定为该第一叶子节点的父节点的名称;
其中,该K和该H均为大于0的整数,且该K大于该L,该H小于该P。
具体地,当该查询树大于两层时,在创建了叶子节点后可以创建该叶子节点的父节点,该父节点的名称为H个字符,包含于该叶子节点的P个字符中,且该H个字符包括该N个字符。该叶子节点的父节点对应的K个虚拟端口的名称的公共字符即为该H个字符。
作为一个可选的实施例,该构造该查询树,确定该查询树的每个节点的名称,包括:
当该待匹配虚拟端口上线时,添加该待匹配虚拟端口对应的安全组规则链,并在该安全组规则链中添加至少一个安全组规则;
根据该待匹配虚拟端口的名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;
在该查询树存在名称为该待匹配虚拟端口的P个字符的该第一叶子节点的情况下,添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系。
作为一个可选的实施例,该方法还包括:
在该第一叶子节点不存在的情况下,创建该第一叶子节点,并添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系;
在该第一叶子节点的父节点不存在的情况下,创建该第一叶子节点的父节点;
逐层创建该第一叶子节点至该根节点的路径中的节点,直到确定该第一叶子节点至该根节点的路径中所有节点均存在。
具体地,当待匹配虚拟端口上线时,计算节点需要创建该虚拟端口的名称与查询树的对应关系。图5为本发明实施例提供的创建与虚拟端口名称对应查询树的节点的方法300的示意性流程图。
S301,当该待匹配虚拟端口上线时,添加该待匹配虚拟端口对应的安全组规则链,并在该安全组规则链中添加至少一个安全组规则。
S302,根据该待匹配虚拟端口名称,确定根节点的名称与该待匹配虚拟端口名称的N个字符相同的查询树。
S303,判断该查询树是否存在名称为该待匹配虚拟端口名称中的P个字符的第一叶子节点,该P个字符包括该N个字符。
若不存在该第一叶子节点,执行S304;若存在该第一叶子节点,直接执行S305。
S304,创建该第一叶子节点,确定该第一叶子节点的名称为上述P个字符。
S305,添加该待匹配虚拟端口名称与该第一叶子节点的对应关系。
S306,判断该第一叶子节点的父节点是否存在。
若该第一叶子节点的父节点不存在,则执行S307;若该第一叶子节点的父节点存在,则直接执行S308。
S307,创建该第一叶子节点的父节点,并确定该第一叶子节点的父节点的名称,该第一叶子节点的父节点的名称为包括该N个字符且包含于该P个字符的至少一个字符。
S308,判断该第一叶子节点的父节点是否为根节点。
若该第一叶子节点的父节点不是根节点,则执行S306,判断该第一叶子节点的父节点的父节点是否存在,若存在,则执行S308,若不存在,则创建该第一叶子节点的父节点的父节点,直到确定出根节点为止。若该第一叶子节点的父节点是根节点,则完成创建,结束该流程。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
作为一个可选的实施例,该方法还包括:
当该待匹配虚拟端口下线时,删除该待匹配虚拟端口对应的该安全组规则链;
根据该待匹配虚拟端口名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;
在该查询树的叶子节点中确定名称与该待匹配虚拟端口的该P个字符相同的该第一叶子节点;
删除该第一叶子节点与该待匹配虚拟端口名称之间的对应关系;
在不存在该第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除该第一叶子节点。
作为一个可选的实施例,该方法还包括:
在该第一叶子节点存在父节点的情况下,判断该第一叶子节点的父节点是否还存在其他叶子节点;
在该第一叶子节点的父节点不存在其他叶子节点的情况下,删除该第一叶子节点的父节点;
逐层删除该第一叶子节点至该根节点的路径中不存在其他子节点的节点,直到该根节点。
具体地,当待匹配虚拟端口下线时,计算节点需要从查询树中删除该虚拟端口的名称与该查询树的对应关系。图6为本发明实施例提供的删除与虚拟端口名称对应查询树的节点的方法400的示意性流程图。
S401,当该待匹配虚拟端口下线时,删除该待匹配虚拟端口对应的安全组规则链,并删除该安全组规则链中的安全组规则。
S402,根据该待匹配虚拟端口名称,确定根节点的名称与该待匹配虚拟端口名称的N个字符相同的查询树。
S404,在该查询树的至少一个叶子节点中,确定名称为该待匹配虚拟端口名称中的P个字符的第一叶子节点。
S404,删除该第一叶子节点与该待匹配虚拟端口名称之间的对应关系。
S405,判断该第一叶子节点是否存在与其他虚拟端口名称之间的对应关系。
若该第一叶子节点存在与其他虚拟端口名称之间的对应关系,则完成删除,结束该流程;若该第一叶子节点不存在与其他虚拟端口名称之间的对应关系,则执行S406。
S406,删除该第一叶子节点。
S407,判断该第一叶子节点的父节点是否为根节点。
若该第一叶子节点的父节点为根节点,则完成删除,结束该流程;若该第一叶子节点的父节点不是根节点,则执行S408.
S408,判断该第一叶子节点的父节点是否存在其他子节点,即判断该第一叶子节点是否存在兄弟节点。
若该第一叶子节点的父节点存在其他子节点,则完成删除,结束该流程;若该第一叶子节点的父节点不存在其他子节点,则执行S409。
S409,删除该第一叶子节点的父节点。
继续判断该第一叶子节点的父节点的父节点,直到根节点为止。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图1至图6,详细描述了根据本发明实施例的确定安全组规则链的方法,下面将结合图7至图8,详细描述根据本发明实施例的确定安全组规则链的装置。
图7示出了本发明实施例提供的确定安全组规则链的装置500,该装置500包括:
确定单元510,用于确定待匹配虚拟端口名称,该待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,该待匹配虚拟端口名称包括M个字符;
根据该待匹配虚拟端口名称,确定查询树,该查询树的根节点的名称与该待匹配虚拟端口名称的N个字符相同;
从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,该第一叶子节点的名称为包括该N个字符的P个字符,该第一叶子节点对应至少一个虚拟端口的名称,该P个字符为该至少一个虚拟端口的名称中的公共字符;
在该至少一个虚拟端口的名称中,对该待匹配虚拟端口名称的全部字符进行匹配,确定与该待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;
获取单元520,用于获取该目标虚拟端口名称对应的目标安全组规则链,该目标安全组规则链包括至少一个目标安全组规则,该至少一个目标安全组规则用于对流经该目标虚拟端口的该数据包进行过滤;
其中,该M、该N和该P均为大于0的整数,且该M大于或等于该N与该P之和。
因此,本发明实施例的确定安全组规则链的方法,通过采用查询树对待匹配虚拟端口名称进行匹配,先确定与该待匹配虚拟端口名称的部分字符对应的节点,再从该节点对应的至少一个虚拟端口的名称中确定与该待匹配虚拟端口名称相同的目标虚拟端口,能够快速确定与目标虚拟端口所对应的安全组规则链,提高系统性能,从而提升用户体验。
可选地,该N个字符为该待匹配虚拟端口名称的前N个字符,该查询树包括W层节点,且该查询树的根节点为该W层节点中的第一层节点,该W为大于1的整数;该确定单元510具体用于:在第i层节点中的第一节点下,将该待匹配虚拟端口名称的该N个字符以及该N个字符后的i个字符与该第一节点的至少一个子节点的名称进行匹配,确定第i+1层节点中的第二节点,其中,该第一节点的名称为该N个字符以及该N个字符后的i-1个字符,该i为取遍1至W-1的整数;当该i为W-1时,该第二节点为该第一叶子节点。
可选地,该查询树对应流经方向标识,该流经方向标识用于表示该查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,该确定单元510具体用于:确定该数据包的流经方向,该流经方向用于表示该数据包需要从该待匹配虚拟端口流入或者该数据包需要从该待匹配虚拟端口流出;根据该数据包的流经方向,确定与该数据包的流经方向所对应的至少一个查询树;根据该待匹配虚拟端口名称,从该至少一个查询树中确定该查询树。
可选地,该装置500还包括:创建单元,用于在该根据该待匹配虚拟端口名称,确定查询树之前,根据虚拟机中的Q个虚拟端口的名称,创建该查询树,确定该查询树的每个节点的名称,建立该查询树中的父节点与子节点之间的对应关系,以及该查询树的各个叶子节点与该Q个虚拟端口的名称的对应关系;其中,该Q为大于0的整数。
可选地,该创建单元具体用于:创建该查询树的根节点,将预设的该N个字符确定为该查询树的根节点的名称;创建该查询树的该第一叶子节点,从该Q个虚拟端口的名称中确定L个虚拟端口的名称,该L个虚拟端口的名称的公共字符为包括该N个字符的该P个字符,将该P个字符确定为该第一叶子节点的名称;其中,该L为大于0的整数,且该L小于该Q。
可选地,该创建单元具体用于:创建该第一叶子节点的父节点,从该Q个虚拟端口名称中确定K个虚拟端口的名称,该K个虚拟端口的名称包括该L个虚拟端口的名称,该K个虚拟端口的名称的公共字符为H个字符,该H个字符包含于该P个字符;将该H个字符确定为该第一叶子节点的父节点的名称;其中,该K和该H均为大于0的整数,且该K大于该L,该H小于该P。
可选地,该创建单元具体用于:当该待匹配虚拟端口上线时,添加该待匹配虚拟端口对应的安全组规则链,并在该安全组规则链中添加至少一个安全组规则;该确定单元510还用于:根据该待匹配虚拟端口的名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;该创建单元还用于:在该查询树存在名称为该待匹配虚拟端口的P个字符的该第一叶子节点的情况下,添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系。
可选地,该创建单元具体用于:在该第一叶子节点不存在的情况下,创建该第一叶子节点,并添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系;在该第一叶子节点的父节点不存在的情况下,创建该第一叶子节点的父节点;逐层创建该第一叶子节点至该根节点的路径中的节点,直到该第一叶子节点至该根节点的路径中所有节点均存在。
可选地,该装置500还包括:删除单元,用于当该待匹配虚拟端口下线时,删除该待匹配虚拟端口对应的该安全组规则链;该确定单元510还用于:根据该待匹配虚拟端口名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;在该查询树的叶子节点中确定名称与该待匹配虚拟端口的该P个字符相同的该第一叶子节点;该删除单元还用于:删除该第一叶子节点与该待匹配虚拟端口名称之间的对应关系;在不存在该第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除该第一叶子节点。
可选地,该确定单元510还用于:在该第一叶子节点存在父节点的情况下,判断该第一叶子节点的父节点是否还存在其他叶子节点;该删除单元还用于:在该第一叶子节点的父节点不存在其他叶子节点的情况下,删除该第一叶子节点的父节点;逐层删除该第一叶子节点至该根节点的路径中不存在其他子节点的节点,直到该根节点。
应理解,这里的装置500以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(Application Specific Integrated Circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置500可以具体为上述实施例中的计算节点,装置500可以用于执行上述方法实施例中的各个流程和/或步骤,为避免重复,在此不再赘述。
图8示出了本发明实施例提供的确定安全组规则链的装置600。该装置具体可以为通用计算设备,例如服务器。该装置600包括处理器610、存储器640。该装置600还可以包括发送器620、接收器630和总线系统650。其中,处理器610、发送器620、接收器630和存储器640通过总线系统650相连,该存储器640用于存储指令,该处理器610用于执行该存储器640存储的指令,以控制该发送器620发送信号,并控制该接收器630接收信号。
其中,该处理器610用于确定待匹配虚拟端口名称,该待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,该待匹配虚拟端口名称包括M个字符;
根据该待匹配虚拟端口名称,确定查询树,该查询树的根节点的名称与该待匹配虚拟端口名称的N个字符相同;
从该查询树的根节点开始逐层匹配该待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,该第一叶子节点的名称为包括该N个字符的P个字符,该第一叶子节点对应至少一个虚拟端口的名称,该P个字符为该至少一个虚拟端口的名称中的公共字符;
在该至少一个虚拟端口的名称中,对该待匹配虚拟端口名称的全部字符进行匹配,确定与该待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;
该接收器630用于获取该目标虚拟端口名称对应的目标安全组规则链,该目标安全组规则链包括至少一个目标安全组规则,该至少一个目标安全组规则用于对流经该目标虚拟端口的该数据包进行过滤;
其中,该M、该N和该P均为大于0的整数,且该M大于或等于该N与该P之和。
可选地,该N个字符为该待匹配虚拟端口名称的前N个字符,该查询树包括W层节点,且该查询树的根节点为该W层节点中的第一层节点,该W为大于1的整数;该处理器610具体用于:在第i层节点中的第一节点下,将该待匹配虚拟端口名称的该N个字符以及该N个字符后的i个字符与该第一节点的至少一个子节点的名称进行匹配,确定第i+1层节点中的第二节点,其中,该第一节点的名称为该N个字符以及该N个字符后的i-1个字符,该i为取遍1至W-1的整数;当该i为W-1时,该第二节点为该第一叶子节点。
可选地,该查询树对应流经方向标识,该流经方向标识用于表示该查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,该处理器610具体用于:确定该数据包的流经方向,该流经方向用于表示该数据包需要从该待匹配虚拟端口流入或者该数据包需要从该待匹配虚拟端口流出;根据该数据包的流经方向,确定与该数据包的流经方向所对应的至少一个查询树;根据该待匹配虚拟端口名称,从该至少一个查询树中确定该查询树。
可选地,该处理器610还用于:在该根据该待匹配虚拟端口名称,确定查询树之前,根据虚拟机中的Q个虚拟端口的名称,创建该查询树,确定该查询树的每个节点的名称,建立该查询树中的父节点与子节点之间的对应关系,以及该查询树的各个叶子节点与该Q个虚拟端口的名称的对应关系;该处理器610具体用于:确定该数据包的流经方向,该流经方向用于表示该数据包需要从该待匹配虚拟端口流入或者该数据包需要从该待匹配虚拟端口流出;根据该数据包的流经方向,确定与该数据包的流经方向所对应的至少一个查询树;根据该待匹配虚拟端口名称,从该至少一个查询树中确定该查询树。
可选地,该处理器610还用于:在该根据该待匹配虚拟端口名称,确定查询树之前,根据虚拟机中的Q个虚拟端口的名称,创建该查询树,确定该查询树的每个节点的名称,建立该查询树中的父节点与子节点之间的对应关系,以及该查询树的各个叶子节点与该Q个虚拟端口的名称的对应关系;其中,该Q为大于0的整数。
可选地,该处理器610具体用于:创建该查询树的根节点,将预设的该N个字符确定为该查询树的根节点的名称;创建该查询树的该第一叶子节点,从该Q个虚拟端口的名称中确定L个虚拟端口的名称,该L个虚拟端口的名称的公共字符为包括该N个字符的该P个字符,将该P个字符确定为该第一叶子节点的名称;其中,该L为大于0的整数,且该L小于该Q。
可选地,该处理器610具体用于:创建该第一叶子节点的父节点,从该Q个虚拟端口名称中确定K个虚拟端口的名称,该K个虚拟端口的名称包括该L个虚拟端口的名称,该K个虚拟端口的名称的公共字符为H个字符,该H个字符包含于该P个字符;将该H个字符确定为该第一叶子节点的父节点的名称;其中,该K和该H均为大于0的整数,且该K大于该L,该H小于该P。
可选地,该处理器610具体用于:当该待匹配虚拟端口上线时,添加该待匹配虚拟端口对应的安全组规则链,并在该安全组规则链中添加至少一个安全组规则;该处理器610还用于:根据该待匹配虚拟端口的名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;该处理器610还用于:在该查询树存在名称为该待匹配虚拟端口的P个字符的该第一叶子节点的情况下,添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系。
可选地,该处理器610具体用于:在该第一叶子节点不存在的情况下,创建该第一叶子节点,并添加该待匹配虚拟端口的名称与该第一叶子节点的对应关系;在该第一叶子节点的父节点不存在的情况下,创建该第一叶子节点的父节点;逐层创建该第一叶子节点至该根节点的路径中的节点,直到该第一叶子节点至该根节点的路径中所有节点均存在。
可选地,该处理器610还用于:当该待匹配虚拟端口下线时,删除该待匹配虚拟端口对应的该安全组规则链;根据该待匹配虚拟端口名称,确定根节点的名称与该待匹配虚拟端口的名称的该N个字符相同的该查询树;在该查询树的叶子节点中确定名称与该待匹配虚拟端口的该P个字符相同的该第一叶子节点;删除该第一叶子节点与该待匹配虚拟端口名称之间的对应关系;在不存在该第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除该第一叶子节点。
可选地,该处理器610还用于:在该第一叶子节点存在父节点的情况下,判断该第一叶子节点的父节点是否还存在其他叶子节点;在该第一叶子节点的父节点不存在其他叶子节点的情况下,删除该第一叶子节点的父节点;逐层删除该第一叶子节点至该根节点的路径中不存在其他子节点的节点,直到该根节点。
应理解,装置600可以具体为上述实施例中的计算节点,并且可以用于执行上述方法实施例中的各个步骤和/或流程。可选地,该存储器640可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器630可以用于执行存储器中存储的指令,并且当该处理器执行存储器中存储的指令时,该处理器用于执行上述方法实施例的各个步骤和/或流程。
应理解,在本发明实施例中,该处理器可以是中央处理单元(Central ProcessingUnit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的分割,仅仅为一种逻辑功能分割,实际实现时可以有另外的分割方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (21)

1.一种确定安全组规则链的方法,其特征在于,包括:
确定待匹配虚拟端口名称,所述待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,所述待匹配虚拟端口名称包括M个字符;
根据所述待匹配虚拟端口名称,确定查询树,所述查询树的根节点的名称与所述待匹配虚拟端口名称的N个字符相同;
从所述查询树的根节点开始逐层匹配所述待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,所述第一叶子节点的名称为包括所述N个字符的P个字符,所述第一叶子节点对应至少一个虚拟端口的名称,所述P个字符为所述至少一个虚拟端口的名称中的公共字符;
在所述至少一个虚拟端口的名称中,对所述待匹配虚拟端口名称的全部字符进行匹配,确定与所述待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;
获取所述目标虚拟端口名称对应的目标安全组规则链,所述目标安全组规则链包括至少一个目标安全组规则,所述至少一个目标安全组规则用于对流经所述目标虚拟端口的所述数据包进行过滤;
其中,所述M、所述N和所述P均为大于0的整数,且所述M大于或等于所述N与所述P之和。
2.根据权利要求1所述的方法,其特征在于,所述N个字符为所述待匹配虚拟端口名称的前N个字符,所述查询树包括W层节点,且所述查询树的根节点为所述W层节点中的第一层节点,所述W为大于1的整数;
所述从所述查询树的根节点开始逐层匹配所述待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,包括:
在第i层节点中的第一节点下,将所述待匹配虚拟端口名称的所述N个字符以及所述N个字符后的i个字符与所述第一节点的至少一个子节点的名称进行匹配,确定第i+1层节点中的第二节点,其中,所述第一节点的名称为所述N个字符以及所述N个字符后的i-1个字符,所述i为取遍1至W-1的整数;
当所述i为W-1时,所述第二节点为所述第一叶子节点。
3.根据权利要求1或2所述的方法,其特征在于,所述查询树对应流经方向标识,所述流经方向标识用于表示所述查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,
所述根据所述待匹配虚拟端口名称,确定查询树,包括:
确定所述数据包的流经方向,所述流经方向用于表示所述数据包需要从所述待匹配虚拟端口流入或者所述数据包需要从所述待匹配虚拟端口流出;
根据所述数据包的流经方向,确定与所述数据包的流经方向所对应的至少一个查询树;
根据所述待匹配虚拟端口名称,从所述至少一个查询树中确定所述查询树。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述根据所述待匹配虚拟端口名称,确定查询树之前,所述方法还包括:
根据虚拟机中的Q个虚拟端口的名称,创建所述查询树,确定所述查询树的每个节点的名称,建立所述查询树中的父节点与子节点之间的对应关系,以及所述查询树的各个叶子节点与所述Q个虚拟端口的名称的对应关系;
其中,所述Q为大于0的整数。
5.根据权利要求4所述的方法,其特征在于,所述构造所述查询树,确定所述查询树的每个节点的名称,包括:
创建所述查询树的根节点,将预设的所述N个字符确定为所述查询树的根节点的名称;
创建所述查询树的所述第一叶子节点,从所述Q个虚拟端口的名称中确定L个虚拟端口的名称,所述L个虚拟端口的名称的公共字符为包括所述N个字符的所述P个字符,将所述P个字符确定为所述第一叶子节点的名称;
其中,所述L为大于0的整数,且所述L小于所述Q。
6.根据权利要求4或5所述的方法,其特征在于,所述构造所述查询树,确定所述查询树的每个节点的名称,包括:
创建所述第一叶子节点的父节点,从所述Q个虚拟端口名称中确定K个虚拟端口的名称,所述K个虚拟端口的名称包括所述L个虚拟端口的名称,所述K个虚拟端口的名称的公共字符为H个字符,所述H个字符包含于所述P个字符;
将所述H个字符确定为所述第一叶子节点的父节点的名称;
其中,所述K和所述H均为大于0的整数,且所述K大于所述L,所述H小于所述P。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述构造所述查询树,确定所述查询树的每个节点的名称,包括:
当所述待匹配虚拟端口上线时,添加所述待匹配虚拟端口对应的安全组规则链,并在所述安全组规则链中添加至少一个安全组规则;
根据所述待匹配虚拟端口的名称,确定根节点的名称与所述待匹配虚拟端口的名称的所述N个字符相同的所述查询树;
在所述查询树存在名称为所述待匹配虚拟端口的所述P个字符的所述第一叶子节点的情况下,添加所述待匹配虚拟端口的名称与所述第一叶子节点的对应关系。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第一叶子节点不存在的情况下,创建所述第一叶子节点,并添加所述待匹配虚拟端口名称与所述第一叶子节点的对应关系;
在所述第一叶子节点的父节点不存在的情况下,创建所述第一叶子节点的父节点;
逐层创建所述第一叶子节点至所述根节点的路径中的节点,直到确定所述第一叶子节点至所述根节点的路径中所有节点均存在。
9.根据权利要求4至8中任一项所述的方法,其特征在于,所述方法还包括:
当所述待匹配虚拟端口下线时,删除所述待匹配虚拟端口对应的所述安全组规则链;
根据所述待匹配虚拟端口名称,确定根节点的名称与所述待匹配虚拟端口的名称的所述N个字符相同的所述查询树;
在所述查询树的叶子节点中确定名称与所述待匹配虚拟端口的所述P个字符相同的所述第一叶子节点;
删除所述第一叶子节点与所述待匹配虚拟端口名称之间的对应关系;
在不存在所述第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除所述第一叶子节点。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述第一叶子节点存在父节点的情况下,判断所述第一叶子节点的父节点是否还存在其他叶子节点;
在所述第一叶子节点的父节点不存在其他叶子节点的情况下,删除所述第一叶子节点的父节点;
逐层删除所述第一叶子节点至所述根节点的路径中不存在其他子节点的节点,直到所述根节点。
11.一种确定安全组规则链的装置,其特征在于,包括:
确定单元,用于确定待匹配虚拟端口名称,所述待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,所述待匹配虚拟端口名称包括M个字符;
根据所述待匹配虚拟端口名称,确定查询树,所述查询树的根节点的名称与所述待匹配虚拟端口名称的N个字符相同;
用于从所述查询树的根节点开始逐层匹配所述待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,所述第一叶子节点的名称为包括所述N个字符的P个字符,所述第一叶子节点对应至少一个虚拟端口的名称,所述P个字符为所述至少一个虚拟端口的名称中的公共字符;
在所述至少一个虚拟端口的名称中,对所述待匹配虚拟端口名称的全部字符进行匹配,确定与所述待匹配虚拟端口名称的全部字符相同的目标虚拟端口名称;
获取单元,用于获取所述目标虚拟端口名称对应的目标安全组规则链,所述目标安全组规则链包括至少一个目标安全组规则,所述至少一个目标安全组规则用于对流经所述目标虚拟端口的所述数据包进行过滤;
其中,所述M、所述N和所述P均为大于0的整数,且所述M大于或等于所述N与所述P之和。
12.根据权利要求11所述的装置,其特征在于,所述N个字符为所述待匹配虚拟端口名称的前N个字符,所述查询树包括W层节点,且所述查询树的根节点为所述W层节点中的第一层节点,所述W为大于1的整数;
所述确定单元具体用于:
在第i层节点中的第一节点下,将所述待匹配虚拟端口名称的所述N个字符以及所述N个字符后的i个字符与所述第一节点的至少一个子节点的名称进行匹配,确定第i+1层节点中的第二节点,其中,所述第一节点的名称为所述N个字符以及所述N个字符后的i-1个字符,所述i为取遍1至W-1的整数;
当所述i为W-1时,所述第二节点为所述第一叶子节点。
13.根据权利要求11或12所述的装置,其特征在于,所述查询树对应流经方向标识,所述流经方向标识用于表示所述查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,
所述确定单元具体用于:
确定所述数据包的流经方向,所述流经方向用于表示所述数据包需要从所述待匹配虚拟端口流入或者所述数据包需要从所述待匹配虚拟端口流出;
根据所述数据包的流经方向,确定与所述数据包的流经方向所对应的至少一个查询树;
根据所述待匹配虚拟端口名称,从所述至少一个查询树中确定所述查询树。
14.根据权利要求11至13中任一项所述的装置,其特征在于,所述装置还包括:
创建单元,用于在所述根据所述待匹配虚拟端口名称,确定查询树之前,根据虚拟机中的Q个虚拟端口的名称,创建所述查询树,确定所述查询树的每个节点的名称,建立所述查询树中的父节点与子节点之间的对应关系,以及所述查询树的各个叶子节点与所述Q个虚拟端口的名称的对应关系;
其中,所述Q为大于0的整数。
15.根据权利要求14所述的装置,其特征在于,所述创建单元具体用于:
创建所述查询树的根节点,将预设的所述N个字符确定为所述查询树的根节点的名称;
创建所述查询树的所述第一叶子节点,从所述Q个虚拟端口的名称中确定L个虚拟端口的名称,所述L个虚拟端口的名称的公共字符为包括所述N个字符的所述P个字符,将所述P个字符确定为所述第一叶子节点的名称;
其中,所述L为大于0的整数,且所述L小于所述Q。
16.根据权利要求14或15所述的装置,其特征在于,所述创建单元具体用于:
创建所述第一叶子节点的父节点,从所述Q个虚拟端口名称中确定K个虚拟端口的名称,所述K个虚拟端口的名称包括所述L个虚拟端口的名称,所述K个虚拟端口的名称的公共字符为H个字符,所述H个字符包含于所述P个字符;
将所述H个字符确定为所述第一叶子节点的父节点的名称;
其中,所述K和所述H均为大于0的整数,且所述K大于所述L,所述H小于所述P。
17.根据权利要求14至16中任一项所述的装置,其特征在于,所述创建单元具体用于:
当所述待匹配虚拟端口上线时,添加所述待匹配虚拟端口对应的安全组规则链,并在所述安全组规则链中添加至少一个安全组规则;
所述确定单元还用于:
根据所述待匹配虚拟端口的名称,确定根节点的名称与所述待匹配虚拟端口的名称的所述N个字符相同的所述查询树;
所述创建单元还用于:
在所述查询树存在名称为所述待匹配虚拟端口的所述P个字符的所述第一叶子节点的情况下,添加所述待匹配虚拟端口的名称与所述第一叶子节点的对应关系。
18.根据权利要求17所述的装置,其特征在于,所述创建单元具体用于:
在所述第一叶子节点不存在的情况下,创建所述第一叶子节点,并添加所述待匹配虚拟端口名称与所述第一叶子节点的对应关系;
在所述第一叶子节点的父节点不存在的情况下,创建所述第一叶子节点的父节点;
逐层创建所述第一叶子节点至所述根节点的路径中的节点,直到所述第一叶子节点至所述根节点的路径中所有节点均存在。
19.根据权利要求14至18中任一项所述的装置,其特征在于,所述装置还包括:
删除单元,用于当所述待匹配虚拟端口下线时,删除所述待匹配虚拟端口对应的所述安全组规则链;
所述确定单元还用于:
根据所述待匹配虚拟端口名称,确定根节点的名称与所述待匹配虚拟端口的名称的所述N个字符相同的所述查询树;
在所述查询树的叶子节点中确定名称与所述待匹配虚拟端口的所述P个字符相同的所述第一叶子节点;
所述删除单元还用于:
删除所述第一叶子节点与所述待匹配虚拟端口名称之间的对应关系;
在不存在所述第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除所述第一叶子节点。
20.根据权利要求19所述的装置,其特征在于,所述确定单元还用于:
在所述第一叶子节点存在父节点的情况下,判断所述第一叶子节点的父节点是否还存在其他叶子节点;
所述删除单元还用于:
在所述第一叶子节点的父节点不存在其他叶子节点的情况下,删除所述第一叶子节点的父节点;
逐层删除所述第一叶子节点至所述根节点的路径中不存在其他子节点的节点,直到所述根节点。
21.一种计算设备,其特征在于,包括:存储器、处理器,所述存储器和所述处理器建立通信连接;所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以执行权利要求1-10任一所述的方法。
CN201610622199.0A 2016-08-02 2016-08-02 确定安全组规则链的方法和装置 Active CN107682300B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610622199.0A CN107682300B (zh) 2016-08-02 2016-08-02 确定安全组规则链的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610622199.0A CN107682300B (zh) 2016-08-02 2016-08-02 确定安全组规则链的方法和装置

Publications (2)

Publication Number Publication Date
CN107682300A true CN107682300A (zh) 2018-02-09
CN107682300B CN107682300B (zh) 2020-02-14

Family

ID=61133751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610622199.0A Active CN107682300B (zh) 2016-08-02 2016-08-02 确定安全组规则链的方法和装置

Country Status (1)

Country Link
CN (1) CN107682300B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040125A (zh) * 2018-09-18 2018-12-18 郑州云海信息技术有限公司 虚拟机中报文过滤方法和装置
CN109413052A (zh) * 2018-10-09 2019-03-01 郑州云海信息技术有限公司 虚拟机通信系统和虚拟机
CN110531666A (zh) * 2019-09-02 2019-12-03 珠海格力电器股份有限公司 自控系统、自控系统拓扑结构及生成方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242409A (zh) * 2008-01-18 2008-08-13 南京邮电大学 一种多语言的网络数据包高效过滤的方法
US20130003550A1 (en) * 2011-06-29 2013-01-03 Broadcom Corporation System and Method for Priority Based Flow Control Between Nodes
CN102945249A (zh) * 2012-10-10 2013-02-27 北京邮电大学 一种策略规则匹配查询树生成方法、匹配方法及装置
CN103023704A (zh) * 2012-12-24 2013-04-03 北京启明星辰信息技术股份有限公司 虚拟网络服务设备接入方法及系统
CN103338155A (zh) * 2013-07-01 2013-10-02 安徽中新软件有限公司 一种数据包的高效过滤方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242409A (zh) * 2008-01-18 2008-08-13 南京邮电大学 一种多语言的网络数据包高效过滤的方法
US20130003550A1 (en) * 2011-06-29 2013-01-03 Broadcom Corporation System and Method for Priority Based Flow Control Between Nodes
CN102945249A (zh) * 2012-10-10 2013-02-27 北京邮电大学 一种策略规则匹配查询树生成方法、匹配方法及装置
CN103023704A (zh) * 2012-12-24 2013-04-03 北京启明星辰信息技术股份有限公司 虚拟网络服务设备接入方法及系统
CN103338155A (zh) * 2013-07-01 2013-10-02 安徽中新软件有限公司 一种数据包的高效过滤方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040125A (zh) * 2018-09-18 2018-12-18 郑州云海信息技术有限公司 虚拟机中报文过滤方法和装置
CN109413052A (zh) * 2018-10-09 2019-03-01 郑州云海信息技术有限公司 虚拟机通信系统和虚拟机
CN110531666A (zh) * 2019-09-02 2019-12-03 珠海格力电器股份有限公司 自控系统、自控系统拓扑结构及生成方法
CN110531666B (zh) * 2019-09-02 2021-09-14 珠海格力电器股份有限公司 自控系统、自控系统拓扑结构及生成方法

Also Published As

Publication number Publication date
CN107682300B (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US11658861B2 (en) Maps having a high branching factor
CN106686085A (zh) 一种负载均衡的方法、装置和系统
CN103856350B (zh) 面向对象的网络
CN105531970B (zh) 用于在网络中部署工作负荷的方法和系统
US8175987B2 (en) Method and apparatus for computing a change plan using genetic programming and parse tree
CN103036703A (zh) 虚拟网络的逻辑拓扑的结构管理方法以及管理服务器
CN105100026B (zh) 一种报文安全转发方法及装置
CN103916453B (zh) 使用外部部件的动态网络设备处理
CN108494607B (zh) 基于容器的大二层网络架构的设计方法及系统
CN106790091A (zh) 一种云安全防护系统以及流量清洗方法
CN107153565A (zh) 配置资源的方法及其网络设备
CN105531972A (zh) 控制数据存储输入/输出请求
WO2015006354A1 (en) Using headerspace analysis to identify flow entry reachability
CN105446793A (zh) 迁移虚拟资产的方法和设备
CN107678835A (zh) 一种数据传输方法及系统
CN107682300A (zh) 确定安全组规则链的方法和装置
CN103927216B (zh) 用于管理虚拟装置的方法和系统
CN110414236A (zh) 一种恶意进程的检测方法及装置
CN108540387A (zh) 网络访问控制方法和装置
CN106599691A (zh) 一种基于复杂网络的计算机病毒传播求源方法
CN107124362B (zh) 一种基于子流表分割的流表存储优化方法及装置
CN108992923B (zh) 资源配置方法和装置、存储介质及电子装置
CN104468836B (zh) 虚拟磁盘创建方法及装置及分布式存储系统
CN106878075A (zh) 一种报文处理方法和装置
CN107294746A (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