一种实现安全组流表最小化的方法技术

技术编号:37394874 阅读:15 留言:0更新日期:2023-04-27 07:32
本发明专利技术公开了一种实现安全组流表最小化的方法,该方法包括以下步骤:S1、根据云主机所应用的安全组生成安全组序列与公共超序列;S2、利用联合流表的三个维度生成安全组流表。本发明专利技术通过使用联合流表的三个维度来生成安全组规则,从而达到将流表数量由M*N减少到M+N的目的,这可以大量减少实际流表的数量,从而可以大量减少内存的占用,以及提高流表的使用效率与运行效率;同时,通过使用生成云主机安全组的公共超序列方法,解决安全组优先级的冲突问题。突问题。突问题。

【技术实现步骤摘要】
一种实现安全组流表最小化的方法


[0001]本专利技术涉及云计算
,具体来说,涉及一种实现安全组流表最小化的方法。

技术介绍

[0002]安全组是云计算中的重要概念,用于定义云主机间的网络通讯隔离策略。一个云主机可以属于多个安全组,一个安全组也可以应用于多个云主机。每个安全组可以包含多个安全组规则。安全组规则用于定义匹配进出云主机数据的规则,以及匹配后的动作(放行或丢弃)。对于进入云主机方向的数据的匹配规则可以匹配传输协议,源地址,目的端口,其中源地址可以是ip地址或ip地址段,也可以是当前或另外的安全组,同样对于进出云主机方向的数据的匹配规则可以匹配传输协议,目的地址,目的端口,其中目的地址可以是ip地址或ip地址段,也可以是当前或另外的安全组,当源或目的地址为安全组时,表示匹配来自或去那个安全组里所有的云主机。安全组内的安全组规则有优先级。一个云主机所应用的多个安全组间也有优先级。
[0003]安全组通常可以使用iptables或openvswitch来实现。openvswtich有一个强大的流表类型,叫联合流表,在现有基于openvswtich的实现中,往往大量使用联合流表,它可以表达或和且的关系。例如其可以表达源ip地址为A或B并且目标地址为C或D,用公式为:(A|B)&(C|D),其中两个括弧分别表示两个维度,每个维度里的A和B,以及C和D是或的关系,多个维度间为且的关系。利用联合流表,安全组可以利用一个维度匹配多个可能的地址,另一个维度匹配多个可能的端口,这样可以大量的减少流表规则的数量。
[0004]现有技术方案只利用了联合流表的两个维度,在同一个安全组被应用在多个云主机时,需要针对每个云主机生成一组对应的流表规则,也就是说如果安全组本身的流表规则数量是M,在它被应用于N个云主机时,实际产生的流表规则的数量为M*N,这也就产生大量的实际流表,导致系统内存的大量占用,影响了流表的运行效率。
[0005]针对相关技术中的问题,目前尚未提出有效的解决方案。

技术实现思路

[0006]针对相关技术中的问题,本专利技术提出一种实现安全组流表最小化的方法,以克服现有相关技术所存在的上述技术问题。
[0007]为此,本专利技术采用的具体技术方案如下:
[0008]一种实现安全组流表最小化的方法,该方法包括以下步骤:
[0009]S1、根据云主机所应用的安全组生成安全组序列与公共超序列;
[0010]S2、利用联合流表的三个维度生成安全组流表。
[0011]进一步的,所述根据云主机所应用的安全组生成安全组序列与公共超序列包括以下步骤:
[0012]S11、将每个云主机所应用的所有安全组作为一个安全组序列;
[0013]S12、生成所述安全组序列的公共超序列,同时记录每个子元素所属的云主机。
[0014]进一步的,所述公共超序列包含与所述云主机数量相同的所有安全组序列。
[0015]进一步的,所述利用联合流表的三个维度生成安全组流表包括以下步骤:
[0016]S21、初始化优先级变量和联合流表编号;
[0017]S22、对所述安全组序列进行处理,得到安全组规则;
[0018]S23、为每个所述安全组规则生成安全组规则流表,并配置所述优先级变量和所述联合流表编号;
[0019]S24、利用联合流表实现每个安全组流表。
[0020]进一步的,对所述安全组序列进行处理,得到安全组规则包括以下步骤:
[0021]S221、从前往后处理所述安全组序列里的每个安全组;
[0022]S222、在每个所述安全组里按优先级从高到低处理每个安全组规则。
[0023]进一步的,为每个所述安全组规则生成安全组规则流表,并配置所述优先级变量和所述联合流表编号包括以下步骤:
[0024]S231、利用所述优先级变量与所述联合流表编号,为每个安全组规则生成安全组规则流表;
[0025]S232、每生成一个所述安全组规则流表后,对所述优先级变量进行递减,对所述联合流表编号进行递增;
[0026]进一步的,利用所述优先级变量与所述联合流表编号,为每个安全组规则生成安全组规则流表包括以下步骤:
[0027]S2311、根据所述安全组规则的方向确定流表中待使用的相关表编号及相关字段名;
[0028]S2312、遍历所述安全组规则里定义的每个源或目的ip地址,对于每个目的ip地址,生成一条联合流表里第一个维度的子流表规则;
[0029]S2313、遍历所述安全组规则里定义的每个源或目的端口,对于每个目的端口,生成一条联合流表里第二个维度的子流表规则;
[0030]S2314、遍历所述安全组规则所属安全组应用的所有云主机,对于每个云主机,生成一条联合流表里的第三个维度的子流表规则;
[0031]S2315、生成一条联合流表动作流表。
[0032]进一步的,每个所述安全组规则生成的安全组规则流表均具有不同的优先级。
[0033]进一步的,所述利用联合流表实现每个安全组流表包括以下步骤:
[0034]S241、利用第一个维度匹配可能的地址;
[0035]S242、利用第二个维度匹配可能的端口;
[0036]S243、利用第三个维度匹配应用所述安全组规则的云主机。
[0037]进一步的,每增加一台使用所述安全组规则的云主机时需要增加一条联合流表的子流表。
[0038]本专利技术的有益效果为:通过使用联合流表的三个维度来生成安全组规则,从而达到将流表数量由M*N减少到M+N的目的,这可以大量减少实际流表的数量,从而可以大量减少内存的占用,以及提高流表的使用效率与运行效率;同时,通过使用生成云主机安全组的公共超序列方法,解决安全组优先级的冲突问题。
[0039]本专利技术直接使用安全组规则对应的流表,而不是将它作为模版为每一个应用了此
规则的云主机生成一个特定的流表实例,满足了openvswitch对流表的各种限制,同时也满足安全组规则间和安全组间的优先级要求。
附图说明
[0040]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]图1是根据本专利技术实施例的一种实现安全组流表最小化的方法的流程图;
[0042]图2是根据本专利技术实施例的一种实现安全组流表最小化的方法与传统方法的区别示意图;
[0043]图3是根据本专利技术实施例的一种实现安全组流表最小化的方法中云主机安全组超序列生成示意图。
具体实施方式
[0044]为进一步说明各实施例,本专利技术提供有附图,这些附图为本专利技术揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现安全组流表最小化的方法,其特征在于,该方法包括以下步骤:S1、根据云主机所应用的安全组生成安全组序列与公共超序列;S2、利用联合流表的三个维度生成安全组流表。2.根据权利要求1所述的一种实现安全组流表最小化的方法,其特征在于,所述根据云主机所应用的安全组生成安全组序列与公共超序列包括以下步骤:S11、将每个云主机所应用的所有安全组作为一个安全组序列;S12、生成所述安全组序列的公共超序列,同时记录每个子元素所属的云主机。3.根据权利要求2所述的一种实现安全组流表最小化的方法,其特征在于,所述公共超序列包含与所述云主机数量相同的所有安全组序列。4.根据权利要求1所述的一种实现安全组流表最小化的方法,其特征在于,所述利用联合流表的三个维度生成安全组流表包括以下步骤:S21、初始化优先级变量和联合流表编号;S22、对所述安全组序列进行处理,得到安全组规则;S23、为每个所述安全组规则生成安全组规则流表,并配置所述优先级变量和所述联合流表编号;S24、利用联合流表实现每个安全组流表。5.根据权利要求4所述的一种实现安全组流表最小化的方法,其特征在于,对所述安全组序列进行处理,得到安全组规则包括以下步骤:S221、从前往后处理所述安全组序列里的每个安全组;S222、在每个所述安全组里按优先级从高到低处理每个安全组规则。6.根据权利要求5所述的一种实现安全组流表最小化的方法,其特征在于,为每个所述安全组规则生成安全组规则流表,并配置所述优先级变量和所述联合流表编号包括以下步骤:S231、利用所述优先级变...

【专利技术属性】
技术研发人员:闻锋
申请(专利权)人:北京秒如科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1