【技术实现步骤摘要】
确定安全组规则链的方法和装置
本专利技术实施例涉及计算机领域,更具体地,涉及确定安全组规则链的方法和装置。
技术介绍
虚拟机是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。每个虚拟机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。安全组是一些规则的集合,用来对进出虚拟机的报文加以限制。例如,Linux操作系统采用安全组规则,实现了对数据包进行过滤的功能,即Linux防火墙,它由netfilter组件和iptables组件两部分组成。netfilter组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的安全组规则链,安全组规则链中包括用户设置的过滤规则,用于对数据包进行过滤操作。iptables组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的安全组规则变得容易。在现有的云计算管理平台,例如,在Openstack中,在计算节点上为每个虚拟机的虚拟网卡创建了Linux网桥,将和虚拟网卡相连的虚拟端口 ...
【技术保护点】
1.一种确定安全组规则链的方法,其特征在于,包括:/n确定待匹配虚拟端口名称,所述待匹配虚拟端口名称为数据包需要流经的虚拟端口的名称,所述待匹配虚拟端口名称包括M个字符;/n根据所述待匹配虚拟端口名称,确定查询树,所述查询树的根节点的名称与所述待匹配虚拟端口名称的N个字符相同;/n从所述查询树的根节点开始逐层匹配所述待匹配虚拟端口名称的部分字符,直到确定出第一叶子节点,其中,所述第一叶子节点的名称为包括所述N个字符的P个字符,所述第一叶子节点对应至少一个虚拟端口的名称,所述P个字符为所述至少一个虚拟端口的名称中的公共字符;/n在所述至少一个虚拟端口的名称中,对所述待匹配虚拟 ...
【技术特征摘要】
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所述的方法,其特征在于,所述查询树对应流经方向标识,所述流经方向标识用于表示所述查询树用于入方向数据包的虚拟端口名称的匹配或用于出方向数据包的虚拟端口名称的匹配,
所述根据所述待匹配虚拟端口名称,确定查询树,包括:
确定所述数据包的流经方向,所述流经方向用于表示所述数据包需要从所述待匹配虚拟端口流入或者所述数据包需要从所述待匹配虚拟端口流出;
根据所述数据包的流经方向,确定与所述数据包的流经方向所对应的至少一个查询树;
根据所述待匹配虚拟端口名称,从所述至少一个查询树中确定所述查询树。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述待匹配虚拟端口名称,确定查询树之前,所述方法还包括:
根据虚拟机中的Q个虚拟端口的名称,创建所述查询树,确定所述查询树的每个节点的名称,建立所述查询树中的父节点与子节点之间的对应关系,以及所述查询树的各个叶子节点与所述Q个虚拟端口的名称的对应关系;
其中,所述Q为大于0的整数。
5.根据权利要求4所述的方法,其特征在于,所述创建所述查询树,确定所述查询树的每个节点的名称,包括:
创建所述查询树的根节点,将预设的所述N个字符确定为所述查询树的根节点的名称;
创建所述查询树的所述第一叶子节点,从所述Q个虚拟端口的名称中确定L个虚拟端口的名称,所述L个虚拟端口的名称的公共字符为包括所述N个字符的所述P个字符,将所述P个字符确定为所述第一叶子节点的名称;
其中,所述L为大于0的整数,且所述L小于所述Q。
6.根据权利要求4所述的方法,其特征在于,所述创建所述查询树,确定所述查询树的每个节点的名称,包括:
创建所述第一叶子节点的父节点,从所述Q个虚拟端口名称中确定K个虚拟端口的名称,所述K个虚拟端口的名称包括所述L个虚拟端口的名称,所述K个虚拟端口的名称的公共字符为H个字符,所述H个字符包含于所述P个字符;
将所述H个字符确定为所述第一叶子节点的父节点的名称;
其中,所述K和所述H均为大于0的整数,且所述K大于所述L,所述H小于所述P。
7.根据权利要求4所述的方法,其特征在于,所述创建所述查询树,确定所述查询树的每个节点的名称,包括:
当所述待匹配虚拟端口上线时,添加所述待匹配虚拟端口对应的安全组规则链,并在所述安全组规则链中添加至少一个安全组规则;
根据所述待匹配虚拟端口的名称,确定根节点的名称与所述待匹配虚拟端口的名称的所述N个字符相同的所述查询树;
在所述查询树存在名称为所述待匹配虚拟端口的所述P个字符的所述第一叶子节点的情况下,添加所述待匹配虚拟端口的名称与所述第一叶子节点的对应关系。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第一叶子节点不存在的情况下,创建所述第一叶子节点,并添加所述待匹配虚拟端口名称与所述第一叶子节点的对应关系;
在所述第一叶子节点的父节点不存在的情况下,创建所述第一叶子节点的父节点;
逐层创建所述第一叶子节点至所述根节点的路径中的节点,直到确定所述第一叶子节点至所述根节点的路径中所有节点均存在。
9.根据权利要求4至8中任一项所述的方法,其特征在于,所述方法还包括:
当所述待匹配虚拟端口下线时,删除所述待匹配虚拟端口对应的所述安全组规则链;
根据所述待匹配虚拟端口名称,确定根节点的名称与所述待匹配虚拟端口的名称的所述N个字符相同的所述查询树;
在所述查询树的叶子节点中确定名称与所述待匹配虚拟端口的所述P个字符相同的所述第一叶子节点;
删除所述第一叶子节点与所述待匹配虚拟端口名称之间的对应关系;
在不存在所述第一叶子节点与其他虚拟端口的名称之间的对应关系的情况下,删除所述第一叶子节点。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述第一叶子节点存在父节点的情况下,判断所述第一叶子节点的父节点是否还存在其他叶子节点;
在所述第一叶子节点的父节点不存在其他叶子节点的情况下,删除所述第一叶子节点的父节点;
逐层删除所述第一叶子节点至所述根节点的路径中不存在其他子节点的节点,直到所述根节点。
11.一种确定安全组规则链的装置,其特征在于,包括:
确定单元,用于确定待匹配虚拟端口名称,所述待匹配虚...
【专利技术属性】
技术研发人员:冯江平,孙应孔,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。