一种故障检测的方法及装置转让专利

申请号 : CN200810102152.7

文献号 : CN101252476B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭伟雷

申请人 : 华为技术有限公司

摘要 :

一种故障检测的方法及装置,包括:发送端在第一双向转发检测BFD报文中增加至少一个填充Padding字段,得到第二BFD报文;并发送所述第二BFD报文;所述第二BFD报文的报文长度与待检测的报文长度相同;接收端在一定时间内接收到所述第二BFD报文,则确定与所述待检测的报文长度相等的报文能够正常发送;接收端在所述一定时间内接收不到所述第二BFD报文,则确定与所述待检测的报文长度相等的报文不能正常发送。本发明实施例采用将第一BFD报文增加至少一个字段的技术方案,能够通过BFD技术检测出大于第一BFD报文长度的报文无法转发的故障。

权利要求 :

1.一种故障检测的方法,其特征在于,所述方法包括:

发送端将第一双向转发检测BFD报文增加至少一个填充Padding字段,得到第二BFD报文,所述第二BFD报文的报文长度与待检测的报文长度相同;

发送所述第二BFD报文;

根据接收端是否能在一定时间内接收到所述第二BFD报文,确定与所述待检测的报文长度相等的报文能否正常发送。

2.如权利要求1所述的方法,其特征在于,所述根据接收端是否能在一定时间内接收到所述第二BFD报文,确定与所述待检测的报文长度相等的报文能否正常发送的方法具体包括:接收端在一定时间内接收到所述第二BFD报文,则确定与所述待检测的报文长度相等的报文能够正常发送;接收端在所述一定时间内接收不到所述第二BFD报文,则确定与所述待检测的报文长度相等的报文不能正常发送。

3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述第二BFD报文中设置一个标志位,用于指示所述第二BFD报文是增加了至少一个Padding字段的BFD报文。

4.如权利要求3所述的方法,其特征在于,所述标志位是所述第一BFD报文预留的标志位R。

5.如权利要求1或2所述的方法,其特征在于,所述方法还包括:在用于封装所述第二BFD报文的用户数据报协议UDP和/或互联网协议IP报文首部中的长度Length字段中指示所述第二BFD报文的长度。

6.如权利要求1或2所述的方法,其特征在于,所述将第一BFD报文增加至少一个Padding字段的方法包括:在所述第一BFD报文的起始部分,或者中间字段,或者末尾增加所述Padding字段。

7.如权利要求6所述的方法,其特征在于,所述将第一BFD报文增加至少一个Padding字段的方法包括:由用户在所述第一BFD报文中配置所述至少一个Padding字段;或者,由系统自动生成所述至少一个Padding字段。

8.如权利要求1或2所述的方法,其特征在于,所述方法还包括:输出检测报告,以指示与所述待检测的报文长度相等的报文是否能正常发送。

9.一种故障检测的装置,其特征在于,包括:

设置单元,用于将第一BFD报文增加至少一个Padding字段,得到第二BFD报文;所述第二BFD报文的报文长度与待检测的报文长度相同;

发送单元,用于发送所述设置单元得到的第二BFD报文;

判断单元,用于根据接收端是否能在一定时间内接收到所述第二BFD报文,确定与所述待检测的报文长度相等的报文能否正常发送;所述第二BFD报文的报文长度与待检测的报文长度相同。

10.如权利要求9所述的装置,其特征在于,所述装置还包括:结果输出单元,用于根据所述判断单元的判断结果,输出用于指示所述待检测的报文是否能正常发送故障是否存在的检测报告。

11.一种故障检测的方法,其特征在于,所述方法包括:

发送端将第一双向转发检测BFD报文增加至少一个填充Padding字段,得到第二BFD报文,所述第二BFD报文的报文长度与待检测的报文长度相同;

发送所述第二BFD报文;

发送端在一定时间内接收到回复消息,则确定与所述待检测的报文长度相等的报文能够正常发送;否则,确定与所述待检测的报文长度相等的报文不能正常发送;所述回复消息为接收端在收到所述第二BFD报文的情况下,向发送端发送的消息。

说明书 :

技术领域

本发明涉及网络通信技术领域,尤其涉及一种故障检测的方法及装置。

背景技术

目前,BFD(Bidirectional Forwarding Detection,双向转发检测)技术广泛应用于通信技术中,在BFD技术中,通过周期性的发送或接收检测报文,BFD可以快速检测设备、链路、接口、转发引擎等的故障,进一步,BFD技术与其他应用相结合可以实现快速保护倒换,例如:转发层面的快速重路由和控制层面的路由协议快速收敛等。
一般来说,BFD报文由IP(互联网协议)和UDP(用户数据报协议)报文承载,并采用固定目的端口号3784/3785,对于非认证方式,BFD报文的长度一般是固定的,比如为24字节。正是利用报文长度固定并且小的特点,BFD可以实现快速发送或接收报文,实现快速故障检测。
BFD技术中定义了如下两种检测模式:
方式一:异步检测模式。具体包括:系统之间相互周期性地发送BFD报文,如果某个系统在检测时间内没有收到远端发来的BFD报文,就宣布会话为DOWN(失败)。
方式二:查询检测模式。具体包括:在该模式下,假定每个系统都有一个独立的方法确认它连接到其他系统。一旦BFD会话建立,系统停止发送BFD报文,除非某个系统需要显式地验证连接性。在需要显式验证连接性的情况下,本地系统发送一个短序列的BFD报文,如果在检测时间内没有收到远端的回复消息就宣布会话为DOWN(失败),如果收到远端的回复消息,表示没有故障,协议再次保持沉默。
两种模式的本质区别在于检测的位置不同,异步模式下本端按一定的发送周期发送BFD报文,在远端检测本端系统发送的BFD报文;而在查询模式下,是由本端系统根据其检测需要发送BFD报文,并在检测时间内检测是否收到远端的回复消息。
在现有技术中,对与报文长度无关的故障,采用固定长度(比如一般为24个字节)的BFD报文一般是可以正确检测故障。但是针对某些转发引擎或者传输故障与报文长度有关的情况,例如:小于100字节的报文可以正常转发(在这种情况下,一般来说BFD报文可以正常转发),大于等于100字节的报文无法转发(比如:协议报文)的情况,由于现有的BFD报文长度小于100字节,因此无法检测这种大于等于100字节的报文无法转发的情况。因此,当报文的长度大于BFD报文长度时,现有的BFD检测技术无法检测其转发是否正常。

发明内容

本发明实施例采用BFD故障检测技术,能够检测出与报文长度有关的转发故障。
本发明实施例是通过以下技术方案实现的:
本发明实施例提供一种故障检测的方法,所述方法包括:
发送端将第一双向转发检测BFD报文增加至少一个填充Padding字段,得到第二BFD报文,所述第二BFD报文的报文长度与待检测的报文长度相同;
发送所述第二BFD报文;
根据接收端是否能在一定时间内接收到所述第二BFD报文,确定与所述待检测的报文长度相等的报文能否正常发送。
本发明实施例提供一种故障检测的装置,包括:
设置单元,用于将第一BFD报文增加至少一个Padding字段,得到第二BFD报文;所述第二BFD报文的报文长度与待检测的报文长度相同;
发送单元,用于发送所述设置单元得到的第二BFD报文;
判断单元,用于根据接收端是否能在一定时间内接收到所述第二BFD报文,确定与所述待检测的报文长度相等的报文能否正常发送;所述第二BFD报文的报文长度与待检测的报文长度相同。
本发明实施例提供一种故障检测的方法,所述方法包括:
发送端将第一双向转发检测BFD报文增加至少一个填充Padding字段,得到第二BFD报文,所述第二BFD报文的报文长度与待检测的报文长度相同;
发送所述第二BFD报文;
发送端在一定时间内接收到回复消息,则确定与所述待检测的报文长度相等的报文能够正常发送;否则,确定与所述待检测的报文长度相等的报文不能正常发送;所述回复消息为接收端在收到所述第二BFD报文的情况下,向发送端发送的消息。
由上述本发明实施例提供的技术方案可以看出,本发明实施例采用将BFD报文增加至少一个字段的技术方案,能够通过BFD技术检测出大于BFD报文长度的报文无法转发的故障。

附图说明

图1为现有技术中一种典型的BFD报文格式;
图2为本发明的一个实施例的方法的流程图;
图3为本发明的一个实施例中的第二BFD报文格式;
图4为本发明的一个实施例的系统的结构图。

具体实施方式

本发明实施例的一种典型的BFD报文格式如图1所示:
从图1中可以看出,BFD报文中包括各个字段,各字段的含义如下:
Vers:协议的版本号,目前版本号为1。
Diag:给出本地系统最后一次会话DOWN的原因。
Sta:State,当前BFD会话的状态。
P:Poll,设置为1,表示本地系统请求进行连接确认,或者请求参数改变的确认;设置为0,表示本地系统不请求确认。
F:Final,设置为1,表示本地系统响应一个接收到P比特为1的BFD报文;设置为0,表示本地系统不响应一个P比特为1的BFD报文。
C:Control Plane Independent,设置为1,表示本地系统的BFD实现不依赖于它的控制平面(即BFD报文在转发平面传输,所以即使控制平面失效了,BFD仍然能够起作用);设置为0,表示BFD报文在控制平面传输。
A:Authentication Present,设置为1,表示BFD报文包含认证字段,并且会话是被认证的。
D:Demand,设置为1,表示本地系统希望工作在查询模式;设置为0,表示本地系统不希望工作在查询模式,或者表示本地系统不能工作在查询模式。
R:Reserved,在发送时设置为0,在接收时不考虑该字段的具体值,即在接收时忽略该字段的具体值。
Detect Mult:检测时间倍数。在查询模式下采用的是本地的检测倍数,在异步模式下采用的是对端的检测倍数。
Length:BFD报文的长度,单位为字节。
My Discriminator:本地系统产生的一个唯一的、非0鉴别值,用来对两个系统之间的多个BFD会话进行分离。
Your Discriminator:从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0。
Desired Min TX Interval:本地系统发送BFD报文时想要采用的最小间隔,单位为毫秒。
Required Min RX Interval:本地系统能够支持的接收两个BFD报文之间的间隔,单位为毫秒。
Required Min Echo RX Interval:本地系统能够支持的接收两个BFD回声报文之间的间隔,单位为毫秒。如果这个值设置为0,则本地系统不支持接收BFD回声报文。
Auth Type:BFD报文使用的认证类型。
Auth Length:认证字段的长度,包括认证类型的长度和认证长度字段的长度,单位为字节。
本发明的一个实施例为一种故障检测的方法,如图2所述,包括:
202:根据需要检测的报文的长度,将第一BFD报文增加至少一个字段,得到第二BFD报文,使该第二BFD报文长度与需要检测的报文长度相同。该第一BFD报文可以为图1所示的BFD报文。本发明实施例增加的字段中可以承载各种内容,比如:全为0或全为1。
204:发送第二BFD报文。可以针对具体的BFD检测模式,采用不同的发送方式。比如:在采用异步检测模式的情况下,发送端周期性的发送第二BFD报文;在采用查询检测模式的情况下,发送端在需要进行故障检测的时候发送第二BFD报文。更进一步,为了防止出现误检测的情况(比如天气等原因)导致的接收端不能接收到第二BFD报文的情况,发送端可以在一定的时间内向接收端多次发送同样的第二BFD报文。
并且,在发送端发送第二BFD报文之前,发送端可以与接收端协商具体采用的BFD检测模式。
206:接收端根据其是否接收到204发送的第二BFD报文,确定是否存在故障。即,若接收端接收到了该第二BFD报文,则不存在故障,否则存在故障。可以针对采用的具体的BFD检测模式,采用不同的确定方法。比如:在采用异步检测模式的情况下,接收端可以在一定时间间隔内检测是否收到第二BFD报文(比如,若发送端的发送周期为10毫秒,则接收端检测的时间间隔可以为30毫秒),若在该一定时间间隔内没有接收到第二BFD报文,则表明故障存在,接收端可以通过向发送端发送检测报告的方法将故障情况通知发送端。在采用查询检测模式的情况下,接收端可以在收到第二BFD报文的情况下,才向发送端回复消息,否则不向发送端回复消息;发送端可以根据在检测时间内是否收到接收端的回复消息,来判断是否存在故障;该回复消息为接收端在收到所述第二BFD报文的情况下,向发送端发送的消息。
上述本发明实施例可以在第二BFD报文的起始部分或中间部分中设置至少一个字段,也可以在末尾部分设置至少一个字段,比如:Padding(填充)字段。该字段的内容可以为各种内容,比如:全为0或全为1。该字段的长度可以根据需要检测的报文长度,由用户配置或者系统自动生成,比如:第一BFD报文的长度为24字节,需要检测的特定链路的报文长度为120字节,则需要填充的至少一个字段的长度为96字节。由于第一BFD报文中的Length字段一般只有8Bit,因此此字段一般用于表示第一BFD报文长度,Padding字段的长度可以在用于封装BFD报文的UDP和IP报文首部中的Length字段中指示,该用于封装BFD报文的UDP和IP报文首部中的Length字段中指示的报文长度在原Length字段的基础上加上了Padding字段的长度。指示Padding字段的长度是为了确保实际收到的报文长度与报文首部中指示的长度相匹配,以避免可能出现的丢包情况。
为了将该第二BFD报文和现有的BFD报文区分开来,可以在该第二BFD报文中设置一个标志位,来指示该报文为增加了Padding字段的BFD报文。该标志位可以为第一BFD报文预留的标志位R,用于标识当前BFD报文是否带Padding字段,举例来说,R值为1时,标识当前BFD报文带Padding字段,R值为0时,标识当前BFD报文不带Padding字段;当然,反之也可。
本发明实施例可以用于检测链路的报文转发故障,还可以检测设备本身的故障以及设备上接口的故障。
针对不同的待检测情况,可以设置不同的第二BFD报文,比如:
情况一:需要检测设备是否能传输固定长度的报文,此时可以仅设置一个第二BFD报文,该第二BFD报文的长度和该待测试的固定长度的报文长度相同。
情况二:需要检测设备是否能传输一定范围内的报文,并且传输的报文是按照报文长度值步进的,比如:200字节~1000字节的报文,并且,每个报文长度差值为20字节。此时,可以设置至少一个第二BFD报文,该至少一个第二BFD报文的长度能够按照报文长度差值(这里是20字节)步进,范围是200字节~1000字节。在步进为1字节的情况下,该至少一个第二BFD报文的长度能够循环遍历200字节~1000字节范围内的所有长度值。可以单个设置各第二BFD报文,也可以设计计算机程序,以自动生成各个第二BFD报文。
在本发明实施例中,也可以由接收端输出检测报告以指示特定报文长度的报文是否能发送,以指示故障是否存在。比如:针对上述情况一,可以指示此固定长度的报文是否能够发送;针对上述情况二,可以指示哪些长度的报文能够发送,哪些长度的报文不能发送。
在BFD技术应用于重路由或路由收敛等技术的情况下,同样可以采用本发明实施例的BFD方法,达到检测特定报文长度的报文是否能转发的作用。例如,在BFD for ISIS(ISIS,中间系统到中间系统)技术中,通过BFD技术快速检测故障,进而触发ISIS进行快速收敛。现有的BFD报文长度为24字节,可以检测与报文长度无关的故障。而当故障与报文长度相关时,例如小于100字节的报文可以正常转发,而大于等于100字节的报文无法转发时,由于现有BFD报文小于100字节,可以正常转发,因此此类故障无法通过现有BFD技术检测,只能通过ISIS本身的Hello(一种报文名称)机制检测,导致ISIS收敛时间过长。而通过在现有BFD报文的基础上增加Padding字段得到第二BFD报文,例如使第二BFD报文的长度与接口MTU(最大传输单元)一致,那么采用第二BFD报文便可以检测上述与报文长度相关的故障,进而触发ISIS进行快速收敛。
下面以在第一BFD报文末尾增加至少一个字段,在确定的检测模式为查询检测模式,检测设备是否能传输一定范围内的报文为例,对本发明实施例进行详细说明。本发明实施例用于检测设备R1和R2之间的不能转发特定长度报文的故障。该R1和R2设备可以为路由器、三层交换机或者其他通信设备。比如:该特定报文的长度可以为54~204字节,步进为50字节,第一BFD报文的长度为24字节。
步骤1:在R1上,在第一BFD报文末尾增加至少一个Padding字段,得到第二BFD报文,如图3所示。由于本发明实施例检测的报文的长度为54~204字节,步进为50字节,因此,需要设置至少一个个第二BFD报文。比如:在第一BFD报文末尾增加30字节,得到长度为54字节的第二BFD报文;在第一BFD报文末尾增加80字节,得到长度为104字节的第二BFD报文;在第一BFD报文末尾增加130字节,得到长度为154字节的第二BFD报文;在第一BFD报文末尾增加180字节,得到长度为204字节的第二BFD报文。
步骤2:在R1上,在查询检测模式下依次采用短序列的方式发送得到的各个第二BFD报文,例如:首先每隔10毫秒发送1个长度为54字节的第二BFD报文,连续发送3次,之后每隔10毫秒发送1个长度为104字节的第二BFD报文,连续发送3次,之后每隔10毫秒发送1个长度为154字节的第二BFD报文,连续发送3次,最后每隔10毫秒发送1个长度为204字节的第二BFD报文,连续发送3次。
步骤3:由于存在与报文长度有关的故障,R2仅能够接收到长度为54字节、154字节的第二BFD报文,不能接收到长度为104字节、204字节的第二BFD报文,因此R2仅向R1回复长度为54字节、154字节的第二BFD报文。
步骤4:R1在检测时间内仅能够接收到R2回复的长度为54字节、154字节的第二BFD报文,不能接收到R2回复的长度为104字节、204字节的第二BFD报文,则在R1和R2之间,能够正常转发长度为54字节、154字节的报文,不能转发长度为104字节、204字节的报文。
本发明的一个实施例提供了一种故障检测的系统,如图4所述,包括一种位于发送端的故障检测的装置,以及一种位于接收端的故障检测的装置,其中:
该位于发送端的故障检测的装置包括:
设置单元,用于在第一BFD报文中增加至少一个Padding字段,得到第二BFD报文;所述第二BFD报文的报文长度与待检测的报文长度相同;
发送单元,用于发送所述设置单元得到的第二BFD报文。
该位于接收端的故障检测的装置包括:
判断单元,用于根据在一定时间内是否接收到第二BFD报文,判断与所述待检测的报文长度相等的报文是否能正常发送;所述第二BFD报文的报文长度与待检测的报文长度相同。
该装置还可以包括:
结果输出单元,用于根据判断单元的判断结果,输出用于指示故障是否存在的检测报告。可以将该检测报告输出给管理者或者其他需要该检测报告的设备。
本发明实施例采用将BFD报文的长度增加至少一个字节的技术方案,能够检测出大于BFD报文长度的报文无法转发的故障。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。