一种基于BFD的故障检测方法及装置与流程

文档序号:12491605阅读:380来源:国知局
一种基于BFD的故障检测方法及装置与流程

本申请涉及网络通信技术领域,尤其涉及一种基于BFD的故障检测方法及装置。



背景技术:

为提高网络信息传输的可靠性,网络设备需要能够尽快地检测出本地与邻居设备之间的通信故障,以便及时采取相应的措施,避免通信中断。BFD(Bidirectional Forwarding Detection,双向转发检测)协议提供了一种全网统一的故障检测机制,该机制不仅可以提供毫秒级的故障检测,而且,考虑到一台网络设备上可以同时运行多种类型的上层协议,BFD协议还可以通过不同的BFD会话,同时为该网络设备上的各上层协议提供故障检测服务,以保证该网络设备上收发的各种上层协议信息都可以得到可靠地传输。其中,BFD会话包括单跳会话和多跳会话,单跳会话用于源与目的设备之间直连链路的连通性检测,多跳会话则既可用于其间直连链路的连通性检测,也可用于其间非直连链路的连通性检测。当通过该单跳会话或者多跳会话检测到源与目的设备之间的链路连通时,认为该单跳会话或者多跳会话的检测状态可达,否则,为不可达。在实际的组网环境中,当使用BFD协议对一组源与目的设备之间的链路进行连通性检测时,该源与目的设备之间,可能会同时存在单跳会话和多跳会话。比如,当一组源与目的设备同时互为双方的OSPF(Open Shortest Path First,开放式最短路径优先)协议邻居和BGP(Border Gateway Protocol,边界网关协议)邻居时,由于OSPF协议邻居通常由直连链路连接,而BGP邻居则可以通过直连链路和/或非直连链路连接,所以BFD协议通常会分别使用单跳会话和多跳会话为OSPF协议和BGP提供故障检测服务,从而导致该源与目的设备之间同时存在单跳会话和多跳会话。

在现有技术中,该源与目的设备之间的单跳会话和多跳会话单独运行、互不干扰。但是,源与目的设备之间单跳会话和多跳会话的同时运行,不仅会加重该源与目的设备的系统负担,也会为其周围的网络环境带来较大的通信压力。



技术实现要素:

有鉴于此,本申请提供一种基于BFD的故障检测方法及装置,以在组网环境中的源与目的设备之间同时存在单跳会话和多跳会话时,减轻源与目的设备的系统负担、并缓解其周围网络环境的通信压力。

根据本申请实施例的第一方面,提供一种基于BFD的故障检测方法,所述方法应用于一包含源设备、目的设备的系统,其中,所述源设备和目的设备之间,存在至少一条直连链路,所述源设备和目的设备均支持双向转发检测BFD协议检测,所述方法包括:

针对任一目的设备,源设备确定本地与该目的设备之间同时存在单跳会话和多跳会话;

源设备根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行配置;其中,在不存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为普通模式;在存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为查询模式;在普通模式下,源设备通过会话,周期性地向目的设备发送BFD控制报文,用以检测本地与目的设备之间链路的连通性;在查询模式下,源设备停止通过会话向目的设备发送BFD控制报文。

根据本申请实施例的第二方面,一种基于BFD的故障检测装置,所述装置应用于一系统中的源设备,所述系统包含:源设备和目的设备,其中,所述源设备和目的设备之间,存在至少一条直连链路,所述源设备和目的设备均支持双向转发检测BFD协议检测,所述装置包括:

会话确定单元,用于针对任一目的设备,确定本地与该目的设备之间同时存在单跳会话和多跳会话;

模式配置单元,用于在会话确定单元确定本地与该目的设备之间同时存在单跳会话和多跳会话的条件下,根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行配置;其中,在不存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为普通模式;在存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为查询模式;在普通模式下,源设备通过会话,周期性地向目的设备发送BFD控制报文,用以检测本地与目的设备之间链路的连通性;在查询模式下,源设备停止通过会话向目的设备发送BFD控制报文。

本申请中,当源设备确定本地与目的设备之间同时存在单跳会话和多跳会话时,会进一步根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行灵活配置,并在存在检测状态可达的单跳会话时,将多跳会话配置为查询模式,以停止通过该多跳会话对源与目的设备之间的链路连通性进行检测,因为只要源与目的设备之间的直连链路处于连通状态,该源与目的设备便可以实现可靠的通信。由此可见,本申请可以在上述情况下,通过将多跳会话配置为查询模式的方式,停止通过多跳会话向目的设备发送BFD控制报文,从而减轻源与目的设备的系统负担、以及其周围网络环境的通信压力。

附图说明

图1是本申请一种基于BFD的故障检测方法的一示例性场景示意图;

图2是本申请一种基于BFD的故障检测方法流程图;

图3是本申请一种基于BFD的故障检测方法的第一实施例流程图;

图4是本申请一种基于BFD的故障检测方法的第二实施例流程图;

图5是本申请一种基于BFD的故障检测装置结构图;

图6是本申请中模式配置单元的第一结构图;

图7是本申请中模式配置单元的第二结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,图1是本申请一种基于BFD的故障检测方法的一示例性场景示意图。本场景图描述了一包含源设备、目的设备以及中间设备的系统。其中,源设备和目的设备之间存在至少一条直连链路、以及一条经过中间设备的非直连链路,且源设备和目的设备均支持BFD协议检测。本领域技术人员可以理解的是,BFD协议检测一般通过单跳会话和/或多跳会话对源与目的设备之间的链路进行连通性检测,其中,单跳会话由源IP、目的IP以及出接口三元属性唯一标识,常用于源与目的设备之间直连链路的连通性检测,由于源设备和目的设备可分别配置多个出接口,一组源与目的设备之间可能同时存在多个单跳会话,每一单跳会话用于对通过该单跳会话对应的出接口连接源与目的设备的链路的连通性进行检测;而多跳会话由源IP和目的IP二元属性唯一标识,既可用于源与目的设备之间直连链路的连通性检测,也可用于其间非直连链路的连通性检测,且在一组IP地址唯一确定的源与目的设备之间,多跳会话只有一个,当源设备通过多跳会话对本地与目的设备之间的链路进行检测时,源设备只关心本地与目的设备之间的链路是否可达,而不关心该链路具体经过了哪些中间设备。需要指出的是,当为源设备和/或目的设备同时配置多个IP地址时,该源与目的设备之间可同时存在的多跳会话将不止一个。在实际的组网环境中,当出现如图1所示的源与目的设备之间同时存在单跳会话和多跳会话的情况时,现有技术会使单跳会话和多跳会话同时运行,这不仅会加重该源与目的设备的系统负担,也会为其周围的网络环境带来较大的通信压力。

针对这一问题,本申请提出了一种基于BFD的故障检测方法,该方法可以在组网环境中的源与目的设备之间同时存在单跳会话和多跳会话时,减轻源与目的设备的系统负担、缓解其周围网络环境的通信压力。

为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

参见图2,图2是本申请一种基于BFD的故障检测方法流程图,该流程图可以包括以下步骤:

步骤201:针对任一目的设备,源设备确定本地与该目的设备之间同时存在单跳会话和多跳会话。

本实施例中,该方法可以应用于一包含源设备、目的设备、以及至少一台中间设备的系统。该系统中,源设备和目的设备之间,存在至少一条直连链路、以及至少一条经过中间设备的非直连链路,且源设备和目的设备均支持BFD协议检测。其中,BFD协议检测的基本工作原理为:会话双方周期性地互相发送BFD控制报文,如果在一定时间内收到对方返回的响应报文,则认为连接本地与对端设备的链路处于连通状态。当然,在以上所述系统的基础上,由于多跳会话既可以检测源与目的设备之间直连链路的连通性,也可检测其间非直连链路的连通性,故该方法应用的系统也可以不包括中间设备、以及经由中间设备形成的非直连链路。需要指出的是,会话双方都可以是源设备和/或目的设备,这里的“源”与“目的”仅表达了BFD控制报文传输的方向。

本实施例中,当在源设备与目的设备之间创建会话时,可能会使得该源设备和目的设备之间满足同时存在单跳会话和多跳会话的条件;当在源设备与目的设备之间删除会话时,则可能会破坏上述条件。所以在执行创建和删除操作时,需要重新确定源设备和目的设备之间是否同时存在单跳会话和多跳会话,并在确定源设备和目的设备之间同时存在单跳会话和多跳会话时,执行步骤202。

作为一个优选的实施例,当源设备和/或目的设备同时具有多个IP地址时,该组源与目的设备之间客观上同时存在的单跳会话和多跳会话可能具有不同的源IP和目的IP,此时,我们认为该单跳会话和多跳会话将分别用于检测在同一组物理源与目的设备中虚拟出的不同逻辑设备组之间的链路连通性,所以在这种情况下并不需要将其中的多跳会话配置为查询模式。

步骤202:源设备根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行配置;其中,在不存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为普通模式;在存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为查询模式;在普通模式下,源设备通过会话,周期性地向目的设备发送BFD控制报文,用以检测本地与目的设备之间链路的连通性;在查询模式下,源设备停止通过会话向目的设备发送BFD控制报文。

本实施例中,当满足步骤201的条件时,源设备需进一步根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行配置。比如,源设备在本地与目的设备之间执行单跳会话删除操作后、或者在检测到本地与目的设备之间的一个或多个单跳会话的检测状态由可达变为不可达后,可进一步判断在其余的单跳会话中是否仍然存在检测状态可达的单跳会话,如果其余的单跳会话中仍然存在检测状态可达的单跳会话,则维持该多跳会话为查询模式不变,从而在保证源与目的设备之间通信可靠的前提下,省去了多跳会话运行带来的开销;反之,则需要保证该源设备与目的设备之间的多跳会话处于普通模式,以实时对该源与目的设备之间非直连链路的连通性进行检测。特别地,在源设备确定有单跳会话的检测状态由不可达变为可达后,可直接将所存在的多跳会话配置为查询模式。

需要指出的是,上述“配置”可理解为确保一会话处于查询模式或者普通模式,在实际情况中,应根据“配置”操作前该会话所处的模式,灵活地将“配置”操作处理为“维持”操作或者“迁移”操作。

从以上方法可以看出,当源设备确定本地与目的设备之间同时存在单跳会话和多跳会话时,会进一步根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行灵活配置,并在存在检测状态可达的单跳会话时,将多跳会话配置为查询模式,以停止通过该多跳会话对源与目的设备之间的链路连通性进行检测,因为只要源与目的设备之间的直连链路处于连通状态,该源与目的设备便可以实现可靠的通信。由此可见,本申请可以在上述情况下,通过将多跳会话配置为查询模式的方式,停止通过多跳会话向目的设备发送BFD控制报文,从而减轻源与目的设备的系统负担、以及其周围网络环境的通信压力。

为更好地将本申请应用于实际需求中,下面通过两个具体的实施例,对本申请提供的方法进行补充性示例说明:

参见图3,图3是本申请一种基于BFD的故障检测方法的一个实施例流程图,该流程图可包括以下步骤:

步骤301:源设备在本地与目的设备之间创建或删除会话。

本实施例中,所创建或者所删除的会话可以为单跳会话,也可以为多跳会话。

步骤302:源设备确定在创建或删除会话后,本地与该目的设备之间是否同时存在单跳会话和多跳会话,如果存在,则执行步骤303;如果不存在,则结束。

本实施例中,所存在的单跳会话可以为一个单跳会话,也可以为多个单跳会话;所存在的多跳会话一般为一个多跳会话。

步骤303:源设备检测本地与目的设备之间是否存在检测状态可达的单跳会话,如果是,则执行步骤304;否则执行步骤305。

本实施例中,当仅有一个单跳会话的检测状态为可达时,即可执行步骤304,其中,当步骤301中创建了一个新的单跳会话时,该仅有的可达单跳会话可以为该新创建的单跳会话,也可以为之前已经存在的单跳会话;当步骤301中删除了一个单跳会话时,该仅有的可达单跳会话可以为删除后剩余的单跳会话中的一个。

步骤304:源设备将多跳会话配置为查询模式,并结束。

本实施例中,如果多跳会话已经处于查询模式,则结束;如果该多跳会话处于普通模式,则将该多跳会话由普通模式迁移至查询模式。

步骤305:源设备将多跳会话配置为普通模式,并结束。

参见图4,图4是本申请一种基于BFD的故障检测方法的另一个实施例流程图,该流程图可包括以下步骤:

步骤401:源设备在确定本地与目的设备之间同时存在单跳会话和多跳会话的条件下,判断是否存在检测状态变化的单跳会话,如果存在,则执行步骤402。

步骤402:源设备判断检测状态变化的单跳会话是由可达变为不可达,还是由不可达变为可达,如果是由可达变为不可达,则执行步骤403;如果是由不可达变为可达,则执行步骤404。

步骤403:源设备判断所存在的单跳会话中是否存在检测状态可达的单跳会话,如果是,则执行步骤404;否则执行步骤405。

步骤404:源设备将多跳会话配置为查询模式,并结束。

步骤405:源设备将多跳会话配置为普通模式,并结束。

从以上两个实施例可以看出,当源设备确定本地与目的设备之间同时存在单跳会话和多跳会话时,会进一步根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行灵活配置,并在存在检测状态可达的单跳会话时,将多跳会话配置为查询模式,以停止通过该多跳会话对源与目的设备之间的链路连通性进行检测,因为只要源与目的设备之间的直连链路处于连通状态,该源与目的设备便可以实现可靠的通信。由此可见,本申请可以在上述情况下,通过将多跳会话配置为查询模式的方式,停止通过多跳会话向目的设备发送BFD控制报文,从而减轻源与目的设备的系统负担、以及其周围网络环境的通信压力。

与前述一种控制服务器关机的方法的实施例相对应,本申请还提供了一种控制服务器关机的装置的实施例。

本申请一种控制服务器关机的装置的实施例可以应用在负载均衡设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在负载均衡设备上的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。

参见图5,图5是本申请一种基于BFD的故障检测装置结构图,该装置应用于一系统中的源设备,该系统可以包含:源设备和目的设备、其中,源设备和目的设备之间,存在至少一条直连链路,源设备和目的设备均支持双向转发检测BFD协议检测,该装置包括:会话确定单元510、模式配置单元520。

其中,会话确定单元510,用于针对任一目的设备,确定本地与该目的设备之间同时存在单跳会话和多跳会话;

模式配置单元520,用于在会话确定单元确定本地与该目的设备之间同时存在单跳会话和多跳会话的条件下,根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行配置;其中,在不存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为普通模式;在存在检测状态可达的单跳会话的情况下,将所存在的多跳会话配置为查询模式;在普通模式下,源设备通过会话,周期性地向目的设备发送BFD控制报文,用以检测本地与目的设备之间链路的连通性;在查询模式下,源设备停止通过会话向目的设备发送BFD控制报文。

在本实施例的一种实现方式中,上述会话确定单元510,具体可用于:在本地与目的设备之间创建或删除新会话后,确定本地与该目的设备之间是否同时存在单跳会话和多跳会话。

在本实施例的另一种实现方式中,上述模式配置单元520,可以包括:确定子单元、判断子单元、配置子单元,具体可参见图6。

其中,确定子单元,用于确定执行单跳会话删除操作;

判断子单元,用于在确定子单元确定执行单跳会话删除操作后,判断删除后剩余的单跳会话中是否存在检测状态可达的单跳会话;

配置子单元,用于根据判断子单元的判断结果对所存在的多跳会话的模式进行配置。

在本实施例的另一种实现方式中,上述模式配置单元520,可以包括:确定子单元、判断子单元、配置子单元,具体可参见图6。

其中,确定子单元,用于确定有单跳会话的检测状态由可达变为不可达;

判断子单元,用于在确定子单元确定有单跳会话的检测状态由可达变为不可达后,判断是否存在检测状态可达的单跳会话;

配置子单元,用于根据判断子单元的判断结果对所存在的多跳会话的模式进行配置。

在本实施例的另一种实现方式中,上述模式配置单元520可以包括:确定子单元、配置子单元,具体可参见图7。

其中,确定子单元,用于确定有单跳会话的检测状态由不可达变为可达;

配置子单元,用于在确定子单元确定有单跳会话的检测状态由不可达变为可达后,直接将所存在的多跳会话配置为查询模式。

从以上装置实施例可以看出,当源设备确定本地与目的设备之间同时存在单跳会话和多跳会话时,会进一步根据本地与该目的设备之间是否存在检测状态可达的单跳会话,对所存在的多跳会话的模式进行灵活配置,并在存在检测状态可达的单跳会话时,将多跳会话配置为查询模式,以停止通过该多跳会话对源与目的设备之间的链路连通性进行检测,因为只要源与目的设备之间的直连链路处于连通状态,该源与目的设备便可以实现可靠的通信。由此可见,本申请可以在上述情况下,通过将多跳会话配置为查询模式的方式,停止通过多跳会话向目的设备发送BFD控制报文,从而减轻源与目的设备的系统负担、以及其周围网络环境的通信压力。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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