SDN网络的业务恢复装置、主控制器、系统及方法与流程

文档序号:14914522发布日期:2018-07-11 00:21阅读:162来源:国知局

本发明涉及通讯技术领域,特别是涉及一种SDN网络的业务恢复装置、主控制器、系统及方法。



背景技术:

传统的分布式IP网络中控制逻辑和数据转发功能实现在网络设备上,网络设备需要在大量分布式协议的控制下实施整个网络的智能化。这导致网络控制平面过于复杂,灵活性和扩展性都难适应网络的飞速发展。

SDN(Software Defined Network,软件定义网络)是一种开放的网络架构,主要特点为集中控制性和网络可编程性,允许网络管理人员以软件编程的方式对整个网络进行管理与操作。SDN将逻辑控制功能和数据转发功能分离,由基于软件的网络控制器来实现对网络的逻辑控制功能,而底层的网络设备只需负责实现简单的数据转发功能,通过OpenFlow协议与网络控制器进行交互。OpenFlow论坛是2008年成立的新兴组织,OpenFlow论坛起源于斯坦福大学的“Clean Slate”计划。

SDN网络架构如图1所示,从上至下主要分为应用层、控制层和数据转发层。架构的核心集中在基于网络操作系统的控制层上,主要设备为SDN控制器,它具有整个网络的全局视野。数据转发层主要是底层的数据转发设备,比如OpenFlow交换机等。数据转发设备被剥离了控制功能,只需要按照流表进行匹配和转发数据流。数据转发设备通过南向接口(目前主要使用OpenFlow协议)与控制层进行信息交互,完成控制器数据流表的下发和底层设备数据信息的反馈。控制层向上提供北向接口,与应用层进行信息传递,SDN应用与服务通过调用提供的北向接口对网络进行相应操作,实现相应功能。

作为一种新技术,SDN网络同样面临着业务不稳定的情况,如突发故障、网络堵塞、网络受到攻击等导致网络连接断开,也可能受到因各种原因控制器挂掉导致SDN网络瘫痪,网络的中断会给用户带来巨大损失,所以保证SDN网络的可靠性、可用性是SDN网络应用的迫切需求。



技术实现要素:

为了克服上述现有技术的缺陷,本发明要解决的技术问题是提供一种装置、主控制器、系统及方法,用以保证SDN网络的可靠性。

为解决上述技术问题,本发明中的一种SDN网络的业务恢复装置包括:

状态检测模块,用于监测SDN网络的所有控制器的运行状态和所有交换机链路的连接状态;所述所有控制器包括一个主控制器和多个备份控制器;

控制器管理模块,用于保持所述主控制器和各备份控制器之间的数据同步;若所述主控制器发生故障,则选择一个备份控制器作为新主控制器,并根据所述主控制器的各种配置信息配置所述新主控制器;

链路管理模块,用于若一交换机链路发生故障,根据故障属性进行交换机链路故障恢复。

为解决上述技术问题,本发明中的一种SDN网络中主控制器包括:

构建SDN网络中所有交换机的拓扑结构;

根据所述拓扑结构,若发现任意两个交换机之间未处于互通状态,通过预设的检测方式进行交换机链路故障检测。

为解决上述技术问题,本发明中的一种SDN网络的业务恢复系统,包括上述的任意一项所述装置和上述德尔任意一项所述主控制器。

为解决上述技术问题,本发明中的一种SDN网络的业务恢复方法包括:

监测SDN网络的所有控制器的运行状态和所有交换机链路的连接状态;所述所有控制器包括一个主控制器和多个备份控制器;

保持所述主控制器和各备份控制器之间的数据同步;若所述主控制器发生故障,则选择一个备份控制器作为新主控制器,并根据原主控制器的各种配置信息配置所述新主控制器;

若一交换机链路发生故障,根据故障属性进行交换机链路故障恢复。

为解决上述技术问题,本发明中的一种SDN网络中交换机链路故障检测方法包括:

主控制器构建所有交换机的拓扑结构;

主控制器根据所述拓扑结构,若发现任意两个交换机之间未处于互通状态,通过预设的检测方式进行交换机链路故障检测。

本发明有益效果如下:

本发明中系统及方法有效保证了SDN网络的可靠性,实现了SDN系统的自动恢复。

附图说明

图1是本发明实施例中SDN网络架构示意图;

图2是本发明实施例中SDN网络的业务恢复系统架构示意图;

图3是本发明实施例中SDN网络故障发现总体流程图;

图4为本发明实施例中SDN网络控制器故障恢复系统结构示意图;

图5为本发明实施例中SDN网络控制器故障恢复流程图;

图6为本发明实施例中SDN链路故障恢复流程图;

图7为本发明实施例中SDN网络链路发现过程示意图。

具体实施方式

为了保证SDN网络的可靠性,本发明提供了一种装置、主控制器、系统及方法,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。

本发明第一实施例提供一种SDN网络的业务恢复装置,所述装置包括:

状态检测模块,用于监测SDN网络的所有控制器的运行状态和所有交换机链路的连接状态;所述所有控制器包括一个主控制器和多个备份控制器;

控制器管理模块,用于保持所述主控制器和各备份控制器之间的数据同步;若所述主控制器发生故障,则选择一个备份控制器作为新主控制器,并根据所述主控制器的各种配置信息配置所述新主控制器;

链路管理模块,用于若一交换机链路发生故障,根据故障属性进行交换机链路故障恢复。

本发明实施例中系统有效保证了SDN网络的可靠性,实现了SDN系统的自动恢复。

同时本发明实施例通过将备份控制器时刻保持和主控制器数据同步,这样如果主备控制器发生切换,可以保证在最快时间内恢复业务。

本发明实施例中的业务恢复装置的各个模块与下述的SDN网络的业务恢复系统功能相同,具体实施时可以互相参考。

在上述实施例的基础上,进一步提出上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在各变型实施例中仅描述与上述实施例的不同之处。

在本发明的一个实施例中,所述装置还包括:

系统部署模块,用于在SDN网络中预先部署多个控制器,将所述多个控制器分别与同一区域的所有交换机连接;

选择其中一个控制器作为所述主控制器,并将其余控制器作为所述多个备份控制器。

在本发明的另一个实施例中,所述控制器管理模块,还用于通过轮询检测、控制器主动上报或套接字Sockect通讯的方式判断所述主控制器发生故障。

在本发明的又一个实施例中,所述控制器管理模块,还用于将一个或多个备份控制器进行升级;

选择一个升级后的所述备份控制器作为新主控制器,并根据原主控制器的各种配置信息配置所述新主控制器。

在本发明的再一个实施例中,所述链路管理模块包括:

故障检测模块,用于若一交换机链路发生故障,判断故障属性;

链路恢复模块,用于按照所述故障属性对应的预设优先恢复模式进行交换机链路故障恢复。

进一步说,所述故障检测模块,具体用于判断受所述故障影响的业务流对服务质量保证要求的对应第一设定标准,以及判断所述业务流对故障恢复响应时间要求的对应第二设定标准;

所述链路恢复模块,具体用于当所述第一设定标准属于预设低质量阈值范围,并且所述第二设定标准属于预设高响应阈值范围时,将故障的交换机链路切换至备份交换机链路;

当所述第一设定标准属于预设高质量阈值范围,并且所述第二设定标准属于预设低响应阈值范围时,计算一条最优交换机链路,将故障的交换机链路切换至该最优交换机链路;

当所述第一设定标准属于预设高质量阈值范围,并且所述第二设定标准属于预设高响应阈值范围时,首先将故障的交换机链路切换至备份交换机链路,并计算一条最优交换机链路,再从切换后的备份交换机链路切换至该最优交换机链路。

其中,所述链路管理模块还包括:

链路发现模块,用于向所述主控制器发送拓扑结构指令,以使所述主控制器构建所有交换机的拓扑结构;

所述故障检测模块,具体用于从所述主控制器获取所述拓扑结构,根据所述拓扑结构进行交换机链路故障检测。

本发明进一步提出一种SDN网络中主控制器包括:

构建SDN网络中所有交换机的拓扑结构;

根据所述拓扑结构,若发现任意两个交换机之间未处于互通状态,通过预设的检测方式进行交换机链路故障检测。

在本发明的一个实施例中,所述构建所有交换机的拓扑结构,包括:

所述主控制器向所有交换机发送携带链路发现协议的第一消息,以使各交换机响应第二消息;

根据响应的每个所述第二消息构建所有交换机的拓扑结构。

其中,所述通过预设的检测方式进行交换机链路故障检测,包括:

所述主控制器获取各交换机的端口状态信息,根据所述端口状态信息判定各交换机端口故障;和/或,

所述主控制器获取各交换机的转发流表,根据所述转发流表信息判定各链路堵塞故障;和/或,

所述主控制器向所有交换机发送分组消息指令,以使每个交换机发送广播分组消息;当接收到未处于互通状态的两个交换机响应的分组消息时,判定该两个交换机为非OpenFlow交换机,不属于链路断路故障;当没有接收到该两个交换机响应的分组消息时,判定该两个交换机之间链路为链路断路故障。

本发明进一步提出一种SDN网络的业务恢复系统,所述系统包括上述各实施例中任意一项所述业务恢复装置和上述各实施例中任意一项所述主控制器。

具体说,如图2所示,本发明第一实施例提供一种SDN网络的业务恢复系统,所述系统包括多个控制器、多个交换机、控制器监管层(对应上述实施例中的SDN网络的业务恢复装置)和控制检测层(对应上述实施例中主控制器);所述控制监管层包括:

状态检测模块,用于监测SDN网络的所有控制器的运行状态;所述所有控制器包括一个主控制器和多个备份控制器;

控制器管理模块,用于保持所述主控制器和各备份控制器之间的数据同步;

若所述主控制器发生故障,则选择一个备份控制器作为新主控制器,并根据原主控制器的各种配置信息配置所述新主控制器;

所述控制检测层,用于若一交换机链路发生故障,根据故障属性进行交换机链路故障恢复。

也就是说,本发明实施例在SDN网络中部署控制器监管层,并部署多个控制器,控制器监管层选择其中一个控制器为主控制器,控制器监管通过轮询检测、控制器主动上报、或sockect通讯的方式发现控制器的故障,并把故障上报给应用层,给各控制器通过各种API接口(例如REST-API(Representational State Transfer-Application Programming Interface,表述性状态转移应用接口))下发流规则,同时给应用层上传网络事件。例如如控制器故障事件,控制器状态查询。在主控制器遇到故障时,重新选择一个备份控制器做为主控制器运行。控制器和交换机之间可以但不限于通过OpenFlow协议通讯,通过交换机的故障实时上报和控制器轮询检测等多种方式发现链路中存在的各种故障,包括光纤故障、交换机故障等等。当发现控制故障时,控制器一方面把故障上报给应用层,另一方面会重新选择一个备份控制器作为主控制器,并把原主控制器的各种配置信息,如拓扑信息、交换机信息、日志信息、数据库连接信息等等拷贝到新的主控制器,实现控制器故障的恢复。

本发明实施例中系统有效保证了SDN网络的可靠性,实现了SDN系统的自动恢复。

同时本发明实施例通过将备份控制器时刻保持和主控制器数据同步,这样如果主备控制器发生切换,可以保证在最快时间内恢复业务。

在本发明的一个实施例中,所述控制监管层还包括:

系统部署模块,用于在SDN网络中预先部署多个控制器,将所述多个控制器分别与同一区域的所有交换机连接;

选择其中一个控制器作为所述主控制器,并将其余控制器作为所述多个备份控制器。

所述控制器管理模块,还用于通过轮询检测、控制器主动上报或套接字Sockect通讯的方式判断所述主控制器发生故障。

在本发明的另一个实施例中,所述控制器管理模块,还用于将一个或多个备份控制器进行升级;

选择一个升级后的备份控制器作为新主控制器,并根据原主控制器的各种配置信息配置所述新主控制器,也就是说,将原来的主控制器的各种配置信息拷贝到所述新主控制器。

本发明实施例可以单独对备份控制器进行升级后,若用户主动要求切换至备份控制器,这样即使主控制器升级也不会影响交换机业务。

在本发明的又一个实施例中,所述控制检测层包括:

故障检测模块,用于若一交换机链路发生故障,判断故障属性;

链路恢复模块,用于按照所述故障属性对应的预设优先恢复模式进行交换机链路故障恢复。

本发明实施例通过根据SDN网络中传送不同的业务流,在执行故障恢复时需要考虑业务属性,这样,在发生故障时,可以根据故障的属性来制定优先级别,从而保证服务的质量。

进一步说,所述故障检测模块,具体用于判断受所述故障影响的业务流对服务质量保证要求的对应第一设定标准,以及判断所述业务流对故障恢复响应时间要求的对应第二设定标准;

所述链路恢复模块,具体用于当所述第一设定标准属于预设低质量阈值范围,并且所述第二设定标准属于预设高响应阈值范围时,将故障的交换机链路切换至备份交换机链路;即第一优先恢复模式;

当所述第一设定标准属于预设高质量阈值范围,并且所述第二设定标准属于预设低响应阈值范围时,计算一条最优交换机链路,将故障的交换机链路切换至该最优交换机链路;即第二优先恢复模式;

当所述第一设定标准属于预设高质量阈值范围,并且所述第二设定标准属于预设高响应阈值范围时,首先将故障的交换机链路切换至备份交换机链路,并计算一条最优交换机链路,再从切换后的备份交换机链路切换至该最优交换机链路;即第三优先恢复模式。

进一步说,所述控制检测层还包括:

链路发现模块,用于向所述主控制器发送拓扑结构指令,以使所述主控制器构建所有交换机的拓扑结构;

所述故障检测模块,具体用于从所述主控制器获取所述拓扑结构,根据所述拓扑结构进行交换机链路故障检测

所述所述主控制器或所述新主控制器构建所有交换机的拓扑结构,包括:

所述主控制器或所述新主控制器向所有交换机发送携带链路发现协议的第一消息,以使各交换机响应第二消息;以及,

根据响应的每个所述第二消息构建所有交换机的拓扑结构。

其中,所述交换机链路故障包括交换机端口故障、链路堵塞故障和链路断路故障;所述根据所述拓扑结构进行交换机链路故障检测,包括:

根据所述拓扑结构,若发现任意两个交换机之间未处于互通状态,通过预设的检测方式进行交换机链路故障检测。

所述通过预设的检测方式进行交换机链路故障检测,包括:

检测方式一:根据各交换机的端口状态信息,判定各交换机端口故障;

检测方式二:根据各交换机的转发流表,判定各链路堵塞故障;

检测方式三:向所有交换机发送指令,以使每个交换机发送广播分组消息;

当所述主控制器或所述新主控制器接收到未处于互通状态的两个交换机响应的分组消息时,判定该两个交换机为非OpenFlow交换机,不属于链路断路故障;

当没有接收到该两个交换机响应的分组消息时,判定该两个交换机之间链路为链路断路故障。

关于链路故障发现,现有的技术是链路端口上通过LMP(Link Management Protocol,链路管理协议)协议,可以发现对端连接的设备,定期发送hello报文给对端,如对端出现故障,则没有hello报文返回,从而判断到对端链路是否断开。但无法知道是否是非OpenFlow域。

本发明实施例中SDN控制器(即主控制器或新主控制器)主要使用LLDP(Link Layer Discovery Protocol,链路发现协议)作为链路发现协议,可以将本端设备的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLDPDU(Link Layer Discovery Protocol Date Unit,链路层发现协议数据单元)中发布于自己直连的邻居,邻居收到这些信息后,将其以标准MIB(Management Information Base,管理信息库)的形式保存起来,以供网络管理系统查询机判断链路的通信状况。

如图7所示,本发明实施例中SDN控制器执行链路发现过程时,向与相连接的OpenFlow交换机发送携带LLDP(Link Layer Discovery Protocol,链路发现协议)信息的Packet-out消息,命令交换机将LLDP数据分组发送到与其直接相连的所有端口,交换机收到LLDP数据包通过其所有的端口发送给与之连接的设备,如果OpenFlow交换机相邻的设备也是OpenFlow交换机,因为交换机中并没有专门的流表项用于处理LLDP消息,所以它将通过packet-in消息将数据包发送给控制器,而控制器在收到packet-in消息后,会对数据包进行分析并在其保存的链路发现表中创建两台交换机之间的链接记录,控制器在搜集了自己管理区域内的诸多链路信息之后,就可以根据这些信息来构建网络的拓扑结构了。

如发现控制器所控制的交换机不是两两互通的,就会向所有被其控制的交换机下发命令,要求交换机发送广播分组消息给除交换机和控制器相连的端口外的其它端口,如果网络中有非OpenFlow交换机,广播分组将从这个网络的一端进入并穿越,达到与该有非OpenFlow交换机连接的其它交换机,因为收到广播分组的交换机没有对应的流表项可供广播分组匹配,所以广播分组将会将异常上传到控制器,从而告知控制器在网络中存在非OpenFlow域。如果控制器没有收到OpenFlow交换机上传的广播分组,则相应的两个OpenFlow交换机属于断开关系,从而发现链路故障。

控制器通过不同方法检测到链路中的各种链路故障原因,如交换机端口故障、流表条目错误、链路负载过重、链路断路引起的大量分组丢失等。第一,当交换机转发端口发生故障时,端口状态会发生变化,交换机将此状态变化发消息(如port-status消息)给控制器,控制器根据消息可以判断某个转发端口出现故障。第二,每个交换机存储有所有交换机的转发流表,同时也能检测到所有交换机的转发行为。交换机通过对下发的流表进行检测、分析,可以判断某段链路是否存在堵塞,当出现流表逻辑错误引发的链路故障时,控制器可以快速修复流表的错误并解决故障。第三,对于链路断路的情况,控制器通过定时发送携带LLDP信息的packet-out消息,根据反馈回的packet-in消息来不断检测交换机的状态和更新网络拓扑。控制器中形成整个网络的全局资源视图,以实现网络的集中管控功能。

链路故障恢复时控制器根据故障类型、紧急情况、故障等级把故障分为第一优先恢复模式、第二优先恢复模式、第三优先恢复模式,实现对SDN网络中业务的最优化自动恢复。

第一优先恢复模式,如果受故障影响的数据流对服务质量保证要求不是很高,有可能对故障恢复响应时间要求很高,则直接切换至备份路径恢复,但主路径一般是最优路径,在主路径出现故障时,备份路径不一定是当前环境最优路径。此选择方式也是当前SDN链路恢复使用最常用的方式。

第二优先恢复模式,如果受故障影响的数据流对服务质量保证要求很高,但对恢复响应时间不是很高,则可以重新计算一条最优路径,然后由交换机切换至新的最优路径。

第三优先恢复模式,如果受故障影响的数据流对服务质量保证要求很高,同时对恢复响应时间要求也很高,例如实时高带宽的网络数据流业务,对时延、丢包率,则采用并行执行的方式,直接把交换机切换至备份路径,保证业务的即使切换,然后计算一条新的最优路径,再把数据流从备份路径切换至新的最优路径。

对于主路径和备份路径故障都很多的情况,只能重新计算一条路径下发给受影响的交换机,控制器可以计算多条备份路径下发给交换机用于处理故障比较多的情况,但这样会占用交换机大量存储空间,增加交换机的负担,所以这种情况下采用第二优先恢复模式情况比较多。

举例说明本发明实施例中系统。

在本发明实施例中主要是针对SDN网络中链路故障发现、链路故障恢复、控制器故障发现和控制器故障恢复。通过在传统SDN网络增加控制器监管层,控制器监管通过轮询检测的方式发现控制器的故障,并把故障上报给应用层,给各控制器通过API接口,例如REST-API接口下发流规则,同时给应用层上传网络事件,如控制器故障事件,控制器状态查询,在控制器遇到故障时,重新选择一个控制器做为主控制器运行。控制器和交换机之间通过OpenFlow协议通讯,通过交换机的故障实时上报和控制器轮询检测两种方式发现链路中存在的各种故障,包括光纤故障、交换机故障等等。当发现控制故障时,控制器一方面把故障上报给应用层,另一方面会重新选择一个备份控制器作为主控制器,并把原控制器的各种配置信息,如拓扑信息、交换机信息、日志信息等等拷贝把新的主控制器,实现控制器故障的恢复。

通过在控制器层和数据转发层检测到链路中的各种链路故障,并给各种链路故障设置故障恢复模式,跟据不同的业务属性设置不同的故障恢复模式,保证链路故障期间业务流的服务质量。

在具体的实施过程中,SDN网络业务自动恢复的系统结构示意图如图2所示,共分为5层:应用服务层1、界面监管层2、控制监管层3、控制检测层4、数据转发层5。

其中,应用服务层,包括管理欲接入网络的应用和已接入网络的应用;

界面监管层,用于实时显示网络中控制器和链路连接状态,从应用服务层得到数据,显示告警信息,显示恢复路径,并给用户部分设置和选择提供窗口,把设置结果发送到应用层。如链路故障,则显示连接异常或断开,并显示系统自动恢复后的路径。

控制监管层,在控制监管层中设置控制器监管,控制器监管是由一个或多个独立的服务器(或设备)和运行在该服务器(或设备)上的软件组成。

控制器监管的功能是:1)管理与之相连的各控制器,选择其中一个控制器作为主控制器,其它与之相连的控制器作为备份控制器,主控制器即当前正在控制数据转发层交换机的控制器,备份控制器即处于待命状态的控制器;2)控制器监管通过轮询调度检测或控制器主动上报给控制器监管的方式发现各控制器的运行状态,如发现故障,控制器监管一方面把故障上报给应用层,给应用层上传网络事件,如控制器故障事件,控制器状态查询等,另一方面给各控制器通过API接口,例如REST-API接口下发流规则,如发现备份控制器有故障,则对备份控制器进行维护或重启,控制器监管把备份控制器的故障上报给应用层;如发现主控制器有故障,控制器监管一方面把故障上报给应用层,另一方面会重新选择一个备份控制器作为主控制器,并把原控制器的各种配置信息,如拓扑信息、交换机信息、日志信息、数据库连接信息等等拷贝把新的主控制器,更改新的主控制器标签,让交换机知道其为主控制器,实现SDN网络业务的恢复;3)接受应用层的命令,如应用层要求替换主控制器,如备份控制器运行正常,则直接切换至应用层要求的备份控制器,否则应应用层返回备份控制器故障信息;如应用层要求重启或维护备份控制器,则直接重启或维护备份控制器;4)将各控制器的故障信息、运行状态等存入数据库,以备应用层对故障进行分析,从而及时发现故障,并解决故障等等。

控制器监管和应用层保持通讯,如应用层发现控制器监管发生故障,则重启控制器监管软件,或重启控制器监管所在服务器,然后启动控制器监管。

控制器在运行过程中,备份控制器保持和主控制器数据同步,如及时把主控制器的配置信息,如拓扑信息、交换机信息、日志信息、数据库连接信息等等拷贝到备份控制器,这样在主控制器发生故障时,备份控制器能及时切换且不会影响数据业务。

控制检测层,用于管理SDN网络中的交换机,在本专利中实现对交换机的链路状态检测、链路故障发现、链路故障恢复、流表缓存、交换机连接等,并存储拓扑信息、交换机信息、日志信息等,控制检测层一方面和交换机通过Openflow协议或其它协议通讯,监控网络状态,接收交换机上报的网络状态,如链路故障状态,网络拓扑信息;另一方面和控制监管层通过API口通讯,向控制器监管层提供控制器运行状态;同时,控制检测层还向应用服务层和界面层上报网络链路状态,链路恢复状态等。

数据转发层,实现对交换机和链路等设备的管理,实现和控制器的通讯,通过向其它交换机发送广播分组,并对接收到的广播分组的流表项进行分析,将接收到的广播分组的交换机中的流表项进行分析,得到网络中断开情况,把断开情况发送给控制检测层,控制器检测层发现链路故障位置。

应用服务层1类似于现有SDN网络架构中的应用层,实现的功能包括:接收控制检测层4发送的拓扑信息、告警信息、链路状态信息等,把这些信息经过处理后发送界面监管层2显示;接收控制监管层3的上报信息,如控制器状态信息、控制器切换结果、控制器升级信息等等,把这些信息经过处理后发送界面监管层2显示;下发用户的各种配置给控制器监管或者控制器。

界面监管层2用于显示网络中控制器运行状态、控制监管运行状态、链路连接情况、交换机状态、链路故障情况、控制器恢复情况、链路恢复情况等,并提供用户配置窗口,把配置信息通过应用层处理后通过各种接口消息,如REST-API接口发送给应用服务层1处理,应用服务层1再把处理的消息根据实际情况发送给控制监管层3或者控制检测层4处理。

控制监管层3用于管理SDN网络中的控制器,包括单域和多域控制器,选择其中一个控制器为主控制器,通过轮询调度检测或控制器主动上报的方式的方式发现主控制器的故障,并把故障上报给应用服务层1,给各控制器通过API接口,例如REST-API接口下发流规则,同时给应用服务层1上传网络事件,如控制器故障事件、控制器状态等,在控制器遇到故障时,重新选择一个控制器做为主控制器运行,当发现主控制器故障时,控制器监管一方面把故障上报给应用服务层1,另一方面会重新选择一个备份控制器作为主控制器,并把原控制器的各种配置信息,如拓扑信息、交换机信息、日志信息、数据库连接信息等等拷贝到新的主控制器,实现SDN网络业务的自动恢复。

控制检测层4用于管理SDN网络中的交换机,实现对交换机的链路状态检测、链路故障发现、链路故障恢复、流表缓存、交换机连接等,并存储拓扑信息、交换机信息、日志信息等,控制检测层一方面和交换机通过OpenFlow协议或其它协议通讯,监控网络状态,接收交换机上报的网络状态,如链路故障状态,网络拓扑信息;另一方面和控制监管层通过API口通讯,向控制监管层3提供控制器运行状态;同时,控制检测层4还向应用服务层1和界面监管层2上报网络链路状态,链路恢复状态等。

数据转发层5用于链路故障发现,交换机数据转发,链路故障恢复等,接收控制检测层4发送的分组消息,如Packet-out消息,实现对交换机和链路等设备的管理,控制检测层4的通讯,通过向其它交换机发送广播分组,并对接收到的广播分组的流表项进行分析,将接收到的广播分组的交换机中的流表项进行分析,得到网络中断开情况,把断开情况发送给控制检测层,控制器检测层发现链路故障位置。

应用服务层1的应用根据来源和功能可以包括但不限于以下几种类型:命令行应用11、网管应用12、安全应用13和其它应用14。

命令行应用11是由控制器管理人员接入的应用,通过控制器预留的命令行(非开源)实现对控制器的配置、查询等操作,实现一些验证和调试的功能。

网管应用1-2是用来实现网络管理员对控制器进行网络各种配置,并查看网络状态,如告警、拓扑等状态。

安全应用13是指在网络中链路和控制器恢复时,需要人员干预的接口,比如在链路恢复时,需要人工设置必经节点等,也可以指安全服务云第三方机构,为用户提供安全方面的服务和保障。

其它应用14指各种预留的处理应用,比如控制器、控制器监管软件升级、开启日志、内存泄露检测、控制器监管重启、维护和升级,控制器升级维护,人员指定主控制器等等。

界面监管层2包括但不限于用户界面21,消息处理模块22两个部分。用于从消息处理模块获取数据,然后把数据转为图形界面,为网管人员提供配置的窗口,并下发REST-API或HTTP协议发送配置至消息处理模块22。

消息处理模块2-2,接收反馈模块48信息,以REST-API、HTTP协议的方式将响应结果发送给用户界面21,并把用户界面21指令缓存后,发送给反馈模块41。

控制监管层3包括3个模块:状态检测模块3-1、控制器管理模块3-2、消息转发模块33。

状态检测模块31,用于检测控制器的运行状态,能及时发现控制器的故障状态,并把故障状态发送给界面监管层2。

控制器管理模块32,用于与其控制的多个控制器进行连接,如通过REST-API接口和控制器进行连接,通过分时轮询调度查询或控制器主动上报的方式和控制器进行通讯,得到各控制器的连接状,如发现主控制器出现故障,则自动另外选择一个控制器作为主控制器,或者有用户要求主控制器切换,并发消息要求新的主控制器把原控制器的配置信息、拓扑信息、数据库连接信息等拷贝到新的主控制器。控制器管理模块32具备如下性能:(1)能够快速响应控制器故障,控制器发生故障失效后,交换机快速响应控制器的故障和失效事件;(2)控制器切换过程不影响现有业务的运行;(3)网络业务的切换过程中产生的业务延时在用户可按受的范围内,不产生明显的业务中断。

消息转发模块33,把出故障的控制器、各控制器运行状态发送消息给应用服务层1,并接受应用层的消息,如用户主动要求切换主控制器的消息,把消息发送到控制器管理模块32处理。

控制检测层4包括10个模块:链路发现模块41、链路检测模块42、链路恢复模块43、拓扑管理模块44、交换机连接模块45、数据同步模块46、转发规则管理模块47、信息统计模块48、反馈模块49、数据存储模块410。

链路发现模块41监测交换机之间链路的状态,实时更新链路信息。控制器执行链路发现过程,向与相连接的Openflow交换机发送携带LLDP(Link Layer Discovery Protocol,链路发现协议)信息的Packet-out消息,命令交换机将LLDP数据分组发送到所有端口,如果Openflow交换机相邻的设备也是Openflow交换机,交换机向控制器发送Packet-in消息,控制器在搜集了自己管理区域内的诸多链路信息之后,就可以根据这些信息来构建网络的拓扑结构了。如图7SDN网络链路发现过程示意图中,经过这一步的判断,主控制器只能知道交换机2和交换机4不是直接相连的,交换机3和交换机4也不是直接相连的,但并不知道它们之间是断开还是有非OpenFlow交换机。

通过上面步骤,主控制器发现所控制的交换机不是两两互通的,就会向所有被其控制的交换机发下发命令,要求交换机发送广播分组消息给除交换机和控制器相连的端口外的其它端口,如果网络中有非Openflow交换机,广播分组将从这个网络的一端进入并穿越,达到与该有非OpenFlow交换机连接的其它交换机,因为收到广播分组的交换机没有对应的流表项可供广播分组匹配,所以广播分组将会将异常上传到控制器,从而告知控制器在网络中存在非OpenFlow域。如果控制器没有收到OpenFlow交换机上传的广播分组,则相应的两个OpenFlow交换机属于断开关系,从而发现链路故障。进过这一步的判断,控制器可以知道交换机3与交换机4之间是断开关系,交换机2与交换机4之前存在非OpenFlow域。经过以上步骤,控制器实现了链路的发现目的。

故障检测模块42,检测交换机、链路各种故障的类型和发生故障的位置,把检测结果发给应用服务层1,并最终发给界面监管层2显示出来。控制器通过不同方法检测到链路中的各种链路故障,如交换机端口故障、流表条目错误、链路负载过重、链路断路引起的大量分组丢失等。第一,当交换机转发端口发生故障时,端口状态会发生变化,交换机将此状态变化发消息(如port-status消息)给控制器,控制器根据消息可以判断某个转发端口出现故障。第二,每个交换机存储有所有交换机的转发流表,同时也能检测到所有交换机的转发行为。交换机通过对下发的流表进行检测、分析,可以判断某段链路是否存在堵塞,当出现流表逻辑错误引发的链路故障时,控制器可以快速修复流表的错误并解决故障。第三,对于链路断路的情况,控制器通过定时发送携带LLDP信息的packet-out消息,根据反馈回的packet-in消息来不断检测交换机的状态和更新网络拓扑。控制器中形成整个网络的全局资源视图,以实现网络的集中管控功能。

链路恢复模块43,当链路发现故障时,跟据故障类型,可以自动选择故障恢复模式,并生成最优恢复链路,更新拓扑,为新的最优链路上的交换机更新流表项,调用转发规则管理模块46下发新路径上的流表项。控制器根据故障类型、紧急情况、故障等级把故障分为第一优先恢复模式、第二优先恢复模式、第三优先恢复模式,实现对SDN网络中业务的最优化自动恢复。

第一优先恢复模式,如果受故障影响的数据流对服务质量保证要求不是很高,有可能对故障恢复响应时间要求很高,则直接切换至备份路径恢复,但主路径一般是最优路径,在主路径出现故障时,备份路径不一定是当前环境最优路径。此选择方式也是当前SDN链路恢复使用最常用的方式。

第二优先恢复模式,如果受故障影响的数据流对服务质量保证要求很高,但对恢复响应时间不是很高,则可以重新计算一条最优路径,然后由交换机切换至新的最优路径。

第三优先恢复模式,如果受故障影响的数据流对服务质量保证要求很高,同时对恢复响应时间要求也很高,例如实时高带宽的网络数据流业务,对时延、丢包率,则采用并行执行的方式,直接把交换机切换至备份路径,保证业务的即使切换,同时计算一条新的最优路径,再把数据流从备份路径切换至新的最优路径。

对于主路径和备份路径故障都很多的情况,只能重新计算一条路径下发给受影响的交换机,控制器可以计算多条备份路径下发给交换机用于处理故障比较多的情况,但这样会占用交换机大量存储空间,增加交换机的负担,所以这种情况下采用第二优先恢复模式情况比较多。

拓扑管理模块44,基于已有的链路信息建立交换机的拓扑,基于以上模块,设备控制部分维护了底层交换机网络的拓扑、流表、运行状态等信息。

交换机连接模块45,通过包括但不限于OpenFlow协议与底层交换机相连,和底层交换机进行通讯,通过OpenFlow协议管理每个交换机的运行状态。

数据同步模块46,实现在控制器在运行过程中,备份控制器保持和主控制器数据同步,如及时把主控制器的配置信息,如拓扑信息、交换机信息、日志信息、数据库连接信息等等拷贝到备份控制器,这样在主控制器发生故障时,备份控制器能及时切换且不会影响数据业务。

转发规则管理模块47,在控制器和交换机之间进行流规则的管理,如删除旧的链路上的流规则,并下发新路径上的流规则。

信息统计模块48,将OpenFlow协议收集到的交换机信息并存储在数据库存储模块410中。

反馈模块49,一方面实现把控制器状态信息、链路发现信息、链路恢复信息、实时拓扑信息反馈给网管人员,另一方面向网管人员反馈控制器监管通讯状况,如检测到控制器监管出现故障时,及时向用户发送告警,提示重启控制器监管或对控制器监管进行维护。

数据库存储模块410,存储控制器和交换机的相关链路数据、拓扑信息,最优路径、备份路径、地址等信息。

数据转发层5,包括2个模块:广播分组模块51,控制器消息转发模块52。

广播分组模块51,实现对交换机和链路等设备的管理,实现和控制器的通讯,通过向其它交换机发送广播分组,并对接收到的广播分组的流表项进行分析,将接收到的广播分组的交换机中的流表项进行分析,得到网络中断开情况,把断开情况发送给控制检测层,控制器检测层发现链路故障位置。

控制器消息转发模块52,实现和控制器之间进行消息转发,如向控制器发送Packet-in消息,反馈交换机的状态,和向控制器更新拓扑,并接收控制器发过来的Packet-out消息,把控制器发过来的链路发现协议发送到交换机各端口。

图3是SDN网络故障发现总体流程图,用来按步骤显示SDN网络中控制器故障和链路故障的发现流程,包含步骤如下:

步骤3-1,获取故障类型,根据控制器监管、控制器或者图2中的应用服务层确认故障类型,分析是控制器监管故障、控制器故障还是链路故障。

如果是控制器监管故障,则转入步骤3-2控制器监管故障.

步骤3-2控制器监管故障,此故障概率最小,如应用层发现此模块有故障,则转步骤3-3维护或重启控制器监管。

步骤3-3维护或重启控制器监管,通过图2中的应用服务层对控制器监管进行修护,或者重启控制器监管。

如果是控制器故障,则转入步骤3-4控制器故障。

步骤3-4控制器故障,经控制器监管发现主控制器有故障,如主控制器挂了,或主控制器消息接收和发送太慢,超过规定时间,则转步骤3-5.

步骤3-5获取有故障的主控制器信息,控制器监管得到主控制器的IP,控制器位置信息等,以便告诉备份控制器恢复前准备。

步骤3-6上报故障的主控制器信息至应用层,把出故障的控制器IP、控制器地址、故障类型等上报给应用层,并通过图2中的界面监管层显示。

步骤3-7开启控制器故障恢复模式,即进入控制器故障恢复。

如果是链路故障,转入步骤3-8链路故障。

步骤3-8链路故障,当SDN网络发生链路故障时,链路故障会引起网络上出现分组数据无法传送或大量的分组丢失,网络传输速率下降,通过步骤3-9判断链路故障类型。

步骤3-9链路故障类型,根据上报的链路错误或其它方法判断链路故障类型,是端口故障、链路堵塞、或者链路断路,分别转至3-10端口故障、3-11链路拥塞、3-12链路断路。

步骤3-10端口故障,当交换机转发端口发生故障时,端口状态会发生变化,交换机将此状态变化发消息(如port-status消息)给控制器,控制器根据消息可以判断某个转发端口出现故障。

步骤3-11链路堵塞,每个交换机存储有所有交换机的转发流表,同时也能检测到所有交换机的转发行为。交换机通过对下发的流表进行检测、分析,可以判断某段链路是否存在堵塞,当出现流表逻辑错误引发的链路故障时,控制器可以快速修复流表的错误并解决故障。

步骤3-12链路断路,对于链路断路的情况,控制器通过定时发送携带LLDP信息的packet-out消息,根据反馈回的packet-in消息来不断检测交换机的状态和更新网络拓扑。控制器中形成整个网络的全局资源视图,以实现网络的集中管控功能。

步骤3-13存储各种链路故障,将各种链路故障集通过ID关联存储在内存或数据库中,如果故障解决,则从内存或者数据库中清除该故障。

步骤3-14遍历故障集,读取交换机组表项和其ID,取值有故障的组表项。

步骤3-15取出输出动作为组表ID的流表项,查找出组表ID为步骤3-14中有故障组表ID相同的流表项。

步骤3-16判断是哪种类型的数据流,根据流表项内容判断是哪种类型的数据流,以便选择第一、第二还是第三优先恢复故障。

步骤3-17按照故障模式存储故障流表信息,按照故障模式存储故障流表信息到内存中,以表进行链路恢复。

步骤3-18开启链路故障恢复,链路故障恢复实施例参考图6

图4是SDN网络控制器故障恢复系统结构示意图,从图4可以可出,控制器监管管理着控制器1(及主控制器)、备份控制器,备份控制器可以有多个,控制器1和备份控制器都和交换机1~交换机6物理上相连接,但只是控制器1和各交换机在通讯,同时,控制监管和控制器1之间也进行着通讯,如websocket通讯,如果控制器1发生故障,则依据图5SDN网络控制器故障恢复流程图的规则切换控制器。

图5是SDN网络控制器故障恢复流程图。

步骤5-1发现控制器故障,控制器监管发现控制器故障,导致和控制器连接失败,转步骤5-2是否控制器故障。

步骤5-2是否控制器故障,判断出故障的控制器是否是主控制器,如果是则转步骤5-3启动交换机,否则转步骤5-7重启备份控制器。

步骤5-3选择控制器作主控制器,如发现当前主控制器有故障,控制器监管从连接到其上的多个控制器中选择一个正常运行的控制器,作为主控制器,设置主控制器标签。

步骤5-4恢复配置信息,把原主控制器服务器的配置信息、拓扑信息、数据库连接信息等复制到新的主控制器。

步骤5-5事件上报到所选控制器,切换所有原主控制器连接的交换机事件上报到新的主控制器,并实现新的主控制器对这些交换机的控制。

步骤5-6同步更新控制器,新的主控制器对基于上报的事件保持状态同步,新的主控制器保持和控制器监管通讯。

图6为本发明实施例中SDN链路故障恢复流程图。

步骤6-1获取与主机相连的源宿交换机,根据流表项的源主机IP地址和目的主机IP地址,调用主机追踪模块获取与主机相连的源交换机和目的交换机。

步骤6-2获取有故障路径的流规则,通过源主机和目的主机的IP地址与SDN控制器数据库中的流表项进行匹配,获取受故障影响的旧路径上的流规则。

步骤6-3删除旧路径上的流规则,调用控制器转发规则管理模块4-7(如图4SDN网络控制器故障恢复系统结构示意图)删除旧路径上的流规则。

步骤6-4通过故障诊断确认故障恢复方式,通过对链路故障的分类和比较,确认故障的恢复方式。

步骤6-5判断故障恢复方式,如是第一故障恢复方式,则转步骤6-6获取备份路径,如是第二故障恢复方式,则转步骤6-9重新计算一条最优路径,如是第三故障恢复方式,则转步骤6-12.

步骤6-6如果受故障影响的数据流对服务质量保证要求不是很高,有可能对故障恢复响应时间要求很高,则直接切换至备份路径恢复,先获取路由算路的备份路径。

步骤6-7通过快速网络故障组表自动切换至备份路径。

步骤6-8重新计算一条最优路径,如果受故障影响的数据流对服务质量保证要求很高,但对恢复响应时间不是很高,则可以重新计算一条最优路径。

步骤6-9通过快速网络故障组表自动切换至最优路径。

步骤6-10获取备份路径,如果受故障影响的数据流对服务质量保证要求很高,同时对恢复响应时间要求也很高,例如实时高带宽的网络数据流业务,对时延、丢包率,则采用并行执行的方式,先获取备份路径。

步骤6-11通过快速网络故障组表自动切换至备份路径。

步骤6-12重新计算一条最优路径,根据路由计算算法重新计算一条最优路径。

步骤6-13通过快速网络故障组表自动切换至新的最优路径。

步骤6-14下发新路径的流表项,调用转发规则管理模块4-7下发新路径上的流表项。

步骤6-15完成链路故障恢复,给控制器上报恢复结果。

基于上述系统的各实施例,本发明进一步提出一种SDN网络的业务恢复方法及交换机链路故障检测方法。

本发明实施例中,一种SDN网络的业务恢复方法,包括:

监测SDN网络的所有控制器的运行状态和所有交换机链路的连接状态;所述所有控制器包括一个主控制器和多个备份控制器;

保持所述主控制器和各备份控制器之间的数据同步;

若所述主控制器发生故障,则选择一个备份控制器作为新主控制器,并根据所述主控制器的各种配置信息配置所述新主控制器;

若一交换机链路发生故障,根据故障属性进行交换机链路故障恢复。

本发明实施例中方法有效保证了SDN网络的可靠性,实现了SDN系统的自动恢复。

同时本发明实施例通过将备份控制器时刻保持和主控制器数据同步,这样如果主备控制器发生切换,可以保证在最快时间内恢复业务。

在本发明的一个实施例中,所述监测SDN网络的所有控制器的运行状态和所有交换机链路的连接状态之前,还包括:

在SDN网络中预先部署多个控制器,将所述多个控制器分别与同一区域的所有交换机连接;

选择其中一个控制器作为所述主控制器,并将其余控制器作为所述多个备份控制器。

在本发明的另一个实施例中,所述若所述主控制器发生故障,包括:

通过轮询检测、控制器主动上报或套接字Sockect通讯的方式判断所述主控制器发生故障。

在本发明的又一个实施例中,所述监测SDN网络的所有控制器的运行状态和所有交换机链路的连接状态之后,还包括:

将一个或多个备份控制器进行升级;

选择一个升级后的所述备份控制器作为新主控制器,并根据所述主控制器的各种配置信息配置所述新主控制器。

在本发明的再一个实施例中,所述若一交换机链路发生故障,根据故障属性进行交换机链路故障恢复,包括:

若一交换机链路发生故障,判断故障属性;

按照所述故障属性对应的预设优先恢复模式进行交换机链路故障恢复。

进一步说,所述判断故障属性;按照所述故障属性对应的预设优先恢复模式进行交换机链路故障恢复,包括:

判断受所述故障影响的业务流对服务质量保证要求的对应第一设定标准,以及判断所述业务流对故障恢复响应时间要求的对应第二设定标准;

当所述第一设定标准属于预设低质量阈值范围,并且所述第二设定标准属于预设高响应阈值范围时,将故障的交换机链路切换至备份交换机链路;

当所述第一设定标准属于预设高质量阈值范围,并且所述第二设定标准属于预设低响应阈值范围时,计算一条最优交换机链路,将故障的交换机链路切换至该最优交换机链路;

当所述第一设定标准属于预设高质量阈值范围,并且所述第二设定标准属于预设高响应阈值范围时,首先将故障的交换机链路切换至备份交换机链路,并计算一条最优交换机链路,再从切换后的备份交换机链路切换至该最优交换机链路。

具体说,所述若一交换机链路发生故障,判断故障属性的步骤之前,还包括:

向所述主控制器发送拓扑结构指令,以使所述主控制器构建所有交换机的拓扑结构;

从所述主控制器获取所述拓扑结构,根据所述拓扑结构进行交换机链路故障检测。

本发明实施例中一种SDN网络中交换机链路故障检测方法,包括:

主控制器构建所有交换机的拓扑结构;

主控制器根据所述拓扑结构,若发现任意两个交换机之间未处于互通状态,通过预设的检测方式进行交换机链路故障检测。

其中,所述主控制器构建所有交换机的拓扑结构,包括:

所述主控制器向所有交换机发送携带链路发现协议的第一消息,以使各交换机响应第二消息;

根据响应的每个所述第二消息构建所有交换机的拓扑结构。

进一步说,所述通过预设的检测方式进行交换机链路故障检测,包括:

所述主控制器获取各交换机的端口状态信息,根据所述端口状态信息判断各交换机端口故障;和/或,

所述主控制器获取各交换机的转发流表信息,根据所述转发流表信息判断各链路堵塞故障;和/或,

所述主控制器向所有交换机发送分组消息指令,以使每个交换机发送广播分组消息;当接收到未处于互通状态的两个交换机响应的分组消息时,判定该两个交换机为非OpenFlow交换机,不属于链路断路故障;当没有接收到该两个交换机响应的分组消息时,判定该两个交换机之间链路为链路断路故障。

虽然本申请描述了本发明的特定示例,但本领域技术人员可以在不脱离本发明概念的基础上设计出来本发明的变型。

本领域技术人员在本发明技术构思的启发下,在不脱离本发明内容的基础上,还可以对本发明的方法做出各种改进,这仍落在本发明的保护范围之内。

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