一种流表信息的恢复方法及装置与流程

文档序号:12278455阅读:286来源:国知局
一种流表信息的恢复方法及装置与流程

本发明涉及通信技术领域,特别涉及一种流表信息的恢复方法及装置。



背景技术:

在Openflow交换机中,驱动芯片内会存储有流表信息,按照流表信息对流量进行转发。各流表信息的添加/删除由Openflow交换机连接的Openflow控制器控制。

当Openflow交换机重启时,Openflow交换机的驱动芯片中的流表信息被清空。此时,若要恢复Openflow交换机中的流表信息,该Openflow交换机需要先与Openflow控制器建立连接,再由Openflow控制器重新计算、下发给Openflow交换机需要的流表信息,进而指导业务流量的转发。这使得Openflow交换机重启时恢复业务的耗时较长。



技术实现要素:

本发明实施例公开了一种流表信息的恢复方法及装置,以减少Openflow交换机重启时恢复业务的耗时。

为达到上述目的,本发明实施例公开了一种流表信息的恢复方法,应用于Openflow交换机,所述方法包括:

接收并解析流表调整消息;所述流表调整消息包括流表信息;

将所述流表信息更新至所述Openflow交换机的非易失性存储器;

当所述Openflow交换机重启时,从所述非易失性存储器中获取所述流表信息,并将所述流表信息下发至所述Openflow交换机的驱动芯片。

为达到上述目的,本发明实施例还公开了一种流表信息的恢复装置,应用于Openflow交换机,所述装置包括:

接收单元,用于接收并解析流表调整消息;所述流表调整消息包括流表信息;

更新单元,用于将所述流表信息更新至所述Openflow交换机的非易失性存储器;

下发单元,用于当所述Openflow交换机重启时,从所述非易失性存储器中获取所述流表信息,并将所述流表信息下发至所述Openflow交换机的驱动芯片。

本发明实施例提供的一种流表信息的恢复方法及装置,Openflow交换机接收并解析携带有流表信息的流表调整消息,将解析获得的流表信息更新至非易失性存储器,由非易失性存储器对流表信息进行备份。在Openflow交换机重启时,Openflow交换机可以从非易失性存储器中获取到该流表信息,并将该流表信息下发至Openflow交换机的驱动芯片。可见,本发明实施例中,在Openflow交换机重启时,不必从先与Openflow控制器建立连接,再由Openflow控制器重新计算、下发给Openflow交换机需要的所有流表信息,减少了Openflow交换机重启时恢复业务的耗时。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种流表信息的恢复方法的流程示意图;

图2为本发明实施例提供的一种Openflow交换机的结构示意图;

图3为本发明实施例提供的一种流表信息的恢复装置的结构示意图。

具体实施方式

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

下面通过具体实施例,对本发明进行详细说明。

参考图1,图1为本发明实施例提供的一种流表信息的恢复方法的流程示意图,该方法包括:

S101:接收并解析流表调整消息;所述流表调整消息包括流表信息;

Openflow交换机的结构可以参考图2,Openflow交换机可以包括:处理器100、驱动芯片200和非易失性存储器300;此时,流表信息的恢复方法可以为:处理器100接收并解析携带流表信息的流表调整消息,将该流表信息更新至驱动芯片200中,并将该流表信息更新至非易失性存储器300中;当该Openflow交换机重启时,处理器100从非易失性存储器300中获取流表信息,并将流表信息下发至驱动芯片200。

Openflow交换机与Openflow控制器建立连接后,Openflow控制器向该Openflow交换机下发查询消息(例如Multipart request消息);Openflow交换机根据该查询消息,主动查询本地当前存储的所有流表信息,并通过Multipart reply消息将当前的所有流表信息发送给Openflow控制器;Openflow控制器根据接收到的当前流表信息,确定需要向Openflow交换机下发的流表信息,也就是,确定Openflow交换机未加载的流表信息,将需要下发的流表信息携带在流表调整消息(例如Flow mod消息)中发送给Openflow交换机;此时,Openflow交换机可以解析流表调整消息获得需要的流表信息。

S102:将所述流表信息更新至所述Openflow交换机的非易失性存储器;

其中,非易失性存储器中备份有Openflow交换机重启前的流表信息。该非易失性存储器可以为Flash存储器,Flash存储器在没有电流供应的条件下也能够长久地保持数据,这样Openflow交换机重启时,可以确保Flash存储器中存储的信息不会丢失。

Openflow交换机接收到Flow mod消息后,根据Flow mod消息,将Flow mod消息中的流表信息更新至该Openflow交换机的驱动芯片中,并将Flow mod消息中的流表信息更新至该Openflow交换机的非易失性存储器中。

在本发明的一个实施例中,Openflow交换机可以将所有流表信息都存储到非易失性存储器,这样在Openflow交换机恢复流表信息时,相对重新从Openflow控制器获取流表信息,也能提高恢复速度。

但并不是所有的流表信息都是关键流表信息,无需在Openflow交换机重启时立刻恢复,该关键流表信息指对于业务中断的时间比较敏感的业务所对应的流表信息,例如,在应用将流量引导至防火墙设备的流表信息则可以认为是关键流表信息。若将所有流表信息存储至非易失性存储器中,将占用非易失性存储器的大量存储空间,并且降低了恢复关键流表信息的速度。为了节省非易失性存储器的存储空间,并提高恢复关键流表信息的速度,Openflow交换机接收并解析流表调整消息之后,可以先判断流表信息中的老化时间或流表信息中的辨识值(例如Cookie值)是否为预设的关键流表值;如果是,判定该流表信息为关键流表信息,将该流表信息更新至该Openflow交换机的驱动芯片中,并将该流表信息更新至该Openflow交换机的非易失性存储器中;如果不是,仅将流表信息更新至该Openflow交换机的驱动芯片中,而不该流表信息更新至该Openflow交换机的非易失性存储器中。

具体的,若流表信息中的老化时间的属性值为“0”,表示该流表信息为不需要老化的流表信息,可以认为该流表信息为关键流表信息;或者,若流表信息中的Cookie值为“1”,则可以认为该流表信息为关键流表信息。

上述关键流表信息可以根据用户的需要确定。如管理用户或访问级别较高的用户等对流量转发的中断时间要求较高,希望中断时间越短越好,那么可以将来自如管理用户或访问级别较高的用户的流量对应的流表信息确定为关键流表信息;再如为了网络安全,流量都需要转发到防火墙后,再转发出去,那么可以将控制流量转发到防火墙的流表信息确定为关键流表信息。

在本发明的一个实施例中,流表调整消息可以分为:流表添加消息、流表删除消息和流表修改消息:这种情况下,上述S102可以包括:

当流表调整消息为流表添加消息时,Openflow交换机在驱动芯片中建立流表信息,也就是,将Flow mod消息中包括的流表信息添加至驱动芯片中;另外,将Flow mod消息中包括的流表信息添加至该Openflow交换机的非易失性存储器;

当流表调整消息为流表删除消息时,为了保证驱动芯片和非易失性存储器中的流表信息的同步,删除Openflow交换机的驱动芯片中Flow mod消息对应的流表信息,并删除该Openflow交换机的非易失性存储器中Flow mod消息对应的流表信息;

当流表调整消息为流表修改消息时,为了保证驱动芯片和非易失性存储器中的流表信息的同步,修改Openflow交换机的驱动芯片中Flow mod消息对应的流表信息,并修改该Openflow交换机的非易失性存储器中Flow mod消息对应的流表信息。

S103:当所述Openflow交换机重启时,从所述非易失性存储器中获取所述流表信息,并将所述流表信息下发至所述Openflow交换机的驱动芯片。

在本发明的一个实施例中,流表信息可以包括流表项和与该流表项对应的辅助流表项。Openflow交换机连接的Openflow控制器除了需要向该Openflow交换机下发流表项,还会向该Openflow交换机下发流表项的辅助流表项,辅助流表项与流表项是相互关联的。这里辅助流表项可以包括:限速表项(例如Meter表项)和转发表项(例如Group表项)等。Openflow交换机根据流表项处理报文时,可以根据Meter表项、Group表项等辅助流表项对报文进行进一步的处理。

这种情况下,为了在根据非易失性存储器中存储的流表信息恢复驱动芯片中的流表信息后,能够根据恢复的流表信息正常处理报文,Openflow交换机在接收Openflow控制器发送的辅助流表项后,若接收到的辅助流表项对应的流表项添加到了非易失性存储器中,则将该辅助流表项也添加至非易失性存储器中。此时,在Openflow交换机重启时,Openflow交换机可以从非易失性存储器中获取流表项和辅助流表项;再将获取的流表项和辅助流表项下发至该Openflow交换机的驱动芯片。

需要说明的是,为了保证流表项下发到Openflow交换机的驱动芯片后,能够立即使用,Openflow控制器可以在下发流表项前下发该流表项需要调用的辅助流表项。同理,为了保证流表项下发到Openflow交换机的驱动芯片后,能够立即使用,Openflow交换机重启后,Openflow交换机可以先将辅助流表项等从非易失性存储器中下发至Openflow交换机的驱动芯片,再将流表项从非易失性存储器中下发至Openflow交换机的驱动芯片。

另外,删除流表项时,若删除的流表项对应有限速表项和转发表项等辅助流表项,同时删除非易失性存储器中对应的限速表项和转发表项等辅助流表项;修改流表项时,若修改的流表项对应有限速表项和转发表项等辅助流表项发生了变化,同时修改非易失性存储器中的限速表项和转发表项等辅助流表项。

在本发明的一个实施例中,流表项和辅助流表项等流表信息以文本的形式存储在非易失性存储器中,为了提高非易失性存储器中文本文件的安全性,可以将非易失性存储器中的流表信息的读写属性设置为仅允许主进程读写的标识,例如,将流表信息的读写属性设置“700”,这样就只有主进程可以读写非易失性存储器中的流表信息;另外,也可以将非易失性存储器中的流表信息设置为隐藏,如:将流表信息文本文件的名称设置为“.”开头,就可以实现文件的默认隐藏功能了。

在本发明的一个实施例中,为了避免Openflow交换机在未将非易失性存储器中的信息全部加载至驱动芯片的情况下,与Openflow控制器连接,获取流表信息,进而影响业务的恢复,Openflow交换机在重启后进入安全模式,再从非易失性存储器中获取流表信息;这里,安全模式的工作原理是:在不加载第三方设备(例如Openflow控制器)驱动程序的情况下启动Openflow交换机,使Openflow交换机运行在系统最小模式,这样用户就可以方便地检测与修复Openflow交换机的错误;

当加载完成后,Openflow交换机与Openflow控制器连接后,退出安全模式,进而接收Openflow控制器发送的查询消息;根据该查询消息,将当前所有流表信息发送至Openflow控制器,Openflow控制器根据Openflow交换机的当前所有流表信息,确定Openflow交换机未加载的流表信息,并将Openflow交换机未加载的流表信息发送给该Openflow交换机。

需要说明的是,该流表信息的恢复方法还可以应用于其他由Openflow控制器控制下发流表信息的网络设备,本发明实施例对此不进行限定。另外,上述Openflow交换机执行的操作可以理解为是该Openflow交换机的处理器执行。

本发明实施例提供的一种流表信息的恢复方法,Openflow交换机接收并解析携带有流表信息的流表调整消息,将解析获得的流表信息更新至非易失性存储器,由非易失性存储器对流表信息进行备份。在Openflow交换机重启时,Openflow交换机可以从非易失性存储器中获取到该流表信息,并将该流表信息下发至Openflow交换机的驱动芯片。可见,本发明实施例中,在Openflow交换机重启时,不必从先与Openflow控制器建立连接,再由Openflow控制器重新计算、下发给Openflow交换机需要的所有流表信息,减少了Openflow交换机重启时恢复业务的耗时。

参考图3,图3为本发明实施例提供的一种流表信息的恢复装置的结构示意图,应用于Openflow交换机,该装置包括:

接收单元301,用于接收并解析流表调整消息;所述流表调整消息包括流表信息;

更新单元302,用于将所述流表信息更新至所述Openflow交换机的非易失性存储器;

下发单元303,用于当所述Openflow交换机重启时,从所述非易失性存储器中获取所述流表信息,并将所述流表信息下发至所述Openflow交换机的驱动芯片。

在本发明的一个实施例中,所述更新单元302,具体可以用于:

判断所述流表信息中的老化时间或所述流表信息中的辨识Cookie值是否为预设的关键流表值;

如果是,将所述流表信息更新至所述非易失性存储器。

在本发明的一个实施例中,所述更新单元302,具体可以用于:

当所述流表调整消息为流表添加消息时,将所述流表信息添加至所述非易失性存储器;

当所述流表调整消息为流表删除消息时,删除所述非易失性存储器中的所述流表信息;

当所述流表调整消息为流表修改消息时,修改所述非易失性存储器中的所述流表信息。

在本发明的一个实施例中,所述流表信息包括流表项和与该流表项对应的辅助流表项。

在本发明的一个实施例中,上述流表信息的恢复装置还可以包括:

建立单元(图3中未示出),用于在将所获取的流表信息下发至所述Openflow交换机的驱动芯片之后,与Openflow控制器建立连接,接收所述Openflow控制器发送的查询消息;

发送单元(图3中未示出),用于根据所述查询消息,将当前所有流表信息发送至所述Openflow控制器,以使所述Openflow控制器将所述Openflow交换机未加载的流表信息发送给所述Openflow交换机。

本发明实施例提供的一种流表信息的恢复装置,Openflow交换机接收并解析携带有流表信息的流表调整消息,将解析获得的流表信息更新至非易失性存储器,由非易失性存储器对流表信息进行备份。在Openflow交换机重启时,Openflow交换机可以从非易失性存储器中获取到该流表信息,并将该流表信息下发至Openflow交换机的驱动芯片。可见,本发明实施例中,在Openflow交换机重启时,不必从先与Openflow控制器建立连接,再由Openflow控制器重新计算、下发给Openflow交换机需要的所有流表信息,减少了Openflow交换机重启时恢复业务的耗时。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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