一种BFD处理方法及网络设备与流程

文档序号:17158294发布日期:2019-03-20 00:17阅读:285来源:国知局
一种BFD处理方法及网络设备与流程

本申请涉及通信技术领域,尤其是涉及一种bfd处理方法及网络设备。



背景技术:

双向转发检测(bidirectionalforwardingdetection,bfd)是通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于检测ip网络中的链路连通状况,保证网络设备之间能够快速检测到通信故障,以便能够及时的采取措施,保证业务的持续运行。bfd可以为各种上层协议(如路由协议等)快速检测出两台网络设备之间的双向转发路径的故障,并可以提供毫秒级的检测。

本端网络设备与对端网络设备建立bfd会话后,本端网络设备周期性的发送bfd报文,并接收对端网络设备周期性发送的bfd报文。若本端网络设备在检测时间内未接收到对端网络设备发送的bfd报文,则说明本端网络设备与对端网络设备之间的双向转发路径发生故障,并向上层协议通知该故障情况。

若本端网络设备由主控板和多个接口板组成,则主控板周期性的将bfd报文发送给接口板,由接口板将bfd报文发送给对端网络设备。接口板可以接收对端网络设备周期性发送的bfd报文,并将bfd报文发送给主控板。

显然,在上述方式中,主控板与接口板之间需要传输大量bfd报文,需要占用大量的板间通信资源,造成板间通信资源的浪费,影响设备处理性能。



技术实现要素:

有鉴于此,本申请提供一种bfd处理方法及网络设备,可以节约大量的板间通信资源,避免板间通信资源的浪费,可以提高网络设备的处理性能。

第一方面,本申请提供一种网络设备,所述网络设备已与第一网络设备协商建立双向转发检测bfd会话,所述网络设备包括主控板和多个接口板;

所述主控板,用于确定所述bfd会话的会话信息,所述会话信息包括报文发送间隔和报文接收间隔,并确定所述会话信息记录的目的地址对应的出接口;

所述主控板还用于,若所述出接口为全局口,则确定所述全局口包括的每个物理口所在的目标接口板,并将所述会话信息同步至每个目标接口板;

所述目标接口板,用于接收所述主控板同步的所述会话信息,并根据所述会话信息中的所述报文发送间隔和所述报文接收间隔进行bfd处理。

结合第一方面,在第一种可能的实现方式中,所述目标接口板根据所述会话信息中的所述报文发送间隔和所述报文接收间隔进行bfd处理,具体用于:

根据所述报文发送间隔,确定所述目标接口板的报文发送时刻,并根据所述报文发送时刻,向所述第一网络设备发送bfd报文;和/或,

根据所述报文接收间隔,确定所述bfd会话在所述目标接口板的局部会话状态,并向所述主控板发送所述局部会话状态,以使所述主控板根据所述局部会话状态确定所述bfd会话的全局会话状态。

结合第一方面及第一种可能的实现方式,在第二种可能的实现方式中,所述目标接口板根据所述报文发送间隔,确定所述目标接口板的报文发送时刻,具体用于:通过公式一,确定所述目标接口板的报文发送时刻:

t1=m*t;或者,t2=r+n*t;公式一;

或者,通过公式二,确定所述目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w;公式二;

或者,通过公式三,确定所述目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w+s1*t-s2*t;公式三;

其中,t1为目标接口板首次发送bfd报文的报文发送时刻,t2为目标接口板非首次发送bfd报文的报文发送时刻;

m为目标接口板的序号,m是0至(n-1)之间的整数值,且不同目标接口板的m不同,n为目标接口板的总数量,t为所述报文发送间隔;

r为目标接口板上一周期发送bfd报文的报文发送时刻;

w是位于0与1之间的数值,s1为当前周期的抖动值,s2为上一周期的抖动值,s1和s2均是0与(1-w)之间的数值。

结合第一方面及第一种可能的实现方式,在第三种可能的实现方式中,所述目标接口板根据所述报文接收间隔,确定所述bfd会话在所述目标接口板的局部会话状态,具体用于:根据所述报文接收间隔启动检测定时器;

若在所述检测定时器超时前,接收到所述第一网络设备发送的bfd报文,则确定所述局部会话状态是up状态,并重新启动所述检测定时器;

若在所述检测定时器超时时,未接收到所述第一网络设备发送的bfd报文,则确定所述局部会话状态是down状态,并删除所述检测定时器;

在所述局部会话状态是down状态时,若接收到所述第一网络设备发送的bfd报文,则确定所述局部会话状态是up状态,并重新启动检测定时器。

结合第一方面及第一种可能的实现方式,在第四种可能的实现方式中,所述主控板根据所述局部会话状态确定所述bfd会话的全局会话状态,具体用于:

若所有目标接口板的局部会话状态是down状态,则确定所述bfd会话的全局会话状态是down状态;

若任一目标接口板的局部会话状态是up状态,则确定所述bfd会话的全局会话状态是up状态。

结合第一方面及第四种可能的实现方式,在第五种可能的实现方式中,所述主控板确定所述bfd会话的全局会话状态是down状态之后,

所述主控板还用于,通知每个目标接口板删除所述bfd会话的会话信息。

第二方面,本申请提供一种双向转发检测bfd处理方法,应用于网络设备的目标接口板,所述网络设备还包括主控板,所述网络设备已与第一网络设备协商建立bfd会话,所述方法包括:

接收所述主控板同步的会话信息,所述会话信息包括报文发送间隔和报文接收间隔;其中,所述主控板确定所述bfd会话的会话信息记录的目的地址对应的出接口,若所述出接口为全局口,则确定所述全局口包括的每个物理口所在的目标接口板,并将所述会话信息同步至每个目标接口板;

根据所述报文发送间隔和所述报文接收间隔进行bfd处理。

结合第二方面,在第一种可能的实现方式中,所述根据所述报文发送间隔和所述报文接收间隔进行bfd处理,包括:

根据所述报文发送间隔,确定所述目标接口板的报文发送时刻,并根据所述报文发送时刻,向所述第一网络设备发送bfd报文;和/或,

根据所述报文接收间隔,确定所述bfd会话在所述目标接口板的局部会话状态,并向所述主控板发送所述局部会话状态,以使所述主控板根据所述局部会话状态确定所述bfd会话的全局会话状态。

结合第二方面及第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述报文发送间隔,确定所述目标接口板的报文发送时刻,包括:

通过公式一,确定所述目标接口板的报文发送时刻:

t1=m*t;或者,t2=r+n*t;公式一;

或者,通过公式二,确定所述目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w;公式二;

或者,通过公式三,确定所述目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w+s1*t-s2*t;公式三;

其中,t1为目标接口板首次发送bfd报文的报文发送时刻,t2为目标接口板非首次发送bfd报文的报文发送时刻;

m为目标接口板的序号,m是0至(n-1)之间的整数值,且不同目标接口板的m不同,n为目标接口板的总数量,t为所述报文发送间隔;

r为目标接口板上一周期发送bfd报文的报文发送时刻;

w是位于0与1之间的数值,s1为当前周期的抖动值,s2为上一周期的抖动值,s1和s2均是0与(1-w)之间的数值。

结合第二方面及第一种可能的实现方式,在第三种可能的实现方式中,所述根据所述报文接收间隔,确定所述bfd会话在所述目标接口板的局部会话状态,包括:根据所述报文接收间隔启动检测定时器;

若在所述检测定时器超时前,接收到所述第一网络设备发送的bfd报文,则确定所述局部会话状态是up状态,并重新启动所述检测定时器;

若在所述检测定时器超时时,未接收到所述第一网络设备发送的bfd报文,则确定所述局部会话状态是down状态,并删除所述检测定时器;

在所述局部会话状态是down状态时,若接收到所述第一网络设备发送的bfd报文,则确定所述局部会话状态是up状态,并重新启动检测定时器。

基于上述技术方案,网络设备与第一网络设备协商建立bfd会话后,网络设备包括的主控板将bfd会话的会话信息同步至网络设备包括的接口板,接口板根据该会话信息进行bfd处理,不再由主控板根据该会话信息进行bfd处理。

这样,主控板与接口板之间不需要传输大量bfd报文,避免bfd报文在主控板与接口板之间的多次交互转发,节约大量的板间通信资源,提高设备处理性能。进一步的,当会话信息记录的目的地址对应的出接口为全局口时,若全局口包括多个物理口,则将bfd会话的会话信息同步至多个物理口所在的目标接口板,从而在多个目标接口板实现bfd处理,可以提高bfd检测的准确性。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的网络设备的硬件结构图;

图2是本申请一种实施方式中的bfd处理方法的流程图。

具体实施方式

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

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

本申请实施例提出一种网络设备(称为本网络设备),可以应用于包括本网络设备和第一网络设备的系统,本网络设备和第一网络设备均可以是支持bfd协议的网络设备,如路由器、交换机等。其中,本网络设备可以是分布式设备,即本网络设备可以包括主控板和多个接口板(接口板也可以称为业务板),第一网络设备可以是分布式设备,也可以不是分布式设备,对此不做限制。

参见图1所示,为本申请实施例的应用场景示意图,以网络设备11是本网络设备,网络设备12是第一网络设备为例进行说明。网络设备11可以包括主控板111、接口板112、接口板113和接口板114,接口板112包括与网络设备12连接的物理口a,接口板113包括与网络设备12连接的物理口b。

其中,可以在网络设备11配置全局口r,全局口r是逻辑接口,如聚合接口或等价接口等,对此全局口r的类型不做限制。全局口r包括物理口a和物理口b,也就是说,物理口a和物理口b是全局口r的成员接口。

在上述应用场景下,网络设备11与网络设备12建立bfd会话后,网络设备11的主控板111周期性的将bfd报文发送给接口板112,接口板112将bfd报文发送给网络设备12。网络设备12周期性的发送bfd报文,网络设备11的接口板112可以接收网络设备12周期性发送的bfd报文,并将bfd报文发送给主控板111。显然,在上述方式中,主控板111与接口板112之间需要传输大量bfd报文,需要占用大量的板间通信资源,造成板间通信资源的浪费。

针对上述发现,在一个例子中,主控板111可以将bfd会话的会话信息同步给接口板112,由接口板112根据该会话信息进行bfd处理。具体的,接口板112可以周期性的将bfd报文发送给网络设备12,该bfd报文是接口板112自身生成的,而不是主控板111发送给接口板112的。接口板112可以接收网络设备12周期性发送的bfd报文,不再将bfd报文发送给主控板111。显然,上述方式中,主控板111与接口板112之间不需要传输大量bfd报文。

但是,假设接口板112与网络设备12之间的链路故障,则接口板112无法将bfd报文发送给网络设备12,网络设备12将bfd报文发送给接口板113后,接口板113也无法对bfd报文进行处理,从而导致bfd会话异常,即,虽然接口板113与网络设备12之间仍然存在正常链路,但bfd会话已经异常。

针对上述发现,本申请实施例中,本网络设备与第一网络设备协商建立bfd会话后,主控板,用于确定bfd会话的会话信息,该会话信息包括报文发送间隔和报文接收间隔,确定该会话信息记录的目的地址对应的出接口。主控板还用于,若该出接口为全局口,确定该全局口包括的每个物理口所在的目标接口板,并将会话信息同步至每个目标接口板。目标接口板,用于接收主控板同步的会话信息,并根据会话信息中的报文发送间隔和报文接收间隔进行bfd处理。

在一个例子中,由于本网络设备和第一网络设备是支持bfd协议的网络设备,因此,可以在本网络设备和第一网络设备之间建立bfd会话。在建立bfd会话时,可以由本网络设备的主控板与第一网络设备协商建立bfd会话。

在建立bfd会话后,主控板就可以确定该bfd会话的会话信息,该会话信息可以包括但不限于:报文发送间隔、报文接收间隔、本地标识符(localdiscriminator,ld)信息、远端标识符(remotediscriminator,rd)信息、源ip地址(本网络设备的ip地址)、目的ip地址(第一网络设备的ip地址)、检测倍数。当然,上述只是示例,还可以包括其它内容,对此不做限制。

其中,报文发送间隔可以是:本网络设备的最小发包间隔a1与第一网络设备的最小收包间隔b1的较大值。例如,若最小发包间隔a1大于最小收包间隔b1,则上述会话信息中的报文发送间隔,可以是最小发包间隔a1。

其中,报文接收间隔可以是:本网络设备的最小收包间隔a2与第一网络设备的最小发包间隔b2的较大值。例如,若最小收包间隔a2大于最小发包间隔b2,则上述会话信息中的报文接收间隔,可以是最小收包间隔a2。

在一个例子中,主控板可以确定会话信息记录的目的地址(即第一网络设备的ip地址)对应的出接口,若该出接口为全局口,则可以确定该全局口包括的每个物理口所在的目标接口板,并将该会话信息同步至每个目标接口板。

例如,参见图1所示,由于bfd会话的会话信息包括目的ip地址,即网络设备12的ip地址,因此,网络设备11的主控板111可以通过网络设备12的ip地址查询路由表,得到与该ip地址对应的出接口。若该出接口不是全局口,即出接口是物理口,则可以采用传统方式处理,对此处理过程不再赘述。

若该出接口是全局口,如全局口r,则主控板111可以确定全局口r包括物理口a和物理口b。然后,主控板111可以将物理口a所在的接口板112确定为目标接口板,并将物理口b所在的接口板113确定为目标接口板。

进一步的,在bfd会话的状态切换为up状态后,则主控板111可以将该bfd会话的会话信息同步至目标接口板,如同至接口板112和接口板113。

在一个例子中,目标接口板在接收到会话信息后,可以根据该会话信息中的报文发送间隔和报文接收间隔进行bfd处理。例如,目标接口板可以根据该报文发送间隔向第一网络设备发送bfd报文,以使第一网络设备根据bfd报文检测路径是否故障。和/或,目的接口板可以接收第一网络设备发送的bfd报文,并根据该报文接收间隔和该bfd报文检测路径是否故障。以下结合具体实施例,对目标接口板发送bfd报文、目标接口板接收bfd报文的过程进行说明。

实施例1:目标接口板向第一网络设备发送bfd报文。具体的,目标接口板根据该报文发送间隔,确定本目标接口板的报文发送时刻,并根据该报文发送时刻,向第一网络设备发送bfd报文,即在该报文发送时刻发送bfd报文。

在一个例子中,目标接口板根据该报文发送间隔,确定本目标接口板的报文发送时刻,可以包括但不限于:目标接口板可以根据该报文发送间隔、本目标接口板的序号以及目标接口板的总数量,确定本目标接口板的报文发送时刻;或者,目标接口板可以根据该报文发送间隔、本目标接口板的序号、目标接口板的总数量以及抖动值,确定本目标接口板的报文发送时刻。

以下结合图1所示的应用场景,对上述实施例1进行详细说明。

主控板111确定目标接口板的总数量n以及每个目标接口板的序号m,m是位于0至n-1之间的整数值,且不同目标接口板的序号m不同。例如,目标接口板的总数量n为2,接口板112的序号m为0,接口板113的序号m为1。

然后,主控板111可以将目标接口板的总数量n和目标接口板的序号m发送给目标接口板。例如,主控板111可以将总数量2和接口板112的序号0发送给接口板112,并将总数量2和接口板113的序号1发送给接口板113。

此外,主控板111还可以将会话信息同步至接口板112和接口板113,这个会话信息可以携带报文发送间隔t,如报文发送间隔t为100毫秒等。

其中,主控板111可以将总数量n、序号m和会话信息一起同步至目标接口板,这样,目标接口板在接收到会话信息时,也可以接收到总数量n和序号m,并从会话信息中获取报文发送间隔t。然后,目标接口板就可以利用总数量n、序号m和报文发送间隔t确定报文发送时刻,以下对确定方式进行说明。

方式一、目标接口板通过公式一,确定本目标接口板的报文发送时刻:

t1=m*t;或者,t2=r+n*t;公式一;

其中,t1为本目标接口板首次发送bfd报文的报文发送时刻,t2为目标接口板非首次发送bfd报文的报文发送时刻;r为目标接口板上一周期发送bfd报文的报文发送时刻。

对于接口板112来说,序号m为0,报文发送间隔t为100毫秒,总数量n为2。第一次报文发送时刻是0毫秒,在第0毫秒发送bfd报文;第二次报文发送时刻是0+2*100,即200毫秒,在第200毫秒发送bfd报文;第三次报文发送时刻是200+2*100,即400毫秒,在第400毫秒发送bfd报文,以此类推。

其中,接口板112通过定时器实现上述发送过程。例如,第一次发送bfd报文时,不需要启动定时器,直接发送bfd报文。在发送bfd报文后,启动定时器,定时器的超时时间为200毫秒;在定时器超时后,发送bfd报文。在发送bfd报文后,重新启动定时器,定时器的超时时间为200毫秒,以此类推。

对于接口板113,序号m为1,报文发送间隔t为100毫秒,总数量n为2。第一次报文发送时刻是1*100,即100毫秒,可以在第100毫秒发送bfd报文;第二次报文发送时刻是100+2*100,即300毫秒,可以在第300毫秒发送bfd报文;第三次报文发送时刻是300+2*100,即500毫秒,以此类推。

其中,接口板113可以通过定时器实现上述发送过程。例如,第一次发送bfd报文时,则可以启动定时器,定时器的超时时间为100毫秒;在定时器超时后,发送bfd报文。在发送bfd报文后,可以重新启动定时器,定时器的超时时间为200毫秒;在定时器超时后,发送bfd报文,以此类推。

综上所述,针对网络设备11来说,在第0毫秒发送bfd报文、在第100毫秒发送bfd报文、在第200毫秒发送bfd报文,以此类推,也就是说,网络设备11在发送bfd报文时,bfd报文的报文发送间隔为100毫秒。

方式二、目标接口板通过公式二,确定本目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w;公式二;

其中,w是位于0与1之间的数值,可以根据经验配置,例如,w可以是位于(0.75-1)之间的数值。

对于接口板112,序号m为0,报文发送间隔t为100毫秒,总数量n为2,w为0.9。第一次报文发送时刻是0毫秒;第二次报文发送时刻是0+2*100*0.9,即180毫秒;第三次报文发送时刻是180+2*100*0.9,即360毫秒,以此类推。

此外,对于接口板113来说,序号m为1,报文发送间隔t为100毫秒,总数量n为2,w为0.9。基于此,第一次报文发送时刻是1*100*0.9,即90毫秒;第二次报文发送时刻是90+2*100*0.9,即270毫秒,以此类推。

综上所述,针对网络设备11来说,在第0毫秒发送bfd报文、在第90毫秒发送bfd报文、在第180毫秒发送bfd报文,以此类推。

方式三、目标接口板通过公式三,确定本目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w+s1*t-s2*t;公式三;

其中,s1为当前周期的抖动值,s2为上一周期的抖动值,s1和s2均是0与(1-w)之间的数值。

对于接口板112,序号m为0,报文发送间隔t为100毫秒,总数量n为2,w为0.9,抖动值位于0-0.1之间。第一次报文发送时刻是0毫秒;在第二次发送bfd报文时,当前周期的抖动值为随机生成的0.08,上一周期的抖动值为0,第二次报文发送时刻是0+2*100*0.9+0.08*100,即188毫秒;在第三次发送bfd报文时,当前周期的抖动值为随机生成的0.06,上一周期的抖动值为0.08,第三次报文发送时刻是188+2*100*0.9+0.06*100-0.08*100,即366毫秒。

对于接口板113,序号m为1,报文发送间隔t为100毫秒,总数量n为2,w为0.9,抖动值位于0-0.1之间,接口板113的报文发送时刻不再赘述。

实施例2:目标接口板接收第一网络设备发送的bfd报文。具体的,目标接口板根据报文接收间隔,确定bfd会话在本目标接口板的局部会话状态,例如,可以根据是否接收到第一网络设备发送的bfd报文,确定bfd会话在本目标接口板的局部会话状态。然后,目标接口板可以向主控板发送该局部会话状态,以使主控板根据该局部会话状态确定该bfd会话的全局会话状态。

在一个例子中,目标接口板根据报文接收间隔,确定bfd会话在本目标接口板的局部会话状态,可以包括但不限于:根据该报文接收间隔启动检测定时器;若在检测定时器超时前,接收到第一网络设备发送的bfd报文,则确定局部会话状态是up状态,并重新启动检测定时器;若在检测定时器超时时,未接收到第一网络设备发送的bfd报文,则确定局部会话状态是down状态,并删除检测定时器。在局部会话状态是down状态时,若接收到第一网络设备发送的bfd报文,则确定局部会话状态是up状态,并重新启动检测定时器。

需要注意的是,在局部会话状态是down状态时,目标接口板并不删除bfd会话的会话信息,即bfd会话在本目标接口板仍然存在。基于此,若目标接口板又接收到第一网络设备发送的bfd报文,则确定局部会话状态是up状态,并重新启动检测定时器,也就是说,bfd会话在本目标接口板恢复。

在一个例子中,主控板根据局部会话状态确定bfd会话的全局会话状态,可以包括但不限于:若所有目标接口板的局部会话状态是down状态,则可以确定bfd会话的全局会话状态是down状态;若任一目标接口板的局部会话状态是up状态,则可以确定bfd会话的全局会话状态是up状态。

主控板确定bfd会话的全局会话状态是down状态之后,主控板还可以通知每个目标接口板删除bfd会话的会话信息,至此,bfd会话被删除。

此外,若bfd会话的全局会话状态是up状态,即使有目标接口板的局部会话状态是down状态,该目标接口板也不会删除该bfd会话的会话信息,也就是说,bfd会话还没有被删除,目标接口板仍然可以处理bfd报文。

以下结合图1所示的应用场景,对上述实施例2进行详细说明。

主控板111可以维护状态数值,状态数值的位数与目标接口板的数量相同,或者,状态数值的位数大于目标接口板的数量。例如,当存在2个目标接口板时,状态数值的位数可以为2位,因此,状态数值的取值可以为00,01,10,11。0表示局部会话状态是down状态,1表示局部会话状态是up状态,第一位表示接口板112的局部会话状态,第二位表示接口板113的局部会话状态。

主控板111将会话信息同步至接口板112和接口板113时,主控板111可以将状态数值设置为00,并启动定时器t1,定时器t1的超时时间比较长,如可以大于bfd报文的检测时间。若定时器t1超时时,状态数值仍然为00,则确定bfd会话的全局会话状态是down状态,即bfd会话down,可以删除该bfd会话的会话信息。若定时器t1超时之前,状态数值被修改为01、10或者11,则确定bfd会话的全局会话状态是up状态,删除定时器t1。

接口板112在接收到bfd会话的会话信息后,将bfd会话的局部会话状态设置为down状态。若未接收到网络设备12发送的bfd报文,则保持down状态。若接口板112接收到网络设备12发送的bfd报文,则将bfd会话的局部会话状态设置为up状态,并启动定时器t2,定时器t2的超时时间可以为bfd报文的检测时间,该检测时间可以为会话信息中的报文接收间隔*检测倍数。由于bfd会话的局部会话状态发生变化,如从down状态修改为up状态,因此,接口板112还可以将变化后的局部会话状态(即up状态)通知给主控板111。

主控板111在接收到该局部会话状态后,可以将接口板112对应的比特位(即状态数值的第一位)修改为1,表示接口板112的局部会话状态是up状态,即状态数值的第一位为1。若定时器t1存在,主控板111可以删除定时器t1。

在启动定时器t2后,在定时器t2超时之前,若接口板112接收到网络设备12发送的bfd报文,则bfd会话的局部会话状态仍然为up状态,并重新启动定时器t2,以此类推。由于bfd会话的局部会话状态未发生变化,即局部会话状态仍是up状态,接口板112不需要将局部会话状态通知给主控板111。

在启动定时器t2后,在定时器t2超时之前,若接口板112未接收到网络设备12发送的bfd报文,则bfd会话的局部会话状态是down状态。在bfd会话的局部会话状态发生变化时,如从up状态修改为down状态,则接口板112还可以将变化后的局部会话状态(即down状态)通知给主控板111。主控板111在接收到该局部会话状态后,可以将接口板112对应的比特位(即状态数值的第一位)修改为0,表示接口板112的局部会话状态是down状态。

需要注意的是,在bfd会话的局部会话状态是down状态时,接口板112还可以删除定时器t2,但是,接口板112并不删除bfd会话的会话信息,只有接收到主控板111的删除通知时,才会删除bfd会话的会话信息。也就是说,bfd会话在接口板112仍然存在,若接口板112又接收到网络设备12发送的bfd报文,则确定bfd会话的局部会话状态是up状态,可以重新启动定时器t2。由于bfd会话的局部会话状态从down状态修改为up状态,因此,接口板112可以将变化后的局部会话状态(即up状态)通知给主控板111。

接口板113的处理流程与接口板112的处理流程类似,在此不再重复赘述。

在一个例子中,若接口板112的局部会话状态是down状态,且接口板113的局部会话状态是down状态,如状态数值为00,则主控板111确定bfd会话的全局会话状态是down状态。基于此,主控板111可以通知接口板112和接口板113删除该bfd会话的会话信息。进一步的,接口板112在接收到该删除通知后,则可以删除该bfd会话的会话信息,接口板113在接收到该删除通知后,则可以删除该bfd会话的会话信息,至此,bfd会话被成功删除。

若接口板112的局部会话状态是up状态,和/或,接口板113的局部会话状态是up状态,如状态数值为01、10或11,则主控板111确定bfd会话的全局会话状态是up状态。基于此,即使有接口板的局部会话状态是down状态,该接口板也不会删除该bfd会话的会话信息,即bfd会话还没有被删除。

综上所述,只有当所有目标接口板的局部会话状态均是down状态时,才会删除bfd会话的会话信息,若任一目标接口板的局部会话状态是up状态,则不会删除bfd会话的会话信息。例如,若网络设备12向接口板112发送bfd报文,而不向接口板113发送bfd报文,虽然接口板113的局部会话状态是down状态,但是,由于接口板112的局部会话状态是up状态,因此,不会删除bfd会话的会话信息,也就是说,网络设备11仍然可以进行bfd处理。

基于上述技术方案,本申请实施例中,主控板与接口板之间不需要传输大量bfd报文,避免bfd报文在主控板与接口板之间的多次交互转发,节约大量的板间通信资源,提高设备处理性能。当会话信息记录的目的地址对应的出接口为全局口时,若全局口包括多个物理口,则将bfd会话的会话信息同步至多个物理口所在的目标接口板,在多个目标接口板实现bfd处理,可以提高bfd检测的准确性。如果有一个接口板不在位(如接口板故障或者接口板被拔出),则其它接口板还可以继续工作,保持bfd检测的连续性以及bfd会话的稳定性。

本申请实施例中还提出一种bfd处理方法,应用于网络设备的目标接口板,所述网络设备还包括主控板,所述网络设备已与第一网络设备协商建立bfd会话,参见图2所示,为该bfd处理方法的流程示意图,该方法可以包括:

步骤201,接收主控板同步的会话信息,该会话信息包括报文发送间隔和报文接收间隔。其中,主控板可以确定该bfd会话的会话信息记录的目的地址对应的出接口,若该出接口为全局口,则可以确定该全局口包括的每个物理口所在的目标接口板,并将该会话信息同步至每个目标接口板;

步骤202,根据该报文发送间隔和该报文接收间隔进行bfd处理。

具体的,可以根据该报文发送间隔,确定目标接口板的报文发送时刻,并根据该报文发送时刻,向第一网络设备发送bfd报文;和/或,根据该报文接收间隔,确定bfd会话在目标接口板的局部会话状态,并向主控板发送该局部会话状态,以使主控板根据该局部会话状态确定bfd会话的全局会话状态。

其中,根据该报文发送间隔,确定目标接口板的报文发送时刻,可以包括:

通过公式一,确定所述目标接口板的报文发送时刻:

t1=m*t;或者,t2=r+n*t;公式一;

或者,通过公式二,确定所述目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w;公式二;

或者,通过公式三,确定所述目标接口板的报文发送时刻:

t1=m*t*w;或者,t2=r+n*t*w+s1*t-s2*t;公式三;

在上述公式一、公式二和公式三中,t1为目标接口板首次发送bfd报文的报文发送时刻,t2为目标接口板非首次发送bfd报文的报文发送时刻;m为目标接口板的序号,m是0至(n-1)之间的整数值,且不同目标接口板的m不同,n为目标接口板的总数量,t为所述报文发送间隔;r为目标接口板上一周期发送bfd报文的报文发送时刻;w是位于0与1之间的数值,s1为当前周期的抖动值,s2为上一周期的抖动值,s1和s2均是0与(1-w)之间的数值。

其中,根据该报文接收间隔,确定bfd会话在目标接口板的局部会话状态,可以包括:根据该报文接收间隔启动检测定时器;若在检测定时器超时前,接收到第一网络设备发送的bfd报文,则确定该局部会话状态是up状态,并重新启动检测定时器;若在检测定时器超时时,未接收到第一网络设备发送的bfd报文,则确定该局部会话状态是down状态,并删除检测定时器。进一步的,在该局部会话状态是down状态时,若接收到第一网络设备发送的bfd报文,则确定该局部会话状态是up状态,并可以重新启动检测定时器。

基于上述技术方案,本申请实施例中,主控板与接口板之间不需要传输大量bfd报文,避免bfd报文在主控板与接口板之间的多次交互转发,节约大量的板间通信资源,提高设备处理性能。当会话信息记录的目的地址对应的出接口为全局口时,若全局口包括多个物理口,则将bfd会话的会话信息同步至多个物理口所在的目标接口板,在多个目标接口板实现bfd处理,可以提高bfd检测的准确性。如果有一个接口板不在位(如接口板故障或者接口板被拔出),则其它接口板还可以继续工作,保持bfd检测的连续性以及bfd会话的稳定性。

基于与上述方法同样的申请构思,本申请实施例还提供一种网络设备,包括:处理器和机器可读存储介质;其中,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时,实现上述bfd处理方法。

本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时,实现上述bfd处理方法。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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