路径切换的方法、控制器和故障切换交换机与流程

文档序号:15864170发布日期:2018-11-07 20:15阅读:296来源:国知局
本发明实施例涉及通信技术,尤其涉及一种路径切换的方法、控制器和故障切换交换机。
背景技术
::软件定义网络(SoftwareDefinedNetwork,简称SDN)是一种新型网络架构,其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制。OpenFlow协议中,当某个交换机的端口故障时,该交换机可通过快速故障切换(fastfailover)组表完成故障切换,该交换机的组表(grouptable)中保存有n个互为主备的发送端口,该交换机实时检测n个端口的状态,当检测到主用端口故障时,该交换机将发送端口从主用端口切换到备用端口,通过该备用端口发送数据包。但是现有技术的方案,每个交换机只能检测各自端口的电气故障,当网络中某条路径故障后,OpenFlow没有提供相应的解决方案,如图1所示,图1为一种网络拓扑的结构示意图,该网络拓扑中包括8个交换机,分别为:S1、S2、S3、S4、S5、S6、S7和S8,当通信路径S1->S3->S5->S8(虚线所示)上的S5-S8之间发生故障时,需要快速切换到其它通信路径,但OpenFlow未提供相应的解决方案,会导致通信中断。技术实现要素:本发明实施例提供的路径切换的方法、控制器和故障切换交换机,能够检测到路径故障,并在检测到路径故障时及时从当前路径切换到备用路径,避免通信中断。本发明第一方面提供一种路径切换的方法,包括:控制器确定数据流的主用路径和至少一条备用路径,所述主用路径和所述备用路径的源交换机和目的交换机相同;所述控制器向备用路径交换机下发流表,所述备用路径交换机在所述备用路径上且不在所述主用路径上,以使所述备用路径交换机在所述数据流从所述主用路径切换到所述备用路径后,根据所述流表转发所述数据流,其中所述流表包括表示所述流表的流表项一直未命中也不删除的指示;所述控制器向各故障切换交换机分别下发路径组表,所述路径组表包括所述主用路径的标示和备用端口信息,以使所述各故障切换交换机在根据所述主用路径的标示检测到所述主用路径故障时,根据所述备用端口信息进行路径切换,其中所述故障切换交换机为在所述主用路径上且在所述备用路径的任意一条路径上的交换机,所述故障切换机不为所述目的交换机,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径。结合本发明第一方面,在本发明第一方面的第一种可能的实现方式中,所述表示所述流表的流表项一直未命中也不删除的指示具体为所述流表的硬超时和空闲超时均被置为0。结合本发明第一方面以及本发明第一方面的第一种可能的实现方式,在本发明第一方面的第二种可能的实现方式中,在所述控制器向所述各故障切换交换机分别下发路径组表之后,所述方法还包括:所述控制器向源交换机发送测试指示报文,以指示所述主用路径上的各故障切换交换机检测所述主用路径是否故障。结合本发明第一方面的第二种可能的实现方式,在本发明第一方面的第三种可能的实现方式中,所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M。本发明第二方面提供一种路径切换的方法,所述路径切换方法由故障切换交换机执行,所述故障切换交换机为在主用路径上且在所述主用路径的任意一条备用路径上的交换机,所述主用路径和所述备用路径的源交换机和目的交换机相同,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径,所述方法包括:所述故障切换交换机接收控制器下发的路径组表,所述路径组表包括所述主用路径的标示;所述故障切换交换机根据接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障。结合本发明第二方面,在本发明第二方面的第一种可能的实现方式中,当所述故障切换交换机不为所述源交换机时,所述故障切换交换机根据接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障,包括:所述故障切换交换机在M个检测周期内接收到所述主用路径上的相邻的上游故障切换交换机发送的至少一个检测报文,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M;所述故障切换交换机根据所述主用路径的标示向所述相邻的上游故障切换交换机发送检测响应报文以及向所述主用路径上相邻的下游故障切换交换机或者所述目的交换机转发所述的检测报文;以及若所述故障切换交换机在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则所述故障切换交换机确定所述主用路径故障,其中,M为大于等于1的正整数。结合本发明第二方面,在本发明第二方面的第二种可能的实现方式中,当所述故障切换交换机为所述源交换机时,所述故障切换交换机根据接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障,包括:所述故障切换交换机接收所述控制器发送的测试指示报文,所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M,其中,M为大于等于1的正整数;所述故障切换交换机根据所述主用路径的标示在每个检测周期向相邻的下游故障切换交换机发送检测报文,所述检测报文中携带所述主用路径的标示、所述检测周期以及所述故障判别周期个数M,以使所述主用路径上的所述相邻的下游故障切换交换机根据所述主用路径的标示转发所述检测报文;若所述故障切换交换机在M个所述检测周期内没有接收到相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则所述故障切换交换机确定所述主用路径故障。结合本发明第二方面的第一种和第二种可能的实现方式,在本发明第二方面的第三种可能的实现方式中,所述路径组表中进一步包括所述故障切换交换机的备用端口信息,所述方法还包括:所述故障切换交换机在检测到所述主用路径故障时根据所述备用端口信息进行路径切换。结合本发明第二方面的第三种可能的实现方式,在本发明第二方面的第四种可能的实现方式中,所述根据所述备用端口信息进行路径切换包括:所述故障切换交换机根据所述备用端口信息选择一个目的备用端口,将发送端口从所述主用端口切换到所述目的备用端口,以完成将所述数据流从所述主用路径切换到所述目的备用端口对应的备用路径上。结合本发明第二方面,在本发明第二方面的第五种可能的实现方式中,当所述故障切换交换机不为所述源交换机时,所述故障切换交换机根据接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障,包括:若所述故障切换交换机在M个检测周期内没有接收到相邻的上游故障切换交换机发送的检测报文,而且在所述M个检测周期内没有接收到相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则所述故障切换交换机确定所述主用路径故障,其中,M为大于等于1的正整数,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文。结合本发明第二方面的第五种可能的实现方式,在本发明第二方面的第六种可能的实现方式中,所述方法还包括,所述故障切换交换机不进行路径切换。本发明第三方面提供一种控制器,包括:路径确定模块,用于确定数据流的主用路径和至少一条备用路径,所述主用路径和所述备用路径的源交换机和目的交换机相同;流表下发模块,用于向备用路径交换机下发流表,所述备用路径交换机在所述备用路径上且不在所述主用路径上,以使所述备用路径交换机在所述数据流从所述主用路径切换到所述备用路径后,根据所述流表转发所述数据流,其中所述流表包括表示所述流表的流表项一直未命中也不删除的指示;确定模块,用于根据以下条件确定故障切换交换机:所述故障切换交换机在所述主用路径上且在所述备用路径的任意一条路径上,所述故障切换机不为所述目的交换机,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径;路径组表下发模块,用于向所述各故障切换交换机分别下发路径组表,所述路径组表包括所述主用路径的标示和备用端口信息,以使所述各故障切换交换机在根据所述主用路径的标示检测到所述主用路径故障时,根据所述备用端口信息进行路径切换。结合本发明第三方面,在本发明第三方面的第一种可能的实现方式中,所述表示所述流表的流表项一直未命中也不删除的指示具体为所述流表的硬超时和空闲超时均被置为0。结合本发明第三方面以及本发明第三方面的第一种可能的实现方式,在本发明第三方面的第二种可能的实现方式中,所述控制器还包括:发送模块,用于向源交换机发送测试指示报文,以指示所述主用路径上的各故障切换交换机检测所述主用路径是否故障。结合本发明第三方面的第二种可能的实现方式,在本发明第三方面的第三种可能的实现方式中,所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M。本发明第四方面提供一种故障切换交换机,所述故障切换交换机为在主用路径上且在所述主用路径的任意一条备用路径上的交换机,所述主用路径和所述备用路径的源交换机和目的交换机相同,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径,所述故障切换交换机包括:接收模块,用于接收控制器下发的路径组表,所述路径组表包括所述主用路径的标示;故障检测模块,用于根据接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障。结合本发明第四方面,在本发明第四方面的第一种可能的实现方式中,当所述故障切换交换机不为所述源交换机时,所述接收模块还用于接收相邻的上游故障切换交换机发送的检测报文,以及接收所述主用路径上的相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,其中,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M;所述故障切换交换机还包括:发送模块,用于根据所述主用路径的标示向所述相邻的下游的故障切换交换机转发所述检测报文;所述故障检测模块具体用于:若所述接收模块在M个检测周期内接收到所述主用路径上的相邻的上游故障切换交换机发送的至少一个检测报文,但在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障,其中,M为大于等于1的正整数。结合本发明第四方面,在本发明第四方面的第二种可能的实现方式中,当所述故障切换交换机为所述源交换机时,所述接收模块还用于:接收所述控制器发送的测试指示报文,以及相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M,其中,M为大于等于1的正整数;所述故障切换交换机还包括:发送模块,用于根据所述主用路径的标示在每个检测周期向相邻的下游故障切换交换机发送检测报文,所述检测报文中携带所述主用路径的标示、所述检测周期以及所述故障判别周期个数M;所述故障检测模块具体用于:若所述接收模块在M个所述检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障。结合本发明第四方面的第一种和第二种可能的实现方式,在本发明第四方面的第三种可能的实现方式中,所述路径组表中进一步包括所述故障切换交换机的备用端口信息,所述故障切换交换机还包括:路径切换模块,用于在所述故障检测模块检测到所述主用路径故障时根据所述备用端口信息进行路径切换。结合本发明第四方面的第三种可能的实现方式,在本发明第四方面的第四种可能的实现方式中,所述路径切换模块具体用于:根据所述备用端口信息选择一个目的备用端口,将发送端口从所述主用端口切换到所述目的备用端口,以完成将所述数据流从所述主用路径切换到所述目的备用端口对应的备用路径上。结合本发明第四方面,在本发明第四方面的第五种可能的实现方式中,当所述故障切换交换机不为所述源交换机时,所述接收模块还用于:接收所述主用路径上相邻的上游故障切换交换机发送的检测报文,以及接收所述主用路径上相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,其中,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文;所述故障检测模块具体用于:若所述接收模块在M个检测周期内没有接收到所述相邻的上游故障切换交换机发送的检测报文,并且在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则所述故障切换交换机确定所述主用路径故障,其中,M为大于等于1的正整数。结合本发明第四方面的第五种可能的实现方式,在本发明第四方面的第六种可能的实现方式中,所述故障切换交换机还包括:路径切换模块,用于在所述故障检测模块检测到所述所述主用路径故障时不进行路径切换。本发明实施例的路径切换的方法、控制器和故障切换交换机,控制器为数据流确定主用路径和至少一条备用路径,并从主用路径和备用路径上除目的交换机之外的交换机中确定至少一个故障切换交换机,控制器通过向各故障切换交换机分别下发路径组表,路径组表包括主用路径的标示和故障切换交换机的备用端口信息,以使故障交换机在根据路径组表检测到主用路径故障时,将发送端口从主用端口切换到备用端口,以完成从主用路径到备用路径的切换,避免通信中断。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为一种网络拓扑的结构示意图;图2为SDN的物理网络架构示意图;图3为本发明路径切换的方法实施例一的流程图;图4为本发明路径切换的方法实施例二的流程图;图5为检测主用路径连通性时的一种信令流程图;图6为本发明实施例提供的一种控制器的结构示意图;图7为本发明实施例提供的一种故障切换交换机的结构示意图;图8为本发明实施例提供的另一种控制器的结构示意图;图9为本发明实施例提供的另一种故障切换交换机的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供的路径切换方法适用于SDN,SDN的核心技术是OpenFlow协议,OpenFlow协议运行在SDN的物理网络之上,图2为SDN的物理网络架构示意图,如图2所示,该物理网络包括一个控制器(Controller)和多个OpenFlow交换机(swich),该控制器对网络进行集中控制,控制器向各交换机下发流表,并集中管理各交换机上的流表以实现整个网络的集中管理,交换机主要用于根据控制器下发的流表进行数据的转发,各个交换机之间也可以互相通信(图中未示出)。在实际组网时,物理网络也可以包括多个控制器,图2所示只是一种最简单的网络架构。在OpenFlow协议中除了流表,还定义了一些组表(grouptable),例如故障切换组表(fastfailovertable),该故障切换组表中存放n个互为主备的输出端口,交换机实时检测n个端口的链路状态,正常情况下交换机从主用端口转发数据包,当主用端口链路故障时,交换机选择一个状态正常的端口转发数据包。但是,故障切换组表只能用来检测网络接口电气故障,当网络中某条路径断开后,现有的OpenFlow协议未提供相应的方案,因此,本发明实施例提供一种路径切换方法。本发明实施例的方案中,控制器为数据流确定一条主用路径和至少一条备用路径,并向备用路径上的备用路径交换机下发流表,不同于主用路径上的流表,备用路径交换机的流表包括用于表示该流表一直未命中也不删除的指示,以保证在数据流从主用路径切换到备用路径后,备用路径交换机能够根据该流表转发数据。另外,本发明实施例还新定义了一种路径组表,该路径组表包括待检测的主用路径的标示和备用端口信息,以使各故障切换交换机在根据该路径组表检测到主用路径故障时,根据该路径组表进行路径切换。以下将结合附图对本发明实施例的方案进行详细说明。图3为本发明路径切换的方法实施例一的流程图,如图3所示,本实施例的方法可以包括以下步骤:步骤101、控制器确定数据流的主用路径和至少一条备用路径。控制器为数据流确定一条主用路径和至少一条备用路径,正常情况下,通过该主用路径传输数据流,在该主用路径故障时,才通过备用路径传输数据流,该主用路径和备用路径的源交换机和目的交换机相同。步骤102、控制器向备用路径交换机下发流表,以使备用路径交换机在数据流从主用路径切换到备用路径后,根据流表转发数据流。控制器在为数据流选择备用路径后,向备用路径上的备用路径交换机下发流表,以使备用路径交换机在数据流从主用路径切换到备用路径后,根据流表转发数据流,该备用路径交换机在备用路径上且不在主用路径上,该流表包括表示该流表的流表项一直未命中也不删除的指示,具体实施方式中,表示流表的流表项一直未命中也不删除的指示具体为流表的硬超时和空闲超时均被置为0。常规的转发机制中,每个流表包括硬超时idle-time-out和空闲超时hard-time-out,且idle-time-out和hard-time-out的值通常都不为零。当流表在idle-time-out内一次都没有被命中,则交换机自动删除该流表。无论流表是否被命中,当流表的hard-time-out到达时,交换机都会删除该流表。本发明实施例中,idle-time-out=0和hard-idle-time=0意味着流表一直未命中也不删除该流表,该流表一直都保存在交换机上,以保证当主用路径故障时,将数据流切换到备用路径后,该备用路径上的备用路径交换机能够使用该流表转发数据流。步骤103、控制器向各故障切换交换机分别下发路径组表。故障切换交换机满足以下条件:故障切换交换机在主用路径上且在备用路径的任意一条路径上,该故障切换交换机不为目的交换机,故障切换交换机具有至少一个备用端口,故障切换交换机的主用端口对应主用路径,故障切换交换机的各备用端口分别对应一条备用路径。以图1所示的网络拓扑为例,假设图1中S1->S3->S5->S8为一条主用路径,S1->S4->S6->S8和S1->S3->S6->S8分别为该主用路径的两条备用路径,控制器从主用路径和备用路径上的交换机中确定故障切换交换机,通过比较可知S1、S3和S8即在主用路径上又在备用路径上,但是,S8为目的交换机,因此,S1和S3为故障切换交换机。S1具有一个备用端口,通过S1的主用端口可以将数据包发送给S3,通过S1的备用端口可以将数据包括发送给S4。S3也具有一个备用端口,通过S3的主用端口可以将数据包发送给S5,通过S3的备用端口可以将数据包发送给S6。控制器针对路径(Path)故障新增加了路径组表(Pathgrouptable),路径组表包括:组表标示(groupid)、组表类型(type)和路径信息。groupid用来唯一标示该路径组表,以便控制器根据groupid管理路径组表。路径组表的组表类型为pathfailover类型,pathfailover类型表示该组表是针对路径故障的,而现有的故障切换组表的类型为fastfailover,fastfailover是针对端口故障的。路径信息包括主用路径的标示和故障切换交换机的备用端口信息。该备用端口信息包括备用端口的端口号,可选地,该备用端口信息还包括备用端口的优先级。主用路径的标示用于通知故障切换交换机对该主用路径的标示对应的主用路径进行故障检测,当主用路径故障时,故障切换交换机根据备用端口信息选择一个目的备用端口,将发送端口从主用端口切换到目的备用端口,以完成将数据流从主用路径切换到目的备用端口对应的备用路径上。当故障切换交换机有多个备用端口时,故障切换交换机可以根据各备用端口的优先级选择优先级最高的备用端口作为目的备用端口。通过上述描述可知,本发明实施例的路径组表中的每个端口分别对应一条路径,故障切换交换机在进行路径故障检测时,根据主用路径的标示检测主用路径是否故障,在检测到主用路径故障进行路径切换,故障切换交换机通过主用端口到备用端口的切换来实现路径的切换。不同于现有技术的故障切换组表,故障切换组表中只包括交换机的备用端口信息,交换机只能进行端口电气故障的检测,当某一端口故障时,交换机根据故障切换组表中的备用端口信息将数据流从当前端口切换到备用端口,而本发明实施例中故障切换交换机在进行端口切换时,该故障切换交换机的主用端口并没有故障。当数据流从主用路径切换到备用路径之后,该备用路径上的备用路径交换机根据控制器下发的流表转发数据流,流表的每个流表项包括三个域:包头域(headerfield)、计数器(counters)、行动(action),备用路径交换机接收到数据包后,进行流匹配,查找到该数据包对应的流表项,根据流表项的action执行对应的操作。本实施例,控制器为数据流确定主用路径和至少一条备用路径,并从主用路径和备用路径上除目的交换机之外的交换机中确定至少一个故障切换交换机,控制器通过向各故障切换交换机分别下发路径组表,路径组表包括主用路径的标示和故障切换交换机的备用端口信息,以使故障交换机在根据路径组表检测到主用路径故障时,将发送端口从主用端口切换到备用端口,以完成从主用路径到备用路径的切换,避免通信中断。在实施例一的基础上,控制器在向各故障切换交换机下发路径组表之后,控制器还用于向源交换机发送测试指示报文,以指示主用路径上的各故障切换交换机检测主用路径是否故障。在具体的实施例中,该测试指示报文可以包括:主用路径的标示、检测周期以及故障判别周期个数M。源交换机接收到测试指示报文后进行故障检测。具体地,源交换机在每个检测周期向主用路径上的相邻交换机发送检测报文,相应的,该检测报文中也包括:主用路径的标示、检测周期以及故障判别周期个数M,以使主用路径上的各交换机在接收到该检测报文后根据主用路径的标示转发该检测报文。图4为本发明路径切换的方法实施例二的流程图,本实施例的方法由故障切换交换机执行,如图4所示,本实施例的方法可以包括以下步骤:步骤201、故障切换交换机接收控制器下发的路径组表。该故障切换交换机为在主用路径上且在主用路径的任意一条备用路径上的交换机,主用路径和备用路径的源交换机和目的交换机相同,该故障切换交换机具有至少一个备用端口,该故障切换交换机的主用端口对应主用路径,故障切换交换机的各备用端口分别对应一条备用路径。该路径组表包括主用路径的标示,进一步地,该路径组表还可以包括该故障切换交换机的备用端口信息,该备用端口信息包括备用端口的端口号,可选地,该备用端口信息还包括备用端口的优先级。步骤202、故障切换交换机根据接收到的故障检测消息以及路径组表检测主用路径是否故障。本实施例中,主用路径故障检测由控制器触发,当需要进行主用路径故障检测时,控制器向源交换机发送测试指示报文,该测试指示报文包括:主用路径的标示、检测周期以及故障判别周期个数M。源交换机接收到测试指示报文后,在每个检测周期向主用路径上的相邻交换机发送检测报文,该检测报文通过该主用路径最终发送给目的交换机,该检测报文中也包括:主用路径的标示、检测周期以及故障判别周期个数M,以使主用路径上的各交换机在接收到该检测报文后根据该主用路径的标示转发该检测报文。若该主用路径上的交换机为故障切换交换机,故障切换交换机不仅要将报文转发给下一跳交换机,还要生成检测响应报文,并将检测响应报文转发给相邻的上游故障切换交换机。若该主用路径上的交换机为目的交换机时,目的交换机不需要转发检测报文,但目的交换机需要生成检测响应报文并发送给相邻的上游故障切换交换机。需要说明的是,在具体的实施方式中,故障切换机或目的交换机在向相邻的上游故障切换机发送检测响应报文时,不是直接将检测响应报文转发给相邻的上游故障切换机,而是按照该主用路径进行转发,因此,该检测响应报文中也要包括主用路径的标示。一种情形下,当故障切换交换机不为源交换机时,故障切换交换机根据接收到的故障检测消息以及路径组表检测主用路径是否故障,具体为:若故障切换交换机在M个检测周期内接收到主用路径上的相邻的上游故障切换交换机发送的至少一个检测报文,但在M个检测周期内没有接收到主用路径上的相邻的下游故障切换交换机或者目的交换机返回的检测响应报文,则故障切换交换机确定主用路径故障,其中,M为大于等于1的正整数,该检测报文中携带主用路径的标示、检测周期以及故障判别周期个数M,以使主用路径上的各交换机根据主用路径的标示转发检测报文。另一种情形下,当故障切换交换机为源交换机时,故障切换交换机根据接收到的故障检测消息以及路径组表检测主用路径是否故障,具体为:源交换机接收控制器发送的测试指示报文,测试指示报文包括:主用路径的标示、检测周期以及故障判别周期个数M,其中,M为大于等于1的正整数。然后,源交换机在每个检测周期发送检测报文,该检测报文中携带主用路径的标示、检测周期以及故障判别周期个数M,以使主用路径上的各交换机根据主用路径的标示转发检测报文,并使各故障切换交换机根据检测周期以及故障判别周期个数M检测主用路径是否故障。若源交换机在M个检测周期内没有接收到相邻的下游故障切换交换机或者目的交换机返回的检测响应报文,则故障切换交换机确定主用路径故障。上述两种情形下,故障切换交换机在M个周期内只要能够接收到上游故障切换交换机发送的至少一个检测报文,故障切换交换机就认为从源交换机到该故障切换交换机之间的主用路径正常。故障切换交换机在M个检测周期内没有接收到相邻的下游故障切换交换机返回的检测响应报文,则说明故障切换交换机与相邻的下游故障切换交换机之间的路径故障,若故障切换交换机没有相邻的下游故障切换交换机,那么故障切换交换机在M个检测周期内没有接收到目的交换机返回的检测响应报文,则说明故障切换交换机与目的交换机之间的路径故障。本实施例的又一种情形下,对于非源交换机的故障切换交换机,若故障切换交换机在M个检测周期内没有接收到相邻的上游故障切换交换机发送的检测报文,而且在M个检测周期内没有接收到相邻的下游故障切换交换机或者目的交换机返回的检测响应报文,则故障切换交换机确定主用路径故障。上述三种情形下,对于前两种情形,故障都发生在故障切换交换机的下游路径上,因此,故障切换交换机在检测到主用路径故障时根据备用端口信息进行路径切换。故障切换交换机根据备用端口信息进行路径切换具体为:故障切换交换机根据备用端口信息选择一个目的备用端口,将发送端口从主用端口切换到目的备用端口,以完成将数据流从主用路径切换到目的备用端口对应的备用路径上。对于第三种情形,故障切换交换机在M个检测周期内即没有接收到检测报文也没有接收到检测响应报文,说明故障切换交换机的上游路径也发生故障,故障切换交换机进行路径切换是没有意义的,因此,在此种情况下,故障切换交换机不做路径切换。以下通过具体的例子说明,图5为检测主用路径连通性时的一种信令流程图,结合图1和图5,主用路径为S1->S3->S5->S8,备用路径为S1->S4->S6->S8和S1->S3->S6->S8,S1即是源交换机也是故障切换交换机,S3为故障切换交换机,S8为目的交换机。S1接收到控制器发送的检测指示报文后,每个检测周期发送一个检测报文,S3收到S1的检测报文后,将检测报文转发给S5并向S1返回检测响应报文,S5收到S3转发的检测报文后,将检测报文转发给S8,S8接收到S5发送的检测报文后,向S5返回检测响应报文,S5将检测响应报文转发给S3,S5在这里只是进行报文的通传。该检测指示报文和检测报文中都包括:主用路径的标示、检测周期、故障判别周期个数M,但检测指示报文和检测报文的类型不一样,检测响应报文中包括主用路径的标示。其中,具体的实施方式中检测指示报文具体可以为ccm_start,检测报文可以为ccm_msg,检测响应报文可以为ccm_reply。图5中共有两个故障切换交换机,以S1为例,S1在每个检测周期向S3发送检测报文,S3为S1相邻的下游故障切换交换机,若S1在M个检测周期内没有接收到来自S3返回的检测响应报文,则说明S1和S3之间的主用路径故障,S1将发送端口从去往S1的主用端口切换到去往S4的备用端口,通过备用路径S1->S4->S6->S8发送数据包。以S3为例,S3在接收到S1发送的检测报文后,通过S5向目的交换机S8发送检测报文,如果S3在M个检测周期内没有收到S8的返回的检测响应报文,说明S3->S5->S8这段链路故障,S3确定主用路径故障,S3将发送端口从去往S5的主用端口切换到去往S6的备用端口,通过备用路径S1->S3->S6->S8发送数据包。若S3在M个检测周期内既没有接收到S1发送的检测报文,也没有接收到S5发送的检测响应报文,则说明S1->S3以及S3->S5->S8这两段链路都出现了故障,此时,若S3进行切换,S3只能将数据流切换到备用路径S1->S3->S6->S8,但由于S1->S3这段链路也故障,即使S3做了切换,路径S1->S3->S6->S8也是故障的,这种情形下S3不做切换,以便减少处理,节约资源。这种情况下可以由S1进行切换,S1可以从主用路径切换到备用路径S1->S4->S6->S8。本实施例,故障切换交换机接收控制器下发的路径组表,该路径组表包括主用路径的标示以及故障切换交换机的备用端口信息,故障切换交换机根据接收到的故障检测消息以及路径组表检测主用路径是否故障,并根据检测结果进行路径切换。本实施例的方法,在检测到主用路径故障时,故障切换机能够快速的从主用路径切换到备用路径,避免通信中断,通过这种路径级别的故障检测并于故障后进行切换可以更有效的保障数据流传输的稳定性和高效性。图6为本发明实施例提供的一种控制器的结构示意图,如图6所示,本实施例的控制器包括:路径确定模块31、流表下发模块32、确定模块33和路径组表下发模块34。其中,路径确定模块31,用于确定数据流的主用路径和至少一条备用路径,所述主用路径和所述备用路径的源交换机和目的交换机相同;流表下发模块32,用于向备用路径交换机下发流表,所述备用路径交换机在所述备用路径上且不在所述主用路径上,以使所述备用路径交换机在所述数据流从所述主用路径切换到所述备用路径后,根据所述流表转发所述数据流,其中所述流表包括表示所述流表的流表项一直未命中也不删除的指示;确定模块33,用于根据以下条件确定故障切换交换机:所述故障切换交换机在所述主用路径上且在所述备用路径的任意一条路径上,所述故障切换机不为所述目的交换机,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径;路径组表下发模块34,用于向所述各故障切换交换机分别下发路径组表,所述路径组表包括所述主用路径的标示和备用端口信息,以使所述各故障切换交换机在根据所述主用路径的标示检测到所述主用路径故障时,根据所述备用端口信息进行路径切换。可选地,表示所述流表的流表项一直未命中也不删除的指示具体为所述流表的硬超时和空闲超时均被置为0。进一步的,本实施例的控制器还可以包括:发送模块,用于向源交换机发送测试指示报文,以指示所述主用路径上的各故障切换交换机检测所述主用路径是否故障。所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M。本实施例的控制器,可用于执行图3和/或图5所示方法,具体实现方式和技术效果类似,这里不再赘述。需要说明的是,上述功能模块划分仅仅是其中的一种实施方式,具体实施方式中,本领域技术人员可以在参考上述各实施例的描述下,根据具体情况做不同的功能模块划分以执行上述方法,完成本发明的功能,达到本发明的效果。具体实施方式中,上述各模块可以是软件模块,这些软件模块通过计算机处理器、CUP、逻辑电路等具有运行软件功能的硬件设备运行以执行以上所描述的方法。上述软件模块也可以是硬件部件,如由SDN网络架构中的控制器中各相应硬件部件执行。本领域技术人员在参考上述各实施例的情况下,可以对该控制器中各相应硬件部件根据各实施例中的描述进行相应的修改(这种修改可以是以软件,固件,或者硬件的形式修改)或者添加新的硬件部件以完成本发明的功能和效果。图7为本发明实施例提供的一种故障切换交换机的结构示意图,所述故障切换交换机在主用路径上且在所述主用路径的任意一条备用路径上,所述主用路径和所述备用路径的源交换机和目的交换机相同,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径,如图7所示,本实施例提供的故障切换交换机包括:接收模块41和故障检测模块42。其中,接收模块41,用于接收控制器下发的路径组表,所述路径组表包括所述主用路径的标示以及所述故障切换交换机的备用端口信息;故障检测模块42,用于根据接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障。一种情形下,当所述故障切换交换机不为所述源交换机时,所述接收模块41还用于接收相邻的上游故障切换交换机发送的检测报文,以及接收所述主用路径上的相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,其中,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文。所述故障切换交换机还包括:发送模块,用于转发所述检测报文。所述故障检测模块42具体用于:若所述接收模块41在M个检测周期内接收到所述主用路径上的相邻的上游故障切换交换机发送的至少一个检测报文,但在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障,其中,M为大于等于1的正整数。其中,所述检测响应报文是所述各故障切换交换机和所述目的切换交换机在接收到所述检测报文时向相邻的上游故障切换交换机发送。另一种情形下,当所述故障切换交换机为所述源交换机时,所述接收模块41还用于:接收所述控制器发送的测试指示报文,以及相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M,其中,M为大于等于1的正整数。所述故障切换交换机还包括:发送模块,用于在每个检测周期发送检测报文,所述检测报文中携带所述主用路径的标示、所述检测周期以及所述故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文;所述故障检测模块42具体用于:若所述接收模块41在M个所述检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障。其中,所述检测响应报文是所述各故障切换交换机和所述目的切换交换机在接收到所述检测报文时向相邻的上游故障切换交换机发送。在上述两种情形下,所述故障切换交换机还包括:路径切换模块43,用于在所述故障检测模块42检测到所述主用路径故障时根据所述备用端口信息进行路径切换。所述路径切换模块43具体用于:根据所述备用端口信息选择一个目的备用端口,将发送端口从所述主用端口切换到所述目的备用端口,以完成将所述数据流从所述主用路径切换到所述目的备用端口对应的备用路径上。又一种情形下,当所述故障切换交换机不为所述源交换机时,所述接收模块41还用于:接收所述主用路径上相邻的上游故障切换交换机发送的检测报文,以及接收所述主用路径上相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,其中,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文;所述故障检测模块42具体用于:若所述接收模块41在M个检测周期内没有接收到所述相邻的上游故障切换交换机发送的检测报文,并且在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则所述故障切换交换机确定所述主用路径故障,其中,M为大于等于1的正整数。当然,所述故障切换交换机还包括发送模块,用于发送所述检测报文。在第三种情形下,所述故障切换交换机的路径切换模块43在所述故障检测模块检测到所述所述主用路径故障时不进行路径切换,以以便减少该故障切换交换机的处理,节约资源。本实施例的故障切换交换机,可用于执行图4和/或图5所示方法,具体实现方式和技术效果类似,这里不再赘述。需要说明的是,上述功能模块划分仅仅是其中的一种实施方式,具体实施方式中,本领域技术人员可以在参考上述各实施例的描述下,根据具体情况做不同的功能模块划分以执行上述方法,完成本发明的功能,达到本发明的效果。具体实施方式中,上述各模块可以是软件模块,这些软件模块通过计算机处理器、CUP、逻辑电路等具有运行软件功能的硬件设备运行以执行以上所描述的方法。上述软件模块也可以是硬件部件,如由SDN网络架构中的交换机中各相应硬件部件执行。本领域技术人员在参考上述各实施例的情况下,可以对该控制器中各相应硬件部件根据各实施例中的描述进行相应的修改(这种修改可以是以软件,固件,或者硬件的形式修改)或者添加新的硬件部件以完成本发明的功能和效果。图8为本发明实施例提供的另一种控制器的结构示意图,如图8所示,本实施例的控制器500包括:处理器51、存储器52、通信接口53和通信总线54,处理器51、存储器52以及通信接口53之间可通过总线54连接并通信。其中,处理器51可以是中央处理器(centralprocessingunit,CPU)、专用集成电路(application-specificintegratedcircuit,ASIC)等。存储器52可以包括:随机存取存储器(randomaccessmemory,RAM),只读存储器(read-onlymemory,ROM),磁盘等具有存储功能的实体。所述存储器52,用于存储计算机执行指令521;所述处理器51,用于运行所述计算机执行指令521,以执行前述图2和4所对应的各种实施例及其组合。其中一个具体的实施例中,所述指令经处理器51运行执行如下所述的方法:确定数据流的主用路径和至少一条备用路径,所述主用路径和所述备用路径的源交换机和目的交换机相同;在确定主用路径和备用路径后,控制器500通过通信接口53向备用路径交换机下发流表,所述备用路径交换机在所述备用路径上且不在所述主用路径上,以使所述备用路径交换机在所述数据流从所述主用路径切换到所述备用路径后,根据所述流表转发所述数据流,其中所述流表包括表示所述流表的流表项一直未命中也不删除的指示。根据以下条件确定故障切换交换机:所述故障切换交换机在所述主用路径上且在所述备用路径的任意一条路径上,所述故障切换机不为所述目的交换机,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径;在确定故障切换交换机后,控制器500通过通信接口53向所述各故障切换交换机分别下发路径组表,所述路径组表包括所述主用路径的标示和备用端口信息,以使所述各故障切换交换机在根据所述主用路径的标示检测到所述主用路径故障时,根据所述备用端口信息进行路径切换。可选地,所述表示所述流表的流表项一直未命中也不删除的指示具体为所述流表的硬超时和空闲超时均被置为0。本实施例中,通信接口53还用于所述控制器向源交换机发送测试指示报文,以指示所述主用路径上的各故障切换交换机检测所述主用路径是否故障。所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M。本实施例的控制器,在执行上述图3以及图5所示的方法时,具体实现方式和技术效果类似,这里不再赘述。图9为本发明实施例提供的另一种故障切换交换机的结构示意图,本实施例的故障切换交换机在主用路径上且在所述主用路径的任意一条备用路径上,所述主用路径和所述备用路径的源交换机和目的交换机相同,所述故障切换交换机具有至少一个备用端口,所述故障切换交换机的主用端口对应所述主用路径,所述故障切换交换机的各备用端口分别对应一条备用路径。如图9所示,本实施例的故障切换交换机600包括:处理器61、存储器62、通信接口63和通信总线64,处理器61、存储器62以及通信接口63之间可通过总线64连接并通信。其中,存储器62,用于存储计算机执行指令621;所述处理器61,用于运行所述计算机执行指令621。通信接口63用于与控制器、相邻的交换机进行通信,可用于接收控制器下和相邻交换机下发的消息,并向相邻的交换机发送消息。具体地,通信接口63用于接收控制器下发的路径组表,所述路径组表包括所述主用路径的标示以及所述故障切换交换机的备用端口信息;处理器61根据通信接口63接收到的故障检测消息以及所述路径组表检测所述主用路径是否故障。一种情形下,当所述故障切换交换机不为所述源交换机时,通信接口63用于接收相邻的上游故障切换交换机发送的检测报文,以及接收所述主用路径上的相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,其中,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文;通信接口63还用于:转发所述检测报文。处理器61具体用于:若通信接口63在M个检测周期内接收到所述主用路径上的相邻的上游故障切换交换机发送的至少一个检测报文,但在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障,其中,M为大于等于1的正整数,所述检测响应报文是所述各故障切换交换机和所述目的切换交换机在接收到所述检测报文时向相邻的上游故障切换交换机发送。另一种情形下,当所述故障切换交换机为所述源交换机时,通信接口63用于:接收所述控制器发送的测试指示报文,以及相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,所述测试指示报文包括:所述主用路径的标示、检测周期以及故障判别周期个数M,其中,M为大于等于1的正整数;通信接口63还用于:在每个检测周期发送一个检测报文,所述检测报文中携带所述主用路径的标示、所述检测周期以及所述故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文。处理器61具体用于:若所述接收模块在M个所述检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障。其中,所述检测响应报文是所述各故障切换交换机和所述目的切换交换机在接收到所述检测报文时向相邻的上游故障切换交换机发送。上述两种情形下,当处理器61检测到所述主用路径故障时,处理器61还用于根据所述备用端口信息进行路径切换。处理器61根据所述备用端口信息进行路径切换具体为:根据所述备用端口信息选择一个目的备用端口,将发送端口从所述主用端口切换到所述目的备用端口,以完成将所述数据流从所述主用路径切换到所述目的备用端口对应的备用路径上。又一种情形下,当所述故障切换交换机不为所述源交换机时,通信接口63用于:接收所述主用路径上相邻的上游故障切换交换机发送的检测报文,以及接收所述主用路径上相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,其中,所述检测报文中携带所述主用路径的标示、检测周期以及故障判别周期个数M,以使所述主用路径上的各交换机根据所述主用路径的标示转发所述检测报文;通信接口63还用于在接收到所述检测报文时,将所述检测报文转发出去。处理器61具体用于:若通信接口63在M个检测周期内没有接收到所述相邻的上游故障切换交换机发送的检测报文,并且在所述M个检测周期内没有接收到所述相邻的下游故障切换交换机或者所述目的交换机返回的检测响应报文,则确定所述主用路径故障,其中,M为大于等于1的正整数。这种情形下,当处理器61检测到所述主用路径故障时不进行路径切换。本实施例的故障切换交换机,可用于执行图4或5所示方法,具体实现方式和技术效果类似,这里不再赘述。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1