一种openflow消息中流规则等价快速判定方法技术

技术编号:13230023 阅读:129 留言:0更新日期:2016-05-13 12:28
本发明专利技术公开了一种openflow消息中流规则等价快速判定方法。本方法为:SDN网络中的代理接收到来自一Openflow消息后,将该消息与已收到会话消息中的流规则进行比较;如果均不一致,则为该消息创建一新会话,并设一随机初始种子值;如果与一已收到会话消息中包含的规则一致,则判定该消息中流规则与该会话消息中流规则等价;其中,比较的方法为:首先将该消息中流规则的匹配项和动作项每32bit划分一个单元,然后将所有单元和一已收到会话i的随机初始种子值进行计算,结果记为a,该会话i的Openflow消息流规则划分后的所有单元和该会话i的随机初始种子值的计算结果记为b,如果a等于b,则判定两条流规则等价。

【技术实现步骤摘要】

本专利技术涉及SDN领域。更为具体的,本专利技术涉及一种快速判定Openflow消息中的流规则是否等价的方法,以提高对于多个冗余控制器下发的流表规则的等价性判定过程。
技术介绍
由于在SDN网络中,控制平面和转发平面的分离,网络控制统一集中到网络控制器,交换机与控制器之间通过openflow协议进行通信,这使得网络控制器成为SDN网络的安全焦点,网络控制器的可用性和可靠性直接关系到整个网络的安全性。在现有的部署模式和安全手段下,由于安全攻击的不可预知,难以保证SDN控制器的安全性。利用多控制器构建具有入侵容忍能力的控制器端系统是应对上述问题的有效途径之一,而在这种系统中需要对于多个控制器下发的流表进行一致性裁决,以发现控制器的不一致行为。控制器通过openflow消息下发流表,每条流表包括执行动作和多个匹配项,考虑到灵活性和可扩展性,在openflow 1.2规范之后,在openflow消息中采用OXM结构存储匹配项,各匹配项在消息中可能出现或者不出现,且相互顺序不确定,使得在对比两个流规则时,通常需要遍历两个流规则所有表匹配项,效率低下。该问题的根源在于依据Openf low规范,各个匹配项可以在openf low消息中随机且以不确定的顺序出现,给流规则间的相互比较带来困难,从而降低了多控制器一致性裁决的效率。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供。相比传统方法,本专利技术方法更简单、快捷。本专利技术解决其技术问题所采用的技术方案是:一种openf low消息中流规则等价快速判定方法,其步骤为:SDN网络中的openf low代理接收到来自一 SDN控制器的Openf I ow消息后,将该Openf I ow消息与所有已收到会话的Openf I ow消息中包含的流规则进行比较;如果均不一致,则为该Openf I ow消息创建一新的会话,并为该会话设一随机初始种子值;如果与其中一个已收到会话的Openflow消息中包含的规则一致,贝lJ判定该Openf low消息中流规则与该会话的Openf low消息中流规则等价;其中,进行比较的方法为:首先将该Op enf I ο w消息中流规则的匹配项和动作项每Kb i t划分一个单元,然后将该Openflow消息流规则划分后的所有单元和一已收到会话i的随机初始种子值进行计算,结果记为a,该会话i的Openf low消息流规则划分后的所有单元和该会话i的随机初始种子值的计算结果记为b,如果a等于b,则判定两条流规则等价。进一步的,所述K的取值为32的整数倍。进一步的,所述Kbit的取值为32bit。进一步的,所述计算为求和计算。进一步的,所述openflow代理为每一会话设定一定时器。进一步的,所述openflow对该定时器设定时间内收到的Openflow消息进行流规则等价判定,根据判定结果对SDN网络中多个控制器的Openf low消息进行一致性裁决,然后根据裁决结果对收到的Openflow消息进行转发。本专利技术在openf low代理解析了openf low消息之后(参考申请号:201510455076.8、名称“基于入侵容忍的SDN控制器端系统和安全通信方法”的专利技术文献),判定openf I ow消息的等价依赖于openflow消息中包含的流规则的等价,在流规则两两比较过程中采用以下方法:在每个比较会话开始时随机设置32bit的初始种子值,用以抵御恶意伪造的消息,将所有控制器openf low消息中包含的流规则中的匹配项和动作项每32bit划分一个单元,将每一流规则所有单元和初始种子值进行加法运算然后求和,如果两条规则的加法运算结果相等,说明两条规则等价;否则,说明两条规则不等价。本方法是对所有的值,不区分匹配项的名字,先求和再比较和的区别。在本专利技术方法中,通过随机设置初始种子值,可以抵御少数控制器恶意伪造消息合成相同的加法运算结果;通过利用求和运算对于位置无关性,从而规避了在OXM结构中各个匹配项出现与否以及位置不确定给比较带来的困难;同时考虑到了多控制器消息裁决不需要精确判定消息之间不一致的详细信息,从而利用求和结果既可以满足多控制器消息一致性裁决的需要。和现有技术相比,本专利技术的有益效果是:在基于多个冗余控制器构建具有入侵容忍能力的SD N控制器系统时可以加快openflow消息等价性的判定过程。例如,一条流规则的匹配项和动作项目共η个OXM的TLV子结构,另一条流表有m个TLV的子结构,如果是普通的对比,需要遍历查找的时间复杂度为O(n)*0(m),如果使用本专利的方法,时间复杂度为0(1),因为不需要查找一一对应的OXM子结构类型,只需全部求和即可。【附图说明】图1是本专利技术方法的流程图;图2是本专利技术每一流规则的求和方法流程图。【具体实施方式】下面通过具体实施例结合附图对本专利技术作进一步描述。 如附图所示,openf low代理在接收到来自SDN控制器的Openf low消息后,分析比对其中的流规则,对多个控制器消息进行一致性裁决,最终将流规则多数一致的消息转发给交换机。I)用户的网络控制逻辑需要在所有后端不同的SDN控制器环境上实现和部署。2)用户配置所有openf low代理的执行参数,包括入侵容忍策略(描述了至少η个SDN控制器中收到m个包含相同流规则判定为符合系统入侵容忍策略中的数目η和m,表示为m/n)、所有后端SDN控制器地址、端口以及相关连接认证参数(如有必要)等,并与所有后端SDN控制器建立连接,并标记状态为“正常”。3)用户配置SDN交换机的执行参数,包括交换机后端的openf low代理的地址和端口,以及相关连接认证参数(如有必要)等,并与当前活动的openf low代理建立连接。4)openf low代理接收到来自某SDN控制器的Openf low消息后,对于其中包含了流规则的消息进行如下处理,其他消息则进行转发:1.如果所有现有已收到会话消息中包含的流规则与每一新接收消息中包含的流规则都不等价,则为该消息创建新的会话,设定定时器和随机32bit的种子值,等待其他SDN控制器的相关消息。具体比较方法,只需计算新消息中流规则在不包含随机种子值时的和,然后与各个现有会话的种子值求和,然后与现有会话的和进行比较,如果一致,则消息等价;反之,则不等价。如果在定时器设定时间内,某个控制器一直不回复下层的请求,此时代理不能一直等待这个控制器,而需要在一定时间内对下层网络做出反应。下面对上述过程举例说明。假设后端为5个SDN控制器,在一个会话中,每个控制器发过来的Openflow消息中都只包含一条流规则,此时我们用本方法对5条流规则进行两两等价判定。假设每条规则中包含两个匹配项,每个匹配项的长度为64bit:1#流规则的匹配项数据部分:0x00000000000000001111111111111111,其中0x0000000000000000为第一个匹配项A,0x1111111111111111 为第二个匹配项B2#流规则的匹配项数据部分:0x11111111111111110000000000000000,其中0x1111111111111111为第一个匹配项B,0x0000000000000000为第本文档来自技高网...

【技术保护点】
一种openflow消息中流规则等价快速判定方法,其步骤为:SDN网络中的openflow代理接收到来自一SDN控制器的Openflow消息后,将该Openflow消息与所有已收到会话的Openflow消息中包含的流规则进行比较;如果均不一致,则为该Openflow消息创建一新的会话,并为该会话设一随机初始种子值;如果与其中一个已收到会话的Openflow消息中包含的规则一致,则判定该Openflow消息中流规则与该会话的Openflow消息中流规则等价;其中,进行比较的方法为:首先将该Openflow消息中流规则的匹配项和动作项每Kbit划分一个单元,然后将该Openflow消息流规则划分后的所有单元和一已收到会话i的随机初始种子值进行计算,结果记为a,该会话i的Openflow消息流规则划分后的所有单元和该会话i的随机初始种子值的计算结果记为b,如果a等于b,则判定两条流规则等价。

【技术特征摘要】

【专利技术属性】
技术研发人员:王利明姜帆荀浩马多贺徐震
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1