流表项下发方法和装置与流程

文档序号:11959857阅读:256来源:国知局
流表项下发方法和装置与流程

本发明涉及通信领域,尤其涉及一种流表项下发方法和装置。



背景技术:

基于OpenFlow协议的软件定义网络(Software Defined Network,简称SDN)实现了数据转发层和控制层的分离。其中,转发设备用于进行数据的转发,实现转发层的功能;控制器对网络进行集中控制,实现控制层的功能,转发设备和控制器之间通过控制通道协议(例如,开放流OpenFlow协议)进行交互。具体的,控制器上的应用根据控制器系统搜集的网络拓扑信息计算生成用于指导转发设备转发业务报文的流表项,并通过控制器系统下发到底层转发设备上;转发设备接收控制器下发的流表项,并将流表项保存到流表中,转发设备在接收到业务报文后,可在转发设备存储的流表中查找与该业务报文匹配的流表项,并根据该流表项对应的转发规则转发该业务报文。

SDN网络中,控制器属于开放式网络平台,控制器上安装有多个应用,这些应用都会产生流表项下发动作,此时就会产生流表项冲突的现象(例如:多个流表项可以被同一个业务报文匹配上)。这些应用不仅包括负责网络拓扑发现和基础转发能力的系统应用,也包括应用开发者开发的增值应用等非系统应用。这些应用产生的流表项,对底层转发设备来讲并没有区别,转发设备将根据优先级原则将接收到的业务报文与流表中的流表项进行先后匹配,根据首先匹配到的流表项对应的转发规则转发接收到的业务报文。例如,转发设备接收到的业务报文可以同时匹配到两条流表项,按照优先级原则,转发设备将选择优先级较高的流表项对应的转发规则转发该业务报文。

但是,当非系统应用下发的流表项和系统应用下发的流表项发生冲突时,现有技术无法保证系统应用的稳定运行,影响了系统的稳定性。



技术实现要素:

本发明提供一种流表项下发方法和装置,用以解决现有技术中无法保证系统应用的稳定运行,系统稳定性差的技术问题。

第一方面,本发明实施例提供一种流表项下发方法,该方法包括:

控制设备获取流表项,并确定所述流表项的类型;其中,所述流表项的类型包括系统应用生成的流表项或非系统应用生成的流表项;

判断所述流表项中是否携带优先级信息;

若否,则根据所述流表项的类型和映射关系为所述流表项分配优先级,并将携带所述优先级的流表项下发给转发设备;其中,所述映射关系包括所述流表项的类型与优先级分区的对应关系,所述系统应用下发的流表项对应第一优先级分区,所述非系统应用下发的流表项对应第二优先级分区,所述第一优先级分区的优先级高于所述第二优先级分区的优先级。

结合第一方面,在第一方面的第一种可能的实施方式中,所述判断所述流表项中是否携带优先级信息,还包括:

若判断所述流表项中携带所述优先级信息,则根据所述映射关系判断所述优先级信息是否超出所述流表项对应的优先级分区;

若是,则发出告警,并指示所述流表项对应的应用重新为所述流表项分配优先级;

若否,则将所述流表项下发给所述转发设备。

结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述将所述流表项下发给所述转发设备,具体包括:

检测所述流表项是否与历史流表项集合中的历史流表项冲突;

若所述流表项与所述历史流表项集合中的第一历史流表项冲突,则执行权限判断操作,获得权限判断结果;其中,所述权限判断操作包括:根据所述流表项的优先级、所述第一历史流表项的优先级以及所述第一历史流表项的权限信息判断是否允许向所述转发设备下发所述流表项;其中,所述第一历史流表项的权限信息包括:所述第一历史流表项对应的应用对所述第一历史流表项的修改权限、与所述第一历史流表项对应的应用属于同一个优先级分区的应用对所述第一历史流表项的修改权限、与所述第一历史流表项对应的应用程序不属于同一个优先级分区的应用对所述第一历史流表项的修改权 限;

若历史流表项集合中的所有与所述流表项发生冲突的历史流表项的权限判断结果均为允许向所述转发设备下发所述流表项,则向所述转发设备下发所述流表项,并为所述流表项配置第一权限信息;其中,所述第一权限信息包括:所述流表项对应的应用对所述流表项的修改权限、与所述流表项对应的应用属于同一个优先级分区的应用对所述流表项的修改权限、与所述流表项对应的应用程序不属于同一个优先级分区的应用对所述流表项的修改权限;否则,不下发所述流表项。

结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述流表项的优先级、所述第一历史流表项的优先级以及所述第一历史流表项的权限信息判断是否允许向所述转发设备下发所述流表项,具体包括:

若所述流表项的优先级不低于所述第一历史流表项的优先级,则根据所述第一历史流表项的权限信息判断所述流表项对应的应用是否具有修改所述第一历史流表项的权限;

若是,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备;若否,则确定所述权限判断结果为不允许将所述流表项下发给所述转发设备。

结合第一方面的第二种可能的实施方式,在第一方面的第四种可能的实施方式中,所述根据所述流表项的优先级、所述第一历史流表项的优先级以及所述第一历史流表项的权限信息判断是否允许向所述转发设备下发所述流表项,具体包括:

若所述流表项的优先级低于所述第一历史流表项的优先级,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备。

结合第一方面的第三种可能的实施方式,在第一方面的第五种可能的实施方式中,若所述流表项的优先级高于所述第一历史流表项的优先级,则所述确定所述权限判断结果为不允许将所述流表项下发给所述转发设备之后,所述方法还包括:

判断所述流表项是否能够与所述第一历史流表项共存;

若是,则确定所述权限判断结果为允许将所述流表项下发给所述转发设 备;

若否,则确定所述权限判断结果为不允许将所述流表项下发给所述转发设备。

结合第一方面的第三种可能的实施方式,在第一方面的第六种可能的实施方式中,若所述流表项的优先级等于所述第一历史流表项的优先级,则所述确定所述权限判断结果为不允许将所述流表项下发给所述转发设备之后,所述方法还包括:

判断所述流表项是否能够与所述第一历史流表项共存;

若是,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备,并在所述历史流表项集合中的所有与所述流表项发生冲突的历史流表项的权限判断结果均为允许向所述转发设备下发所述流表项时,为所述流表项重新分配一个新的优先级,并将携带所述新的优先级的流表项下发给所述转发设备;

若否,则确定所述权限判断结果为不允许将所述流表项下发给所述转发设备。

第二方面,本发明实施例提供一种流表项下发装置,该装置包括:

获取模块,用于获取流表项,并确定所述流表项的类型;其中,所述流表项的类型包括系统应用生成的流表项或非系统应用生成的流表项;

判断分配模块,用于判断所述流表项中是否携带优先级信息;若否,则根据所述流表项的类型和映射关系为所述流表项分配优先级;其中,所述映射关系包括所述流表项的类型与优先级分区的对应关系,所述系统应用下发的流表项对应第一优先级分区,所述非系统应用下发的流表项对应第二优先级分区,所述第一优先级分区的优先级高于所述第二优先级分区的优先级

发送模块,用于将携带所述优先级的流表项下发给转发设备。

结合第二方面,在第二方面的第一种可能的实施方式中,所述判断分配模块,还用于若判断所述流表项中携带所述优先级信息,则根据所述映射关系判断所述优先级信息是否超出所述流表项对应的优先级分区;若是,则发出告警,并指示所述流表项对应的应用重新为所述流表项分配优先级;若否,则指示发送模块将所述流表项下发给所述转发设备。

结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实 施方式中,所述发送模块,具体包括:

冲突检测单元,用于检测所述流表项是否与历史流表项集合中的历史流表项冲突;

权限仲裁单元,用于在所述流表项与所述历史流表项集合中的第一历史流表项冲突时,执行权限判断操作,获得权限判断结果;其中,所述权限判断操作包括:根据所述流表项的优先级、所述第一历史流表项的优先级以及所述第一历史流表项的权限信息判断是否允许向所述转发设备下发所述流表项;

所述权限仲裁单元,还用于若历史流表项集合中的所有与所述流表项发生冲突的历史流表项的权限判断结果均为允许向所述转发设备下发所述流表项,则为所述流表项配置第一权限信息,并指示发送单元向所述转发设备下发所述流表项;否则,不指示所述发送单元下发所述流表项;

其中,所述第一历史流表项的权限信息包括:所述第一历史流表项对应的应用对所述第一历史流表项的修改权限、与所述第一历史流表项对应的应用属于同一个优先级分区的应用对所述第一历史流表项的修改权限、与所述第一历史流表项对应的应用程序不属于同一个优先级分区的应用对所述第一历史流表项的修改权限;所述第一权限信息包括:所述流表项对应的应用对所述流表项的修改权限、与所述流表项对应的应用属于同一个优先级分区的应用对所述流表项的修改权限、与所述流表项对应的应用程序不属于同一个优先级分区的应用对所述流表项的修改权限。

结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述权限仲裁单元具体用于若所述流表项的优先级不低于所述第一历史流表项的优先级,则根据所述第一历史流表项的权限信息判断所述流表项对应的应用是否具有修改所述第一历史流表项的权限;若是,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备;若否,则确定所述权限判断结果为不允许将所述流表项下发给所述转发设备。

结合第二方面的第二种可能的实施方式,在第二方面的第四种可能的实施方式中,所述权限仲裁单元具体用于若所述流表项的优先级低于所述第一历史流表项的优先级,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备。

结合第二方面的第三种可能的实施方式,在第二方面的第五种可能的实施方式中,所述流表项的优先级高于所述第一历史流表项的优先级,则所述装置还包括:

第一智能仲裁模块,用于判断所述流表项是否能够与所述第一历史流表项共存;若是,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备;若否,则确定所述权限判断结果为不允许将所述流表项下发给所述转发设备。

结合第二方面的第三种可能的实施方式,在第二方面的第六种可能的实施方式中,所述流表项的优先级等于所述第一历史流表项的优先级,则所述装置还包括:

第二智能仲裁模块,用于判断所述流表项是否能够与所述第一历史流表项共存;若是,则确定所述权限判断结果为允许将所述流表项下发给所述转发设备,并在所述历史流表项集合中的所有与所述流表项发生冲突的历史流表项的权限判断结果均为允许向所述转发设备下发所述流表项时,为所述流表项重新分配一个新的优先级,并指示所述发送单元将携带所述新的优先级的流表项下发给所述转发设备;若否,则确定所述权限判断结果为不允许将所述流表项下发给所述转发设备。

本实施例提供的流表项下发方法和装置,通过控制设备获取流表项,并确定流表项的类型,然后判断流表项中是否携带优先级信息,在流表项中未携带优先级信息时,根据流表项的类型和映射关系为流表项分配优先级,并将携带优先级的流表项下发给转发设备,其中,映射关系包括流表项的类型与优先级分区的对应关系,系统应用下发的流表项对应第一优先级分区,非系统应用下发的流表项对应第二优先级分区,第一优先级分区的优先级高于第二优先级分区的优先级,从而当系统应用下发的流表项与非系统应用下发的流表项冲突时,按照优先级原则,转发设备将选择优先级较高的系统应用下发的流表项,根据该流表项的转发规则转发业务报文,有效的保证了系统应用的运行,提高了系统的稳定性。

附图说明

图1为本发明实施例提供的流表项下发方法实施例一的流程示意图;

图2为本发明实施例提供的流表项下发方法实施例二的流程示意图;

图3为本发明实施例提供的流表项下发方法实施例三的流程示意图;

图4为本发明实施例提供的流表项下发方法实施例四的流程示意图;

图5为本发明实施例提供的流表项下发方法实施例五的流程示意图;

图6为本发明实施例提供的流表项下发方法实施例六的流程示意图;

图7为本发明实施例提供的流表项下发装置实施例一的结构示意图;

图8为本发明实施例提供的流表项下发装置实施例二的结构示意图;

图9为本发明实施例提供的流表项下发装置实施例三的结构示意图;

图10为本发明实施例提供的流表项下发装置实施例四的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例涉及的方法可以适用于SDN系统,该SDN系统包括控制器和转发设备,控制器上安装有各种应用,这些应用会生成流表项通过控制器下发给转发设备。

本发明实施例提供的方法,旨在解决现有技术中当非系统应用下发的流表项和系统应用下发的流表项发生冲突时,无法保证系统应用的稳定运行,系统的稳定性差的技术问题。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本发明实施例提供的流表项下发方法实施例一的流程示意图,该方法的执行主体可以为流表项下发装置,该装置可以集成在SDN控制器上。如图1所示,本实施例的方法包括:

步骤11、控制设备获取流表项,并确定流表项的类型。

其中,流表项的类型包括系统应用下发的流表项或非系统应用下发的流 表项。

具体的,控制设备可以是SDN控制器或其他具有控制功能的设备。控制设备在获取流表项时,若应用安装在其他应用设备上,控制设备可接收其他应用设备发来的流表项,或者控制设备也可以接收其他应用设备发来的业务策略和转发规则来生成流表项;若应用安装在控制设备上,控制设备上可直接生成流表项。控制设备获取流表项后,则可以根据该流表项中携带的应用标识确定所获取的流表项的类型,即,确定该流表项是系统应用下发的还是非系统应用下发的。其中,系统应用指示负责网络拓扑发现和基础转发能力的基础应用,例如:地址解析协议(Address Resolution Protocol,ARP)应用、PING应用等;非系统应用指示应用开发者开发的增值应用等其他应用,例如:防火墙应用、路由应用、虚拟专用网络(Virtual Private Network,VPN)应用等。可选的,应用标识可以为应用的ID号,应用在下发流表项时,流表项中携带该应用的ID号,根据该ID号可以确定该应用属于系统应用还是非系统应用,从而也就可以确定携带ID号的流表项是系统应用下发的还是非系统应用下发的。

步骤12、判断流表项中是否携带优先级信息。

具体的,控制设备上的应用在下发流表项时,可以为流表项分配优先级;也可以不为流表项分配优先级,而是在通过控制设备下发该流表项的时候,由控制设备为该流表项分配优先级。控制设备获取应用下发的流表项后,判断流表项中是否携带有优先级信息,若否,则控制设备可以为该流表项分配优先级信息。可选的,在判断流表项中是否携带有优先级信息时,可查看流表项的优先级字段,若为空,则表示流表项中没有携带优先级信息;否则,表示流表项中携带有优先级信息。

需要说明的是,步骤11和步骤12之间并没有严格的时序关系,步骤11也可以在步骤12之后执行,步骤11还可以与步骤12同时执行,具体顺序本实施例不做限制。

步骤13、若流表项中未携带优先级信息,则根据流表项的类型和映射关系为流表项分配优先级,并将携带优先级的流表项下发给转发设备。

其中,映射关系包括流表项的类型与优先级分区的对应关系,系统应用下发的流表项对应第一优先级分区,非系统应用下发的流表项对应第二优先 级分区,第一优先级分区的优先级高于第二优先级分区的优先级。

具体的,若控制设备判断出应用下发的流表项中没有携带优先级信息,即下发该流表项的应用没有为该流表项分配优先级,此时,控制设备则可以根据流表项的类型和映射关系为流表项分配优先级。该映射关系包括流表项的类型与优先级分区的对应关系,本实施例中,可选的,控制设备在进行优先级分区时,可以简单的分为两个分区,如:系统应用下发的流表项对应第一优先级分区,非系统应用下发的流表项对应第二优先级分区;也可以在任一分区内设置子分区,如:按照应用的重要程度,可以为系统应用下发的流表项对应的第一优先级分区设置两个子分区,这两个子分区均可以称为第一优先级分区;并且,还可以为非系统应用下发的流表项对应的第二优先级分区设置三个子分区,这三个子分区均可以称为第二优先级分区,具体分区情况可根据需要设置,本实施例不做限制。

OpenFlow协议规定的流表项的优先级数值范围为:0-65535,数值越大优先级越高。在进行优先级分区时,可以为系统应用下发的流表项对应的第一优先级分区分配的优先级数值范围为:64512-65535,为非系统应用下发的流表项对应的第二优先级分区分配的优先级数值范围为:0-64511。这样就为系统应用下发的流表项预留了1024个可用的优先级,且优先级高于第二优先级分区的优先级。当然,第一优先级分区和第二优先级分区的优先级数值范围也可以设置为其他范围,只要第一优先级分区的优先级高于第二优先级分区的优先级即可。

当控制设备给流表项分配了优先级之后,控制设备将携带该优先级的流表项下发给转发设备。其中,转发设备通常为SDN交换机,也可以是路由器等其他具有转发功能的设备。

现有技术中,系统应用下发的流表项与非系统应用下发的流表项冲突(即多个流表项可以被同一个业务报文匹配上)、且非系统应用下发的流表项的优先级较高时,按照优先级原则,转发设备将选择优先级高的流表项转发业务报文,即选择非系统应用下发的流表项转发业务报文,从而无法保证系统应用的稳定运行,影响了系统的稳定性;但是,本发明实施例中,当系统应用下发的流表项与非系统应用下发的流表项发生冲突时,由于第一优先级分区的优先级高于第二优先级分区的优先级,即系统应用下发的流表项的优先 级高于非系统应用下发的流表项的优先级,按照优先级原则,转发设备将选择优先级较高的系统应用下发的流表项,根据该流表项的转发规则转发业务报文,从而确保在出现流表项冲突的情况下系统应用下发的流表项会被优先选择,进而能够有效的保证系统应用的运行,提高了系统的稳定性。

本实施例提供的流表项下发方法,通过控制设备获取流表项,并确定流表项的类型,然后判断流表项中是否携带优先级信息,在流表项中未携带优先级信息时,根据流表项的类型和映射关系为流表项分配优先级,并将携带优先级的流表项下发给转发设备,其中,映射关系包括流表项的类型与优先级分区的对应关系,系统应用下发的流表项对应第一优先级分区,非系统应用下发的流表项对应第二优先级分区,第一优先级分区的优先级高于第二优先级分区的优先级,从而当系统应用下发的流表项与非系统应用下发的流表项冲突时,按照优先级原则,转发设备将选择优先级较高的系统应用下发的流表项,根据该流表项的转发规则转发业务报文,有效的保证了系统应用的运行,提高了系统的稳定性。

图2为本发明实施例提供的流表项下发方法实施例二的流程示意图,本实施例涉及的方法是判断所述流表项中携带所述优先级信息时的处理过程。在上述图1所示实施例的基础上,如图2所示,步骤12中判断流表项中是否携带优先级信息,还包括:

步骤21、若判断流表项中携带优先级信息,则根据映射关系判断优先级信息是否超出流表项对应的优先级分区;若是,则执行步骤22;若否,则执行步骤23。

具体的,若控制设备判断流表项中携带有优先级信息,即,应用在下发该流表项的时候已为该流表项分配了优先级,该优先级有可能超出该流表项对应的优先级分区,故控制设备需要根据映射关系判断该优先级信息是否超出该流表项对应的优先级分区。例如:某非系统应用A下发一流表项,流表项中携带的优先级为65000,而映射关系中非系统应用下发的流表项对应的第二优先级分区的优先级数值范围为:0-64511,优先级65000超出了该范围,即该流表项中携带优先级信息超出了该流表项对应的优先级分区。

步骤22、发出告警,并指示流表项对应的应用重新为流表项分配优先级。

具体的,若判断流表项中携带的优先级信息超出该流表项对应的优先级分区,则向该流表项对应的应用(即下发该流表项的应用)发出告警,指示流表项对应的应用重新为该流表项分配优先级。

继续以上述步骤21中的举例为例,控制设备判断流表项的优先级65000超出了第二优先级分区,则向该流表项对应的应用A发出告警,指示应用A重新为该流表项分配0-64511范围内的优先级,以避免该携带有高优先级的非系统应用下发的流表项影响系统应用下发的流表项生效,进一步保证系统应用的稳定运行,提高系统的稳定性。

当然,控制设备在判断流表项中携带的优先级信息超出该流表项对应的优先级分区时,也可以直接为该流表项重新分配优先级,具体处理方法可根据需要选择,本实施例不做限制。

步骤23、将流表项下发给转发设备。

具体的,若判断流表项中携带的优先级信息未超出该流表项对应的优先级分区,则保留该流表项的优先级信息,将该流表项下发给转发设备。

本实施例提供的流表项下发方法,通过在判断出流表项中携带优先级信息时,再判断该优先级信息是否超出流表项对应的优先级分区,并在超出时,发出告警,指示流表项对应的应用重新为流表项分配优先级,从而保证非系统应用下发的流表项的优先级不会高于系统应用下发的流表项的优先级,进一步保证了系统应用的稳定运行,提高了系统的稳定性。

图3为本发明实施例提供的流表项下发方法实施例三的流程示意图,本实施例涉及的是将流表项下发给转发设备的具体过程。在上述图2所示实施例的基础上,如图3所示,步骤23具体包括:

步骤31、检测流表项是否与历史流表项集合中的历史流表项冲突。

具体的,在将流表项下发给转发设备前,可对携带有优先级信息的流表项进行冲突检测,判断该流表项是否与已下发的历史流表项冲突。在进行冲突检测时,控制设备可以检测流表项与历史流表项的匹配域是否有交集,若存在,则两者冲突。举例来说,流表项A的匹配域MA为:IP协议是IPV4、源IP地址是212.128.168.20,转发规则是从端口1转发;历史流表项B的匹配域MB为:IP协议是IPV4、源IP地址是212.128.168.20、目的IP地址是 218.10.36.1,转发规则是从端口2转发。当转发设备接收到的业务报文为IP协议是IPV4、源IP地址是212.128.168.20、目的IP地址是218.10.36.1,该业务报文可以同时匹配上流表项A和流表项B,即两者存在冲突,转发设备将根据优先级原则选择两个流表项中优先级高的流表项转发业务报文,另外一个流表项将不会生效。在该举例中,流表项A的匹配域MA包含历史流表项B的匹配域MB,即交集为MB,业务报文可以同时匹配到这两条流表项,流表项A和历史流表项B冲突。

步骤32、若流表项与历史流表项集合中的第一历史流表项冲突,则执行权限判断操作,获得权限判断结果。

其中,所述权限判断操作包括:根据流表项的优先级、第一历史流表项的优先级以及第一历史流表项的权限信息判断是否允许向转发设备下发流表项。其中,第一历史流表项的权限信息包括:第一历史流表项对应的应用对第一历史流表项的修改权限、与第一历史流表项对应的应用属于同一个优先级分区的应用对第一历史流表项的修改权限、与第一历史流表项对应的应用程序不属于同一个优先级分区的应用对第一历史流表项的修改权限。

具体的,每个下发成功的流表项都分配有权限信息,该权限信息包括三组权限,以第一历史流表项为例,该三组权限中第一组权限表示第一历史流表项对应的应用对第一历史流表项的修改权限,第二组权限表示与第一历史流表项对应的应用属于同一个优先级分区的应用对第一历史流表项的修改权限,第三组权限表示与第一历史流表项对应的应用程序不属于同一个优先级分区的应用对第一历史流表项的修改权限。当然,该三组权限的具体顺序可任意设置,本实施例不做限制。通常情况下,与第一历史流表项对应的应用属于同一个优先级分区的应用与第一历史流表项对应的应用属于同类型应用,例如:应用A和应用B同属于第二优先级分区,两者都属于非系统应用,即属于同类型应用;与第一历史流表项对应的应用不属于同一个优先级分区的应用与第一历史流表项对应的应用属于不同类型的应用,例如:应用A和应用C不属于同一个优先级分区,其中,应用A属于第二优先级分区,属于非系统应用,应用C属于第一优先级分区,属于系统应用,两者属于不同类型的应用。

更为具体的,每组权限可包括三个标志位,分别表示应用对该流表项可 读、可更改、可删除。例如,第一历史流表项的权限信息为111 100 110,第一历史流表项对应的应用为应用A,属于非系统应用,则该权限信息表示应用A对该流表项的权限为可读、可更改、可删除,与应用A同类型的非系统应用对该流表项的权限为只读,与应用A不同类型的系统应用对该流表项的权限为可读、可更改、不可删除。

在进行权限配置时,可根据流表项的重要程度等其他因素为流表项分配权限。举例来说,为重要性高的流表项配置较高的权限,例如:111 100 100,不允许除了下发该流表项的应用之外的任何应用修改该流表项;若流表项的重要性较低,可为其配置较低的权限,例如:111 111 111,允许任何应用修改该流表项。当流表项与第一历史流表项冲突时,通过判断第一历史流表项的权限信息,同时结合流表项的优先级和第一历史流表项的优先级,即可避免一些新下发的流表项影响权限较高的第一历史流表项生效,在一定程度上提高了系统的可靠性。当然,也可以根据其他原则配置权限的高低,具体根据实际需要选择,本实施例不做限制。

步骤33、若历史流表项集合中的所有与流表项发生冲突的历史流表项的权限判断结果均为允许向转发设备下发流表项,则向转发设备下发流表项,并为流表项配置第一权限信息;否则,不下发流表项。

其中,所述第一权限信息包括:所述流表项对应的应用对所述流表项的修改权限、与所述流表项对应的应用属于同一个优先级分区的应用对所述流表项的修改权限、与所述流表项对应的应用程序不属于同一个优先级分区的应用对所述流表项的修改权限。

具体的,在本发明实施例中,流表项有可能与历史流表项中的多个流表项冲突,此时需要将流表项与历史流表项中的各个流表项逐一检测是否冲突,当检测到流表项与第一历史流表项冲突时,则采用步骤32的方法确定权限判断结果。若权限判断结果为允许向转发设备下发流表项,则继续检测下一条历史流表项,否则,不下发流表项(此时也就不再检测剩下的历史流表项)。当历史流表项集合中的所有与上述流表项冲突的历史流表项的权限判断结果均为允许向转发设备下发流表项,则向转发设备下发该流表项,并为该流表项配置第一权限信息。需要说明的是,历史流表项集合中会存在与上述流表项未发生冲突的流表项,当检测到某条历史流表项与上述流表项未发生冲突 时,则无需进行权限判断,此时控制设备默认允许下发该流表项,即相当于该历史流表项的权限判断结果为允许向转发设备下发流表项。若历史流表项集合中的所有历史流表项与上述流表项均未冲突,控制设备则可直接下发该流表项;否则,则对冲突的历史流表项进行权限判断,当历史流表项集合中的所有与上述流表项冲突的历史流表项的权限判断结果均为允许向转发设备下发流表项时,再下发该流表项。

与上述步骤32中第一历史流表项的权限信息类似,本步骤中第一权限信息也包括三组权限,每组权限可包括三个标志位,具体内容可参见上述步骤32的内容。此外,在进行权限配置时,也可根据上述步骤32中所述的权限配置原则配置权限高低,此处不再赘述。

需要说明的是,应用在下发流表项时可以直接为流表项配置权限信息,此时,当流表项下发成功时,控制设备直接保留该权限信息;应用在下发流表项时也可以不为流表项配置权限信息,此时,当流表项下发成功时,控制设备可以为流表项配置默认的权限信息,例如111 100 100,当然,此处只是作为示例,该默认的权限信息可以根据需要设置为其他权限。

本实施例中,当检测到流表项与第一历史流表项冲突时,根据流表项的优先级、第一历史流表项的优先级以及第一历史流表项的权限信息判断是否允许向转发设备下发流表项具体可采用下述两种可能的实施方式来确定权限判断结果,具体为:

第一种可能的实施方式:参见图4所示,该实施方式包括:

步骤41、若流表项的优先级不低于第一历史流表项的优先级,则根据第一历史流表项的权限信息判断流表项对应的应用是否具有修改第一历史流表项的权限;若是,则执行步骤42;若否,则执行步骤43。

步骤42、若是,则确定权限判断结果为允许将流表项下发给转发设备。

步骤43、若否,则确定权限判断结果为不允许将流表项下发给转发设备。

具体的,在控制设备判断流表项对应的应用是否具有修改第一历史流表项的权限时,可根据第一历史流表项的权限信息中第二组权限或第三组权限的可更改标志位判断,例如:若第一历史流表项属于第二优先级分区,新下发的流表项属于第一优先级分区,则查看第一历史流表项的权限信息中第三组权限的可更改标志位;若该标志位为1,则表示流表项对应的应用具有修 改第一历史流表项的权限。当然,也可以根据第一历史流表项的权限信息中第二组权限或第三组权限的可更改标志位和可删除标志位判断,在判断可更改标志位和可删除标志位中的其中有一个为1时,确定流表项对应的应用具有修改第一历史流表项的权限,或者,也可在判断可更改标志位和可删除标志位中的两个同时为1时,确定流表项对应的应用具有修改第一历史流表项的权限。具体都可根据情况确定判断标准,本实施例不做特别限定。

若根据第一历史流表项的权限信息确定流表项对应的应用具有修改第一历史流表项的权限,则说明第一历史流表项的权限较低,此时可允许将流表项下发给转发设备;否则,说明第一历史流表项的权限较高,将该优先级不低于第一历史流表项的流表项下发下去,根据优先级原则第一历史流表项将不会生效,此时不允许将流表项下发给转发设备,以免该流表项对第一历史流表项的生效产生影响。

可选的,当权限判断结果为不允许将流表项下发给转发设备时,控制设备可向该流表项对应的应用返回下发失败消息,告知该应用其所下发的流表项下发失败,其中,该下发失败消息中也可包括与该流表项冲突的第一历史流表项信息和该第一历史流表项对应的应用信息等。

第二种可能的实施方式:若流表项的优先级低于第一历史流表项的优先级,则确定权限判断结果为允许将流表项下发给转发设备。

具体的,若流表项的优先级低于第一历史流表项的优先级,根据优先级原则,流表项下发后,该流表项将不一定生效;对于已下发的第一历史流表项,也有可能存在被删除的情况,此种情况下,该流表项下发后,则可能生效。鉴于此种情况,本实施例中,若流表项的优先级低于第一历史流表项的优先级,则允许将流表项下发给转发设备。

此外,控制设备也可以向该流表项对应的应用发出告警信息,提示该应用该流表项下发后不一定生效。

为了更清楚的说明本实施的方案,下面特举例进行说明。

例如:某应用下发流表项A,已下发的历史流表项B有五条,控制设备首先检测第一条历史流表项B1,发现流表项A与第一条历史流表项B1冲突,且流表项A的优先级高于第一条历史流表项B1的优先级,通过权限判断,允许将该流表项A下发给转发设备;此时,继续检测第二条历史流表项B2, 发现流表项A与第二条历史流表项B2不冲突(也就相当于允许将该流表项A下发给转发设备),则选择检测下一条历史流表项;控制设备检测第三条历史流表项B3,发现流表项A与第三条历史流表项B3冲突,且流表项A的优先级等于第三条历史流表项B3的优先级,通过权限判断,允许将该流表项A下发给转发设备;继续检测第四条历史流表项B4,发现流表项A与第四条历史流表项B4冲突,且流表项A的优先级低于第四条历史流表项B4的优先级,通过权限判断,允许将该流表项A下发给转发设备;继续检测第五条历史流表项B5,发现流表项A与第五条历史流表项B5不冲突,此时下发该流表项A。再比如:在上述举例中,若在检测第三条历史流表项B3时,权限判断结果为不允许下发该流表项A,此时则确定不下发该流表项A,也不再检测剩下的两条历史流表项。

本实施例提供的流表项下发方法,通过判断流表项与历史流表项中的第一历史流表项冲突时,根据流表项的优先级、第一历史流表项的优先级以及第一历史流表项的权限信息判断是否向转发设备下发流表项,从而能够减少新下发的流表项对已有流表项的影响,提高了系统的可靠性。

图5为本发明实施例提供的流表项下发方法实施例五的流程示意图,本实施例是在图3所示实施例中权限仲裁结果为不允许将流表项下发给转发设备且流表项的优先级高于第一历史流表项的优先级时,对流表项进行进一步智能仲裁,根据智能仲裁结果确定是否允许将流表项下发给转发设备的具体过程。在上述图3所示实施例的基础上,如图5所示,若流表项的优先级高于第一历史流表项的优先级,则在步骤43之后,本实施例的方法还包括:

步骤51、判断流表项是否能够与第一历史流表项共存;若是,则执行步骤52;若否,则执行步骤53。

具体的,当流表项与历史流表项中的第一历史流表项冲突时,通过权限判断,确定不允许将流表项下发给转发设备,此时,可通过智能仲裁,进一步判断流表项是否能够与第一历史流表项共存,若可以共存,则可允许下发该流表项。

其中,流表项与第一历史流表项共存,表示流表项的转发规则对冲突的第一历史流表项的转发规则没有影响,两个流表项的转发规则可以同时生效。 例如:第一历史流表项的转发规则为将所有的ARP报文进行广播,流表项为{eth_type=0x0806,action=flood};某应用A想要订阅ARP报文,故需要下发一条ARP上送的流表项,假设只需要上送入端口Inport为1的ARP报文,流表项为{inport=1,eth_type=0x0806,action=ctrl};通过权限判断后,该应用A下发的流表项不允许下发;经过智能仲裁分析,该应用A下发的流表项对冲突的第一历史流表项没有影响,两个流表项可以共存,此时则可以允许下发应用A下发的流表项,具体可以修改该应用A下发的流表项,使得两个流表项的转发规则同时生效,例如将应用A下发的流表项修改为{inport=1,eth_type=0x0806,action=ctrl,flood}之后下发。转发设备选择该修改后的流表项转发报文,在广播所有ARP报文的同时,将入端口为1的ARP报文上送给控制设备上的应用A。此时,第一历史流表项虽未被选择,但是其对应的转发规则广播所有ARP报文实际上已生效。

另外,若通过智能仲裁,判断两个流表项可以共存,相比于冲突的第一历史流表项,当前要下发的流表项的转发规则更有意义,也可直接下发该流表项,只让该流表项生效。例如:第一历史流表项的转发规则为源IP地址为198.0.0.1的报文选择任一出端口转发,当前要下发的流表项的转发规则为源IP地址为198.0.0.1、目的IP地址为198.1.1.200的报文从出端口1转发,根据智能仲裁,两者可以共存,即该流表项的转发规则生效的同时,第一历史流表项对应的转发规则实际上也已生效,但当前要下发的流表项的转发规则更有意义,此时直接下发该流表项,转发设备将选择该流表项对应的转发规则转发报文。

步骤52、确定权限判断结果为允许将流表项下发给转发设备。

具体的,若通过智能仲裁,判断流表项能够与第一历史流表项共存,则可将权限判断结果更新为允许将流表项下发给转发设备,此时,可继续检测下一条历史流表项。

步骤53、确定权限判断结果为不允许将流表项下发给转发设备。

具体的,若通过智能仲裁,判断流表项与第一历史流表项不能共存,则不允许下发该流表项。此时,不再继续检测剩下的历史流表项。

本实施例提供的流表项下发方法,在流表项与第一历史流表项冲突且优先级较高的情况下,当权限仲裁结果为不允许将流表项下发给转发设备时, 对流表项进行进一步的智能仲裁,在判断流表项能够与第一历史流表项共存时允许下发该流表项,从而能够保证尽可能多的流表项生效,提高了系统对应用的兼容性。

图6为本发明实施例提供的流表项下发方法实施例六的流程示意图,本实施例是在图4所示实施例中权限仲裁结果为不允许将流表项下发给转发设备且流表项的优先级等于第一历史流表项的优先级时,对流表项进行进一步智能仲裁,根据智能仲裁结果确定是否允许将流表项下发给转发设备的具体过程。在上述图4所示实施例的基础上,如图6所示,若流表项的优先级等于第一历史流表项的优先级,则在步骤43之后,本实施例的方法还包括:

步骤61、判断流表项是否能够与第一历史流表项共存;若是,则执行步骤62;若否,则执行步骤63。

具体的,与步骤51类似,当流表项与历史流表项中的第一历史流表项冲突时,通过权限仲裁,确定不允许将流表项下发给转发设备,此时,可通过智能仲裁,判断流表项是否能够与第一历史流表项共存,若可以共存,则可允许下发该流表项。具体的智能仲裁原理与图4所示实施例类似,此处不再赘述。

步骤62、确定权限判断结果为允许将流表项下发给转发设备,并在历史流表项集合中的所有与流表项发生冲突的历史流表项的权限判断结果均为允许向转发设备下发流表项时,为流表项重新分配一个新的优先级,并将携带新的优先级的流表项下发给转发设备。

具体的,若通过智能仲裁,判断流表项能够与第一历史流表项共存,则将权限判断结果更新为允许将流表项下发给转发设备,此时可继续检测下一条历史流表项。此外,本实施例中,可在历史流表项集合中的所有历史流表项的权限判断结果均为允许向转发设备下发流表项时,为流表项重新分配一个新的优先级,以提高系统的智能性。具体的,流表项能够与第一历史流表项共存,表示流表项的生效不影响第一历史流表项转发规则生效,此时,可为流表项重新分配高于第一历史流表项的优先级,让转发设备选择该流表项转发报文;当然,也可以为流表项重新分配低于第一历史流表项的优先级,使第一历史流表项生效;还可以为流表项重新分配等于第一历史流表项的优先级(即不更改流表项 的优先级),转发设备先匹配到哪条流表项则哪条流表项生效。

步骤63、确定权限判断结果为不允许将所述流表项下发给所述转发设备。

具体的,若通过智能仲裁,判断流表项与第一历史流表项不能共存,则不允许下发该流表项。此时,不再检测剩下的历史流表项。

此外,可选的,当流表项与历史流表项中的第一历史流表项冲突且流表项的优先级较低时,通过权限仲裁,确定允许将流表项下发给转发设备,此时,也可进一步通过智能仲裁,判断流表项是否能够与第一历史流表项共存,若可以共存,则可在历史流表项集合中的所有历史流表项的权限判断结果均为允许向转发设备下发流表项时,为流表项分配更高的优先级后再下发该流表项,使该流表项生效,以进一步提高系统的智能性。

本实施例提供的流表项下发方法,在流表项与第一历史流表项冲突且优先级相等的情况下,当权限仲裁结果为不允许将流表项下发给转发设备时,对流表项进行进一步的智能仲裁,在判断流表项能够与第一历史流表项共存时允许下发该流表项,并为该流表项重新分配优先级,从而能够保证尽可能多的流表项生效,提高了系统对应用的兼容性和智能性。

图7为本发明实施例提供的流表项下发装置实施例一的结构示意图,本实施例中流表项下发装置可以为单独的设备,也可以集成在SDN控制器上。如图7所示,该装置包括:获取模块71、判断分配模块72和发送模块73。其中:

获取模块71,用于获取流表项,并确定流表项的类型;其中,流表项的类型包括系统应用下发的流表项或非系统应用下发的流表项;

判断分配模块72,用于判断流表项中是否携带优先级信息;若否,则根据流表项的类型和映射关系为流表项分配优先级;

发送模块73,用于将携带优先级的流表项下发给转发设备;

其中,映射关系包括流表项的类型与优先级分区的对应关系,系统应用下发的流表项对应第一优先级分区,非系统应用下发的流表项对应第二优先级分区,第一优先级分区的优先级高于第二优先级分区的优先级。

本发明实施例提供的流表项下发装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。

可选的,判断分配模块72,还用于若判断流表项中携带优先级信息,则根据映射关系判断优先级信息是否超出流表项对应的优先级分区;若是,则发出告警,并指示流表项对应的应用重新为流表项分配优先级;若否,则指示发送模块将流表项下发给转发设备。

图8为本发明实施例提供的流表项下发装置实施例二的结构示意图,该实施例是对发送模块73进一步的功能细化。如图8所示,发送模块73具体包括:冲突检测单元731、权限仲裁单元732和发送单元733。其中:

冲突检测单元731,用于检测流表项是否与历史流表项集合中的历史流表项冲突;

权限仲裁单元732,用于在流表项与历史流表项集合中的第一历史流表项冲突时,执行权限判断操作,获得权限判断结果;其中,权限判断操作包括:根据流表项的优先级、第一历史流表项的优先级以及第一历史流表项的权限信息判断是否允许向转发设备下发流表项;

权限仲裁单元732,还用于若历史流表项集合中的所有与流表项发生冲突的历史流表项的权限判断结果均为允许向转发设备下发流表项,则为流表项配置第一权限信息,并指示发送单元733向转发设备下发流表项;否则,不指示发送单元733下发流表项;

其中,第一历史流表项的权限信息包括:第一历史流表项对应的应用对第一历史流表项的修改权限、与第一历史流表项对应的应用属于同一个优先级分区的应用对第一历史流表项的修改权限、与第一历史流表项对应的应用程序不属于同一个优先级分区的应用对第一历史流表项的修改权限;第一权限信息包括:流表项对应的应用对流表项的修改权限、与流表项对应的应用属于同一个优先级分区的应用对流表项的修改权限、与流表项对应的应用程序不属于同一个优先级分区的应用对流表项的修改权限。

作为本发明实施例的一种可能的实施方式,权限仲裁单元732,具体用于若流表项的优先级不低于第一历史流表项的优先级,则根据第一历史流表项的权限信息判断流表项对应的应用是否具有修改第一历史流表项的权限;若是,则确定权限判断结果为允许将流表项下发给转发设备;若否,则确定权限判断结果为不允许将流表项下发给转发设备。

作为本发明实施例的另一种可能的实施方式,权限仲裁单元732,具体 用于若流表项的优先级低于第一历史流表项的优先级,则确定权限判断结果为允许将流表项下发给转发设备。

本发明实施例提供的流表项下发装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。

图9为本发明实施例提供的流表项下发装置实施例三的结构示意图,如图9所示,本实施例中,流表项的优先级高于第一历史流表项的优先级,该装置还包括:

第一智能仲裁模块74,用于判断流表项是否能够与第一历史流表项共存;若是,则确定权限判断结果为允许将流表项下发给转发设备;若否,则确定权限判断结果为不允许将流表项下发给转发设备。

本发明实施例提供的流表项下发装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。

图10为本发明实施例提供的流表项下发装置实施例四的结构示意图,如图10所示,本实施例中,流表项的优先级等于第一历史流表项的优先级,该装置还包括:

第二智能仲裁模块75,用于判断流表项是否能够与第一历史流表项共存;若是,则确定权限判断结果为允许将流表项下发给转发设备,并在历史流表项集合中的所有与流表项发生冲突的历史流表项的权限判断结果均为允许向转发设备下发流表项时,为流表项重新分配一个新的优先级,并指示发送单元733将携带新的优先级的流表项下发给转发设备;若否,则确定权限判断结果为不允许将流表项下发给转发设备。

本发明实施例提供的流表项下发装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。

需要说明的是,第一智能仲裁模块74和第二智能仲裁模块75可以为两个不同的模块,也可以集成在同一个模块上同时实现两个模块的功能。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1