一种sdn应用的策略冲突检测方法及系统的制作方法

文档序号:7811117阅读:414来源:国知局
一种sdn应用的策略冲突检测方法及系统的制作方法
【专利摘要】本发明公开了一种SDN应用的策略冲突检测方法及系统,对欲接入网络的应用进行认证和授权,赋予优先级,进行冲突检测与调解,并实时将网络状态反馈给网络管理人员,建立起一个全面的针对SDN应用的策略冲突检测框架,以解决SDN带来的网络安全威胁。本发明采用的基于集合相交的流规则策略冲突分析算法,简易稳定,易于扩展,实现了流规则中存在Set等中间行为的策略冲突检测和不同应用的流规则组合之后的策略冲突检测。本发明采用的基于应用优先级比较的流规则策略冲突决策算法简单有效,易于实现。
【专利说明】一种SDN应用的策略冲突检测方法及系统

【技术领域】
[0001]本申请涉及网络信息安全领域,尤其涉及一种SDN应用的策略冲突检测方法及系统。

【背景技术】
[0002]SDN(Software Defined Network,软件定义网络)是一种开放的网络架构,主要特点为集中控制性和网络可编程性,允许网络管理人员以软件编程的方式对整个网络进行管理与操作。SDN将逻辑控制功能和数据转发功能分离,由基于软件的网络控制器来实现对网络的逻辑控制功能,而底层的网络设备只需负责实现简单的数据转发功能,通过OpenFlow协议与网络控制器进行交互。
[0003]SDN网络架构如图1所示,从上至下主要分为应用层、控制层和数据转发层。架构的核心集中在基于网络操作系统的控制层上,主要设备为SDN控制器,它具有整个网络的全局视野。数据转发层主要是底层的数据转发设备,比如OpenFlow交换机等。数据转发设备被剥离了控制功能,只需要按照流表进行匹配和转发数据流。数据转发设备通过南向接口(目前主要使用OpenFlow协议)与控制层进行信息交互,完成控制器数据流表的下发和底层设备数据信息的反馈。控制层向上提供北向接口,与应用层进行信息传递,SDN应用与服务通过调用提供的北向接口对网络进行相应操作,实现相应功能。目前北向接口还未实现标准化。
[0004]作为一种全新的网络架构,SDN为网络安全改善带来了巨大的机遇,但同时也给网络带来了新的安全威胁。以应用层的安全威胁为例,攻击者可以向网络中接入恶意应用进行攻击,制造应用策略冲突导致网络混乱,或与网络中的安全策略冲突破坏网络的安全防御机制等。可见,应用策略冲突对网络的安全威胁程度越来越大。目前已经有一些应用策略冲突检测方法,比如 FLOVER、FlowChecker、VeriFlow、NICE 等。
[0005]FLOVER对SDN网络中运行的动态流规则进行检测,验证其是否满足网络中既定的安全性要求。FLOVER主要由流表编码器和SMT (Satisfiability Modulo Theories,可满足性模理论)解决器Yices组成。在进行流规则验证时,流表编码器将所有的流规则和网络安全策略进行编码,转化为断言集,再由SMT解决器Yices进行处理和安全性验证。FLOVER主要包括两种模式,在线模式和批量模式。在线模式中,只要交换机上的流规则集出现更新(控制器下发新的流规则或交换机主动请求新的流规则),则对更新后的所有流规则集进行既定的安全性检测,判断新的流规则集是否与网络安全策略相一致。批量模式则是对流规则集进行周期性的安全性验证。
[0006]FlowChecker是对SDN网络中的交换机和控制器的配置一致性进行检测。FlowChecker将流表重新编码为二进制决策表(Binary Decis1n Diagrams, BDD),采用模型检测的方式验证网络的安全性。
[0007]VeriFlow对网络不变性进行检测。VeriFlow位于控制器与网络设备之间,根据新旧规则将网络分片为独立的相同类,并为每个类建立转发图,通过在转发图上模拟新规则实现情况来验证是否违反网络不变性。
[0008]NICE采用模型检测和符号化执行相结合的策略检测SDN应用的一致性,这种策略基于代码路径的发现。
[0009]但是,上述方法均存在一定的缺陷。FLOVER主要是检测应用的流规则与网络安全策略是否存在策略冲突,而并未涉及一般应用之间的策略冲突检测;Fl0WChecker和VeriFlow都没有解决当流规则中包含Set等中间行为时的情况;NICE采用的基于代码路径发现的策略扩展性不佳,无法在大型应用上采用。并且,上述方法均未考虑当不同应用的流规则进行组合后所产生的策略冲突检测,因此,并不能够完全解决网络带来的安全威胁。


【发明内容】

[0010]本发明了提供了一种SDN应用的策略冲突检测方法及系统,以解决SDN带来的网络安全威胁。
[0011]为解决上述技术问题,本发明提供了一种SDN应用的策略冲突检测系统,包括:
[0012]应用接入层,包括管理已接入网络的应用和欲接入网络的应用;
[0013]控制检测层,用于接收所述欲接入网络的应用的访问授权请求,根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书,进行访问认证授权,并通过冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,若存在冲突则通过冲突决策算法进行冲突决策以缓解冲突,以防止网络中存在相互冲突的策略规则;
[0014]监管可视化层,用于实时显示网络中的流规则信息、冲突信息、网络拓扑信息给网络管理员。
[0015]优选的,所述应用接入层中的应用包括:
[0016]网管应用,所述网管应用具体是由所述网络管理人员接入的应用,所述网管应用用于进行网络的管理和监控;
[0017]安全应用,所述安全应用主要是网络中接入的安全服务应用,用于建立网络的安全防御机制;
[0018]第三方应用,所述第三方应用是指由第三方接入的常规应用,用于通过调用控制器的开源API (应用程序编程接口)实现自定义的功能。
[0019]优选的,所述控制检测层包括:
[0020]应用认证授权模块,用于接收各个欲接入网络的应用的访问授权请求,并根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书给各个欲接入网络的应用,并对各个欲接入的网络应用进行访问认证授权;
[0021]流规则冲突检测与决策模块,用于根据所述冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,判断是否与流表集合中已有的流规则存在冲突,若存在冲突,则根据所述冲突决策算法进行冲突决策以缓解冲突,以防止网络中存在相互冲突的策略规则,并将冲突分析与决策的结果发送给状态表管理模块;
[0022]所述状态表管理模块,用于管理获取认证授权的应用下发的流规则插入请求,根据所述冲突分析与决策的结果对获取认证授权的应用下发的流规则插入请求进行接受或拒绝操作,并实时更新所述流表集合和底层交换机流表,对所述流表集合进行更新维护;
[0023]信息反馈模块,用于将所述流规则信息、所述冲突信息、所述网络拓扑信息实时反馈给所述监管可视化层,通过所述用户界面报告给所述网络管理人员,并将所述网络管理人员的操作指令发送给对应的模块;
[0024]所述流表集合,用于保存网络中正在运行的所有流表信息;
[0025]数据库,用于存储策略冲突检测日志信息,向所述流规则冲突检测与决策模块提供数据支持。
[0026]优选的,所述监管可视化层包括:
[0027]所述用户界面,用于从消息处理模块获得网络状态信息,以图表化的形式实时显示网络状态信息,以使所述网络管理人员通过所述用户界面下发操作指令至所述消息处理模块;
[0028]所述消息处理模块,用于接收所述信息反馈模块发送的网络消息,按照消息类型进行缓存,当有来自所述用户界面的HTTP (超文本传输协议)信息请求时,将所述HTTP信息请求通过HTTP资源响应发送给所述用户界面,当接收到来自所述用户界面的操作指令时,缓存所述操作指令,并转化为所述信息反馈模块能够识别的操作指令形式,然后下发给所述信息反馈模块,其中,所述网络消息包括所述网络拓扑信息、所述流表信息以及所述冲突信息。
[0029]优选的,所述冲突分析算法具体是:
[0030]将所述流表集合中已有的流规则和新插入的流规则全部转化为集合化的流规则,得到集合化流表集合和集合化待检测流规则;
[0031]对所述集合化流表集合和所述集合化待检测流规则中的所有集合化流规则进行成对比较,根据冲突匹配原则判断是否冲突。
[0032]优选的,所述冲突决策算法具体是:当冲突分析算法检测出规则冲突时,比较两条冲突的流规则对应的应用的优先级大小,若发送流规则插入请求的应用的优先级高,则将新的流规则覆盖已有流规则;若发送流规则插入请求的应用的优先级低,则拒绝新的流规则插入请求;若两条冲突的流规则对应的应用的优先级相同,则上报所述网络管理员进行抉择。
[0033]优选的,所述集合化的流规则的转化条件是:当第一流规则的行为域为Set-Field时,将Set前后的值合并为一个集合,用集合域值代替代替原来的匹配项域值的单个域值,若所述第一流规则是除Set-Field之外的其余行为,则将所述第一流规则的各匹配域值单独作为一个集合,用集合域值代替代替所述第一流规则原来的流规则匹配域值。
[0034]优选的,所述冲突匹配原则是:若两个集合化流规则匹配域各项并非均相交,则无冲突;若两个集合化流规则匹配域各项均有交集,但行为域的行为相同,则无冲突;若两个集合化流规则匹配域各项均有交集,但行为域的行为不同,则冲突。
[0035]优选的,所述应用的优先级是将所有的应用按照重要与安全程度分为七个不同的等级。
[0036]本发明提供了一种SDN应用的策略冲突检测方法,应用于SDN应用的策略冲突检测系统,所述方法包括:
[0037]控制检测层从应用接入层接收所述欲接入网络的应用的访问授权请求,根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书,进行访问认证授权,并通过冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,若存在冲突则通过冲突决策算法进行冲突决策以缓解冲突,以防止网络中存在相互冲突的策略规则;
[0038]所述监管可视化层将获取认证授权的应用的流规则信息、冲突信息、网络拓扑信息实时反馈给网络管理员。
[0039]通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:
[0040]本发明提出一种SDN应用的策略冲突检测方法及系统,对欲接入网络的应用进行认证和授权,赋予优先级,进行冲突检测与调解,并实时将网络状态反馈给网络管理人员,建立起一个全面的针对SDN应用的策略冲突检测框架,以解决SDN带来的网络安全威胁。本发明采用的基于集合相交的流规则策略冲突分析算法,简易稳定,易于扩展,实现了流规则中存在Set等中间行为的策略冲突检测和不同应用的流规则组合之后的策略冲突检测。本发明采用的基于应用优先级比较的流规则策略冲突决策算法简单有效,易于实现。

【专利附图】

【附图说明】
[0041]图1为现有技术中的SDN网络架构;
[0042]图2为本发明实施例中的策略冲突检测系统架构;
[0043]图3为本发明实施例中基于集合相交的流规则策略冲突分析算法流程图;
[0044]图4为本发明实施例中基于应用优先级比较的流规则策略冲突决策算法流程;
[0045]图5为本发明实施例中举例说明的策略冲突检测方法的流程图。

【具体实施方式】
[0046]为了使本申请所属【技术领域】中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。
[0047]实施例一:
[0048]在本发明实施例中,提出了一种SDN应用的策略冲突检测系统,主要针对SDN应用,对欲接入网络的应用进行认证和授权,赋予优先级,根据冲突分析算法对其下发的流规则请求进行冲突检测,若存在冲突,则根据冲突决策算法进行调解,并实时将网络状态反馈给网络管理人员。特别地,冲突检测算法能够实现流规则中存在Set等中间行为的策略冲突检测和不同应用的流规则组合之后的策略冲突检测。另外,策略冲突检测系统在基于Java的SDN控制器(OpenDaylight)的基础上进行扩展,按照设计需求实现相应模块,并在控制器的配置文件中添加功能模块,从而在控制器启动时实现自动加载,并采用模块加载器(ModuleLoader)对各模块进行管理。
[0049]在具体的实施过程中,策略冲突检测系统的总体框架如图2所示,共分为三层:应用接入层1、控制检测层2和监管可视化层3。
[0050]应用接入层I类似于现有SDN网络架构中的应用层,包括已接入网络的应用和欲接入网络的应用。
[0051 ] 控制检测层2类似于现有SDN网络架构中的控制层,是整个框架的核心部分,用于通过冲突分析算法和冲突决策算法来完成策略冲突的检测和调解。具体用于接收欲接入网络的应用的访问授权请求,根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书,进行访问认证授权,并通过冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,若存在冲突则通过冲突决策算法进行冲突决策以缓解冲突,以防止网络中存在相互冲突的策略规则。其中,冲突分析算法具体指基于集合相交的流规则策略冲突分析算法,冲突决策算法具体指基于应用优先级比较的流规则策略冲突决策算法。
[0052]监管可视化层3,主要用于显示控制检测层2进行冲突分析之后获得的冲突信息、相互冲突的流表信息、网络拓扑信息。当然,监管可视化层3还可以显示网络中获取认证授权的应用的流规则信息等。另外,监管可视化层3还用于进行网络安全策略的管理,并允许网络管理人员通过用户界面13 (即:UI图形界面)进行相应的操作。
[0053]应用接入层I的应用根据来源和功能可以分为三种类型:网管应用4,安全应用5和第三方应用6。
[0054]网管应用4是指由网络管理人员接入的应用,主要进行网络的管理、监控以及其他相关任务,方便管理人员更好的对网络进行监管。
[0055]安全应用5是指网络中接入的安全服务应用,用来建立网络的安全防御机制,例如防火墙、接入控制等。
[0056]第三方应用6是指由第三方接入的常规应用,通过调用控制器的开源API (Applicat1n Programming Interface,应用程序编程接口 )实现自定义的功能。
[0057]控制检测层2包括六个模块:应用认证授权模块7、流规则冲突检测与决策模块8、状态表管理模块9、信息反馈模块10、流表集合11和数据库12。
[0058]应用认证授权模块7,用于接收欲接入网络的应用的访问授权请求,并根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书给各个欲接入网络的应用,并对各个欲接入网络的应用进行访问认证授权,使各个欲接入网络的应用能够正常访问控制器的系统资源,下发应用策略。一般情况下网管应用4的优先级最高,安全应用5的优先级次之,第三方应用6的优先级最低。
[0059]流规则冲突检测与决策模块8,用于根据冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,判断是否与流表集合11中已有的流规则存在冲突,若存在冲突,则根据冲突决策算法进行冲突决策,缓解冲突,防止网络中存在相互冲突的策略规则,并将冲突分析与决策的结果发送给状态表管理模块9。
[0060]状态表管理模块9,获取认证授权的应用下发的流规则插入请求,根据冲突分析与决策的结果对获取认证授权的应用下发的流规则插入请求进行接受或拒绝操作,并实时更新流表集合11和底层交换机流表,对流表集合11进行更新维护。
[0061]信息反馈模块10,用于将流规则信息、冲突信息、网络拓扑信息实时反馈给监管可视化层3,通过用户界面13报告网络管理人员,并将网络管理人员的操作指令发送给对应的模块。
[0062]流表集合11,用于保存网络中正在运行的所有流表彳目息。这些流表?目息是策略冲突检测的基础,由状态表管理模块9负责维护和更新。
[0063]数据库12,用于存储策略冲突检测日志信息,向流规则冲突检测与决策模块8提供数据支持。
[0064]监管可视化层3包括两个模块:用户界面13、消息处理模块14,两个模块之间通过HTTP协议进行通信。
[0065]用户界面13为一个Web Π界面。当信息反馈模块10将网络消息发送给消息处理模块14后,消息处理模块14按照消息类型进行缓存,当有来自用户界面13的HTTP (Hypertext transfer protocol,超文本传输协议)信息请求时将请求的信息通过HTTP资源响应发送给用户界面13。当网络管理人员通过用户界面13下发操作指令,指令通过HTTP消息的形式发送给消息处理模块14,消息处理模块14缓存指令消息,并转化为信息反馈模块10能够识别的操作指令形式下发给信息反馈模块10。
[0066]在本发明提出的SDN应用策略冲突检测系统中,冲突检测和冲突调解是核心功能,通过控制检测层2的流规则冲突检测与决策模块8实现。流规则冲突检测与决策模块8使用基于集合相交的流规则策略冲突分析算法来检测规则冲突,使用基于应用优先级比较的流规则策略冲突决策算法来调解冲突。
[0067]在具体的实施过程中,冲突分析算法具体是:
[0068]将流表集合中已有的流规则和新插入的流规则全部转化为集合化的流规则,得到集合化流表集合和集合化待检测流规则。
[0069]对集合化流表集合和集合化待检测流规则中的所有集合化流规则进行成对比较,根据冲突匹配原则判断是否冲突。
[0070]进一步的,主要的冲突匹配原则是:
[0071]若两个集合化流规则匹配域各项并非均相交,则无冲突;
[0072]若两个集合化流规则匹配域各项均有交集,但行为域的行为相同,则无冲突;
[0073]若两个集合化流规则匹配域各项均有交集,但行为域的行为不同,则冲突。
[0074]基于集合相交的流规则策略冲突分析算法流程如图3所示。
[0075]S301,将流表集合11中已有的流规则(S)和新插入的流规则(F)全部转化为集合化的流规则,得到集合化流表集合(S_Set)和集合化待检测流规则(F_Set)。
[0076]具体的转发方式是:第一流规则(第一流规则可以是流表集合11中已有的流规则
(S)或者新插入的流规则(F))的行为域为Set-Field时,将Set前后的值合并为一个集合,用集合域值代替代替原来的匹配项域值的单个域值;若第一流规则是除Set-Field之外的其余行为,则将第一流规则的各匹配域值单独作为一个集合,用集合域值代替代替第一流规则原来的流规则匹配域值。
[0077]具体来说,“Set-Field”是一种修改或设置数据包某个值的行为。
[0078]S302,对集合化流表集合(S_Set)和集合化待检测流规则(F_Set)中的所有集合化流规则进行成对比较,根据冲突匹配原则判断是否冲突。
[0079]进一步的,在根据冲突匹配原则判断是否冲突时,主要是执行下面的步骤:
[0080]S303,集合化流表集合(S_Set)和集合化待检测流规则(F_Set)的匹配域各项是否均相交。
[0081]若匹配域各项均相交,转入S304,集合化流表集合(S_Set)和集合化待检测流规则(F_Set)的行为域各项是否相同。
[0082]若匹配域各项不相交,转入S305,无冲突。
[0083]其中,在S304中,若行为域各项相同,转入S305。若行为域各项不相同,转入S306,冲突。
[0084]上面的判断方式,主要是根据以下三条冲突匹配原则按顺序逐个判断是否冲突:
[0085](I)若S_Set和F_Set的匹配域各项并非均相交,即无关联,则无冲突;
[0086](2)若S_Set和F_Set的匹配域各项均有交集,但行为域的行为相同,则无冲突;
[0087](3)若S_Set和F_Set匹配域各项均有交集,但行为域的行为不同,则冲突。
[0088]在确定冲突之后,则会根据冲突决策算法进行决策,冲突决策算法具体是:
[0089]当冲突分析算法检测出规则冲突时,比较两条冲突的流规则对应的应用的优先级大小,若发送流规则插入请求的应用的优先级高,则将新的流规则覆盖已有流规则。
[0090]若发送流规则插入请求的应用的优先级低,则拒绝新的流规则插入请求。
[0091]若两条冲突的流规则对应的应用的优先级相同,则上报网络管理员进行抉择。
[0092]将所有的应用按照重要与安全程度分为七个不同的等级。为了便于说明和解释本发明,可将这七个等级使用特别高、非常高、较高、一般、较低、非常低、特别低进行划分,并对应为优先级I?7,优先级越小等级越高。网管应用4优先级最高,安全应用5次之,第三方应用6最低。
[0093]基于应用优先级比较的流规则策略冲突决策算法流程如图4所示。
[0094]当冲突分析算法检测出已有的流规则⑶和新插入的流规则(F)冲突时,具体的步骤如下:
[0095]S401,比较两条流规则对应的应用的优先级S_>AppPr1rity (S_>应用优先级)和F->AppPr1rity (F_>应用优先级)的大小。该优先级可以从流规则附加的应用优先级中获得。
[0096]具体的比较方式如下:
[0097]S402,比较新插入的流规则(F)的优先级(F_>AppPr1rity)是否高于已有的流规则(S)的优先级(S->AppPr1rity)。
[0098]若是,转入S403,使用新插入的流规则(F)覆盖已有的流规则⑶。即将新插入的流规则(F)插入流表集合11和底层交换机流表中,删除已有的流规则(S)。
[0099]反之,转入S404,比较新插入的流规则(F)的优先级(F_>AppPr1rity)是否低于已有的流规则(S)的优先级(S->AppPr1rity)。
[0100]若是,则转入S405,拒绝新插入的流规则(F)的插入请求。
[0101]反之,表明S_>AppPr1rity和F_>AppPr1rity相同,此时则转入S406,交由网络管理员抉择。一般情况下新的流规则将代替旧的流规则。
[0102]本发明提出一种SDN应用的策略冲突检测系统,对欲接入网络的应用进行认证和授权,赋予优先级,进行冲突检测与调解,并实时将网络状态反馈给网络管理人员,建立起一个全面的针对SDN应用的策略冲突检测框架。该系统采用的基于集合相交的流规则策略冲突分析算法,简易稳定,易于扩展,解决了流规则中存在Set等中间行为的策略冲突检测和不同应用的流规则组合之后的策略冲突检测。该系统采用的基于应用优先级比较的流规则策略冲突决策算法简单有效,易于实现。
[0103]上面的实施例描述了策略冲突检测系统的架构,基于同一发明构思,下面的实施例中描述一种SDN应用的策略冲突检测方法。
[0104]实施例二:
[0105]本发明提出的SDN应用的策略冲突检测方法,应用在SDN应用的策略冲突检测系统中。主要针对SDN应用。该方法在基于Java的控制器(OpenDaylight)的基础上进行扩展,对应的系统按照设计需求实现相应模块,并在控制器的配置文件中添加功能模块,从而在控制器启动时实现自动加载。本方法对应的系统米用模块加载器(ModuleLoader)对各模块进行管理。
[0106]而在策略冲突检测系统架构中,主要的实施流程是:
[0107]控制检测层2从应用接入层I中接收欲接入网络的应用的访问授权请求,根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书,进行访问认证授权,并通过冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,若存在冲突则通过冲突决策算法进行冲突决策以缓解冲突,防止网络中存在相互冲突的策略规则;监管可视化层3将获取认证授权的应用的流规则信息、冲突信息、网络拓扑信息实时反馈给网络管理员。
[0108]下面使用具体的应用对该方法进行说明。
[0109]本发明涉及的策略冲突检测方法的实施流程如图5所示:
[0110]SI,欲接入网络的第一应用向应用认证授权模块7请求访问授权。
[0111]S2,应用认证授权模块7对第一应用进行类型鉴别,根据应用类型分配应用优先级,生成私有证书并发放给第一应用。
[0112]S3,第一应用向应用认证授权模块7发送私有证书和从控制器获得的授权码,请求访问令牌和刷新令牌。
[0113]S4,应用认证授权模块7对第一应用的访问授权请求进行处理,接收第一应用的私有证书和授权码,若验证无误且有效则向第一应用发放访问令牌和刷新令牌。
[0114]S5,当访问令牌过期后,第一应用向应用认证授权模块7发送私有证书和刷新令牌,请求刷新访问令牌。
[0115]S6,应用认证授权模块7接收第一应用发来的私有证书和刷新令牌,若验证无误且有效则向第一应用发放新的访问令牌。
[0116]S7,流规则冲突检测与决策模块8根据策略冲突分析算法对第一应用下发的流规则插入请求进行冲突分析,判断是否与流表集合11中已有的流规则存在冲突。
[0117]S8,若S7中的判断结果为不存在冲突,则流规则冲突检测与决策模块8将流规则插入请求发送给状态表管理模块9。
[0118]S9,若S7中的判断结果为存在冲突,则流规则冲突检测与决策模块8根据策略冲突决策算法进行冲突决策,缓解冲突,防止网络中存在相互冲突的策略规则。
[0119]S10,流规则冲突检测与决策模块8将冲突分析与决策的结果发送给状态表管理模块9。
[0120]SI I,数据库12存储流规则冲突检测与决策模块8的策略冲突检测日志信息,并向流规则冲突检测与决策模块8提供数据支持。
[0121]S12,状态表管理模块9检测流规则的完整性,若不完整,则流规则在中途遭到了破坏,拒绝插入请求;若完整,接受插入请求,然后进行插入流规则到流表集合11、从流表集合11删除流规则、将流规则下发到底层交换机等操作。
[0122]S13,信息反馈模块10接收来自各功能模块发来的消息,按照消息类型将消息分别添加到相应的消息队列中。
[0123]S14,信息反馈模块10将消息队列中的消息发送给消息处理模块14。消息处理模块14获得来自信息反馈模块10的消息,按照消息类型进行缓存。
[0124]S15,当有来自用户界面13的HTTP信息请求时,消息处理模块14将请求的信息通过HTTP资源响应发送给用户界面13。
[0125]S16,当网络管理人员通过用户界面13下发操作指令,操作指令被打包为指令消息发送给消息处理模块14。
[0126]S17,消息处理模块14缓存指令消息,并转化为信息反馈模块10能够识别的操作指令形式下发给信息反馈模块10。信息反馈模块10接收来自消息处理模块14发来的操作指令,将收到的操作指令按照目的模块添加到对应模块的指令队列中。
[0127]S18,信息反馈模块10将模块指令队列中的操作指令发送给对应的功能模块。
[0128]通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:
[0129]本发明提出一种SDN应用的策略冲突检测方法及系统,对欲接入网络的应用进行认证和授权,赋予优先级,进行冲突检测与调解,并实时将网络状态反馈给网络管理人员,建立起一个全面的针对SDN应用的策略冲突检测框架,以解决SDN带来的网络安全威胁。本发明采用的基于集合相交的流规则策略冲突分析算法,简易稳定,易于扩展,实现了流规则中存在Set等中间行为的策略冲突检测和不同应用的流规则组合之后的策略冲突检测。本发明采用的基于应用优先级比较的流规则策略冲突决策算法简单有效,易于实现。
[0130]尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0131]显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
【权利要求】
1.一种SDN应用的策略冲突检测系统,其特征在于,包括: 应用接入层,包括已接入网络的应用和欲接入网络的应用; 控制检测层,用于接收所述欲接入网络的应用的访问授权请求,根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书,进行访问认证授权,并通过冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,若存在冲突则通过冲突决策算法进行冲突决策以缓解冲突,以防止网络中存在相互冲突的策略规则; 监管可视化层,用于实时显示网络中的流规则信息、冲突信息、网络拓扑信息给网络管理员。
2.如权利要求1所述的系统,其特征在于,所述应用接入层中的应用包括: 网管应用,所述网管应用具体是由所述网络管理人员接入的应用,所述网管应用用于进行网络的管理和监控; 安全应用,所述安全应用主要是网络中接入的安全服务应用,用于建立网络的安全防御机制; 第三方应用,所述第三方应用是指由第三方接入的常规应用,用于通过调用控制器的开源API (应用程序编程接口)实现自定义的功能。
3.如权利要求1所述的系统,其特征在于,所述控制检测层包括: 应用认证授权模块,用于接收各个欲接入网络的应用的访问授权请求,并根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书给各个欲接入网络的应用,并对各个欲接入网络的应用进行访问认证授权; 流规则冲突检测与决策模块,用于根据所述冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,判断是否与流表集合中已有的流规则存在冲突,若存在冲突,则根据所述冲突决策算法进行冲突决策以缓解冲突,以防止网络中存在相互冲突的策略规则,并将冲突分析与决策的结果发送给状态表管理模块; 所述状态表管理模块,用于管理获取认证授权的应用下发的流规则插入请求,根据所述冲突分析与决策的结果对获取认证授权的应用下发的流规则插入请求进行接受或拒绝操作,并实时更新所述流表集合和底层交换机流表,对所述流表集合进行更新维护; 信息反馈模块,用于将所述流规则信息、所述冲突信息、所述网络拓扑信息实时反馈给所述监管可视化层,通过所述用户界面报告给所述网络管理人员,并将所述网络管理人员的操作指令发送给对应的模块; 所述流表集合,用于保存网络中正在运行的所有流表信息; 数据库,用于存储策略冲突检测日志信息,向所述流规则冲突检测与决策模块提供数据支持。
4.根据权利要求1所述的系统,其特征在于,所述监管可视化层包括: 所述用户界面,用于从消息处理模块获得网络状态信息,以图表化的形式实时显示网络状态信息,以使所述网络管理人员通过所述用户界面下发操作指令至所述消息处理模块; 所述消息处理模块,用于接收所述信息反馈模块发送的网络消息,按照消息类型进行缓存,当有来自所述用户界面的HTTP (超文本传输协议)信息请求时,将所述HTTP信息请求通过HTTP资源响应发送给所述用户界面,当接收到来自所述用户界面的操作指令时,缓存所述操作指令,并转化为所述信息反馈模块能够识别的操作指令形式,然后下发给所述信息反馈模块,其中,所述网络消息包括所述网络拓扑信息、所述流表信息以及所述冲突信肩、O
5.根据权利要求1或3所述的系统,其特征在于,所述冲突分析算法具体是: 将所述流表集合中已有的流规则和新插入的流规则全部转化为集合化的流规则,得到集合化流表集合和集合化待检测流规则; 对所述集合化流表集合和所述集合化待检测流规则中的所有集合化流规则进行成对比较,根据冲突匹配原则判断是否冲突。
6.根据权利要求1或3所述的系统,其特征在于,所述冲突决策算法具体是: 当冲突分析算法检测出规则冲突时,比较两条冲突的流规则对应的应用的优先级大小,若发送流规则插入请求的应用的优先级高,则将新的流规则覆盖已有流规则;若发送流规则插入请求的应用的优先级低,则拒绝新的流规则插入请求;若两条冲突的流规则对应的应用的优先级相同,则上报所述网络管理员进行抉择。
7.根据权利要求5所述的系统,其特征在于,所述集合化的流规则的转化条件是:当第一流规则的行为域为Set-Field时,将Set前后的值合并为一个集合,用集合域值代替代替原来的匹配项域值的单个域值,若所述第一流规则是除Set-Field之外的其余行为,则将所述第一流规则的各匹配域值单独作为一个集合,用集合域值代替代替所述第一流规则原来的流规则匹配域值。
8.根据权利要求5所述的系统,其特征在于,所述冲突匹配原则是: 若两个集合化流规则匹配域各项并非均相交,则无冲突; 若两个集合化流规则匹配域各项均有交集,但行为域的行为相同,则无冲突; 若两个集合化流规则匹配域各项均有交集,但行为域的行为不同,则冲突。
9.根据权利要求6所述的系统,其特征在于,所述应用的优先级是将所有的应用按照重要与安全程度分为七个不同的等级。
10.一种SDN应用的策略冲突检测方法,其特征在于,所述方法包括: 控制检测层从应用接入层接收欲接入网络的应用的访问授权请求,根据应用类型赋予各个欲接入网络的应用相应的优先级,发放私有证书,进行访问认证授权,并通过冲突分析算法对获取认证授权的应用下发的流规则插入请求进行冲突分析,若存在冲突则通过冲突决策算法进行冲突决策以缓解冲突,防止网络中存在相互冲突的策略规则; 所述监管可视化层将获取认证授权的应用的流规则信息、冲突信息、网络拓扑信息实时反馈给网络管理员。
【文档编号】H04L12/24GK104202303SQ201410391710
【公开日】2014年12月10日 申请日期:2014年8月11日 优先权日:2014年8月11日
【发明者】戴彬, 胡炜烨, 王航远 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1