实现openflow交换机流表实时同步的方法及装置的制造方法

文档序号:9508513阅读:559来源:国知局
实现openflow交换机流表实时同步的方法及装置的制造方法【
技术领域
】[0001]本发明涉及openflow网络
技术领域
,尤其是涉及一种实现openflow交换机流表实时同步的方法及装置。【
背景技术
】[0002]目前互联网发展迅速,其应用规模的庞大及其地位的重要性,远远超出了设计者们的想象,而现在的互联网主要有以下弊端:特定的范围内没有统一的管理、网络转发机制与策略单一、运营商难以最大限度优化自身网络、以及传统交换机用于转发的功能和协议多且杂,很难配置,系统容易出错等问题。为应对上述弊端,人们提出了Openflow交换机,其将传统交换机上的报文转发和转发策略分离开来,采用专门的一台控制器(controller)通过网线和交换机连接。这样原来同在一台交换机设备上的报文转发功能(硬件芯片实现)和报文转发策略(各种软件协议)就被分开到了不同的硬件设备上。而一台控制器(controller)还可以控制多台Openflow交换机,从而实现了统一的转发控制端,更有效地控制了网络。[0003]目前,在Openf1ow交换机系统中,无论是控制器本身还是控制器的控制通道(controlpath),都有可能由于种种原因而导致其不可靠,譬如,控制网络拥塞,网络不可用或控制器死机等问题,此时,如果某个控制器出现了网络断开,而该控制器的功能又不能被其他控制器所替代,那么势必导致整个交换机系统的不能正常运作。【
发明内容】[0004]本发明的目的在于克服现有技术的缺陷,提供一种实现openflow交换机流表实时同步的方法及装置,通过控制器以实现Openflow交换机间的信息同步。[0005]为实现上述目的,本发明提出如下技术方案:一种实现openflow交换机流表实时同步的方法,所述方法应用于由控制器、主openflow交换机、备openflow交换机组成的openflow网络中,所述方法包括:[0006]控制器每隔一段时间向主openflow交换机发送用于请求主openflow交换机上流表信息的第一请求消息;[0007]所述主openflow交换机收到第一请求消息后,返回给控制器对应的回复消息;[0008]所述控制器提取回复消息中携带的主openflow交换机上的流表信息,并将所述流表信息重组转换成第二请求消息后下发给备openflow交换机。[0009]优选地,所述主openflow交换机上的流表信息包括流表信息和组表信息,所述第一请求消息包括第一流表请求消息和第一组表请求消息。[0010]优选地,所述第一流表请求消息是类型为0FPMP_FL0W的0FPT_MULTIPART_REQUEST消息,所述第一组表请求消息是类型为0FPMP_GR0UP_DESC的0FPT_MULTIPART_REQUEST消息。[0011]优选地,所述第二请求消息包括第二流表请求消息和第二组表请求消息。[0012]优选地,所述第二流表请求消息是指令为0FPFC_ADD的0FPT_FL0W_M0D消息,所述第二组表请求消息是指令为0FPGC_ADD的0FPT_GR0UP_M0D消息。[0013]优选地,所述控制器实时监测主openflow交换机,并在发现主openflow交换机发生故障或意外中断后,再将提取的主openflow交换机上流表信息重组转换成第二请求消息后下发给备openflow交换机。[0014]优选地,当所述主openflow交换机发生故障或意外中断时,报文切换到备openflow交换机上,并按照备openflow交换机上同步过来的主openflow交换机流表信息进行转发。[0015]本发明还提供了一种实现openflow交换机流表实时同步的装置,包括控制器和与控制器均相连的主openflow交换机、备openflow交换机,所述控制器包括消息请求模块、提取信息模块、信息重组转换模块和消息下发模块,[0016]所述消息请求模块用于每隔一段时间向主openflow交换机发送用于请求主openflow交换机上流表信息的第一请求消息;[0017]所述主openflow交换机用于在收到第一请求消息后返回给控制器对应的回复消息;[0018]所述提取信息模块用于提取回复消息中携带的主openflow交换机上的流表信息;[0019]所述信息重组转换模块用于将所述流表信息重组转换成第二请求消息;[0020]所述消息下发模块用于将第二请求消息下发给备openflow交换机。[0021]优选地,所述控制器还包括监测模块,所述监测模块用于实时监测主openflow交换机,并在发现主openflow交换机发生故障或意外中断后通知所述信息重组转换模块。[0022]与现有技术相比,本发明的有益效果是:通过控制器下发openflow标准消息,来实现多台openflow交换机之间的流表相互同步部分,并在一定应用场合下实现设备及流表完全冗余备份,减少IT管理人员对设备流表信息(流表、组表等信息)丢失带来的困扰。【附图说明】[0023]图1是本发明实现openflow交换机流表实时同步的方法的流程示意图;[0024]图2是本发明实现openflow交换机流表实时同步的装置的原理框图。【具体实施方式】[0025]下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。[0026]本发明主要应用于由控制器、主openflow交换机、备openflow交换机组成的openflow网络中,在正常情况下,控制器与主openflow交换机、备openflow交换机均相连,始终管理这两台openflow交换机,数据流量正常是通过主openflow交换机转发。本发明通过控制器来实现主openflow交换机上的流表信息实时同步到备openflow交换机上,并在一定应用场合下实现设备及流表信息完全冗余备份。[0027]如图1所示,本发明所揭示的一种实现openflow交换机流表实时同步的方法,包括以下步骤:[0028]控制器每隔一段时间向主openflow交换机发送用于请求主openflow交换机上流表信息的第一请求消息。[0029]具体地,控制器可以每隔如10s向主openflow交换机发送第一请求消息,间隔时间可以视控制其性能而言而设定。主openflow交换机上流表信息包括多条组表和多条流表,相应的,第一请求消息则对应包括第一流表请求消息和第一组表请求消息,控制器向主openflow交换机发送第一流表请求消息来请求主openflow交换机上的flow信息;控制器向主openflow交换机发送第一组表请求消息来请求主openflow交换机上的group(组)信息。本发明实施例中,第一流表请求消息是类型为0FPMP_FL0W的OFPT_MULTIPART_REQUEST消息,第一组表请求消息是类型为0FPMP_GR0UP_DESC的OFPT_MULTIPART_REQUEST消息。[0030]主openflow交换机收到第一请求消息后,返回给控制器对应的回复消息。[0031]具体地,主openflow交换机收到第一流表请求消息后,返回给控制器带有flow信息的返回信息;主openflow交换机收到第一组表请求消息后,返回给控制器带有group信息的返回信息,这样控制器便获取了主openflow交换机上的流表信息。[0032]控制器提取回复消息中携带的主openflow交换机上的流表信息,并将流表信息重组转换成第二请求消息后下发给备openflow交换机。[0033]具体地,控制器主要提取返回的flow信息中的table_id(流表id),pr1rity(优先级),idle_timeout(匹配流表超时),hard_timeout(硬件超时),cookie,ofp_match(匹配flow字段)以及ofp_instruct1n(指令)信息,并主要提取返回的group信息中的type,group」d(组类型)以及ofp_bucket(组行为)信息。[0034]信息提取之后,控制器将提取的flow信息重组到第二流表请求消息中并下发给备openflow交换机,同时将提取的group信息重组到第二组表请求消息中并下发给备openflow交换机。具体地,控制器把返回的flow信息中的table_id,pr1rity,idle_timeout,hard_timeout,cookie,ofp_match以当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1