一种OpenFlow控制器异步消息同步的方法及装置制造方法及图纸

技术编号:24362650 阅读:51 留言:0更新日期:2020-06-03 04:01
本发明专利技术揭示了一种OpenFlow控制器异步消息同步的方法及装置,方法包括交换机与主、备控制器建立连接,交换机按照顺序在每个异步消息中添加同步编号并上报主、备控制器中,主控制器对异步消息进行处理并将已处理的异步消息同步至数据库中,交换机与主控制器之间链路发生故障时切换至备控制器,备控制器通过同步编号获取主控制器已处理的异步消息,并对其未处理的异步消息进行处理。本发明专利技术通过在异步消息中按照顺序添加同步编号,有效解决主控制器与备控制器发生切换时异步消息漏处理或重复处理的问题。

A method and device for asynchronous message synchronization of openflow controller

【技术实现步骤摘要】
一种OpenFlow控制器异步消息同步的方法及装置
本专利技术涉及网络通信
,尤其是涉及一种OpenFlow控制器异步消息同步的方法及装置。
技术介绍
OpenFlow网络通常包括OpenFlow交换机、OpenFlow控制器、连接OpenFlow交换机和OpenFlow控制器的安全通道,及OpenFlow表项。OpenFlow交换机需要OpenFlow控制器进行管理,当然,一个OpenFlow控制器也可以管理多个OpenFlow交换机。为了实现OpenFlow控制器管理OpenFlow交换机的保护冗余性,OpenFlow网络中通常部署多个OpenFlow控制器,多个OpenFlow控制器之间以集群或主备方式对OpenFlow交换机进行管理。在以主备方式对OpenFlow交换机进行管理的OpenFlow网络中,OpenFlow控制器与OpenFlow交换机之间的消息交互主要分三类:Controller-to-Switch(控制器到交换机)消息、Asynchronous(异步)消息,及Symmetric(同步)消息,其中,Controller-to-Switch消息用于控制器对交换机做策略下发、变更、删除及状态表项请求等动作;Asynchronous消息用于交换机主动向控制器上报某些事件,如Packet-in(数据包上报)、Port-Status(端口状态)、Flow-Remove(流表删除)等;Symmetric消息用于双向交互,如Hello/Echo等。具体实施时,控制器策略改变和下发主要存在两类触发源,一是主动下发(如业务新增),二是控制器收到交换机上报的Asynchronous消息后作出的策略改变(如接口发生关闭,交换机通过Port-Status消息上报控制器,控制器进一步改变该交换机的转发策略)。然而,在以主备方式对OpenFlow交换机进行管理的OpenFlow网络中,OpenFlow主控制器与OpenFlow备控制器之间需要进行数据同步,当Asynchronous消息上控制器后需要考虑OpenFlow控制器之间数据同步问题。由于多个控制器之间线路质量存在问题等原因,可能导致Asynchronous消息上报不同步的问题,如OpenFlow交换机上报10个Asynchronous消息,某一时刻OpenFlow主控制器可能已完全接收到10个Asynchronous消息,而OpenFlow备控制器可能接收到9个Asynchronous消息,若主、备控制器在此时发生切换,可能引起消息漏处理,或重复处理的问题。另外,控制器对不同类型的Asynchronous消息处理速度也存在不同,无法确保Asynchronous消息处理的顺序与上报的顺序保护一致,同样会引起消息漏处理或重复处理的问题。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供一种OpenFlow控制器异步消息同步的方法及装置,可在主、备控制器切换时避免异步消息重复处理或漏处理。为实现上述目的,本专利技术提出如下技术方案:一种OpenFlow控制器异步消息同步的方法,包括如下步骤:S100,OpenFlow交换机与OpenFlow主、备控制器建立连接;S200,OpenFlow交换机按照顺序在每个异步消息中添加同步编号,进一步将异步信息上报至OpenFlow主、备控制器中;S300,OpenFlow主控制器对接收到的异步消息进行处理,并将已处理的异步消息同步至数据库中,OpenFlow备控制器处于监听状态;S400,判断OpenFlow交换机与OpenFlow主控制器之间的链路是否发生故障,若是,则切换至OpenFlow备控制器,并执行步骤S500,否则,OpenFlow主控制器继续对未处理的异步消息进行处理,并将已处理的异步消息同步至数据库中,OpenFlow备控制器处于监听状态;S500,OpenFlow备控制器获取数据库中OpenFlow主控制器已处理的异步消息对应的同步编号,进一步根据该同步编号对接收到的异步消息中已被OpenFlow主控制器处理的异步消息进行过滤,并对余下的异步消息进行处理。优选地,所述异步消息包括数据包上报消息,通过所述数据包上报消息中填充字段设置同步编号。优选地,所述异步消息包括流表删除消息,通过所述流表删除消息中数据匹配字段设置同步编号。优选地,所述异步消息包括端口状态信息,通过所述端口状态信息中填充字段设置同步编号。本专利技术还揭示了一种OpenFlow控制器异步消息同步的装置,包括通信模块,用于使OpenFlow交换机与OpenFlow主、备控制器建立连接;同步编号添加模块,用于使OpenFlow交换机在每个异步消息中按照顺序添加同步编号,并将异步消息上报至OpenFlow主、备控制器中;第一消息处理模块,用于使OpenFlow主控制器对异步消息进行处理,并将已处理的异步消息同步至数据库中;链路状态模块,用于判断OpenFlow交换机与OpenFlow主控制器之间的链路是否发生故障;第二消息处理模块,用于在OpenFlow交换机与OpenFlow主控制器之间的链路发生故障时,使OpenFlow备控制器获取数据库中OpenFlow主控制器已处理的异步消息对应的同步编号,进一步根据该同步编号对接收到的异步消息中已被OpenFlow主控制器处理的异步消息进行过滤,并对余下的异步消息进行处理。优选地,所述异步消息包括数据包上报消息,同步编号添加模块通过所述数据包上报消息中填充字段设置同步编号。优选地,所述异步消息包括流表删除消息,同步编号添加模块通过所述流表删除消息中数据匹配字段设置同步编号。优选地,所述异步消息包括端口状态信息,同步编号添加模块通过所述端口状态信息中填充字段设置同步编号。本专利技术的有益效果是:(1)通过在异步消息中添加同步编号(Sync-Id),一方面可以明确异步消息上报到不同OpenFlow控制器的排列顺序,另一方面还可以让不同的OpenFlow控制器知道某一消息是同一个异步消息上报而来。(2)通过在异步消息中添加同步编号(Sync-Id),有效解决了OpenFlow主、备控制器切换时异步消息重复处理或者漏处理的问题。附图说明图1是本专利技术的流程图示意图;图2是本专利技术的结构框图示意图。具体实施方式下面将结合本专利技术的附图,对本专利技术实施例的技术方案进行清楚、完整的描述。本专利技术所揭示的一种OpenFlow控制器异步消息同步的方法,可解决OpenFlow主控制器与OpenFlow备控制器发生切换时异步消息漏处理或重复处理的问题。如图1所示,本专利技术所揭示的一种OpenFlow控制器异步消息同步的方法,包括如下步骤:S100,OpenFlow交换机与OpenFlow主、备控制器建立连接;具体地,OpenFlow网络包括OpenFlow交换机、OpenFlow主控制器及Ope本文档来自技高网
...

【技术保护点】
1.一种OpenFlow控制器异步消息同步的方法,其特征在于,包括如下步骤:/nS100,OpenFlow交换机与OpenFlow主、备控制器建立连接;/nS200,OpenFlow交换机按照顺序在每个异步消息中添加同步编号,进一步将异步信息上报至OpenFlow主、备控制器中;/nS300,OpenFlow主控制器对接收到的异步消息进行处理,并将已处理的异步消息同步至数据库中,OpenFlow备控制器处于监听状态;/nS400,判断OpenFlow交换机与OpenFlow主控制器之间的链路是否发生故障,若是,则切换至OpenFlow备控制器,并执行步骤S500,否则,OpenFlow主控制器继续对未处理的异步消息进行处理,并将已处理的异步消息同步至数据库中,OpenFlow备控制器处于监听状态;/nS500,OpenFlow备控制器获取数据库中OpenFlow主控制器已处理的异步消息对应的同步编号,进一步根据该同步编号对接收到的异步消息中已被OpenFlow主控制器处理的异步消息进行过滤,并对余下的异步消息进行处理。/n

【技术特征摘要】
1.一种OpenFlow控制器异步消息同步的方法,其特征在于,包括如下步骤:
S100,OpenFlow交换机与OpenFlow主、备控制器建立连接;
S200,OpenFlow交换机按照顺序在每个异步消息中添加同步编号,进一步将异步信息上报至OpenFlow主、备控制器中;
S300,OpenFlow主控制器对接收到的异步消息进行处理,并将已处理的异步消息同步至数据库中,OpenFlow备控制器处于监听状态;
S400,判断OpenFlow交换机与OpenFlow主控制器之间的链路是否发生故障,若是,则切换至OpenFlow备控制器,并执行步骤S500,否则,OpenFlow主控制器继续对未处理的异步消息进行处理,并将已处理的异步消息同步至数据库中,OpenFlow备控制器处于监听状态;
S500,OpenFlow备控制器获取数据库中OpenFlow主控制器已处理的异步消息对应的同步编号,进一步根据该同步编号对接收到的异步消息中已被OpenFlow主控制器处理的异步消息进行过滤,并对余下的异步消息进行处理。


2.根据权利要求1所述的OpenFlow控制器异步消息同步的方法,其特征在于,所述异步消息包括数据包上报消息,通过所述数据包上报消息中填充字段设置同步编号。


3.根据权利要求1所述的OpenFlow控制器异步消息同步的方法,其特征在于,所述异步消息包括流表删除消息,通过所述流表删除消息中数据匹配字段设置同步编号。


4.根据权利要求1所述的OpenFlow控制器异步消息同步的方法,其特征在于,所述异步消息包括端口状态信息,通过所述端口状态...

【专利技术属性】
技术研发人员:金利高小添杨锐
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

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

1