一种软件定义网络控制器故障的确定方法及装置与流程

文档序号:12729257阅读:188来源:国知局
一种软件定义网络控制器故障的确定方法及装置与流程

本发明涉及通信技术领域,特别是涉及一种软件定义网络控制器故障的确定方法及装置。



背景技术:

SDN(Software Defined Network,软件定义网络)是一种新型网络架构,其将控制层面和转发层面分离,实现了对网络流量的灵活控制。在SDN中,SDN控制器为SDN的关键设备,其负责向交换设备下发转发规则,交换设备根据接收到的转发规则转发流量。

对交换设备而言,交换设备通过其与SDN控制器间的连接状态确定SDN控制器是否故障,并对故障进行处理,进行流量转发。具体的,若交换设备与SDN控制器连接成功,则确定SDN控制器没有故障,接收SDN控制器下发的转发规则,根据接收到的转发规则转发流量;若交换设备与SDN控制器连接失败,则确定SDN控制器故障,交换设备通过传统的IP(Internet Protocol,网络协议)路由器转发流量。

然而,交换设备与SDN控制器连接失败可能是由SDN控制器故障引起,也可能是由交换设备与SDN控制器间的链路故障引起。基于此,交换设备通过其与SDN控制器间的连接状态,来确定SDN控制器是否故障的方法是不准确的,这将造成交换设备进行故障处理的不合理。

基于上述情况,如何确定SDN控制器是否故障仍是一个亟待解决的技术难题。



技术实现要素:

本发明实施例的目的在于提供一种软件定义网络控制器故障的确定方法及装置,以提高确定SDN控制器是否故障的准确性。具体技术方案如下:

一方面,本发明实施例公开了一种SDN控制器故障的确定方法,应用于故障服务器,所述方法包括:

接收交换设备发送的连接状态;所述连接状态为所述交换设备与所述SDN控制器的连接状态;

当首次接收到指示为连接失败的第一连接状态时,确定除发送所述第一连接状态的第一交换设备以外的所有其他交换设备与所述SDN控制器的连接状态;

当所述所有其他交换设备与所述SDN控制器的连接状态均指示为非正常状态时,确定所述SDN控制器故障。

另一方面,本发明实施例公开了一种SDN控制器故障的确定装置,应用于故障服务器,所述装置包括:

接收单元,用于接收交换设备发送的连接状态;所述连接状态为所述交换设备与所述SDN控制器的连接状态;

第一确定单元,用于当首次接收到指示为连接失败的第一连接状态时,确定除发送所述第一连接状态的第一交换设备以外的所有其他交换设备与所述SDN控制器的连接状态;

第二确定单元,用于当所述所有其他交换设备与所述SDN控制器的连接状态均指示为非正常状态时,确定所述SDN控制器故障。

本发明实施例提供了一种SDN控制器故障的确定方法及装置,故障服务器接收各个交换设备发送的其与SDN控制器的连接状态,当首次接收到指示为连接失败的第一连接状态时,确定所有其他交换设备与SDN控制器的连接状态;如果确定所有其他交换设备与SDN控制器的连接状态均指示为非正常状态,而在SDN控制器正常的情况下,所有交换设备与SDN控制器的连接状态都指示为非正常状态的可能性非常低,因此可以确定SDN控制器故障,这有效地提高了确定SDN控制器是否故障的准确性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中使用的一种SDN组网的示意图;

图2为本发明实施例提供的一种SDN控制器故障的确定方法的一种流程示意图;

图3为本发明实施例提供的一种SDN控制器故障的确定方法的另一种流程示意图;

图4为本发明实施例提供的一种SDN控制器故障的确定装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参考图1,图1为本发明实施例提供的一种SDN组网的示意图,在该组网中包括:SDN控制器100、交换设备200和故障服务器300。其中,在组网中可以包括多个交换设备,故障服务器与这多个交换设备连接。

需要说明的是,故障服务器300可以与交换设备200位于同一台物理机上,也可以独立的位于一台物理机上,本发明实施例对此不进行限定。

基于图1所示组网,本发明实施例提供了一种应用于故障服务器300的SDN控制器故障的确定方法及装置,以提高确定SDN控制器是否故障的准确性。

参考图2,图2为本发明实施例提供的一种SDN控制器故障的确定方法的一种流程示意图,应用于如图1所示的故障服务器300,该确定方法包括:

S201:接收交换设备发送的连接状态;

其中,连接状态为交换设备与SDN控制器的连接状态。这里的连接状态可以为连接成功或连接失败

具体地,若交换设备与SDN控制器建立连接失败,则该交换设备向故障服务器发送指示连接失败的连接状态;若交换设备与SDN控制器建立连接成功,则该交换设备向故障服务器发送指示连接成功的连接状态。

在本发明的一个实施例中,各个交换设备可以定时地向故障服务器发送该交换设备与SDN控制器的连接状态,以保证故障服务器中能够获取到准确的连接状态;另外,各个交换设备也可以在该交换设备与SDN控制器的连接状态发送变化时,再向故障服务器发送该交换设备与SDN控制器的连接状态,以节约网络资源。例如,当交换设备X1与SDN控制器的连接状态从连接成功变为连接失败时,交换设备X1向故障服务器发送指示为连接失败的连接状态。

S202:当首次接收到指示为连接失败的第一连接状态时,确定除发送第一连接状态的第一交换设备以外的所有其他交换设备与SDN控制器的连接状态;

这里,首次接收到指示为连接失败的第一连接状态为:故障服务器在确定SDN控制器正常的情况下,首次接收到的指示为连接失败的连接状态。

在本发明的一个实施例中,为了便于确定除第一交换设备以外的所有其他交换设备与SDN控制器的连接状态,故障服务器中可以记录有所有交换设备与SDN控制器的连接状态,并在接收到交换设备发送的连接状态时,更新该交换设备对应的连接状态,即更新该交换设备与SDN控制器的连接状态。例如,接收到交换设备X1发送的指示为连接成功的连接状态,则将交换设备X1对应的连接状态更新为连接成功;接收到交换设备X1发送的指示为连接失败的连接状态,则将交换设备X1对应的连接状态更新为连接失败。

这种情况下,故障服务器可以通过记录的连接状态,确定除第一交换设备以外的所有其他交换设备对应的连接状态。

在本发明的其他实施例中,为了保证故障服务器可以快速地确定除第一交换设备以外的所有其他交换设备对应的连接状态,故障服务器可以采用状态表项的形式来记录交换设备与SDN控制器的连接状态。这里,一个状态表项可以包括两项,第一项为:交换设备的标识,例如交换设备的IP地址、MAC(Media Access Control,媒体访问控制)地址等;第二项为:这个交换设备与SDN控制器的连接状态。在状态表项的第二项中,可以用1表示交换设备与SDN控制器的连接状态为连接成功、0表示交换设备与SDN控制器的连接状态为连接失败。

这种情况下,当交换设备在SDN控制器上注册成功后,也就是交换设备与SDN控制器建立连接后,交换设备向故障服务器发送其标识和其与SDN控制器的连接状态为连接成功的信息;故障服务器根据接收到的这个交换设备发送的信息,建立这个交换设备对应的状态表项,并将这个交换设备对应的状态表项中的连接状态更新为“1”;之后,再接收到这个交换设备发送的连接状态,可以直接根据接收到的这个交换设备发送的连接状态,更新这个交换设备对应的状态表项中的连接状态。

S203:当所有其他交换设备与SDN控制器的连接状态均指示为非正常状态时,确定SDN控制器故障。

其中,非正常状态包括连接失败和连接无效。这里,连接无效为:当故障服务器无法获得交换设备的连接状态时,为这个交换设备设置的一种连接状态。一般的,若故障服务器无法获得交换设备的连接状态,则可以确定该交换设备故障。

若确定所有其他交换设备对应的连接状态均指示为非正常状态,同时第一交换设备对应的连接状态也指示为连接失败,此时,所有交换设备对应的连接状态均指示为非正常状态,而SDN控制器在正常的情况下,所有交换设备与SDN控制器的连接状态都指示为非正常状态的可能性非常小,因此可以确定SDN控制器故障;

若确定所有其他交换设备对应的连接状态不均指示为非正常状态,也就是,至少有一个交换设备的连接状态指示为连接成功,由于SDN控制器故障时,交换设备与SDN控制器的连接状态不可能指示为连接成功,因此可以确定SDN控制器正常。

在本发明的一个实施例中,每个交换设备向故障服务器发送该交换设备与SDN控制器的连接状态的时间可能是不同步的,为了保证如果是SDN控制器故障,除第一交换设备外的所有其他交换设备都向故障服务器发送了连接状态,提高确定SDN控制器是否故障的准确性,故障服务器可以在接收到第一连接状态后,向后延迟一段时间,再确定除第一交换设备以外的所有其他交换设备与SDN控制器的连接状态。例如,故障服务器在接收到第一连接状态后,启动定时器;当定时器到时后,再确定除第一交换设备以外的所有其他交换设备与SDN控制器的。

在本发明的一个实施例中,若SDN控制器故障,在定时器时长内,在所有其他交换设备正常的情况下,所有其他交换设备定已向故障服务器发送了第二连接状态。这种情况下,故障服务器可以确定在定时器时长内接收到的至少一个第二连接状态;

若接收到的第二连接状态均指示为连接失败,则可以判断是否存在未发送连接状态的交换设备,这里,未发送连接状态的交换设备即为除第一交换设备以及发送所述第二连接状态的第二交换设备以外的其他交换设备;若不存在未发送连接状态的交换设备,结合第一交换设备对应的连接状态也指示为连接失败,则可以确定SDN控制器故障;

若存在未发送连接状态的交换设备,这些交换设备可能是因为本身故障或这些交换设备此时与故障服务器间的链路故障,导致这个交换设备暂时无法向故障服务器上报连接状态。因此,为了确定交换设备与SDN控制器的连接状态,可以向所有未发送连接状态的交换设备发送查询报文,即向除第一交换设备以及第二交换设备以外的所有其他交换设备发送查询报文,查询连接状态;

若查询到的连接状态均指示为非正常状态,则可以确定SDN控制器故障;

若查询到的连接状态不均指示为非正常状态,则可以确定SDN控制器正常。

在本发明的一个实施例中,故障服务器查询连接状态的结果可以为:

若接收到除第一交换设备以及第二交换设备以外的所有其他交换设备针对查询反馈的连接状态,且均指示为连接失败,则可以确定SDN控制器故障;

若未接收到针对查询反馈的连接状态,则可以确定除第一交换设备以及第二交换设备以外的所有其他交换设备与SDN控制器的连接状态均指示为连接无效,进而可以确定除第一交换设备以及第二交换设备以外的所有其他交换设备故障,确定SDN控制器故障;

若接收到除第一交换设备以及第二交换设备以外的所有其他交换设备中部分交换设备针对查询反馈的连接状态,且均指示为连接失败,则确定针对查询未反馈连接状态的交换设备与SDN控制器的连接状态均指示为连接无效,进而可以确定针对查询未反馈连接状态的交换设备故障,确定SDN控制器故障;

若接收到除第一交换设备以及第二交换设备外的所有其他交换设备针对查询反馈的连接状态,且不均指示为连接失败,也就是至少有一个针对查询反馈的连接状态指示为连接成功,可以确定SDN控制器正常,确定针对查询反馈指示为连接失败的连接状态的交换设备与SDN控制器间的链路故障、第一交换设备与SDN控制器间的链路故障、第二交换设备与SDN控制器间的链路故障;

若接收到所有未发送连接状态的交换设备中部分交换设备针对查询反馈的连接状态,且不均指示为连接失败,则确定针对查询未反馈连接状态的交换设备与SDN控制器的连接状态均指示为连接无效,确定针对查询未反馈连接状态的交换设备故障,确定SDN控制器正常,确定针对查询反馈指示为连接失败的连接状态的交换设备与SDN控制器间的链路故障、第一交换设备与SDN控制器间的链路故障、第二交换设备与SDN控制器间的链路故障。

在本发明的其他实施例中,为了提高确定SDN控制器是否故障的效率,在故障服务器中预先设置一个预设数量,这里,预设数量为一个较小的值,例如1、2等。

这种情况下,故障服务器在向除第一交换设备以及第二交换设备以外的所有其他交换设备查询连接状态之前,即向未发送连接状态的交换设备查询连接状态之前,先判断除第一交换设备以及第二交换设备以外的所有其他交换设备的数量是否小于等于预设数量;

如果除第一交换设备以及第二交换设备以外的所有其他交换设备的数量小于等于预设数量,向未发送连接状态的交换设备查询连接状态;因为预设数量较小,向除第一交换设备以及第二交换设备以外的所有其他交换设备查询连接状态,对确定SDN控制器是否故障的效率影响也较小;

若除第一交换设备以及第二交换设备以外的所有其他交换设备的数量大于预设数量,考虑到在交换设备较多情况下,存在大量的交换设备因设备故障无法上报连接状态的可能性非常小,因此可以认为未发送连接状态的交换设备是因为与SDN控制器连接成功而未发送,进而确定SDN控制器正常。

在本发明的一个实施例中,为了便于交换设备进行合理的故障处理,在确定SDN控制器故障之后,故障服务器可以将SDN控制器故障的信息通知给第一交换设备;

第一交换设备接收到SDN控制器故障的信息后,确定SDN控制器故障,通过传统的IP路由器转发流量;若未接收到SDN控制器故障的信息,则确定SDN控制器正常,继续根据SDN控制器下发的转发规则转发流量。

值得一提的是,上述SDN控制器是否故障的信息可以记录在故障服务器中,以便于通知各个交换设备,以及输出给用户,使得用户能够及时处理SDN控制器故障。

为了更清楚的理解本发明实施例提供的SDN控制器故障的确定方法,下面结合图3进行介绍说明故障服务器确定SDN控制器是否故障的过程:

S01、在确定SDN控制器正常的情况下,首次接收到指示为连接失败的第一连接状态;

S02、启动定时器;

S03、定时器到时;

S04、判断定时器时长内是否接收到第二连接状态;如果是,执行S05;如果否,执行S07;

若为SDN控制器故障,故障服务器在定时器时长内定能接收到第二连接状态。

S05、判断所有第二连接状态是否均指示为连接失败;如果否,执行S06;如果是,执行S07;

S06、确定SDN控制器正常;

另外,在确定所有第二连接状态不均指示为连接失败时,也就是,故障服务器至少接收到一个指示为连接成功的第二连接状态,则确定SDN控制器正常;同时,故障服务器还可以确定发送连接状态、且指示为连接失败的交换设备与SDN控制器间的链路故障,确定未发送连接状态的交换设备正常,确定未发送连接状态的交换设备正常与SDN控制器间的链路正常。

在S06之后,故障服务器接收到第一个指示为连接失败的连接状态时,重新执行S01。

S07、判断剩余未发送连接状态的交换设备的数量是否小于等于N;如果否,执行S06;如果是,执行S08;

其中,剩余未发送连接状态的交换设备以下简称为剩余的交换设备,剩余的交换设备为除发送第一连接状态的交换设备和发送第二连接状态的交换设备以外的所有其他交换设备;N为预设数量。

若所有交换设备的数量为L,发送第一连接状态的交换设备和发送第二连接状态的交换设备的总数量为M,则S07为:判断公式L-M<=N是否成立。

若公式L-M<=N不成立,剩余的交换设备的数量大于N,则可以确定SDN控制器正常。

另外,在公式L-M<=N不成立时,还可以确定发送连接状态、且指示为连接失败的交换设备与SDN控制器间的链路故障,确定未发送连接状态的交换设备正常,确定未发送连接状态的交换设备与SDN控制器间的链路正常。

S08:向剩余的交换设备查询连接状态;

若剩余的交换设备都反馈了连接状态,也就是,故障服务器接收到了剩余的所有交换设备针对查询反馈的连接状态,则执行S09;

若剩余的交换设备都未反馈连接状态,也就是,故障服务器未接收到针对查询反馈的连接状态,则执行S12;

若剩余的交换设备中存在反馈了连接状态的交换设备和未反馈连接状态的交换设备,也就是,故障服务器接收到剩余的交换设备中的部分交换设备针对查询反馈的连接状态,则执行S13;

S09、判断接收到的反馈的连接状态是否均指示为连接失败;如果否,执行S10;如果是,执行S11;

S10、确定SDN控制器正常;

另外,若剩余的交换设备反馈的连接状态不均指示为连接失败,也就是,至少有一个反馈的连接状态指示为连接成功,故障服务器除了可以确定SDN控制器正常外,还可以确定发送连接状态、且指示为连接失败的交换设备与SDN控制器间的链路故障。

在S10之后,故障服务器接收到第一个指示为连接失败的连接状态时,重新执行S01。

S11、确定SDN控制器故障;

S12、将剩余的交换设备的连接状态都设置为连接无效;

之后可以执行S11,也就是,确定SDN控制器故障。

另外,此时剩余的交换设备都未针对查询反馈连接状态,故障服务器可以确定剩余的交换设备都故障。

S13、判断接收到的反馈的连接状态是否均指示为连接失败;如果是,执行S14;如果否,执行S15;

S14、将剩余的交换设备中未反馈连接状态的交换设备的连接状态都设置为连接无效;

之后执行S11,也就是,确定SDN控制器故障。

另外,故障服务器还可以确定剩余的交换设备中未反馈连接状态的交换设备故障。

S15、将剩余的交换设备中未反馈连接状态的交换设备的连接状态都设置为连接无效;

之后执行S06,也就是,确定SDN控制器正常。

同时,若接收到的反馈的连接状态不均指示为连接失败,也就是,接收到的反馈的连接状态中至少有一个连接状态指示为连接成功,在将剩余的交换设备中未反馈连接状态的交换设备的连接状态都设置为连接无效之后,故障服务器除了可以确定SDN控制器正常外,还可以确定发送连接状态、且指示为连接失败的交换设备与SDN控制器间的链路故障,未反馈连接状态的交换设备故障。

应用上述实施例,故障服务器接收各个交换设备发送的其与SDN控制器的连接状态,当首次接收到指示为连接失败的第一连接状态时,确定所有其他交换设备与SDN控制器的连接状态;如果确定所有其他交换设备与SDN控制器的连接状态均指示为非正常状态,而在SDN控制器正常的情况下,所有交换设备与SDN控制器的连接状态都指示为非正常状态的可能性非常低,因此可以确定SDN控制器故障,这有效地提高了确定SDN控制器是否故障的准确性。

参考图4,图4为本发明实施例提供的一种SDN控制器故障的确定装置的结构示意图,应用于故障服务器,该装置包括:

接收单元401,用于接收交换设备发送的连接状态;这里,连接状态为交换设备与SDN控制器的连接状态;

第一确定单元402,用于当首次接收到指示为连接失败的第一连接状态时,确定除发送第一连接状态的第一交换设备以外的所有其他交换设备与SDN控制器的连接状态;

第二确定单元403,用于当所有其他交换设备与SDN控制器的连接状态均指示为非正常状态时,确定SDN控制器故障。

在本发明的其他实施例中,第一确定单元402,具体可以用于:

当首次接收到指示为连接失败的第一连接状态时,启动定时器;

当定时器到时后,确定除发送第一连接状态的第一交换设备以外的所有其他交换设备与SDN控制器的连接状态。

在本发明的其他实施例中,第一确定单元402,具体可以用于:

当定时器到时后,确定在定时器时长内接收到的至少一个第二连接状态;

若接收到的第二连接状态均指示为连接失败,则向除发送第一连接状态的第一交换设备以及发送第二连接状态的第二交换设备以外的所有其他交换设备查询连接状态;

这种情况下,第二确定单元403,具体可以用于:

若查询到的连接状态均指示为非正常状态,则确定SDN控制器故障。

在本发明的其他实施例中,非正常状态包括:连接失败和连接无效;

这种情况下,第二确定单元403,具体可以用于:

若接收到除第一交换设备和第二交换设备以外的所有其他交换设备针对查询反馈的连接状态,且均指示为连接失败,则确定SDN控制器故障;

若未接收到针对查询反馈的连接状态,则确定除第一交换设备和第二交换设备以外的所有其他交换设备与SDN控制器的连接状态均指示为连接无效,确定SDN控制器故障;

若接收到除第一交换设备和第二交换设备以外的所有其他交换设备中部分交换设备针对查询反馈的连接状态,且均指示为连接失败,则确定针对查询未反馈连接状态的交换设备与SDN控制器的连接状态均指示为连接无效,且确定SDN控制器故障。

在本发明的其他实施例中,第一确定单元402,具体可以用于:

若除发送第一连接状态的第一交换设备以及发送第二连接状态的第二交换设备以外的所有其他交换设备的数量小于等于预设数量,则查询连接状态。

应用上述实施例,故障服务器接收各个交换设备发送的其与SDN控制器的连接状态,当首次接收到指示为连接失败的第一连接状态时,确定所有其他交换设备与SDN控制器的连接状态;如果确定所有其他交换设备与SDN控制器的连接状态均指示为非正常状态,而在SDN控制器正常的情况下,所有交换设备与SDN控制器的连接状态都指示为非正常状态的可能性非常低,因此可以确定SDN控制器故障,这有效地提高了确定SDN控制器是否故障的准确性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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