一种流表处理方法及装置的制造方法

文档序号:8285149阅读:417来源:国知局
一种流表处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及软件定义网络技术领域,尤其涉及一种流表处理方法及装置。
【背景技术】
[0002]在软件定义网络(SDN,Software Defined Network)架构中,控制平面与转发平面分离,网络的管理和状态在逻辑上集中到一起,底层的网络基础从应用中抽象出来。由此,企业和运营商获对网络前所未有的可编程性,自动化和控制能力,使他们很容易适应变化的业务需求,建立高度可扩展的弹性网络。
[0003]开放流(OpenFlow)是SDN架构中定义的控制器与转发层之间的通信接口标准,OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信,数据平面采用基于流的方式进行转发。OpenFlow允许直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的路由器或者交换机。如图1所示,OpenFlow网络由 OpenFlow 网络设备(OpenFlow Switch)、OpenFlow 控制器(OpenFlow Controller)、安全通道(Secure Channel)组成,Secure Channel 是指 OpenFlow Controller 与 OpenFlowSwitch之间的通道。
[0004]在实际使用中,Openflow Controller会根据新的数据报文信息或者用户配置信息下发流表到指定OpenFlow Switch上,OpenFlow Switch根据流表信息转发数据报文。Controller 与 Switch 建立传输控制协议(TCP,Transmiss1n Control Protocol)连接,利用TCP连接管理流表信息。然而,TCP连接会因为ControlIer与Switch之间的网络异常(例如端口 DOWN等)而导致TCP连接中断。由于TCP连接中断的时机存在不确定因素,这就导致了 Controller上的流表信息与Switch上的流表信息可能存在不一致,造成Openflow网路流量不可控制,影响当前网路流量的已有转发。

【发明内容】

[0005]为解决现有存在的技术问题,本发明实施例提供一种流表处理方法及装置。
[0006]为实现本发明的发明目的,基于本发明实施例,提出一种流表处理方法,所述方法包括:
[0007]在控制器与网络设备之间的连接由断开到恢复时,所述网络设备接收控制器下发的开始流表信息平滑的通知消息;
[0008]在收到所述通知消息后,所述网络设备接收控制器下发的流表信息;
[0009]所述网络设备将收到的流表信息与本地保存的流表信息进行比较,将所述网络设备中已存在的、且与所述控制器所下发的不一致的流表信息,从所述网络设备中删除。
[0010]所述方法进一步包括:
[0011]在收到所述开始流表信息平滑的通知消息后,所述网络设备将本地保存的、与所述开始流表信息平滑的通知消息中携带的流表标识相对应的流表信息的状态标记为平滑中;
[0012]相应的,所述将网络设备中已存在的、且与控制器所下发的不一致的流表信息从网络设备中删除,包括:
[0013]将所述网络设备中已存在的、且与控制器所下发的一致的流表信息的状态标记为已平滑,对所述控制器下发的相对于所述网络设备新增的流表信息进行本地保存、并标记新增流表信息的状态为已平滑;
[0014]在收到所述控制器下发的结束流表信息平滑的通知消息时,遍历所述网络设备中保存的、与所述结束流表信息平滑的通知消息中携带的流表标识相对应的所有流表信息,并删除状态仍为平滑中的流表信息。
[0015]进一步地,所述通知消息为Modify State Messages消息类型中新增的一条Modify Switch Message 消息,所述 Modify Switch Message 消息包括以下字段:0FP_HEADER、Command、Table_id、Flag ;
[0016]其中,OFP_HEADER用于标识消息类型;Command用于标识所要修改的网络设备的信息类型;Table_id为流表信息标识;Flag为Command中的子类型,用于标识平滑开始或结束。
[0017]进一步地,所述控制器下发的流表信息包括与所述网络设备相关的流表flowentry、组播组group信息和流限速meter信息;
[0018]所述方法还包括:所述网络设备接收的开始流表信息平滑的通知消息中携带单个流表信息标识时,所述网络设备不对所接收的流表信息中的group和meter信息做处理;所述网络设备接收的开始流表信息平滑的通知消息中携带多个流表信息标识时,所述网络设备对所接收的流表信息中的group和meter信息做处理。
[0019]为实现本发明的发明目的,基于本发明实施例,提出一种流表处理方法,所述方法包括:
[0020]在控制器与网络设备之间的连接由断开到恢复时,所述控制器向网络设备下发开始流表信息平滑的通知消息;
[0021]在下发开始流表信息平滑的通知消息后,所述控制器向网络设备下发流表信息,用于所述网络设备本地的流表更新;
[0022]在下发完流表信息后,所述控制器向所述网络设备下发结束流表信息平滑的通知消息。
[0023]进一步地,所述通知消息为Modify State Messages消息类型中新增的一条Modify Switch Message 消息,所述 Modify Switch Message 消息包括以下字段:0FP_HEADER、Command、Table_id、Flag ;其中,OFP_HEADER 用于标识消息类型;Command 用于标识所要修改的网络设备的信息类型;Table_id为流表信息标识;Flag为Command中的子类型,用于标识平滑开始或结束;
[0024]所述流表信息包括与所述网络设备相关的流表flow entry、组播组group信息和流限速meter信息。
[0025]为实现本发明的发明目的,基于本发明实施例,提出一种流表处理装置,应用于网络设备中,其特征在于,所述装置包括:
[0026]消息接收单元,用于在控制器与网络设备之间的连接由断开到恢复时,接收控制器下发的开始流表信息平滑的通知消息;
[0027]流表信息接收单元,用于在收到所述通知消息后,所述网络设备接收控制器下发的流表信息;
[0028]流表信息维护单元,用于将收到的流表信息与本地保存的流表信息进行比较,将所述网络设备中已存在的、且与所述控制器所下发的不一致的流表信息,从所述网络设备中删除。
[0029]进一步地,所述流表信息维护单元进一步用于,在所述消息接收单元收到所述开始流表信息平滑的通知消息后,将本地保存的、与所述开始流表信息平滑的通知消息中携带的流表标识相对应的所有流表信息的状态标记为平滑中;
[0030]通过将收到的流表信息与本地保存的流表信息进行比较,将所述网络设备中已存在的、且与控制器所下发的一致的流表信息的状态标记为已平滑,对所述控制器下发的相对于所述网络设备新增的流表信息进行本地保存、并标记新增流表信息的状态为已平滑;
[0031]在所述消息接收单元收到所述控制器下发的结束流表信息平滑的通知消息时,所述流表信息维护单元遍历所述网络设备中保存的、与所述结束流表信息平滑的通知消息中携带的流表标识相对应的所有流表信息,并删除状态仍为平滑中的流表信息。
[0032]进一步地,所述通知消息为Modify State Messages消息类型中新增的一条Modify Switch Message 消息,所述 Modify Switch Message 消息包括以下字段:0FP_HEADER、Command、Table_id、Flag ;
[0033]其中,OFP_HEADER用于标识消息类型;Command用于标识所要修改的网络设备的信息类型;Table_id为流表信息标识;Flag为Command中的子类型,用于标识平滑开始或结束。
[0034]进一步地,所述控制器下发的流表信息包括与所述网络设备相关的流表flowentry、组播组group信息和流限速meter信息;
[0035]所述流表信息维护单元进一步用于,在所述消息接收单元接收的开始流表信息平滑的通知消息中携带单个流表信息标识时,所述流表信息维护单元不对所接收的流表信息中的group和meter信息做处理;在所述消息接收单元接收的开始流表信息平滑的通知消息中携带多个流表信息标识时,所述流表信息维护单元对所接收的流表信息中的group和meter信息做处理。
[0036]为实现本发明的发明目的,基于本发明实施例,提出一种流表处理装置,应用于控制器中,所述装置包括:
[0037]消息通知单元,用于在控制器与网络设备之间的连接由断开到恢复时,向网络设备下发开始流表信息平滑的通知消息;
[0038]流表信息下发单元,用于在所述消息通知单元下发开始流表信息平滑的通知消息后,所述流表信息下发单元向网络设备下发流表信息,用于所述网络设备本地的流表更新;
[0039]所述消息通知单元还用于,在所述流表信息下发单元下发完流表信息后,所述消息通知单元向所述网络设备下发结束流表信息平滑的通知消息。
[0040]进一步地,所述通知消息为Modify State Messages消息类型中新增的一条Modify Switch Message 消息,所述 Modify Switch Message 消息包括以下字段:0FP_HEADER、Command、Table_id、Flag ;
[0041]其中,OFP_HEADER用于标识消息类型;Command用于标识所要修改的网络设备的信息类型;Table_id为流表信息标识;Flag为Command中的子类型,用于标识平滑开始或结束;
[0042]所述流表信息包括与所述网络设备相关的流表flow entry、组播组group信息和流限速meter信息。
[0043]本发明实施例提供的一种流表处理方法及装置,在Openflow Controller与OpenFlow Switch 连接振荡的情况下,OpenFlow Controller 通知 OpenFlow Switch 进入平滑的流表信息更新过程,Openflow Controller向OpenFlow
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1