首页> 中国专利> 策略冲突解决方法以及装置

策略冲突解决方法以及装置

摘要

本申请公开了一种策略冲突解决方法以及装置。所述方法包括:接收第一控制策略并将所述第一控制策略分解成m条第一规则,以及,接收第二控制策略并将所述第二控制策略分解成n条第二规则;对每条所述第一规则取反以得到第一反规则,对每条所述第二规则取反以得到第二反规则,分别将每条所述第一反规则与每条所述第二反规则按照规则合成原则生成相应的第一执行规则;删除所述无效规则,并将剩余的所述第一执行规则作为有效第一执行规则,将每条所述有效第一执行规则取反后根据所述第一转发设备支持的协议转化为所述第一转发设备相应的转发表项。通过上述方式,能够解决策略冲突。

著录项

  • 公开/公告号CN104104615A

    专利类型发明专利

  • 公开/公告日2014-10-15

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201410348832.2

  • 发明设计人 董雯霞;林程勇;丁万夫;李凤凯;

    申请日2014-07-21

  • 分类号H04L12/813(20130101);

  • 代理机构深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人何青瓦

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 02:19:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-07

    授权

    授权

  • 2014-11-12

    实质审查的生效 IPC(主分类):H04L12/813 申请日:20140721

    实质审查的生效

  • 2014-10-15

    公开

    公开

说明书

技术领域

本申请涉及通信领域,特别是涉及策略冲突解决方法以及装置。

背景技术

软件定义网络(Software Defined Network,SDN)是一种新型网络 架构,与传统网络所采用的查找IP路由相比,SDN/OpenFlow能够实现 网络流量的灵活控制,为核心网络及应用的创新提供良好的平台,是今 后网络架构发展的方向。

如图1所示,SDN通常包括控制器110以及转发设备120两部分。 控制器110分别与网络中的每一个转发设备120连接,网络中的转发设 备120之间拓扑连接。控制器110负责对网络进行集中控制,即控制器 110接收到控制策略后,根据控制策略生成转发路径,为各个转发设备 120生成转发表项。转发设备120在接收到转发表项后,根据接收到的 转发表项对用户终端发送的报文进行匹配和转发。

但是,在一些情况下,控制器110接收到的一些策略之间可能会存 在冲突。

例如,研发部门的日常工作涉及到公司的机密,研发部门是严禁访 问外部网络的,只能访问公司的内部网络。所以,管理员针对研发部门 的性质,可能会给控制器下发策略1,该策略1作用于转发设备S0,由 转发设备S0将满足策略1的用户终端的报文转发给SDN中的其他转发 设备,再由其他转发设备转发到相应网络如外部网络或内部网络:

策略1:研发部门服务器不能访问外部网络,所有研发部门的员工 可以从转发设备S1访问公司的内部网络。

同时,对于研发部门中的预研小组,他们必须访问外部网络才能进 行资料收集工作。所以,管理员针对预研小组的性质,可能会给控制器 下发策略2,该策略2也作用于转发设备S0,由转发设备S0满足策略2 的用户终端的报文转发给SDN中的其他转发设备,再由其他转发设备 转发到相应网络如外部网络或内部网络:

策略2:预研小组服务器不能访问安全壳(Secure Shell,SSH)服 务,预研小组员工可以通过转发设备S2访问外部网络。

从上面的两条策略可以分析出,按照设想,预研小组员工应该能访 问外部网络。但是,实际上,由于预研小组是研发部门的一部分,在策 略1中,是禁止所有的研发部门的员工访问外部网络的。控制器110接 收到这两条冲突的控制策略后,控制器110无法进行处理,于是,控制 器110只能将优先级别最高的策略转化为转发表项发送给转发设备S0, 使得转发设备S0只根据优先级别最高的策略转发报文。针对研发部门 下发的策略1优先级高于针对预研小组下发的策略2,所以,转发设备 S0只会根据策略1转发报文,却不会根据策略2转发报文,导致预研小 组一直无法访问外部网络。

发明内容

本申请提供一种策略冲突解决方法以及装置,能够解决策略冲突。

本申请第一方面提供一种策略冲突解决方法,所述方法包括:接收 第一控制策略并将所述第一控制策略分解成m条第一规则,以及,接收 第二控制策略并将所述第二控制策略分解成n条第二规则,其中,m,n为 自然数,所述第一控制策略和所述第二控制策略均作用于第一转发设 备,所述第一规则和第二规则均包括匹配域和动作;对每条所述第一规 则取反以得到第一反规则,对每条所述第二规则取反以得到第二反规 则,分别将每条所述第一反规则与每条所述第二反规则按照规则合成原 则生成相应的第一执行规则,其中,所述规则合成原则包括:由匹配域 类型相同的第一反规则的匹配域与第二反规则的匹配域间的交集或匹 配域类型不同的第一反规则的匹配域与第二反规则的匹配域间的并集, 以及第一反规则的动作与所述第二反规则的动作的交集组成所述第一 执行规则,并将匹配域类型相同的第一反规则的匹配域与第二反规则的 匹配域之间没有交集的第一执行规则作为无效规则;删除所述无效规 则,并将剩余的所述第一执行规则作为有效第一执行规则,将每条所述 有效第一执行规则取反后根据所述第一转发设备支持的协议转化为所 述第一转发设备相应的转发表项。

结合第一方面,本申请第一方面的第一种可能的实施方式中,对每 条所述第一规则取反即令所述第一规则的匹配域不变、所述第一规则的 动作取反,对每条所述第二规则取反即令所述第一规则的匹配域不变、 所述第一规则的动作取反。

结合第一方面的第一种可能的实施方式,本申请第一方面的第二种 可能的实施方式中,所述分别将每条所述第一反规则与每条所述第二反 规则按照规则合成原则生成相应的第一执行规则,包括:将每条所述第 一反规则作为元素并按照第一规则的优先级顺序排列以构成第一矩阵, 所述第一矩阵为列矩阵,将每条所述第二反规则作为元素并按照第二规 则的优先级顺序排列以构成第二矩阵,所述第二矩阵为行矩阵,令所述 第一矩阵与所述第二矩阵相乘得到第一执行规则矩阵,将第一执行规则 矩阵中每对相乘的所述第一反规则与所述第二反规则按照所述规则合 成原则生成相应的第一执行规则,其中所述第一执行规则矩阵的第一执 行规则的优先级为先按照矩阵的列顺序排列,同列的则按照矩阵的行顺 序排列。

结合第一方面的第二种可能的实施方式,本申请第一方面的第三种 可能的实施方式中,所述分解成m条第一规则之后还包括:新增一条第 一匹配规则作为优先级最低的第一规则;所述分解成n条第二规则之后 还包括:新增一条第二匹配规则作为优先级最低的第二规则;其中,所 述第一匹配规则和第二匹配规则的匹配域均为通配符,动作均为丢弃。

结合第一方面的第二种可能的实施方式,本申请第一方面的第四种 可能的实施方式中,所述将剩余的所述第一执行规则作为有效第一执行 规则包括:比较剩余的每两条第一执行规则的匹配域,如果其中一条第 一执行规则的匹配域覆盖另一条第一执行规则的匹配域,则将匹配域较 小的第一执行规则删除;如果两条第一执行规则的匹配域相同,则将优 先级较低的第一执行规则删除,将所述匹配域较小的第一执行规则和所 述优先级较低的第一执行规则删除后剩余的第一执行规则作为有效第 一执行规则。

结合第一方面的第二或四种可能的实施方式,本申请第一方面的第 五种可能的实施方式中,所述方法还包括:接收第三控制策略并将所述 第三控制策略分解成k条第三规则,k为自然数,所述第三控制策略与所 述第一、第二控制策略均作用于所述第一转发设备;对每条所述有效第 一执行规则取反以得到每条第一反执行规则,对每条所述第三规则取反 以得到每条第三反规则;将每条所述第一反执行规则作为元素并按照第 一执行规则的优先级顺序排列以构成第三矩阵,所述第三矩阵为列矩 阵,将每条所述第三反规则作为元素并按照第三规则的优先级顺序排列 以构成第四矩阵,所述第四矩阵为行矩阵,令所述第三矩阵与所述第四 矩阵相乘得到第二执行规则矩阵,分别将第二执行规则矩阵中的每对相 乘的所述第一反执行规则与所述第三反规则按照所述规则合成原则生 成相应的第二执行规则,其中,所述规则合成原则还包括:由匹配域类 型相同的第一反执行规则的匹配域与第三反规则的匹配域间的交集或 匹配域类型不同的第一反执行规则的匹配域与第三反规则的匹配域间 的并集,以及第一反执行规则的动作与所述第三反规则的动作的交集组 成所述第二执行规则,并将匹配域类型相同的第一反执行规则的匹配域 与第三反规则的匹配域之间没有交集的第二执行规则作为无效规则;删 除所述无效规则,并将剩余的每条所述第二执行规则取反后根据所述第 一转发设备支持的协议转化为所述第一转发设备相应的转发表项。

本申请第二方面提供一种策略冲突解决装置,包括:接收模块、合 成模块以及删除模块,所述接收模块用于接收第一控制策略并将所述第 一控制策略分解成m条第一规则,以及,接收第二控制策略并将所述第 二控制策略分解成n条第二规则,其中,m,n为自然数,所述第一控制策 略和所述第二控制策略均作用于第一转发设备,所述第一规则和第二规 则均包括匹配域和动作,所述接收模块将所述m条第一规则以及所述n 条第二规则发送给所述合成模块;所述合成模块用于接收所述m条第一 规则以及所述n条第二规则,对每条所述第一规则取反以得到第一反规 则,对每条所述第二规则取反以得到第二反规则,分别将每条所述第一 反规则与每条所述第二反规则按照规则合成原则生成相应的第一执行 规则,其中,所述规则合成原则包括:由匹配域类型相同的第一反规则 的匹配域与第二反规则的匹配域间的交集或匹配域类型不同的第一反 规则的匹配域与第二反规则的匹配域间的并集,以及第一反规则的动作 与所述第二反规则的动作的交集组成所述第一执行规则,并将匹配域类 型相同的第一反规则的匹配域与第二反规则的匹配域之间没有交集的 第一执行规则作为无效规则,所述合成模块将合成的第一执行规则发送 给所述删除模块;所述删除模块用于接收所述合成的第一执行规则,删 除所述无效规则,并将剩余的所述第一执行规则作为有效第一执行规 则,将每条所述有效第一执行规则取反后根据所述第一转发设备支持的 协议转化为所述第一转发设备相应的转发表项。

结合第二方面,本申请第二方面的第一种可能的实施方式中,对所 述第一规则取反即令所述第一规则的匹配域不变、所述第一规则的动作 取反,对所述第二规则取反即令所述第二规则的匹配域不变、所述第二 规则的动作取反。

结合第二方面的第一种可能的实施方式,本申请第二方面的第二种 可能的实施方式中,所述合成模块还用于将每条所述第一反规则作为元 素并按照第一规则的优先级顺序排列以构成第一矩阵,所述第一矩阵为 列矩阵,将每条所述第二反规则作为元素并按照第二规则的优先级顺序 排列以构成第二矩阵,所述第二矩阵为行矩阵,令所述第一矩阵与所述 第二矩阵相乘得到第一执行规则矩阵,将第一执行规则矩阵中每对相乘 的所述第一反规则与所述第二反规则按照所述规则合成原则生成相应 的第一执行规则,其中所述第一执行规则矩阵的第一执行规则的优先级 为先按照矩阵的列顺序排列,同列的则按照矩阵的行顺序排列。

结合第二方面的第二种可能的实施方式,本申请第二方面的第三种 可能的实施方式中,所述合成模块还用于在所述分解成m条第一规则之 后,新增一条第一匹配规则作为优先级最低的第一规则;在所述分解成 n条第二规则之后,新增一条第二匹配规则作为优先级最低的第二规则; 其中,所述第一匹配规则和第二匹配规则的匹配域均为通配符,动作均 为丢弃。

结合第二方面的第二种可能的实施方式,本申请第二方面的第四种 可能的实施方式中,所述合成模块还用于在删除所述无效规则之后,比 较剩余的每两条第一执行规则的匹配域,如果其中一条第一执行规则的 匹配域覆盖另一条第一执行规则的匹配域,则将匹配域较小的第一执行 规则删除;如果两条第一执行规则的匹配域相同,则将优先级别较低的 第一执行规则删除,将所述匹配域较小的第一执行规则和所述优先级较 低的第一执行规则删除后剩余的第一执行规则作为有效第一执行规则。

结合第二方面的第二或四种可能的实施方式,本申请第二方面的第 五种可能的实施方式中,所述接收模块还用于接收第三控制策略并将所 述第三控制策略分解成k条第三规则,k为自然数,所述第三控制策略与 所述第一、第二控制策略均作用于所述第一转发设备,所述接收模块将 所述k条第三规则发送给所述合成模块;所述合成模块还用于接收所述k 条第三规则,对每条所述有效第一执行规则取反以得到每条第一反执行 规则,对每条所述第三规则取反以得到每条第三反规则,将每条所述第 一反执行规则作为元素并按照第一执行规则的优先级顺序排列以构成 第三矩阵,所述第三矩阵为列矩阵,将每条所述第三反规则作为元素并 按照第三规则的优先级顺序排列以构成第四矩阵,所述第四矩阵为行矩 阵,令所述第三矩阵与所述第四矩阵相乘得到第二执行规则矩阵,分别 将第二执行规则矩阵中的每对相乘的所述第一反执行规则与所述第三 反规则按照所述规则合成原则生成相应的第二执行规则,其中,所述规 则合成原则还包括:由匹配域类型相同的第一反执行规则的匹配域与第 三反规则的匹配域间的交集或匹配域类型不同的第一反执行规则的匹 配域与第三反规则的匹配域间的并集,以及第一反执行规则的动作与所 述第三反规则的动作的交集组成所述第二执行规则,并将匹配域类型相 同的第一反执行规则的匹配域与第三反规则的匹配域之间没有交集的 第二执行规则作为无效规则,所述合成模块将合成的第二执行规则发送 给所述删除模块;所述删除模块还用于接收所述合成的第二执行规则, 删除所述无效规则,并将剩余的每条所述第二执行规则取反后根据所述 第一转发设备支持的协议转化为所述第一转发设备相应的转发表项。

上述方案中,通过将第一控制策略分解成m条第一规则,将第二控 制策略分解成n条第二规则,并根据规则合成原则来将每条第一规则和 第二规则进行合成,由于该规则合成原则会将匹配域类型相同的第一反 规则的匹配域与第二反规则的匹配域之间没有交集的第一执行规则作 为无效规则,上述定义的无效规则即为导致第一、第二控制策略冲突的 规则部分,故通过将存在冲突的无效规则删除,避免了第一控制策略和 第二控制策略间存在的冲突规则情况,即解决了策略冲突问题,使得第 一转发既能执行第一控制策略也能执行第二控制策略。

附图说明

图1是现有技术软件定义网络一实施方式的结构示意图;

图2是本申请策略冲突解决方法一实施方式的流程图;

图3是本申请策略冲突解决方法另一实施方式的流程图;

图4是本申请策略冲突解决装置一实施方式的结构示意图;

图5是本申请控制器一实施方式的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、 接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技 术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本 申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说 明,以免不必要的细节妨碍本申请的描述。

参阅图2,图2是本申请策略冲突解决方法一实施方式的流程图。 图2中各步骤的执行主体可以是SDN中的控制器,也可以是SDN中的 协同层中的服务器。下面以控制器作为执行主体来举例,包括:

210:控制器接收第一控制策略并将所述第一控制策略分解成m条第 一规则,以及,接收第二控制策略并将所述第二控制策略分解成n条第 二规则,其中,m,n为自然数,所述第一控制策略和所述第二控制策略 均作用于第一转发设备,即第一转发设备既需要根据第一控制策略转发 相应报文,也需要根据第二控制策略转发相应报文。所述第一规则和第 二规则均包括匹配域和动作。

下面以背景技术中提到的两条策略分别作为第一控制策略和第二 控制策略为例进行说明。其中,分解原则是拆分成功能最小的策略原子, 即拆封出来的规则不能再拆分为止。

控制器接收到作用于第一转发设备S0的第一控制策略“研发部门服 务器不能访问外部网络,所有研发部门的员工可以从转发设备S1访问公 司的内部网络”,其中,研发部门的员工的IP地址位于网段10.0.0.0/8(即 网段10.0.0.1~10.255.255.255),“\”表示除了,研发部门服务器的IP地 址为10.0.0.1,∪表示为或者,端口80用于访问外部网络,->{S1}表 示通过转发设备S1。所以,第一控制策略可描述为:SrcAddr:10.0.0.0/8\ (SrcAddr:10.0.0.1∪DstPort:80)->{S1}。控制器对第一控制策略进 行分解,可以得到三条第一规则:

(1)研发部门服务器10.0.0.1不能通过转发设备S1以访问外部网 络。

第一规则A1:SrcAddr:10.0.0.1:{},其中,{}中的内容为空, 表示丢弃的意思。其中,本申请中的丢弃即为不执行该控制策略中的所 有动作,如第一控制策略的动作为去往S1,由第一控制策略的分解得到 的第一规则中的丢弃动作则为不去往S1。

(2)研发部门员工不能通过转发设备S1以访问外部网络。

第一规则A2:DstPort:80:{}。

(3)研发部门员工通过转发设备S1访问内部网络。

第一规则A3:SrcAddr:10.0.0.0/8:{S1},其中,{S1}表示去往S1。

控制器接收到作用于第一转发设备S0的第二控制策略“预研小组服 务器不能访问SSH服务,预研小组员工可以通过转发设备S2访问外部 网络”,其中,预研小组员工的IP地址位于网段10.2.0.0/16(即网段 10.2.0.1~10.2.255.255),“\”表示除了,预研服务器的IP地址为10.2.0.1, ∪表示为或者,端口22用于访问SSH服务。所以,第二控制策略可描 述为:SrcAddr:10.2.0.0/16\(SrcAddr:10.2.0.1∪DstPort:22)->{S2}。 控制器对第二控制策略进行分解,可以得到三条第二规则:

(1)预研服务器10.2.0.1不能通过转发设备S2以访问SSH服务。

第二规则B1:SrcAddr:10.2.0.1:{},其中,{}中的内容为空, 表示丢弃的意思。

(2)预研员工不能通过转发设备S2以访问SSH服务。

第二规则B2:DstPort:22:{}

(3)预研员工从转发设备S2访问外部网络。

第二规则B3:SrcAddr:10.2.0.0/16:{S2}

可以理解的是,按照第一控制策略的描述可知,第一规则的优先级 依序为A1>A2>A3;按照第二控制策略的描述可知,第二规则的优先级 依序为B1>B2>B3。

为了达到完全覆盖的效果,可在第一规则和第二规则中均新增一条 优先级最低的匹配规则,该匹配规则的匹配域为通配符,动作为丢弃。 具体如新增一条第一匹配规则作为第一规则A4:*:{},该第一规则表 示:凡是没和第一规则A1、A2以及A3的匹配域匹配的报文都进行丢 弃;新增一条第二匹配规则作为第二规则B4:*:{},该第二规则表示: 凡是没和第二规则B1、B2以及B3的匹配域匹配的报文都进行丢弃。

220:控制器对每条所述第一规则取反以得到第一反规则,对每条 所述第二规则取反以得到第二反规则,分别将每条所述第一反规则与每 条所述第二反规则按照规则合成原则生成相应的第一执行规则,其中, 所述规则合成原则包括:由匹配域类型相同的第一反规则的匹配域与第 二反规则的匹配域间的交集或匹配域类型不同的第一反规则的匹配域 与第二反规则的匹配域间的并集,以及第一反规则的动作与所述第二反 规则的动作的交集组成所述第一执行规则,并将匹配域类型相同的第一 反规则的匹配域与第二反规则的匹配域之间没有交集的第一执行规则 作为无效规则。

控制器对上述四条第一规则取反以得到四条第一反规则。其中,对 第一规则取反即令第一规则的匹配域不变、第一规则的动作取反。可以 理解的是,控制策略的所有动作的集合即为该控制策略分解得到的动作 的全集,故对其中动作取反即为执行该控制策略中除该动作外的剩余动 作。对于控制策略分解得到的规则的动作为{},即表示丢弃,即不执行 该规则所属的控制策略中的所有动作,故取反为执行该规则所属的控制 策略中的所有动作。如第一控制策略分解得到的第一规则的动作为{}, 其动作取反即为执行第一控制策略中的所有动作即去往S1。具体如下:

第一反规则C1:SrcAddr:10.0.0.1:{S1},其中,{S1}表示去往S1 的意思。

第一反规则C2:DstPort:80:{S1}。

第一反规则C3:SrcAddr:10.0.0.0/8:其中,表示不 去往S1的意思。

第一反规则C4:*:{S1}。

控制器对上述四条第二规则取反以得到四条第二反规则。其中,对 第二规则取反即令第二规则的匹配域不变、第二规则的动作取反。同理, 若第二规则的动作为{},取反即为执行第二控制策略中的所有动作即去 往S2。具体如下:

第二反规则D1:SrcAddr:10.2.0.1:{S2},其中,{S2}表示去往 S2的意思。

第二反规则D2:DstPort:22:{S2}。

第二反规则D3:SrcAddr:10.2.0.0/16:其中,表示不 去往S2的意思。

第二反规则D4:*:{S2}。

其中,每条第一反规则的优先级与相应的第一规则的优先级相同, 每条第二反规则的优先级与相应的第二规则的优先级相同。

控制器将四条第一反规则C1、C2、C3、C4分别与四条第二反规则 D1、D2、D3、D4按照规则合成原则进行两两组合,生成16条第一执 行规则。其中,第一执行规则的优先级按照合成该第一执行规则的两条 规则的优先级进行排序,具体可定义为先按照优先级较高的第一控制策 略分解得到的第一规则的优先级进行排序,当第一规则优先级相同再按 照优先级较低的第二控制策略分解得到第二规则的优先级进行排列。如 得到的第一执行规则为C1D1,C1D2,C2D1,C3D2,C3D4,C4D1, 则优先级依序为C1D1>C1D2>C2D1>C3D2>C3D4>C4D1。

可以理解的是,控制器可采用各种方式实现所有第一、第二规则两 两组合。下面,为使生成的第一执行规则的优先级按照矩阵元素顺序排 列,采用矩阵相乘方式进行两两组合。

具体地,控制器将每条所述第一反规则作为元素并按照第一规则的 优先级顺序排列以构成第一矩阵所述第一矩阵为列矩阵,将每条 所述第二反规则作为元素并按照第二规则的优先级顺序排列以构成第 二矩阵所述第二矩阵为行矩阵。一般,将优先级高的控制策略 的规则矩阵作为列矩阵,本例第一控制策略的优先级高于第二控制策 略,故以第一矩阵为列矩阵,第二矩阵为行矩阵。

令所述第一矩阵与所述第二矩阵相乘,得到第一矩阵的每个第一规 则和第二矩阵的每个第二规则的两两相乘组合构成第一执行规则矩阵:

P1×P2=C1C2C3C4=[D1,D2,D3,D4]=C1D1,C2D1,C3D1,C4D1C1D2,C2D2,C3D2,C4D2C1D3,C2D3,C3D3,C4D3C1D4,C2D4,C3D4,C4D4

其中,第一执行规则中的每对相乘的第一规则与第二规则按照上述 规则合成原则生成第一执行规则。该规则合成原则包括:如果第一反规 则的匹配域与第二反规则的匹配域是同一种类型时,则判断第一反规则 的匹配域与第二反规则的匹配域之间是否有交集。如果第一反规则的匹 配域与第二反规则的匹配域之间没有交集时,该第一反规则和第二反规 则合成的规则为无效规则;如果第一反规则的第一匹配域与第二反规则 的第二匹配域之间存在交集时,则由第一反规则的匹配域与第二反规则 的匹配域之间的交集以及第一反规则的动作与第二反规则的动作的交 集组成有效的第一执行规则。如果第一反规则的匹配域与第二反规则的 匹配域不是同一种类型时,则由第一反规则的匹配域与第二反规则的匹 配域的并集以及第一反规则的动作与第二反规则的动作的交集组成有 效的第一执行规则。当然,在其他应用实施例中,该规则合成原则还可 包括:若第一反规则的动作与第二反规则的动作的交集的取反没有交 集,则将该第一反规则和第二反规则合成的规则也作为无效规则。

可以理解的是,上述由第一反规则的匹配域与第二反规则的匹配域 的交集或并集以及第一反规则的动作与第二反规则的动作的交集组成 第一执行规则,并不意味着第一执行规则限定只包括匹配域和动作,在 第一、第二规则除匹配域和动作外还包括其他部分的实施例中,该第一 执行规则也必然包括相应其他部分,而具体其他部分的合成原则可按照 实际取其交集或并集。

具体地:

对于C1D1,其中,第一反规则C1为:SrcAddr:10.0.0.1:{S1}, 第二反规则D1为:SrcAddr:10.2.0.1:{S2},第一反规则C1的匹配域 为一个IP地址10.0.0.1,第二反规则D1的匹配域为一个IP地址10.2.0.1, 两者之间尽管是同一类型,但是两者之间没有交集,所以,C1D1为无 效规则。

对于C1D2,其中,第一反规则C1为:SrcAddr:10.0.0.1:{S1}, 第二反规则D2为:DstPort:22:{S2},第一反规则C1的匹配域为一 个IP地址10.0.0.1,第二反规则D2的匹配域为一个端口地址22,两者 之间为不同类型,所以,C1D2取第一反规则C1的匹配域与第二反规则 D2的匹配域的并集以及第一反规则C1的动作与第二反规则D2的动作 的交集,C1D2为10.0.0.1,22:{S1∩S2}。

对于C1D3,其中,第一反规则C1为:SrcAddr:10.0.0.1:{S1}, 第二反规则D3为:SrcAddr:10.2.0.0/16:第一反规则C1的匹 配域为一个IP地址10.0.0.1,第二反规则D3的匹配域为10.2.0.0/16 (10.2.0.1~10.2.255.255),两者类型相同,但是,IP网址10.0.0.1与网段 10.2.0.0/16之间没有任何交集,所以,C1D3为无效规则。

对于C1D4,其中,第一反规则C1为:SrcAddr:10.0.0.1:{S1}, 第二反规则D4为:*:{S2},第一反规则C1的匹配域为一个IP地址 10.0.0.1,第二反规则D4的匹配域为通配符*,两者之间类型相同,所 以,C1D4取第一反规则C1的匹配域与第二反规则D4的匹配域的交集 以及第一反规则C1的动作与第二反规则D4的动作的交集,C1D4为 10.0.0.1:{S1∩S2}。

对于C2D1,其中,第一反规则C2为:DstPort:80:{S1},第二反 规则D1为:SrcAddr:10.2.0.1:{S2},第一反规则C2的匹配域为一个 端口地址80,第二反规则D1的匹配域为一个IP地址10.2.0.1,两者之 间为不同类型,所以,C2D1取第一反规则C2的匹配域与第二反规则 D1的匹配域的并集以及第一反规则C2的动作与第二反规则D1的动作 的交集,C2D1为10.2.0.1,80:{S1∩S2}。

对于C2D2,其中,第一反规则C2为:DstPort:80:{S1},第二反 规则D2为:DstPort:22:{S2},第一反规则C2的匹配域为一个端口 地址80,第二反规则D2的匹配域为一个端口地址22,两者之间尽管是 同一类型,但是两者之间没有交集,所以,C2D2为无效规则。

对于C2D3,其中,第一反规则C2为:DstPort:80:{S1},第二反 规则D3为:SrcAddr:10.2.0.0/16:第一反规则C2的匹配域为 一个端口地址80,第二反规则D3的匹配域为10.2.0.0/16 (10.2.0.1~10.2.255.255),两者类型不同,所以,C2D3取第一反规则 C2的匹配域与第二反规则D3的匹配域的并集以及第一反规则C2的动 作与第二反规则D3的动作的交集,C2D3为10.2.0.0/16,80:

对于C2D4,其中,第一反规则C2为:DstPort:80:{S1},第二反 规则D4为:*:{S2},第一反规则C2的匹配域为一个端口地址80,第 二反规则D4的匹配域为通配符*,两者之间类型相同,所以,C2D4取 第一反规则C2的匹配域与第二反规则D4的匹配域的交集以及第一反规 则C2的动作与反规则D4的第二动作的交集,C2D4为80:{S1∩S2}。

对于C3D1,其中,第一反规则C3为:SrcAddr:10.0.0.0/8:第二反规则D1为:SrcAddr:10.2.0.1:{S2},第一反规则C3的匹配域 为一个网段地址10.0.0.0/8(10.0.0.0~10.255.255.255),第二反规则D1 的匹配域为一个IP地址10.2.0.1,两者类型相同,而且IP地址10.2.0.1 属于网段地址10.0.0.0/8(10.0.0.0~10.255.255.255),两者之间存在交集, 所以,C3D1取第一反规则C3的匹配域与第二反规则D1的匹配域的交 集以及第一反规则C3的动作与第二反规则D1的动作的交集,C3D1为 10.2.0.1:

对于C3D2,其中,第一反规则C3为:SrcAddr:10.0.0.0/8:第二反规则D2为:DstPort:22:{S2},第一反规则C3的匹配域为一 个网段地址10.0.0.0/8(10.0.0.0~10.255.255.255),第二反规则D2的匹 配域为一个端口地址22,两者类型不同,所以,C3D2取第一反规则C3 的匹配域与第二反规则D2的匹配域的并集以及第一反规则C3的动作与 第二反规则D2的动作的交集,C3D2为10.0.0.0/8,22:

对于C3D3,其中,第一反规则C3为:SrcAddr:10.0.0.0/8:第二反规则D3为:SrcAddr:10.2.0.0/16:第一反规则C3的匹 配域为一个网段地址10.0.0.0/8(10.0.0.0~10.255.255.255),第二反规则 D3的匹配域为10.2.0.0/16(10.2.0.1~10.2.255.255),两者类型相同,且 网段地址10.2.0.0/16(10.2.0.1~10.2.255.255)属于网段地址10.0.0.0/8 (10.0.0.0~10.255.255.255),所以,C3D3取第一反规则C3的匹配域与 第二反规则D3的匹配域的交集以及第一反规则C3的动作与第二反规则 D3的动作的交集,C3D3为10.2.0.0/16:

对于C3D4,其中,第一反规则C3为:SrcAddr:10.0.0.0/8:第二反规则D4为:*:{S2},第一反规则C3的匹配域为一个网段地址 10.0.0.0/8(10.0.0.0~10.255.255.255),第二反规则D4的匹配域为通配符 *,两者之间类型相同,所以,C3D4取第一反规则C3的匹配域与第二 反规则D4的匹配域的交集以及第一反规则C3的动作与第二反规则D4 的动作的交集,C3D4为10.0.0.0/8:

对于C4D1,其中,第一反规则C4为:*:{S1},第二反规则D1 为:SrcAddr:10.2.0.1:{S2},第一反规则C4的匹配域为通配符*,第 二反规则D1的匹配域为一个IP地址10.2.0.1,两者类型相同,且IP地 址10.2.0.1属于通配符*,两者存在交集,所以,C4D1取第一反规则C4 的匹配域与第二反规则D1的匹配域的交集以及第一反规则C4的动作与 第二反规则D1的动作的交集,C4D1为10.2.0.1:{S1∩S2}。

对于C4D2,其中,第一反规则C4为:*:{S1},第二反规则D2 为:DstPort:22:{S2},第一反规则C4的匹配域为通配符*,第二反规 则D2的匹配域为一个端口地址22,两者类型相同,所以,C4D2取第 一反规则C4的匹配域与第二反规则D2的匹配域的交集以及第一反规则 C4的动作与第二反规则D2的动作的交集,C4D2为22:{S1∩S2}。

对于C4D3,其中,第一反规则C4为:*:{S1},第二反规则D3 为:SrcAddr:10.2.0.0/16:第一反规则C4的匹配域为通配符*, 第二反规则D3的匹配域为10.2.0.0/16(10.2.0.1~10.2.255.255),两者类 型相同,所以,C4D3取第一反规则C4的匹配域与第二反规则D3的匹 配域的交集以及第一反规则C4的动作与第二反规则D3的动作的交集, C4D3为10.2.0.0/16:

对于C4D4,其中,第一反规则C4为:*:{S1},第二反规则D4 为:*:{S2},第一反规则C4的匹配域为通配符*,第二反规则D4的 匹配域为通配符*,两者之间类型相同,所以,C4D4取第一反规则C4 的匹配域与第二反规则D4的匹配域的交集以及第一反规则C4的动作与 第二反规则D4的动作的交集,C4D4为*:{S1∩S2}。

上述第一执行规则矩阵中,第一执行规则的优先级则先按照矩阵的 列顺序排列,若同列则按照矩阵的行顺序排列。如第一执行规则矩阵中 第一执行规则的优先级为:第一列>第二列>第三列>第四列…,而对于 位于同一列的第一执行规则的优先级则:第一行>第二行>第三行>第四 行…。所以,第一执行规则C1D1的优先级别最高,第一执行规则C1D2 的优先级别其次,……,第一执行规则C4D4的优先级别最低。

230:控制器删除所述无效规则,并将剩余的所述第一执行规则作 为有效第一执行规则,将每条所述有效第一执行规则取反后根据所述第 一转发设备支持的协议转化为所述第一转发设备相应的转发表项。

对剩余有效的第一执行规则取反的原则为令匹配域不变,动作取 反,其中,S1S2=S1S2={},S1S2=S1S2=S2,S1S2=S1S2=S1,S1S2=S1S2=S1,S2.

在上述第一执行规则矩阵中:

由于C1D1是无效规则,将C1D1删除,故不需对C1D1进行取反。

对C1D2(10.0.0.1,22:{S1∩S2})进行取反,使得匹配域不变,动 作取反,从而得到第一执行规则的取反为10.0.0.1,22:其中, 所以,第一执行规则的取反可简化为10.0.0.1,22:{}。

由于C1D3是无效规则,将C1D3删除,故不需对C1D3进行取反。

对C1D4(10.0.0.1:{S1∩S2})进行取反,使得匹配域不变,动作 取反,从而得到第一执行规则的取反为10.0.0.1:其中, 所以,第一执行规则的取反可简化为10.0.0.1:{}。

对于C2D1(10.2.0.1,80:{S1∩S2})进行取反,使得匹配域不变, 动作取反,从而得到第一执行规则的取反10.2.0.1,80:其中, 所以,第一执行规则的取反可简化为10.2.0.1,80:{}。

由于C2D2是无效规则,将C2D2删除,故不需对C2D2进行取反。

对C2D3(10.2.0.0/16.80:)进行取反,使得匹配域不变, 动作取反,从而得到第一执行规则的取反10.2.0.0/16,80:其 中,所以,第一执行规则的取反可简化为10.2.0.0/16,80: {S2}。

对C2D4(80:{S1∩S2})进行取反,使得匹配域不变,动作取反, 从而得到第一执行规则的取反80:其中,所以, 第一执行规则的取反可简化为80:{}。

对于C3D1(10.2.0.1:)进行取反,使得匹配域不变,动 作取反,从而得到第一执行规则的取反10.2.0.1:其中, 所以,第一执行规则的取反可简化为10.2.0.1:{S1}。

对C3D2(10.0.0.0/8,22:)进行取反,使得匹配域不变, 动作取反,从而得到第一执行规则的取反10.0.0.0/8,22:}。其中, 所以,第一执行规则的取反可简化为10.0.0.0/8,22:{S1}。

对C3D3(10.2.0.0/16:)进行取反,使得匹配域不变,动 作取反,从而得到第一执行规则的取反10.2.0.0/16:其中, 所以,第一执行规则的取反可简化为10.2.0.0/16:{S1,S2}。

对C3D4(10.0.0.0/8:)进行取反,使得匹配域不变,动 作取反,从而得到第一执行规则的取反10.0.0.0/8:其中, 所以,第一执行规则的取反可简化为10.0.0.0/8:{S1}。

对C4D1(10.2.0.1:{S1∩S2})进行取反,使得匹配域不变,动作 取反,从而得到第一执行规则的取反10.2.0.1:其中, 所以,第一执行规则的取反可简化为10.2.0.1:{}。

对C4D2(22:{S1∩S2})进行取反,使得匹配域不变,动作取反, 从而得到第一执行规则的取反22:其中,所以, 第一执行规则的取反可简化为22:{}。

对C4D3(10.2.0.0/16:)进行取反,使得匹配域不变,动 作取反,从而得到第一执行规则的取反10.2.0.0/16:其中, 所以,第一执行规则的取反可简化为10.2.0.0/16:{S2}。

对C4D4(*:{S1∩S2})进行取反,使得匹配域不变,动作取反, 从而得到第一执行规则的取反*:其中,所以, 第一执行规则的取反可简化为*:{}。

控制器将上述第一执行规则矩阵中的有效第一执行规则的取反根 据第一转发设备S0支持的协议转化为相应的转发表项,以使第一转发设 备S0在根据该转发表。转发表项可以是Openflow协议中定义的流表项, 也可以是其它协议中定义的转发表项,此处不作具体限定。而且,转发 表项的优先级与其相应的第一执行规则优先级顺序相同,使得第一转发 设备S0接收到报文后,根据与该报文匹配的转发表项中优先级最高的转 发表项将报文转发给其他转发设备,如S1或S2。

当冲突的控制策略还包括第三控制策略,即所述第三控制策略与所 述第一、第二控制策略均作用于所述第一转发设备S0时,控制器接收第 三控制策略并将所述第三控制策略分解成k条第三规则,k为自然数。对 上述有效第一执行规则取反以得到第一反执行规则,对第三规则取反以 得到第三反规则。将第一反执行规则并按照第一执行规则的优先级顺序 排列以构成第三矩阵所述第三矩阵为列矩阵,将第三反规则作为 元素并按照第三规则的优先级顺序排列以构成第四矩阵所述第四矩 阵为行矩阵,令所述第三矩阵与所述第四矩阵相乘得到第二执 行规则矩阵,分别将第二执行规则矩阵中的每对相乘的所述第一反执行 规则与所述第三反规则按照类似于上述规则合成原则生成相应的第二 执行规则,删除所述无效规则,并将剩余的每条所述第二执行规则取反 后根据所述第一转发设备S0支持的协议转化为所述第一转发设备S0相 应的转发表项。其中,该规则合成原则内容类似于上述的规则合成内容: 由匹配域类型相同的第一反执行规则的匹配域与第三反规则的匹配域 间的交集或匹配域类型不同的第一反执行规则的匹配域与第三反规则 的匹配域间的并集,以及第一反执行规则的动作与所述第三反规则的动 作的交集组成所述第二执行规则,并将匹配域类型相同的第一反执行规 则的匹配域与第三反规则的匹配域之间没有交集的第二执行规则作为 无效规则。其具体的过程与上述过程相类似,此处不展开赘述。

上述方案中,通过将第一控制策略分解成m条第一规则,将第二控 制策略分解成n条第二规则,并根据规则合成原则来将每条第一规则和 第二规则进行合成,由于该规则合成原则会将匹配域类型相同的第一反 规则的匹配域与第二反规则的匹配域之间没有交集的第一执行规则作 为无效规则,上述定义的无效规则即为导致第一、第二控制策略冲突的 规则部分,故通过将存在冲突的无效规则删除,避免了第一控制策略和 第二控制策略间存在的冲突规则情况,即解决了策略冲突问题,使得第 一转发既能执行第一控制策略也能执行第二控制策略。

参阅图3,图3是本申请策略冲突解决方法一实施方式的流程图。 本实施方式与图2所示的实施方式的步骤210、220相同,其不同之处 在于,步骤230具体包括:

310:控制器删除无效规则。

320:控制器比较剩余的每两条第一执行规则的匹配域,如果其中 一条第一执行规则的匹配域覆盖另一条第一执行规则的匹配域,则将匹 配域较小的第一执行规则删除;如果两条第一执行规则的匹配域相同, 则将优先级别较低的第一执行规则删除,将所述匹配域较小的第一执行 规则和所述优先级较低的第一执行规则删除后剩余的第一执行规则作 为有效第一执行规则。

控制器对第一执行规则矩阵中的删除无效规则后剩余的每两条第 一执行规则的匹配域进行比较,当然也可只将匹配域有相同的每两条第 一执行规则的匹配域进行比较。其中两个匹配域的匹配条件越多且匹配 条件相同则匹配域越小。如第一执行规则C1D2的匹配域为10.0.0.1,22, 有两个匹配条件分别为IP地址为10.0.0.1和端口为22,第一执行规则 C1D4的匹配域10.0.0.1,只有一个匹配条件且与C1D2的一个匹配条件 相同,即第一执行规则C1D2的匹配域为10.0.0.1,22,被第一执行规则 C1D4的匹配域10.0.0.1覆盖,即第一执行规则C1D2的匹配域较小,所 以可删除第一执行规则C1D2;发现第一执行规则C3D1的匹配域为 10.2.0.1,覆盖第一执行规则C2D1的匹配域10.2.0.1,80,即第一执行规 则C2D1的匹配域较小,所以,可将第一执行规则C2D1删除。发现第 一执行规则C3D1的匹配域为10.2.0.1与第一执行规则C4D1的匹配域 10.2.0.1相同,其中匹配域相同即为匹配条件全部相同,或者还可为两 者的匹配条件均包括相同的端口号,且其中一个匹配域只包括上述端口 号的匹配条件,第一执行规则C3D1的优先级别较高,所以,删除第一 执行规则C4D1。同理,发现第一执行规则C3D3的匹配域与第一执行 规则C4D3的匹配域相同,第一执行规则C3D3的优先级别高于第一执 行规则C4D3的优先级别,所以,删除第一执行规则C4D3。发现第一 执行规则C4D2的匹配域为22,只包括端口号,而第一执行规则C3D2 的匹配域为10.0.0.0/8,22,不仅包括该端口号,则两者匹配域相同,第 一执行规则C3D2的优先级别高于第一执行规则C4D2的优先级别,所 以删除第一执行规则C4D2。

所以剩下的第一执行规作为有效第一执行规则,并取反得到:

R1:10.0.0.1:{}含义为:研发部门服务器不能通过S1访问外部 网络。其中,由于匹配域10.0.0.1属于第一控制策略,即该规则R1属于 第一控制策略,故R1的动作{}表示不去往第一控制策略的所有动作 即不去往S1。下面规则的丢弃动作同理。

R2:10.2.0.0/16,80:{S2}含义为:预研小组员工从S2访问外部网 络。

R3:80:{}含义为:研发部门员工不能通过S1访问外部网络。

R4:10.2.0.1:{S1}含义为:预研小组服务器通过S1访问内部网 络。

R5:10.0.0.0/8,22:{S1}含义为:研发部门员工从S1访问内部网 络。

R6:10.2.0.0/16:{S1,S2}含义为:预研小组员工从S2访问外部网 络,从S1访问内部网络。

R7:10.0.0.0/8:{S1}含义为:研发部门员工从S1访问内部网络。

R8:*:{}含义为:当报文不能与第一执行规则R1至R8的匹配 域匹配时,丢弃报文。

经过上述优化处理,剩余的每两个有效第一执行规则的匹配域均无 完全重叠,且可按照转化表项的优先级执行转发,避免了冲突的发生, 进一步解决了冲突策略。

330:控制器将每条所述有效第一执行规则取反后根据所述第一转 发设备支持的协议转化为所述第一转发设备相应的转发表项。

当冲突的控制策略还包括第三控制策略,即所述第三控制策略与所 述第一、第二控制策略均作用于所述第一转发设备S0时,控制器如上一 实施方式过程生成第二执行规则,并转化成第一转发设备S0相应的转发 表项,此处不展开赘述。

本方案针对SDN上多应用、多用户出现策略冲突的情况下,用简 洁明了的规则合成原则,定义完备的匹配项覆盖空间,并将造成冲突的 无效规则删除,解决了第一、第二控制策略间的冲突问题。同时,沿用 优先级,可把规则的优先级和矩阵元素相结合,不破坏原有的策略优先 级。同时,可优化发现匹配项覆盖问题和动作冲突问题,并解决这两个 冲突,生成高效的无冲突的转发规则。

参阅图4,图4是本申请策略冲突解决装置一实施方式的流程图。 本实施方式的策略冲突解决装置包括接收模块410、合成模块420以及 删除模块430。

所述接收模块410用于接收第一控制策略并将所述第一控制策略分 解成m条第一规则,以及,接收第二控制策略并将所述第二控制策略分 解成n条第二规则,其中,m,n为自然数,所述第一控制策略和所述第二 控制策略均作用于第一转发设备,所述第一规则和第二规则均包括匹配 域和动作,所述接收模块410将所述m条第一规则以及所述n条第二规 则发送给所述合成模块420;

所述合成模块420用于接收所述m条第一规则以及所述n条第二规 则,对每条所述第一规则取反以得到第一反规则,对每条所述第二规则 取反以得到第二反规则,分别将每条所述第一反规则与每条所述第二反 规则按照规则合成原则生成相应的第一执行规则,其中,所述规则合成 原则包括:由匹配域类型相同的第一反规则的匹配域与第二反规则的匹 配域间的交集或匹配域类型不同的第一反规则的匹配域与第二反规则 的匹配域间的并集,以及第一反规则的动作与所述第二反规则的动作的 交集组成所述第一执行规则,并将匹配域类型相同的第一反规则的匹配 域与第二反规则的匹配域之间没有交集的第一执行规则作为无效规则, 所述合成模块420将合成的第一执行规则发送给所述删除模块430;可 选地,该规则合成原则还可包括:若第一反规则的动作与第二反规则的 动作的交集的取反没有交集,则将该第一反规则和第二反规则合成的规 则也作为无效规则。

所述删除模块430用于接收所述合成的第一执行规则,删除所述无 效规则,并将剩余的所述第一执行规则作为有效第一执行规则,将每条 所述有效第一执行规则取反后根据所述第一转发设备支持的协议转化 为所述第一转发设备相应的转发表项。

可选地,对所述第一规则取反即令所述第一规则的匹配域不变、所 述第一规则的动作取反,对所述第二规则取反即令所述第二规则的匹配 域不变、所述第二规则的动作取反。

可选地,所述合成模块420还用于将每条所述第一反规则作为元素 并按照第一规则的优先级顺序排列以构成第一矩阵,所述第一矩阵为列 矩阵,将每条所述第二反规则作为元素并按照第二规则的优先级顺序排 列以构成第二矩阵,所述第二矩阵为行矩阵,令所述第一矩阵与所述第 二矩阵相乘得到第一执行规则矩阵,将第一执行规则矩阵中每对相乘的 所述第一反规则与所述第二反规则按照所述规则合成原则生成相应的 第一执行规则,其中所述第一执行规则矩阵的第一执行规则的优先级为 先按照矩阵的列顺序排列,同列的则按照矩阵的行顺序排列。

可选地,所述合成模块420还用于在所述分解成m条第一规则之后, 新增一条第一匹配规则作为优先级最低的第一规则;在所述分解成n条 第二规则之后,新增一条第二匹配规则作为优先级最低的第二规则。其 中,所述第一匹配规则和第二匹配规则的匹配域均为通配符,动作均为 丢弃。

可选地,所述接收模块410还用于接收第三控制策略并将所述第三 控制策略分解成k条第三规则,k为自然数,所述第三控制策略与所述第 一、第二控制策略均作用于所述第一转发设备,所述接收模块410将所 述k条第三规则发送给所述合成模块420;

所述取反模块420还用于接收所述k条第三规则,对每条所述有效 第一执行规则取反以得到每条第一反执行规则,对每条所述第三规则取 反以得到每条第三反规则,将每条所述第一反执行规则作为元素并按照 第一执行规则的优先级顺序排列以构成第三矩阵,所述第三矩阵为列矩 阵,将每条所述第三反规则作为元素并按照第三规则的优先级顺序排列 以构成第四矩阵,所述第四矩阵为行矩阵,令所述第三矩阵与所述第四 矩阵相乘得到第二执行规则矩阵,分别将第二执行规则矩阵中的每对相 乘的所述第一反执行规则与所述第三反规则按照所述规则合成原则生 成相应的第二执行规则,其中,所述规则合成原则还包括:由匹配域类 型相同的第一反执行规则的匹配域与第三反规则的匹配域间的交集或 匹配域类型不同的第一反执行规则的匹配域与第三反规则的匹配域间 的并集,以及第一反执行规则的动作与所述第三反规则的动作的交集组 成所述第二执行规则,并将匹配域类型相同的第一反执行规则的匹配域 与第三反规则的匹配域之间没有交集的第二执行规则作为无效规则,所 述合成模块420将合成的第二执行规则发送给所述删除模块430;

所述删除模块430用于接收所述合成的第二执行规则,删除所述无 效规则,并将剩余的每条所述第二执行规则取反后根据所述第一转发设 备支持的协议转化为所述第一转发设备相应的转发表项。

本实施方式的策略冲突解决装置能够执行如图2所示的方法。

可选地,所述合成模块还用于在删除所述无效规则之后,比较剩余 的每两条第一执行规则的匹配域,如果其中一条第一执行规则的匹配域 覆盖另一条第一执行规则的匹配域,则将匹配域较小的第一执行规则删 除;如果两条第一执行规则的匹配域相同,则将优先级别较低的第一执 行规则删除,将所述匹配域较小的第一执行规则和所述优先级较低的第 一执行规则删除后剩余的第一执行规则作为有效第一执行规则。

当冲突的控制策略还包括第三控制策略,即所述第三控制策略与所 述第一、第二控制策略均作用于所述第一转发设备S0时,所述装置如上 一实施方式过程生成第二执行规则,并转化成第一转发设备S0相应的转 发表项,此处不展开赘述。

本实施方式的策略冲突解决装置能够执行如图3所示的方法。

上述方案中,通过将第一控制策略分解成m条第一规则,将第二控 制策略分解成n条第二规则,并根据规则合成原则来将每条第一规则和 第二规则进行合成,由于该规则合成原则会将匹配域类型相同的第一反 规则的匹配域与第二反规则的匹配域之间没有交集的第一执行规则作 为无效规则,上述定义的无效规则即为导致第一、第二控制策略冲突的 规则部分,故通过将存在冲突的无效规则删除,避免了第一控制策略和 第二控制策略间存在的冲突规则情况,即解决了策略冲突问题,使得第 一转发既能执行第一控制策略也能执行第二控制策略。

参阅图5,图5是本申请控制器一实施方式的结构示意图。本实施 方式的控制器500接收器501、处理器502、发送器503、存储器504以 及总线505。

接收器501用于接收第一控制策略以及第二控制策略。

处理器502用于:

将所述第一控制策略分解成m条第一规则,将所述第二控制策略分 解成n条第二规则,其中,m,n为自然数,所述第一控制策略和所述第二 控制策略均作用于第一转发设备,所述第一规则和第二规则均包括匹配 域和动作;

对每条所述第一规则取反以得到第一反规则,对每条所述第二规则 取反以得到第二反规则,分别将每条所述第一反规则与每条所述第二反 规则按照规则合成原则生成相应的第一执行规则,其中,所述规则合成 原则包括:由匹配域类型相同的第一反规则的匹配域与第二反规则的匹 配域间的交集或匹配域类型不同的第一反规则的匹配域与第二反规则 的匹配域间的并集,以及第一反规则的动作与所述第二反规则的动作的 交集组成所述第一执行规则,并将匹配域类型相同的第一反规则的匹配 域与第二反规则的匹配域之间没有交集的第一执行规则作为无效规则;

删除所述无效规则,并将剩余的所述第一执行规则作为有效第一执 行规则,将每条所述有效第一执行规则取反后根据所述第一转发设备支 持的协议转化为所述第一转发设备相应的转发表项。

发送器503用于将所述转发表项发送出去。

存储器504可以包括只读存储器和随机存取存储器,并向处理器502 提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存 储器(NVRAM)。

存储器504存储了如下的元素,可执行模块或者数据结构,或者它 们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基 于硬件的任务。

在本发明实施例中,处理器502通过调用存储器504存储的操作指 令(该操作指令可存储在操作系统中),来执行上述操作。

处理器502还可以称为CPU(Central Processing Unit,中央处理单 元)。存储器504可以包括只读存储器和随机存取存储器,并向处理器 502提供指令和数据。存储器504的一部分还可以包括非易失性随机存 取存储器(NVRAM)。具体的应用中,控制器的各个组件通过总线系统 505耦合在一起,其中总线系统505除包括数据总线之外,还可以包括 电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图 中将各种总线都标为总线系统505。

上述本发明实施例揭示的方法可以应用于处理器502中,或者由处 理器502实现。处理器502可能是一种集成电路芯片,具有信号的处理 能力。在实现过程中,上述方法的各步骤可以通过处理器502中的硬件 的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通 用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编 程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑 器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方 法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以 是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直 接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件 模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器, 可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的 存储介质中。该存储介质位于存储器504,处理器502读取存储器504 中的信息,结合其硬件完成上述方法的步骤。

可选地,对所述第一规则取反即令所述第一规则的匹配域不变、所 述第一规则的动作取反,对所述第二规则取反即令所述第二规则的匹配 域不变、所述第二规则的动作取反。

可选地,处理器502还用于将每条所述第一反规则作为元素并按照 第一规则的优先级顺序排列以构成第一矩阵,所述第一矩阵为列矩阵, 将每条所述第二反规则作为元素并按照第二规则的优先级顺序排列以 构成第二矩阵,所述第二矩阵为行矩阵,令所述第一矩阵与所述第二矩 阵相乘得到第一执行规则矩阵,将第一执行规则矩阵中每对相乘的所述 第一反规则与所述第二反规则按照所述规则合成原则生成相应的第一 执行规则,其中所述第一执行规则矩阵的第一执行规则的优先级为先按 照矩阵的列顺序排列,同列的则按照矩阵的行顺序排列。

可选地,处理器502还用于在所述分解成m条第一规则之后,新增 一条第一匹配规则作为优先级最低的第一规则;在所述分解成n条第二 规则之后,新增一条第二匹配规则作为优先级最低的第二规则。其中, 所述第一匹配规则和第二匹配规则的匹配域均为通配符,动作均为丢 弃。

可选地,处理器502还用于在删除所述无效规则之后,比较剩余的 每两条第一执行规则的匹配域,如果其中一条第一执行规则的匹配域覆 盖另一条第一执行规则的匹配域,则将匹配域较小的第一执行规则删 除;如果两条第一执行规则的匹配域相同,则将优先级别较低的第一执 行规则删除,将所述匹配域较小的第一执行规则和所述优先级较低的第 一执行规则删除后剩余的第一执行规则作为有效第一执行规则。

可选地,所述接收器501还用于接收第三控制策略并将所述第三控 制策略分解成k条第三规则,k为自然数,所述第三控制策略与所述第一、 第二控制策略均作用于所述第一转发设备;所述处理器502还用于对每 条有效第一执行规则取反以得到每条所述第一反执行规则,对每条第三 规则取反以得到每条所述第三反规则,将每条所述第一反执行规则作为 元素并按照第一执行规则的优先级顺序排列以构成第三矩阵,所述第三 矩阵为列矩阵,将每条所述第三反规则作为元素并按照第三规则的优先 级顺序排列以构成第四矩阵,所述第四矩阵为行矩阵,令所述第三矩阵 与所述第四矩阵相乘得到第二执行规则矩阵,分别将第二执行规则矩阵 中的每对相乘的所述第一反执行规则与所述第三反规则按照所述规则 合成原则生成相应的第二执行规则,其中,所述规则合成原则还包括: 由匹配域类型相同的第一反执行规则的匹配域与第三反规则的匹配域 间的交集或匹配域类型不同的第一反执行规则的匹配域与第三反规则 的匹配域间的并集,以及第一反执行规则的动作与所述第三反规则的动 作的交集组成所述第二执行规则,并将匹配域类型相同的第一反执行规 则的匹配域与第三反规则的匹配域之间没有交集的第二执行规则作为 无效规则,删除所述无效规则,并将剩余的每条所述第二执行规则取反 后根据所述第一转发设备支持的协议转化为所述第一转发设备相应的 转发表项。

上述方案中,通过将第一控制策略分解成m条第一规则,将第二控 制策略分解成n条第二规则,并根据规则合成原则来将每条第一规则和 第二规则进行合成,由于该规则合成原则会将匹配域类型相同的第一反 规则的匹配域与第二反规则的匹配域之间没有交集的第一执行规则作 为无效规则,上述定义的无效规则即为导致第一、第二控制策略冲突的 规则部分,故通过将存在冲突的无效规则删除,避免了第一控制策略和 第二控制策略间存在的冲突规则情况,即解决了策略冲突问题,使得第 一转发既能执行第一控制策略也能执行第二控制策略。

在本申请所提供的几个实施方式中,应该理解到,所揭露的系统, 装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施 方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑 功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可 以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。 另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是 通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械 或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开 的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于 一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选 择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理 单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元 集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可 以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产 品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样 的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或 者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设 备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor) 执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介 质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、 随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各 种可以存储程序代码的介质。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号