具体实施方式
下面结合附图对本发明实施例进行详细描述。
针对现有技术中存在的问题,本发明实施例提出了一种基于LSP的BFD检测方法,针对主备LSP的应用场景(如图1所示)或者等价LSP的应用场景(即两个PE设备之间存在多条等价的LSP,流量可以在这些等价的LSP上进行负载分担),该方法用于对LSP进行BFD检测。
本发明实施例中,该方法应用于包括主动端设备和被动端设备的MPLS网络中,且主动端设备与被动端设备之间存在LSP(在主备LSP的应用场景下,主动端设备与被动端设备之间存在主LSP和备LSP;在等价LSP的应用场景下,主动端设备与被动端设备之间存在多条等价的LSP)。
需要注意的是,主动端设备和被动端设备是相对的,如图1所示的网络示意图,当LSR A需要对主LSP(即LSR A与LSR B之间的LSP)进行BFD检测时,则LSR A为检测的主动端,LSR B为检测的被动端;当LSR B需要对主LSP(即LSR B与LSR A之间的LSP)进行BFD检测时,则LSR B为检测的主动端,LSR A为检测的被动端。
基于上述应用场景,如图2所示,该基于LSP的BFD检测方法包括:
步骤201,主动端设备确定在对LSP进行BFD检测时被动端设备发送BFD报文所使用的最佳传输路径。
具体的,在主备LSP的应用场景下,主动端设备需要确定在对主LSP(即主动端设备与被动端设备之间的主LSP)进行BFD检测时被动端设备发送BFD报文所使用的最佳传输路径;和/或,主动端设备需要确定在对备LSP(即主动端设备与被动端设备之间的备LSP)进行BFD检测时被动端设备发送BFD报文所使用的最佳传输路径;此外,在等价LSP的应用场景下,主动端设备需要确定在对等价LSP(即主动端设备与被动端设备之间的等价LSP)中的第n(n为正整数,且不大于等价LSP的条数)条LSP进行BFD检测时被动端设备发送BFD报文所使用的最佳传输路径。
本发明实施例中,主动端设备确定的该最佳传输路径具体可以为:基于路由的传输路径,或基于LSP的传输路径,或基于CR-LSP(Constraint-basedRouted Label Switched Paths,基于约束路由的标记交换路径)的传输路径(即基于TE(Traffic Engineering,流量工程)LSP的传输路径),或基于GRE(Generic Routing Encapsulation,通用路由封装)的传输路径。
例如,主动端设备根据实际情况直接确定最佳传输路径为基于路由的传输路径A;或者,主动端设备根据实际情况直接确定最佳传输路径为基于LSP的传输路径A(如:主LSP或者备LSP,或者,等价LSP中的第2条LSP);或者,主动端设备根据实际情况直接确定最佳传输路径为基于CR-LSP的传输路径A;或者,主动端设备根据实际情况直接确定最佳传输路径为基于GRE的传输路径A。
本发明实施例的一种优选实施方式中,主动端设备确定该最佳传输路径为与被检测的LSP类型相同且状态(如主备状态或者等价状态)一致的LSP。
具体的,当被检测的LSP为主动端设备与被动端设备之间的主LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的主LSP;当被检测的LSP为主动端设备与被动端设备之间的备LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的备LSP;当被检测的LSP为主动端设备与被动端设备之间的等价LSP中的第n条LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的等价LSP中的第n条LSP;当被检测的LSP为主动端设备与被动端设备之间的主CR-LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的主CR-LSP;当被检测的LSP为主动端设备与被动端设备之间的备CR-LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的备CR-LSP;当被检测的LSP为主动端设备与被动端设备之间的双向隧道LSP的主LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的双向隧道LSP的主LSP;当被检测的LSP为主动端设备与被动端设备之间的双向隧道LSP的备LSP时,主动端设备确定最佳传输路径为被动端设备与主动端设备之间的双向隧道LSP的备LSP。
步骤202,主动端设备向被动端设备发送LSP ping报文,且该LSP ping报文中携带最佳传输路径的信息。
需要注意的是,主动端设备在建立BFD会话之前需要向被动端设备发送LSP ping报文以通告BFD鉴别值,本发明实施例中,可以在LSP ping报文中增加路径选择字段,并通过该路径选择字段携带该最佳传输路径的信息。
本发明实施例的一种优选实施方式中,该路径选择字段中携带的最佳传输路径的信息包括但不限于以下信息之一或任意组合:
路径选择类型:用于表示该路径选择字段中携带的信息的作用。
长度:用于表示数据字段的长度,即路径类型和路径数值的总长度。
路径类型,用于表示被动端设备发送BFD报文时应该使用的最佳传输路径的类型,且该路径类型具体可以为路由,或LSP,或CR-LSP,或GRE;例如,当步骤201中确定的最佳传输路径的类型为路由时,该路径类型为路由;当步骤201中确定的最佳传输路径的类型为LSP时,该路径类型为LSP。
路径标示,用于表示最佳传输路径的状态,如表示最佳传输路径是处于主用状态(主LSP)还是处于备用状态(备LSP)。
路径数值,用于表示最佳传输路径所对应的具体路径;例如,当路径数值为3时,则表示最佳传输路径所对应的具体路径为传输路径3,且当路径类型为路由时,则表示最佳传输路径所对应的具体路径为路由3。
需要注意的是,该路径标示还进一步表示路径数值代表的是传输路径的值或者是传输路径的名称;例如,当路径标示表示路径数值代表的是传输路径的值时,如果路径类型为路由,路径数值为3,则表示最佳传输路径所对应的具体路径为第3条路由;当路径标示表示路径数值代表的是传输路径的名称时,如果路径类型为路由,路径数值为3,则表示最佳传输路径所对应的具体路径为名称为3的路由;又例如,当路径标示表示路径数值代表的是传输路径的值时,如果路径类型为CR-LSP,路径数值为4,则表示最佳传输路径所对应的具体路径为第4个到主动端设备的CR-LSP(如果没有第4个CR-LSP,则对4取余,得到具体的CR-LSP);当路径标示表示路径数值代表的是传输路径的名称时,如果路径类型为CR-LSP,路径数值为4,则表示最佳传输路径所对应的具体路径为隧道名为4的CR-LSP。
步骤203,被动端设备在接收到LSP ping报文之后,利用其中携带的最佳传输路径的信息确定在主动端设备对LSP进行BFD检测时被动端设备发送BFD报文所使用的被选择传输路径。
本发明实施例的一种优选实施方式中,在接收到LSP ping报文之后,被动端设备判断当前是否存在最佳传输路径;如果存在,则确定最佳传输路径为被选择传输路径;如果不存在,则被动端设备进一步判断最佳传输路径的信息中是否携带了路径数值;如果没有携带路径数值,则被动端设备通过预先配置的路径选择策略确定被选择传输路径(如预先配置的路径选择策略为始终确定GRE为被选择传输路径时,则被动端设备直接确定GRE为被选择传输路径);如果携带路径数值,则被动端设备判断当前是否存在对应路径类型(最佳传输路径的信息中携带的路径类型),且与路径标示(最佳传输路径的信息中携带的路径标示)所表示的最佳传输路径的状态一致的传输路径;如果不存在相应传输路径,则被动端设备通过预先配置的路径选择策略确定被选择传输路径;如果存在相应传输路径,则被动端设备利用存在的传输路径以及路径数值确定被选择传输路径。
例如,当最佳传输路径所对应的具体路径为隧道名为4(通过路径数值获知)的主(通过路径标示获知)CR-LSP(通过路径类型获知)时,如果被动端设备确定出当前存在隧道名为4的主CR-LSP,则被动端设备可以确定该被选择传输路径为该隧道名为4的主CR-LSP;如果被动端设备确定出当前不存在隧道名为4的主CR-LSP,则该被动端设备需要进一步利用上述的最佳传输路径的信息确定被选择传输路径。
又例如,当最佳传输路径所对应的具体路径为主(通过路径标示获知)CR-LSP(通过路径类型获知)时,如果被动端设备确定出当前存在主CR-LSP(如隧道名为1的主CR-LSP,或隧道名为2的主CR-LSP等),则被动端设备可以确定该被选择传输路径为任意的一个主CR-LSP;如果被动端设备确定出当前不存在主CR-LSP,则该被动端设备需要进一步利用上述的最佳传输路径的信息确定被选择传输路径。
上述实例分别针对最佳传输路径的信息中携带了路径数值以及未携带路径数值的情况,当上述两种情况需要被动端设备进一步利用最佳传输路径的信息确定被选择传输路径时,被动端设备判断最佳传输路径的信息中是否携带了路径数值;如果没有携带路径数值,则被动端设备直接确定GRE为被选择传输路径;如果携带路径数值(如上述实施例中为4),则被动端设备判断当前是否存在主CR-LSP;如果不存在主CR-LSP,则被动端设备直接确定GRE为被选择传输路径;如果存在主CR-LSP,则被动端设备利用存在的主CR-LSP以及路径数值4确定被选择传输路径;如当被动端设备上有3条主CR-LSP时,可以选取主CR-LSP 1(即3条传输路径对路径数值4取余)为被选择传输路径。
基于上述的协商过程,被动端设备可以确定出被选择传输路径,基于此,则该方法还可以包括以下步骤:
步骤204,在主动端设备对LSP进行BFD检测时,被动端设备通过被选择传输路径向主动端设备发送BFD报文;由主动端设备根据是否接收到来自被动端设备的BFD报文检测LSP是否故障。
例如,在主动端设备对主LSP(即主动端设备与被动端设备之间的主LSP)进行BFD检测时,如果通过上述步骤确定出被选择传输路径为主LSP(即被动端设备与主动端设备之间的主LSP),则被动端设备需要通过被动端设备与主动端设备之间的主LSP向主动端设备发送BFD报文,由主动端设备根据是否接收到来自被动端设备的BFD报文检测主LSP是否故障;又例如,在主动端设备对备LSP(即主动端设备与被动端设备之间的备LSP)进行BFD检测时,如果通过上述步骤确定出被选择传输路径为备LSP(即被动端设备与主动端设备之间的备LSP),则被动端设备需要通过被动端设备与主动端设备之间的备LSP向主动端设备发送BFD报文,由主动端设备根据是否接收到来自被动端设备的BFD报文检测备LSP是否故障。
综上所述,本发明实施例中,主动端设备通过与被动端设备协商被动端设备发送BFD报文所使用的传输路径,从而可以准确的检测出主LSP和备LSP是否发生故障或者准确的检测出等价LSP中的各LSP是否发生故障,继而避免了链路故障时BFD的震荡。
本发明实施例中,在不存在最佳传输路径时,被动端设备利用最佳传输路径的信息确定了被选择传输路径之后,如果该被动端设备获知自身又重新生成了最佳传输路径,则被动端设备还可以确定该重新生成的最佳传输路径为被选择传输路径。例如,被动端设备在确定出当前不存在隧道名为4的CR-LSP(即最佳传输路径),且确定被选择传输路径为GRE之后,如果被动端设备上重新生成了隧道名为4的CR-LSP,则该被动端设备需要确定该隧道名为4的CR-LSP为被选择传输路径。
进一步的,被动端设备确定重新生成的最佳传输路径为被选择传输路径之后,还可以包括以下情况:
一、如果当前BFD状态为DOWN状态,则在主动端设备对LSP进行BFD检测时,被动端设备停止在当前的被选择传输路径上向主动端设备发送BFD报文,并使用重新生成的被选择传输路径向主动端设备发送BFD报文。
二、如果当前BFD状态为Init状态或者UP状态,则在主动端设备对LSP进行BFD检测时,被动端设备在重新生成的被选择传输路径上生成需要向主动端设备发送BFD报文,但是并不立刻发送;且被动端设备在之前的被选择传输路径上向主动端设备发送BFD报文,该BFD报文中的P标志位被置位,且该BFD报文中携带以下信息:路径变化类型:用于表示路径变化的信息;长度:用于表示路径类型与路径数值的长度;路径类型:用于表示重新生成的被选择传输路径的类型,其具体为路由,或LSP,或CR-LSP,或GRE;路径数值:用于表示重新生成的被选择传输路径所对应的具体路径,且对于CR-LSP和GRE等类型来说,该路径数值还可以是对应的隧道名称。
主动端设备在接收到P标志位被置位的BFD报文之后,根据BFD报文中携带的信息获知主动端设备在对LSP进行BFD检测时,被动端设备返回的BFD报文的被选择传输路径发生变化;之后,主动端设备在下一个向被动端设备发送的BFD报文中将F标志位置位;以及根据设备的实际情况,主动端设备可以启动首包超时定时器机制,若在首包超时定时器超时之前没有接收到此BFD检测过程所对应BFD报文,则认为发生故障。
被动端设备在接收到F标志位被置位的BFD报文之后,被动端设备停止在当前的被选择传输路径上向主动端设备发送BFD报文,并使用重新生成的被选择传输路径向主动端设备发送BFD报文。
为了节约资源,本发明实施例中还可以减少BFD会话的数量,基于此,在主动端设备对LSP进行BFD检测,且被选择传输路径为与被检测的LSP类型相同且状态一致的LSP时,如果被动端设备需要对被选择传输路径进行BFD检测,则主动端设备对LSP进行BFD检测时的BFD会话与被动端设备对被选择传输路径进行BFD检测时的BFD会话可以使用同一个BFD会话,从而减少了BFD会话的数量,并节约了BFD会话的资源。
具体的,主动端设备对LSP进行BFD检测时的BFD会话与被动端设备对被选择传输路径进行BFD检测时的BFD会话使用同一BFD会话具体包括:
在主动端设备对主动端设备与被动端设备之间的主LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的主LSP,且被动端设备需要对被动端设备与主动端设备之间的主LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的主LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的主LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在主动端设备对主动端设备与被动端设备之间的备LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的备LSP,且被动端设备需要对被动端设备与主动端设备之间的备LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的备LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的备LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在主动端设备对主动端设备与被动端设备之间的等价LSP中的第n条LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的等价LSP中的第n条LSP,且被动端设备需要对被动端设备与主动端设备之间的等价LSP中的第n条LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的等价LSP中的第n条LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的等价LSP中的第n条LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在主动端设备对主动端设备与被动端设备之间的主CR-LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的主CR-LSP,且被动端设备需要对被动端设备与主动端设备之间的主CR-LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的主CR-LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的主CR-LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在主动端设备对主动端设备与被动端设备之间的备CR-LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的备CR-LSP,且被动端设备需要对被动端设备与主动端设备之间的备CR-LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的备CR-LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的备CR-LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在主动端设备对主动端设备与被动端设备之间的双向隧道LSP的主LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的双向隧道LSP的主LSP,且被动端设备需要对被动端设备与主动端设备之间的双向隧道LSP的主LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的双向隧道LSP的主LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的双向隧道LSP主LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在主动端设备对主动端设备与被动端设备之间的双向隧道LSP的备LSP进行BFD检测时,如果被选择传输路径为被动端设备与主动端设备之间的双向隧道LSP的备LSP,且被动端设备需要对被动端设备与主动端设备之间的双向隧道LSP的备LSP进行BFD检测,则主动端设备对主动端设备与被动端设备之间的双向隧道LSP的备LSP进行BFD检测时的BFD会话与被动端设备对被动端设备与主动端设备之间的双向隧道LSP的备LSP进行BFD检测时的BFD会话使用同一BFD会话。
进一步的,针对上述技术方案,在主动端设备对LSP进行BFD检测时的BFD会话与被动端设备对被选择传输路径进行BFD检测时的BFD会话使用同一BFD会话时,主动端设备对LSP进行BFD检测时的BFD会话对应的会话属性为主动属性与被动属性,且被动端设备对被选择传输路径进行BFD检测时的BFD会话对应的会话属性为主动属性与被动属性;
当主动端设备通过BFD报文检测到LSP故障后,如果BFD报文对应的BFD会话对应有主动属性,则通知将在该LSP上传输的流量切换到其他LSP上;以及,当主动端设备通过BFD报文检测到LSP故障后,如果主动端设备在预设第一时间(如3秒或用户设定时间)内未接收到来自被动端设备的针对该LSP的BFD报文,则将该BFD报文对应的BFD会话的属性修改为被动属性(即取消主动属性,此BFD会话按照被动属性的状态运行),取消此BFD会话与LSP绑定关系,并重新为LSP创建BFD会话;
当被动端设备通过BFD报文检测到被选择传输路径故障后,如果BFD报文对应的BFD会话对应有主动属性,则通知将在被选择传输路径上传输的流量切换到其他LSP上;以及,如果被动端设备在预设第二时间(如3秒或用户设定时间)内未接收到来自主动端设备的针对该被选择传输路径的BFD报文,则将该BFD报文对应的BFD会话的属性修改为被动属性(即取消主动属性,此BFD会话按照被动属性的状态运行),取消此BFD会话与LSP绑定关系,并重新为被选择传输路径创建BFD会话。
本发明实施例中,主动端设备根据是否接收到来自被动端设备的BFD报文检测LSP是否故障之后,如果主动端设备检测到LSP故障,则向被动端设备发送状态为DOWN的BFD报文,由被动端设备利用状态为DOWN的BFD报文检测到LSP故障;例如,主动端设备在检测到主LSP(或等价LSP中的一条LSP)故障之后,则立刻向被动端设备发送一个状态为DOWN的BFD报文(此BFD报文可以通过主LSP进行发送,也可以通过备LSP进行发送;对于等价LSP则可以通过等价中的其他LSP进行发送);和/或,
主动端设备根据是否接收到来自被动端设备的BFD报文检测LSP是否故障之后,如果主动端设备检测到LSP故障,则删除该故障的LSP对应的BFD会话,并在延迟一段预设第三时间之后,如果获知该故障的LSP还存在,则主动端设备重新创建LSP对应的BFD会话;其中,该延迟的预设第三时间可以大于等于BFD的一个检测周期;且在新的BFD会话建立之前主LSP的状态应该一直标示为故障。
本发明实施例中,主动端设备根据是否接收到来自被动端设备的BFD报文检测LSP是否故障之后,如果主动端设备检测到主动端设备与被动端设备之间的主LSP故障,则可以将该主LSP上的流量切换到主动端设备与被动端设备之间的备LSP上;以及,主动端设备在检测到该主LSP和该备LSP均故障之后,如果当前还存在其他可用的传输路径,则将该主LSP和该备LSP上的流量切换到其他可用的传输路径上;或者,
主动端设备根据是否接收到来自被动端设备的BFD报文检测LSP是否故障之后,如果主动端设备检测到主动端设备与被动端设备之间的等价LSP中的一条LSP故障,则可以将该条LSP上的流量切换到主动端设备与被动端设备之间的等价LSP中的其他LSP上;以及,主动端设备在检测到等价LSP中的各条LSP均故障之后,如果当前还存在其他可用的传输路径,则将等价LSP中的各条LSP上的流量切换到其他可用的传输路径上。
以下结合图3所示的具体应用场景进行说明。
主动端设备在对主LSP(主动端设备与被动端设备之间的主LSP)进行BFD检测时不指定路径选择信息,由被动端设备根据预先配置的路径选择策略确定使用路由作为被选择传输路径;主动端设备在对备LSP(主动端设备与被动端设备之间的备LSP)进行BFD检测时指定使用被动端设备与主动端设备之间的备LSP作为最佳传输路径,由被动端设备根据最佳传输路径的信息确定使用被动端设备与主动端设备之间的备LSP作为被选择传输路径。
当主动端设备与被动端设备之间的主LSP出现故障之后,主动端设备针对主LSP的BFD检测过程可以检测到故障,而主动端设备针对主动端设备与被动端设备之间的备LSP的BFD检测过程不会检测到故障,因此主动端设备可以将主LSP上的流量切换到备LSP上;如果后续备LSP也出现了故障,则说明整个LSP不可用,此时如果用户还配置了其他隧道(如GRE),则可以将流量切换到其他隧道上。
基于与上述方法同样的发明构思,本发明还提出了一种基于标记交换路径LSP的双向转发检测BFD检测设备,作为主动端设备应用于包括所述主动端设备和被动端设备的网络中,且所述主动端设备与所述被动端设备之间存在LSP,如图4所示,该主动端设备包括:
确定模块11,用于确定所述主动端设备在对LSP进行BFD检测时所述被动端设备发送BFD报文所使用的最佳传输路径;
发送模块12,用于向所述被动端设备发送LSP ping报文,且所述LSP ping报文中携带所述最佳传输路径的信息;由所述被动端设备利用所述最佳传输路径的信息确定在所述主动端设备对所述LSP进行BFD检测时所述被动端设备发送BFD报文所使用的被选择传输路径;
接收模块13,用于在所述主动端设备对所述LSP进行BFD检测时,通过所述被选择传输路径接收所述被动端设备向所述主动端设备发送的BFD报文;
检测模块14,用于根据是否接收到所述被动端设备通过所述被选择传输路径向所述主动端设备发送BFD报文检测所述LSP是否故障。
所述确定模块11,具体用于确定所述最佳传输路径为与所述被检测的LSP类型相同且状态一致的LSP。
所述确定模块11,进一步用于当所述被检测的LSP为所述主动端设备与所述被动端设备之间的主LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的主LSP;当所述被检测的LSP为所述主动端设备与所述被动端设备之间的备LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的备LSP;当所述被检测的LSP为所述主动端设备与所述被动端设备之间的等价LSP中的第n条LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP;当所述被检测的LSP为所述主动端设备与所述被动端设备之间的主基于约束路由的标记交换路径CR-LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的主CR-LSP;当所述被检测的LSP为所述主动端设备与所述被动端设备之间的备CR-LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的备CR-LSP;当所述被检测的LSP为所述主动端设备与所述被动端设备之间的双向隧道LSP的主LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的双向隧道LSP的主LSP;当所述被检测的LSP为所述主动端设备与所述被动端设备之间的双向隧道LSP的备LSP时,确定所述最佳传输路径为所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP。
本发明实施例中,所述LSP ping报文中携带的所述最佳传输路径的信息,具体包括:路径类型,所述路径类型用于表示所述最佳传输路径的类型,且所述路径类型具体为路由,或LSP,或CR-LSP,或GRE;路径数值,所述路径数值用于表示所述最佳传输路径所对应的具体路径;路径标示,所述路径标示用于表示所述最佳传输路径的状态。
所述确定模块11,还用于在所述主动端设备对所述LSP进行BFD检测,且所述被选择传输路径为与所述被检测的LSP类型相同且状态一致的LSP时,如果所述被动端设备需要对所述被选择传输路径进行BFD检测,则确定所述主动端设备对所述LSP进行BFD检测时的BFD会话与所述被动端设备对所述被选择传输路径进行BFD检测时的BFD会话使用同一BFD会话。
所述确定模块11,进一步用于在所述主动端设备对所述主动端设备与所述被动端设备之间的主LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的主LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的主LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的主LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的主LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的备LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的备LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的备LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的备LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的备LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的等价LSP中的第n条LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的等价LSP中的第n条LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的主CR-LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的主CR-LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的主CR-LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的主CR-LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的主CR-LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的备CR-LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的备CR-LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的备CR-LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的备CR-LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的备CR-LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的主LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间双向隧道LSP的主LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的双向隧道LSP的主LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的主LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的双向隧道LSP的主LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的备LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的备LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP进行BFD检测时的BFD会话使用同一BFD会话。
在所述主动端设备对所述LSP进行BFD检测时的BFD会话与所述被动端设备对所述被选择传输路径进行BFD检测时的BFD会话使用同一BFD会话时,所述主动端设备对所述LSP进行BFD检测时的BFD会话对应的会话属性为主动属性与被动属性,且所述被动端设备对所述被选择传输路径进行BFD检测时的BFD会话对应的会话属性为主动属性与被动属性;
所述检测模块14,还用于当通过BFD报文检测到所述LSP故障后,如果所述BFD报文对应的BFD会话对应有主动属性,则通知将在所述LSP上传输的流量切换到其他LSP上;以及,如果所述主动端设备在预设第一时间内未接收到来自所述被动端设备的针对所述LSP的BFD报文,将所述BFD报文对应的BFD会话的属性修改为被动属性,并重新为所述LSP创建BFD会话。
所述检测模块14,还用于在检测到所述LSP故障之后,向所述被动端设备发送状态为DOWN的BFD报文,由所述被动端设备利用所述状态为DOWN的BFD报文检测到所述LSP故障;和/或,在检测到所述LSP故障之后,删除所述故障的LSP对应的BFD会话,并在延迟一段预设第三时间之后,如果所述故障的LSP还存在,则重新创建所述LSP对应的BFD会话。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明还提出了一种基于标记交换路径LSP的双向转发检测BFD检测设备,作为被动端设备应用于包括主动端设备和所述被动端设备的网络中,且所述主动端设备与所述被动端设备之间存在LSP,如图5所示,该被动端设备包括:
接收模块21,用于接收来自所述主动端设备的LSP ping报文,且所述LSPping报文中携带所述主动端设备确定的在对LSP进行BFD检测时所述被动端设备发送BFD报文所使用的最佳传输路径的信息;
确定模块22,用于在接收到所述LSP ping报文后,利用所述最佳传输路径的信息确定在所述主动端设备对所述LSP进行BFD检测时所述被动端设备发送BFD报文所使用的被选择传输路径;
发送模块23,用于在所述主动端设备对所述LSP进行BFD检测时,通过所述被选择传输路径向所述主动端设备发送BFD报文;由所述主动端设备根据是否接收到来自所述被动端设备的BFD报文检测所述LSP是否故障。
本发明实施例中,所述LSP ping报文中携带的所述最佳传输路径的信息,具体包括:路径类型,所述路径类型用于表示所述最佳传输路径的类型,且所述路径类型具体为路由,或LSP,或基于约束路由的标记交换路径CR-LSP,或通用路由封装GRE;路径数值,所述路径数值用于表示所述最佳传输路径所对应的具体路径;路径标示,所述路径标示用于表示所述最佳传输路径的状态。
所述确定模块22,具体用于判断当前是否存在所述最佳传输路径;如果存在,则确定所述最佳传输路径为所述被选择传输路径;如果不存在,则判断所述最佳传输路径的信息中是否携带了路径数值;如果没有携带路径数值,则通过预先配置的路径选择策略确定所述被选择传输路径;如果携带路径数值,则判断当前是否存在对应所述最佳传输路径的信息中携带的路径类型,且与路径标示所表示的最佳传输路径的状态一致的传输路径;如果不存在相应的传输路径,则通过预先配置的路径选择策略确定所述被选择传输路径;如果存在相应的传输路径,则利用存在的传输路径以及所述路径数值确定所述被选择传输路径。
所述确定模块22,还用于在不存在所述最佳传输路径时,如果所述被动端设备获知自身重新生成了所述最佳传输路径,则确定所述重新生成的最佳传输路径为所述被选择传输路径;以及,
如果当前BFD状态为DOWN状态,则在所述主动端设备对所述LSP进行BFD检测时,停止在当前的被选择传输路径上向所述主动端设备发送BFD报文,并使用所述重新生成的被选择传输路径向所述主动端设备发送BFD报文;或者,如果当前BFD状态为Init状态或者UP状态,则在所述主动端设备对所述LSP进行BFD检测时,在当前的被选择传输路径上向所述主动端设备发送BFD报文;其中,所述BFD报文中的P标志位被置位,且所述BFD报文中携带以下信息:路径类型,所述路径类型用于表示所述重新生成的被选择传输路径的类型,且所述重新生成的被选择传输路径的类型具体为路由,或LSP,或CR-LSP,或GRE;路径数值,所述路径数值用于表示所述重新生成的被选择传输路径所对应的具体路径;在接收到F标志位被置位的BFD报文之后,停止在当前的被选择传输路径上向所述主动端设备发送BFD报文,并使用所述重新生成的被选择传输路径向所述主动端设备发送BFD报文。
所述确定模块22,还用于在所述主动端设备对所述LSP进行BFD检测,且所述被选择传输路径为与所述被检测的LSP类型相同且状态一致的LSP时,如果所述被动端设备需要对所述被选择传输路径进行BFD检测,则确定所述主动端设备对所述LSP进行BFD检测时的BFD会话与所述被动端设备对所述被选择传输路径进行BFD检测时的BFD会话使用同一BFD会话。
所述确定模块22,进一步用于在所述主动端设备对所述主动端设备与所述被动端设备之间的主LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的主LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的主LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的主LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的主LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的备LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的备LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的备LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的备LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的备LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的等价LSP中的第n条LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的等价LSP中的第n条LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的等价LSP中的第n条LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的主CR-LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的主CR-LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的主CR-LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的主CR-LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的主CR-LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的备CR-LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的备CR-LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的备CR-LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的备CR-LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的备CR-LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的主LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的双向隧道LSP的主LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的双向隧道LSP的主LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的主LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的双向隧道LSP的主LSP进行BFD检测时的BFD会话使用同一BFD会话;或者,
在所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的备LSP进行BFD检测时,如果所述被选择传输路径为所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP,且所述被动端设备需要对所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP进行BFD检测,则确定所述主动端设备对所述主动端设备与所述被动端设备之间的双向隧道LSP的备LSP进行BFD检测时的BFD会话与所述被动端设备对所述被动端设备与所述主动端设备之间的双向隧道LSP的备LSP进行BFD检测时的BFD会话使用同一BFD会话。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。