首页> 中国专利> 一种SDN中流表下发的方法和系统、OF控制器和OF交换机

一种SDN中流表下发的方法和系统、OF控制器和OF交换机

摘要

本发明公开了一种软件定义网络(SDN)中流表下发的方法和系统、OF控制器和OF交换机,方法包括:OF交换机接收OF控制器发送的流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;依据所述缓存标记的指示,所述OF交换机在自身的控制模块保存所述流表条目修改消息中的表号和流表条目。通过本发明,实现了OF控制器能够按需下发流表条目,并能缓解OF交换机路由流表条目容量指标的压力。

著录项

  • 公开/公告号CN104426815A

    专利类型发明专利

  • 公开/公告日2015-03-18

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201310379469.6

  • 发明设计人 梁乾灯;尤建洁;万伟;胡方伟;

    申请日2013-08-27

  • 分类号H04L12/937(20130101);H04L12/947(20130101);

  • 代理机构北京派特恩知识产权代理有限公司;

  • 代理人蒋雅洁;张振伟

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-17 04:48:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-09

    授权

    授权

  • 2016-09-07

    实质审查的生效 IPC(主分类):H04L12/937 申请日:20130827

    实质审查的生效

  • 2015-03-18

    公开

    公开

说明书

技术领域

本发明涉及软件定义网络(SDN,Software Defined Network)架构网络通信领域,尤其涉及一种SDN中流表下发的方法。

背景技术

由于现在的网络暴露出了越来越多的弊病以及人们对网络性能的需求越来越高,因此不得不把很多复杂功能加入到路由器的体系结构当中,例如开放式最短路径优先(OSPF,Open Shortest Path First)、边界网关协议(BGP,BorderGateway Protocol)、组播、区分服务、流量工程、网络地址转换(NAT,NetworkAddress Translation)、防火墙、多协议标签交换(MPLS,Multi-Protocol LabelSwitching)等等。这就使得路由器等交换设备越来越臃肿而且性能提升的空间越来越小。

然而与网络领域的困境截然不同的是,计算机领域实现了日新月异的发展。仔细回顾计算机领域的发展,不难发现其关键在于计算机领域找到了一种简单可用的硬件底层(x86指令集)。由于有了这样一种公用的硬件底层,因此在软件方面,不论是应用程序还是操作系统都取得了飞速的发展。现在很多主张重新设计计算机网络体系结构的人士认为:网络可以复制计算机领域的成功来解决现在网络所遇到的所有问题。在这种思想的指导下,将来的网络必将是这样的:底层的数据通路(交换机、路由器)是“哑的、简单的、最小的”,并定义一个对外开放的关于流表的公用的应用程序编程接口(API,ApplicationProgramming Interface),同时采用控制器来控制整个网络。未来的研究人员就可以在控制器上自由的调用底层的API来编程,从而实现网络的创新。

基于上述的理念,出现了软件定义网络(SDN,Software Defined Network),SDN的核心技术为OpenFlow(开放流,简称OF)协议,OpenFlow协议应用架构如图1所示,通过将网络设备控制面(包含OpenFlow Controller)与数据面(包含OpenFlow Capable Switch)分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。

OpenFlow协议用来描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机的接口标准。协议的核心部分是用于OpenFlow协议信息结构的集合。

OpenFlow流表(图3所示)或经过编排的多个流表级联而成管道用来配置交换机转发路径(图2所示),流表条目由匹配字段、计数器和指令集等如下几个字段构成:

其中,Match Fields是报文匹配的输入关键字,用于匹配一条流表项;计数器是用于管理用的各种统计信息;指令集(Instructions)是指对报文的操作指令,包括丢弃、转发报文到指定端口、设置报文头部字段值、增加封装标签等;Priority是指流表条目的匹配优先级;Timeouts是指流表条目的老化时间;Cookie是由控制器选择的不透明数据值。动作集(Action Set)和每个报文相关联,它在流水线的多个流表之间传递并被各流表的指令所修改,直到流水线处理结束,形成最终的动作集。

在电信网络中,路由条目非常多,一般都是十万甚至百万的数量级,控制器或APP(应用程序)通过动态路由协议学到全网路由后如果将表示这些路由信息的流表条目全部下发给各个OF交换机,对于OF交换机的流表容量要求就非常高,实际上在一段时间内可能仅有少量路由流表条目有流量。如果OF控制器能够实现按需下发路由流表条目,并让OF交换机使用较短时间周期的空闲老化,就能在有限时间内有效的将控制器上的路由信息集缩小映射到OF交换机上,缓解OF交换机路由流表条目容量指标的压力,从而实现超出OF交换机指标的路由流表条目容量。然而,现有技术还无法提供针对上述技术问题的解决方案。本申请的发明人在实践过程中发现,未匹配路由流表条目的流量首包上送,触发控制器下发OF交换机所需的路由信息是实现该目的的主要方法。但是该方法因为控制器感应OF交换机需求下发路由表条目的时延较长,会导致大量的报文上送,消耗OF交换机和控制器之间的宝贵带宽。所以希望能够能进一步优化。目前很多OF交换机采用分布式中央处理器(CPU,CentralProcessing Unit)架构的实现,控制平面和转发平面分离,控制平面由单独的CPU实现,拥有比转发平面更丰富的内存资源,在这种实现架构的OF交换机上,提出了本发明。

发明内容

有鉴于此,本发明的主要目的在于提供一种SDN中流表下发的方法,以至少实现OF控制器能够按需下发流表条目,并缓解OF交换机路由流表条目容量指标的压力。

为达到上述目的,本发明的技术方案是这样实现的:

一种SDN中流表下发的方法,该方法包括:

OF交换机接收OF控制器发送的流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;

依据所述缓存标记的指示,所述OF交换机在自身的控制模块保存所述流表条目修改消息中的表号和流表条目。

上述方案中,所述流表条目修改消息中还携带第一空闲老化周期。

上述方案中,在所述OF控制器发送流表条目修改消息之前,该方法还包括:

所述OF交换机与所述OF控制器进行流表缓存能力协商,所述OF交换机将自身是否支持流表的缓存功能通知给所述OF控制器。

上述方案中,所述OF交换机与所述OF控制器进行流表缓存能力协商,包括:

所述OF交换机接收所述OF控制器发送的流表特征请求(Multipart TableFeatures Request)消息,消息中携带表号;

所述OF交换机向所述OF控制器返回流表特征响应(Multipart TableFeatures Reply)消息,在所述Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

上述方案中,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

上述方案中,该方法还包括:

当所述OF交换机的转发模块接收到报文时,查询所述转发模块的流表中是否存在匹配的流表条目;

如果存在,则按照查询匹配的流表条目进行所述报文的转发;

如果不存在,则所述转发模块发送所述报文、表号、上送原因给所述OF交换机的控制模块;所述控制模块根据接收的表号和自身保存的流表条目缓存标记,在本地对应的流表中查询缓存的流表条目,如果查询到对应的流表条目,则将查询所得流表条目添加到所述转发模块对应的流表中,如果没有查询到对应的流表条目,则将所述控制模块接收到的报文、表号、上送原因填充到报文入Packet-in消息中发送给所述OF控制器。

上述方案中,该方法还包括:根据所述第二空闲老化周期对所述OF交换机的转发模块中缓存标记指示可以缓存的流表条目进行空闲老化处理;根据所述OF控制器发送相应流表条目时设置的所述第一空闲老化周期对所述控制模块缓存的相应流表条目进行空闲老化处理;

其中,所述第一空闲老化周期的时长大于所述第二空闲老化周期的时长。

一种SDN中流表下发的方法,该方法包括:

OF控制器根据本地策略决定为下发的流表条目设置缓存标记时,向OF交换机发送流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;所述缓存标记用于指示将所述流表条目缓存在所述OF交换机的控制模块本地。

上述方案中,所述流表条目修改消息中还携带第一空闲老化周期。

上述方案中,在所述OF控制器发送流表条目修改消息之前,该方法还包括:

所述OF控制器与所述OF交换机进行流表缓存能力协商,所述OF控制器获知所述OF交换机是否支持流表的缓存功能。

上述方案中,所述OF控制器与所述OF交换机进行流表缓存能力协商,包括:

所述OF控制器向所述OF交换机发送Multipart Table Features Request消息,消息中携带表号;

所述OF控制器接收所述OF交换机返回的Multipart Table Features Reply消息,在所述Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

上述方案中,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

上述方案中,该方法还包括:

当所述OF控制器收到所述OF交换机发送的携带有报文、表号、上送原因的报文入Packet-in消息时,所述OF控制器解析所述Packet-in消息,将所述Packet-in消息中的报文交由所述OF控制器的本地协议栈或应用程序APP进行处理。

一种OF交换机,包括控制模块,用于接收OF控制器发送的流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;依据所述缓存标记的指示,保存所述流表条目修改消息中的表号和流表条目在所述控制模块本地。

上述方案中,所述流表条目修改消息中还携带第一空闲老化周期。

上述方案中,所述控制模块进一步用于,在接收所述流表条目修改消息之前,与所述OF控制器进行流表缓存能力协商,将所述OF交换机自身是否支持流表的缓存功能通知给所述OF控制器。

上述方案中,所述控制模块进一步用于,接收所述OF控制器发送的Multipart Table Features Request消息,消息中携带表号;向所述OF控制器返回Multipart Table Features Reply消息,在所述Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

上述方案中,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

上述方案中,所述OF交换机还包括转发模块,用于在接收到报文时,查询所述转发模块的流表中是否存在匹配的流表条目;

如果存在,则按照查询匹配的流表条目进行所述报文的转发;

如果不存在,则所述转发模块发送所述报文、表号、上送原因给所述OF交换机的控制模块;相应的,所述控制模块进一步用于,根据接收的表号和自身保存的流表条目缓存标记,在本地对应的流表中查询缓存的流表条目,如果查询到对应的流表条目,则将查询所得流表条目添加到所述转发模块对应的流表中,如果没有查询到对应的流表条目,则将所述控制模块接收到的报文、表号、上送原因填充到报文入Packet-in消息中发送给所述OF控制器。

上述方案中,所述控制模块进一步用于,根据所述第二空闲老化周期对所述OF交换机的转发模块中缓存标记指示可以缓存的流表条目进行空闲老化处理;根据所述OF控制器发送相应流表条目时设置的所述第一空闲老化周期对所述控制模块缓存的相应流表条目进行空闲老化处理;

其中,所述第一空闲老化周期的时长大于所述第二空闲老化周期的时长。

一种OF控制器,包括:发送模块,用于根据本地策略决定为下发的流表条目设置缓存标记时,向OF交换机发送流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;所述缓存标记用于指示将所述流表条目缓存在所述OF交换机的控制模块本地。

上述方案中,所述流表条目修改消息中还携带第一空闲老化周期。

上述方案中,所述OF控制器还包括:协商模块,用于在所述发送模块发送流表条目修改消息之前,与所述OF交换机进行流表缓存能力协商,所述协商模块获知所述OF交换机是否支持流表的缓存功能。

上述方案中,所述协商模块进一步用于,向所述OF交换机发送MultipartTable Features Request消息,消息中携带表号;接收所述OF交换机返回的Multipart Table Features Reply消息,在所述Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

上述方案中,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

上述方案中,所述OF控制器还包括接收处理模块,用于在收到所述OF交换机发送的携带有报文、表号、上送原因的报文入Packet-in消息时,解析所述Packet-in消息,将所述Packet-in消息中的报文交由所述OF控制器的本地协议栈或应用程序APP进行处理。

一种SDN中流表下发的系统,包括上述的OF交换机、以及上述的OF控制器,

所述OF控制器,用于根据本地策略决定为下发的流表条目设置缓存标记时,向所述OF交换机发送流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;

所述OF交换机,用于接收所述流表条目修改消息,依据所述缓存标记的指示,在自身的控制模块保存所述流表条目修改消息中的表号和流表条目。

本发明所提供的一种SDN中流表下发的方法,由OF控制器将学习到的或静态配置的路由根据一定的策略批量下发到OF交换机控制平面缓存,然后由OF交换机转发平面的未匹配路由流表条目的流量上送触发在OF交换机控制平面的缓存路由流表中查找对应的流表条目,查到后直接下发转发平面的路由流表,并根据需求启动短周期的空闲老化定时器,同时不构造Packet-in报文上送控制器;如果查不到,就构造Packet-in报文上送控制器处理。通过本发明,OF控制器能够实现按需下发路由流表条目,并让OF交换机使用较短时间周期的空闲老化,就能在有限时间内有效的将控制器上的路由信息集缩小映射到OF交换机上,缓解OF交换机路由流表条目容量指标的压力,从而实现超出OF交换机指标的路由流表条目容量;本发明还能降低控制器感应OF交换机需求下发路由表条目的时延,从而降低OF交换机和控制器之间的带宽消耗。

附图说明

图1为现有技术中OpenFlow协议应用架构图;

图2为现有技术的报文流通过OpenFlow处理管道的示意图;

图3为现有技术中基于每个表的报文处理;

图4本发明实施例的一SDN中流表下发的方法流程图;

图5为本发明实施例的流表缓存能力协商的流程图;

图6为本发明实施例的另一SDN中流表下发的方法流程图;

图7为本发明实施例的OF交换机接收到报文后的处理流程图;

图8为本发明实施例的一种SDN中流表下发的系统结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

本发明实施例提供的一种OF交换机侧的SDN中流表下发的方法,如图4所示,该方法主要包括:

步骤401,OF交换机接收OF控制器发送的流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;

较佳的,所述流表条目修改消息中还携带第一空闲老化周期,所述第一空闲老化周期为所述OF控制器为所述OF交换机设置的控制模块内的流表条目的老化周期。

步骤402,依据所述缓存标记的指示,所述OF交换机在自身的控制模块保存所述流表条目修改消息中的表号和流表条目。

作为一种优选实施方式,在所述OF控制器发送流表条目修改消息之前,该方法还包括:所述OF交换机与所述OF控制器进行流表缓存能力协商,所述OF交换机将自身是否支持流表的缓存功能通知给所述OF控制器。

其中,所述OF交换机与所述OF控制器进行流表缓存能力协商,如图5所示,包括:

步骤501,OF交换机接收OF控制器发送的Multipart Table Features Request消息,消息中携带表号;

步骤502,OF交换机向OF控制器返回Multipart Table Features Reply消息,在Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

较佳的,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

较佳的,可以在流表特征能力属性字段中新增OFPTC_CACHE参数,该OFPTC_CACHE参数,即作为流表条目缓存能力标记,还可用于设置第二空闲老化周期。

作为一种优选实施方式,该方法还包括:

当OF交换机的转发模块接收到报文时,查询转发模块的流表中是否存在匹配的流表条目;

如果存在,则按照查询匹配的流表条目进行所述报文的转发;

如果不存在,则转发模块发送所述报文、表号、上送原因给OF交换机的控制模块;控制模块根据接收的表号和自身保存的流表条目缓存标记,在本地对应的流表中查询缓存的流表条目,如果查询到对应的流表条目,则将查询所得流表条目添加到转发模块对应的流表中,如果没有查询到对应的流表条目,则将控制模块接收到的报文、表号、上送原因填充到报文入(Packet-in)消息中发送给OF控制器。

较佳的,该方法还包括:根据所述第二空闲老化周期对所述OF交换机的转发模块中缓存标记指示可以缓存的流表条目进行空闲老化处理,删除老化的流表条目,删除时所述转发模块中的流表条目将统计数据报给所述控制模块缓存的相应流表条目累计相关统计数据;根据所述OF控制器发送相应流表条目时设置的所述第一空闲老化周期对所述控制模块缓存的相应流表条目进行空闲老化处理,删除老化的流表条目;

其中,所述第一空闲老化周期的时长是根据第二空闲老化周期的时长进行设置,要求第一空闲老化周期的时长大于第二空闲老化周期的时长。较佳的,第一空闲老化周期的时长至少为第二空闲老化周期的时长的两倍。

由于所述第二空闲老化周期是OF交换机向OF控制器推荐的,OF控制器根据所述第二空闲老化周期设置第一空闲老化周期,并设置第一空闲老化周期的时长大于第二空闲老化周期的时长,从而使得在OF交换机转发面的流表条目在空闲时可以更早老化,节省转发模块的表空间,而在OF交换机控制模块的缓存的流表条目在空闲时可以稍缓老化,以便在匹配该流表条目的流量能及时在转发模块流表条目没有添加或已经老化时触发OF交换机控制模块下发该流表条目到转发模块,避免总是将构造报文入(Packet-in)消息发送给OF控制器,来触发从OF控制器下发相关流表条目。

本发明实施例提供的一种OF控制器侧的SDN中流表下发的方法,主要包括:OF控制器根据本地策略决定为下发的流表条目设置缓存标记时,向OF交换机发送流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;所述缓存标记用于指示将所述流表条目缓存在所述OF交换机的控制模块本地。

优选的,所述流表条目修改消息中还携带第一空闲老化周期,所述第一空闲老化周期为所述OF控制器为所述OF交换机设置的控制模块内的流表条目的老化周期。

作为一种优选实施方式,在所述OF控制器发送流表条目修改消息之前,该方法还包括:OF控制器与OF交换机进行流表缓存能力协商,OF控制器获知OF交换机是否支持流表的缓存功能。

其中,所述OF控制器与OF交换机进行流表缓存能力协商,包括:

OF控制器向OF交换机发送Multipart Table Features Request消息,消息中携带表号;

OF控制器接收OF交换机返回的Multipart Table Features Reply消息,在Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

需要说明的是,当流表条目缓存能力标记指示对应表号的流表不支持流表条目缓存功能时,OF控制器下发对应的流表条目时不携带缓存标记;当流表条目缓存能力标记指示对应表号的流表支持流表条目缓存功能时,OF控制器下发对应的流表条目时携带相应的缓存标记。缓存标记可以根据OF控制器的本地策略进行设置。

较佳的,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期,所述第二空闲老化周期为所述OF交换机的转发模块内的流表条目的老化周期。

作为一种优选实施方式,该方法还包括:

当OF控制器收到OF交换机发送的携带有报文、表号、上送原因的Packet-in消息时,OF控制器解析所述Packet-in消息,将所述Packet-in消息中的报文交由OF控制器的本地协议栈或应用程序(APP)进行处理。

作为一种优选实施方式,该方法还包括:OF控制器向OF交换机下发流表条目时设置相应流表条目的第一空闲老化周期。

下面再结合图6进一步详细阐述本发明实施例的SDN中流表下发的方法。参见图6,包括以下步骤:

步骤601,OF控制器和OF交换机进行流表缓存能力协商。

具体协商过程参见前述实施例中所述,此处不再赘述。

步骤602,根据协商,OF控制器获知对应的流表是否支持流表条目缓存功能,如果支持,执行步骤604;否则,执行步骤603。

步骤603,OF控制器下发对应的流表条目时不携带缓存标记。

步骤604,OF控制器下发对应的流表条目时携带相应的缓存标记。

例如:OF控制器通过与OF交换机的流表缓存能力协商,获知该OF交换机的某流表支持流表缓存功能;OF控制器通过路由协议,如:OSPF、中间系统到中间系统的路由选择协议(IS-IS,Intermediate System to Intermediate SystemRouting Protocol),交换网络的路由信息,动态生成路由条目,如下表1所示:

目的地址掩码网关接口OwnerPriorityMetric110.26.32.0255.255.255.010.26.245.5fei_1/1bgp2000210.26.33.253255.255.255.25510.26.245.5fei_1/1ospf11014310.26.33.254255.255.255.25510.26.245.5fei_1/1ospf11013

表1

OF控制器将路由条目映射成流表条目,如下表2所示:

表2

通过流表条目修改消息将新的流表条目下发给OF交换机,并且携带表号,以及该流表条目的缓存标记。

具体的,OF控制器向OF交换机下发的流表条目修改消息示例如下:

步骤605,OF交换机的控制模块判断接收的缓存标记,如果所述缓存标记为0,则执行步骤606;如果所述缓存标记为1,则执行步骤607。

OF交换机收到上述流表条目修改消息后,若表号对应的流表不支持流表条目缓存功能,则OF交换机向OF控制器反馈错误消息。若表号对应的流表支持流表条目缓存功能,则OF交换机判断缓存标记,标记为0用以指示将对应的流表条目添加到OF交换机的转发模块对应的流表中;标记为1用以指示将所述流表条目缓存在控制模块本地。其中,标记为0也认为是流表条目修改消息中不携带所述缓存标记。

步骤606,控制模块将所述流表条目添加到OF交换机的转发模块的流表中。

步骤607,控制模块保存所述表号和流表条目;即控制模块从OF控制器接收到流表条目后,不对转发模块对应流表的流表条目进行立即更新,而是先缓存在本地。

下面再结合图7对本发明实施例的OF交换机接收到报文后的处理流程进一步详细阐述。参见图7,包括以下步骤:

步骤701,OF交换机的转发模块接收到报文。

步骤702,查询转发模块的流表中是否存在匹配的流表条目,如果存在,执行步骤703;否则,执行步骤704。

步骤703,OF交换机的转发模块按照查询匹配的流表条目进行所述报文的转发。

步骤704,转发模块发送所述报文、表号、上送原因等参数给OF交换机的控制模块。

步骤705,控制模块根据接收的表号判断对应的流表是否具备缓存功能,如果是,执行步骤707;否则,执行步骤706。

步骤706,控制模块接收到的参数填充到Packet-in消息中发送给OF控制器。由所述OF控制器将所述Packet-in消息中的报文交由OF控制器的本地协议栈或应用程序(APP)进行处理。

步骤707,控制模块根据接收的表号和自身保存的流表条目缓存标记,在本地对应的流表中查询缓存的流表条目,如果查询到对应的流表条目,执行步骤708;否则,执行步骤706。

步骤708,控制模块将查询所得流表条目添加到转发模块对应的流表中,并根据对应所述流表的第二空闲老化周期确定是否启动所述转发模块中对应流表的空闲老化。

本发明实施例中,OF控制器在向OF交换机发送流表条目时,如果所述OF交换机不支持对相应流表条目的缓存功能,OF控制器为发送的流表条目不设置缓存标记,OF交换机将此类流表条目添加到所述OF交换机的转发模块的流表中;OF控制器在向OF交换机发送流表条目时,如果所述OF交换机支持对相应流表条目的缓存功能,OF控制器为发送的流表条目设置缓存标记,OF交换机将此类流表条目缓存到控制模块本地。OF交换机在收到报文时,如果查询到转发模块的流表中存在匹配的流表条目,则直接进行转发;如果没查询到匹配的流表条目,则上送触发在OF交换机控制平面的缓存路由流表中查找对应的流表条目,查到后直接下发给转发平面的路由流表,查不到就构造Packet-in报文上送控制器处理。本发明实施例,OF控制器能够实现按需下发路由流表条目,并让OF交换机使用较短时间周期的空闲老化,就能在有限时间内有效的将控制器上的路由信息集缩小映射到OF交换机上,缓解OF交换机路由流表条目容量指标的压力,从而实现超出OF交换机指标的路由流表条目容量;另外,OF交换机的控制模块和转发模块都缓存或保存流表条目,转发模块未匹配的流表条目优先从控制模块匹配,匹配不到的才上报控制器处理,这样不仅减少了控制器和交换机之间的交互,节省了带宽,也降低了流表条目的下发时延。

对应上述SDN中流表下发的方法,本发明实施例还提供了一种SDN中流表下发的系统,如图8所示,包括:OF控制器10和OF交换机20,其中,

OF控制器10,用于根据本地策略决定为下发的流表条目设置缓存标记时,向所述OF交换机20发送流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;

OF交换机20,用于接收所述流表条目修改消息,依据所述缓存标记的指示,在自身的控制模块保存所述流表条目修改消息中的表号和流表条目。

其中,OF控制器10包括:发送模块11,用于根据本地策略决定为下发的流表条目设置缓存标记时,向OF交换机20发送流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;所述缓存标记用于指示将所述流表条目缓存在所述OF交换机20的控制模块本地。

较佳的,所述流表条目修改消息中还携带第一空闲老化周期。

OF控制器10还包括:协商模块12,用于在所述发送模块11发送流表条目修改消息之前,与所述OF交换机20进行流表缓存能力协商,所述协商模块12获知所述OF交换机20是否支持流表的缓存功能。

优选的,协商模块进一步用于,向所述OF交换机20发送Multipart TableFeatures Request消息,消息中携带表号;接收所述OF交换机20返回的MultipartTable Features Reply消息,在所述Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

优选的,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

优选的,OF控制器10还包括接收处理模块13,用于在收到所述OF交换机20发送的携带有报文、表号、上送原因的Packet-in消息时,解析所述Packet-in消息,将所述Packet-in消息中的报文交由所述OF控制器12的本地协议栈或APP进行处理。

其中,OF交换机20包括控制模块21,用于接收OF控制器10发送的流表条目修改消息,所述消息中携带表号、流表条目和缓存标记;依据所述缓存标记的指示,保存所述流表条目修改消息中的表号和流表条目在所述控制模块21本地。

优选的,所述流表条目修改消息中还携带第一空闲老化周期。

优选的,控制模块21进一步用于,在接收所述流表条目修改消息之前,与所述OF控制器10进行流表缓存能力协商,将所述OF交换机20自身是否支持流表的缓存功能通知给所述OF控制器10。

优选的,控制模块21进一步用于,接收所述OF控制器10发送的MultipartTable Features Request消息,消息中携带表号;向所述OF控制器10返回Multipart Table Features Reply消息,在所述Multipart Table Features Reply消息的流表特征能力属性字段中携带流表条目缓存能力标记,用以指示是否支持对应表号的流表的流表条目缓存功能。

优选的,所述流表特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

优选的,OF交换机20还包括转发模块22,用于在接收到报文时,查询所述转发模块22的流表中是否存在匹配的流表条目;

如果存在,则按照查询匹配的流表条目进行所述报文的转发;

如果不存在,则所述转发模块22发送所述报文、表号、上送原因给所述OF交换机20的控制模块21;相应的,所述控制模块21进一步用于,根据接收的表号和自身保存的流表条目缓存标记,在本地对应的流表中查询缓存的流表条目,如果查询到对应的流表条目,则将查询所得流表条目添加到所述转发模块22对应的流表中,如果没有查询到对应的流表条目,则将所述控制模块21接收到的报文、表号、上送原因填充到Packet-in消息中发送给所述OF控制器10。

优选的,控制模块21进一步用于,根据所述第二空闲老化周期对所述OF交换机的转发模块22中缓存标记指示可以缓存的流表条目进行空闲老化处理;根据所述OF控制器发送相应流表条目时设置的所述第一空闲老化周期对所述控制模块21缓存的相应流表条目进行空闲老化处理;

其中,所述第一空闲老化周期的时长大于所述第二空闲老化周期的时长。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号