一种分布式双向转发检测的方法及设备的制作方法

文档序号:7752097阅读:179来源:国知局
专利名称:一种分布式双向转发检测的方法及设备的制作方法
技术领域
本发明涉及数据通信领域的双向转发检测(Bidirectional Forwarding Detection,简称BFD)技术,尤其涉及一种分布式双向转发检测的方法及设备。
背景技术
BFD协议是一套标准化的全网统一的检测机制,用于快速检测、监控网络中路 径或者IP路由转发的连通状况。它提供的是一种通用的、标准化的、介质无关、协议 无关的快速故障检测机制,可以为各上层应用协议如路由协议(OSPF、RIP、BGP等)、 MPLS (Multiprotocol Label Switching,多协议标签交换)等统一地快速检测两台设备之 间双向转发路径的故障。BFD可以在系统之间任何类型的路径上提供故障检测,一条BFD会话基于使用它 的具体上层应用协议的需要而建立。如果多个上层应用协议对应相同的路径,则可以使用 一个BFD会话进行检测。BFD协议与上层应用协议的关系包括上层应用协议(例如路由 协议)根据协议自身的邻居发现机制建立邻居后,通知BFD协议建立BFD会话,BFD协议查 询是否存在对应的会话,如果没有则根据接收到的邻居信息建立对应的会话,然后BFD会 话发送BFD控制报文控制BFD会话状态的迁移。系统利用BFD控制报文通过三次握手完成 BFD会话的建立,历经关闭(Down)状态到初始化(Init)状态的迁移,Init状态到激活(Up) 状态的迁移,会话建立的过程会进行会话的参数协商,包括报文发送周期,检测周期等。当 会话建立完成后,通过周期性的发送BFD控制报文进行路径状况的检测,如果在检测周期 内没有接收到对端设备对应的BFD控制报文,BFD协议就会认为此路径存在故障,将故障信 息通告给上层应用协议,上层应用协议接收到故障报告后,根据自身的特点进行相应的邻 居去使能或者删除处理,并通知BFD协议删除会话。目前网络通信设备实现上述过程有两种方案。第一种方案为集中式控制方式,仅 有主控卡运行BDF协议,即BFD控制报文的收发、BFD会话状态迁移的控制以及与上层应用 协议的交互全部集中在主控卡上。大致工作过程为,上层应用协议通知BFD协议建立BFD 会话,BFD协议在主控卡上进行BFD会话的建立和BFD控制报文的构建,构建完毕后发送给 本端设备上某一线卡,该线卡从指定的某一端口发送出去;同时,如果发送控制报文的线卡 接收到对端设备的BFD控制报文,则将BFD控制报文透传到主控卡,主控卡接收到BFD控制 报文后控制BFD会话状态的迁移,当检测到路径出现故障后,BFD协议发送通知消息到上层 应用协议。在以上过程中,本端设备BFD控制报文的发送方向为从主控卡到线卡,接收报文 的方向是从线卡到主控卡,其中报文的构建和BFD状态机的驱动全部在主控卡上完成。由 于这一过程实现比较简单,被普遍采用,但不难看出,由于BFD控制报文的收发频率很高且 所有控制报文均需经过卡间通道,这一过程无疑会造成卡间通道的阻塞,影响设备中其他 子系统的正常运行;另一方面,BFD控制报文的收发和处理全部集中在主控卡上,无疑会加 重主控卡的负担,影响设备的控制平面其他协议的正常运行。另一种实现方案见中国专利申请CN101079759A(申请日为2007年7月24日,申
3请号为200710130779. 9,申请名称为分布式双向转发检测方法及设备),该方案是一种控 制分离的实现方式,线卡和主控卡均运行BFD协议,BFD会话进行分布式维护。其中,当主 控卡建立BFD会话完成后,即BFD会话迁移到UP状态时,主控卡将BFD会话的控制权移交 到设备上某一线卡,该主控卡终止所述的BFD会话的维护。具有会话控制权的线卡从对端 设备接收到BFD控制报文后,查询对应的会话是否存在且达到Up状态,如果没有则将控制 报文透传给主控卡,否则,具有会话控制权的线卡接收所述的报文并维护该会话。当具有会 话控制权的线卡检测到BFD会话状态发生改变时,删除该BFD会话,并通知该状态改变事 件到主控卡,主控卡进行后续的删除操作。虽然该实现方案在BFD会话状态迁移到Up状态 后,主控卡将会话的控制权移交到线卡,这减少了主控卡和线卡之间的报文透传数量,一定 程度上保证了系统中其他协议的正常运行,但是该方案有以下两点明显不足一、由于主控 卡和线卡均运行BFD协议,浪费了系统资源,在会话不同的阶段进行报文的收发和状态的 维护迁移,实现起来较为麻烦;二、在会话的状态未迁移到Up状态时,主控制和线卡仍需透 传BFD控制报文,当大量的会话震荡时,震荡期间主控卡和卡间通道的负担依然很重,严重 时甚至影响设备控制平面的稳定性。

发明内容
本发明提供了一种分布式双向转发检测的方法,用以解决现有BFD控制报文在会 话建立期间或建立完成后需要透传大量的报文到主控卡问题。为实现上述目的,本发明提供一种分布式双向转发检测方法,包括以下步骤主控卡接收到上层应用协议建立会话的通知消息后,通知本端某一线卡建立会 话;所述线卡运行BFD协议,完成BFD会话的建立和维护;当检测到出现故障时,由该 建立会话的线卡删除会话。所述该建立会话的线卡删除会话,包括如下步骤a、线卡检测到故障后向主控卡发送故障消息;b、主控卡收到BFD故障消息后,将该消息通知上层应用协议;C、上层应用协议接收到BFD故障消息后,向主控卡发送会话删除消息;d、主控卡接收会话删除消息后,指定该建立会话的线卡删除会话。具体的,所述通知消息包括虚拟路由转发参数、本端IP地址、对端IP地址、接口信 息等参数信息。主控卡根据该接口信息获取线卡信息,根据该线卡信息唯一确定具有会话 控制权的线卡。具体的,在接口信息未分布的系统中,所述主控卡根据所述接口信息获取的线卡 信息为报文发送的槽位号、发送和接收报文的端口号。具体的,在接口信息已分布的系统中,所述主控卡根据所述接口信息获取的线卡 信息为报文发送的槽位号。本发明还提供了一种分布式双向转发检测设备,包括一个主控卡和至少一个线 卡;所述主控卡包括第一通知模块,用于接收上层应用协议会话建立/删除消息并将 这一消息通告到线卡BFD协议,还用于接收线卡BFD协议故障消息并将这一消息通告到上层应用协议;所述线卡包括第二通知模块和BFD会话模块;所述第二通知模块,用于接收主控 卡的会话建立/删除消息以及检测到故障发生时向主控卡发送故障消息;所述BFD会话模 块用于维护BFD会话。进一步的,所述主控卡还包括上层应用协议模块,与所述第一通知模块连接,用于 通知所述第一通知模块建立/删除BFD会话。进一步的,所述BFD会话模块包括报文收发模块、定时器模块、状态控制模块;所述报文收发模块,用于BFD控制报文的接收和发送;所述定时器模块,用于路径定时检测和报文定时发送;所述状态控制模块,用于BFD状态的运行和维护。由上述技术方案可知,本发明所有的BFD控制报文均无需透传到主控卡,具有以 下有益的效果1)由于所有的BFD控制报文的生成、收发均在线卡上进行,减少了卡间通信 及主控卡的负担,维护了系统的稳定;2)由于BFD状态机的运行和维护只在线卡上进行,主 控卡上只有通知模块,实现起来较为简单,同时节约了系统资源。


图1是本发明实施例1中分布式双向转发检测方法的流程示意图。图2是本发明实施例2中分布式双向转发检测方法的流程示意图。图3是本发明实施例的分布式双向转发检测设备的结构框图。图4是本发明另一较佳实施例的分布式双向转发检测设备的结构框图。
具体实施例方式为了使本发明的目的、技术方案和特点更容易被理解和接受,下面结合附图和具 体的实施例对本发明作进一步详细描述。本发明实现一种分布式的双向转发检测的方法,在提高检测效率的同时减少主控 卡的负担,保持系统的稳定。在本发明实施例中,主控卡接收到上层应用协议的会话建立消 息后,将通知某一线卡建立相应的会话;如果多个不同的上层应用协议需要检测同样的路 径时,线卡只会被通知一次,会话只会建立一个。线卡接收到会话建立消息的指令后,建立 相应的BFD会话,并负责BFD控制报文的构建和收发,以及BFD会话状态的控制等。当线卡 上BFD会话检测到路径出现故障时,线卡将发送故障消息到主控卡上,主控卡将故障消息 通知到各个上层应用协议,各个上层应用协议执行后续删除会话等操作。在本发明中,根据 不同的分布式系统可以有多种不同的分布式BFD方法的具体实施方案,举例如下实施例1在接口信息未分布的系统中实现分布式BFD方法的实施例,如图1所示,包括如下 步骤步骤101、上层应用协议向主控卡发送建立会话的通知消息,用于通知BFD协议建 立BFD会话,该通知消息中包括VRF(virtual routing forward,虚拟路由转发)参数、本端 IP地址、对端IP地址、接口信息等参数信息。上层应用协议向主控卡发送建立会话的通知消息,可以通过套接字的形式发送和
5接收某一具体消息实现,也可以是通过共享内存的方式实现,属于现有技术方案。步骤102、主控卡接收到上层应用协议建立会话的通知消息,根据通知消息中的参 数信息(VRF参数、本端IP地址、对端IP地址、接口信息)查找是否存在对应的会话,如果 存在则结束,如果不存在,主控卡则执行步骤303。步骤103、主控卡根据建立会话的通知消息中的接口信息获取线卡信息,根据对端 IP地址获取BFD控制报文的链路信息。本步骤中,线卡信息包括报文发送的槽位号、发送和 接收报文的端口号等,从该线卡信息中可以唯一确定具有会话建立和BFD会话控制权的线 卡。另外,根据通知消息中的对端IP地址获取BFD控制报文的链路信息;例如,在以太网设 备中需要获取MAC (Media Access Control,介质访问控制)地址,这包括根据本端IP地址 获取本端的MAC地址,根据对端IP地址获取对端的MAC地址等。步骤104、主控卡判断能否完整获取BFD会话所需的线卡信息以及控制报文链路 信息,如果不能则结束,如果能则执行步骤105。步骤105、主控卡指定线卡信息中报文发送的槽位号对应的线卡为具有会话控制 权的线卡,并将建立会话的通知消息和线卡信息发送到该指定的线卡。步骤106、该指定线卡接收到建立会话的通知消息后,建立相应的BFD会话,构建 BFD控制报文,维护BFD会话。所述BFD会话是根据建立会话的通知消息中的参数信息进行 建立,BFD控制报文是根据建立会话的通知消息和线卡信息构建,构建的BFD控制消息包括 BFD消息体、UDP头部、IP头部、链路层头部。具体指定线卡维护BFD会话的实现方式又进 一步包括(1)线卡启动BFD控制报文的发送定时器,此时由于会话处于Down状态,发送周期 为秒级,发送状态字段是Down状态的BFD控制报文。(2)如果线卡接收到对端设备发送的状态字段是Down的BFD控制报文,则控制 BFD会话状态迁移进入Init状态,如果接收到状态字段是Init的BFD控制报文则控制BFD 会话状态迁移进入Up状态,本步骤需要启动检测定时器。需要说明的是,如果接收到BFD 控制报文时BFD会话尚未建立,则直接丢弃该报文。步骤107、线卡控制BFD会话状态进入Up状态后,设定定时器检测BFD会话状态。步骤108、如果检测定时器超时或BFD会话状态迁移到Down状态,线卡BFD协议则 向主控卡发送故障消息。超时可能是由于检测周期内未收到对端设备发送的BFD控制报文 或收到错误的BFD控制报文丢弃导致。在上述过程中,所有的BFD控制报文均无需透传到 主控卡,直接在线卡上处理完毕。步骤109、主控卡接收到BFD故障消息后,将该消息通知上层应用协议。步骤110、上层应用协议接收到BFD故障消息后,向主控卡发送会话删除消息,同 时上层应用协议也会根据自身的需要,做路径出现故障时的后续操作。步骤111、主控卡接收会话删除消息后,指令建立会话的线卡删除会话。步骤112、建立会话的线卡接收到该消息后删除该会话。实施例2接口信息已分布的系统中实现分布式BFD方法的实施例子,如图2所示。本实施 例适合接口信息已分布的系统,由于接口信息已分布在各个不同的线卡上,故只需主控卡 根据上层应用协议的接口信息将通知消息透传给某一指定线卡,线卡完成具体的BFD会话
6的建立即可,具体包括如下的步骤步骤201、上层应用协议向主控卡发送建立会话的通知消息,用于通知BFD协议建 立BFD会话,该通知消息中包括VRF(virtual routing forward,虚拟路由转发)参数、本端 IP地址、对端IP地址、接口信息等参数信息。上层应用协议向主控卡发送建立会话的通知消息,可以通过套接字的形式发送和 接收某一具体消息实现,也可以是通过共享内存的方式实现,此步骤的实现是现有技术方案。步骤202、主控卡接收到建立会话的通知消息后,根据通知消息中的参数信息查询 是否存在相应的会话。如果存在对应的会话,则结束;否则,执行步骤203。本步骤中的参 数信息同步骤102,包括VRF参数、本端IP地址、对端IP地址、接口信息等。步骤203、主控卡根据建立会话的通知消息中的接口信息获取线卡信息,对于本实 施例而言,只需获取报文发送的槽位号即可,不需要获取线卡其他方面的信息;主控卡根据 报文发送的的槽位号,指定和该报文发送的槽位号对应的线卡为具有BFD会话控制权的线 卡,并发送建立会话的通知消息到该线卡。步骤204、线卡块接收到会话建立消息后,完成相应的会话建立。该线卡完成BFD 控制报文的构建和收发,以及路径的检测,其中BFD控制报文构建所需要的信息直接从本 线卡上获取即可。此时构建的BFD控制报文包括BFD控制消息体、UDP头部、IP头部。线 卡将BFD控制报文从指定的接口发送出去,所述指定的接口信息是从主控卡通知的会话建 立消息中获取,通常,这一接口信息可以是主控卡通知到线卡的接口索引或接口名称,也可 以是线卡直接根据BFD会话建立消息中的IP地址获取。步骤205、线卡接收BFD控制报文,控制BFD会话状态的迁移。线卡设定定时器检 测BFD会话状态。步骤206、如果线卡在检测周期内未接收到上述会话的BFD控制报文,定时器模块 检测超时或BFD会话状态迁移到Down状态,则执行步骤207。步骤207、线卡发送BFD故障消息到主控卡。步骤208、主控卡接收到故障消息后,透传所述故障消息到上层应用协议。步骤209、层应用协议接收到BFD故障消息后,向主控卡发送会话删除消息,同时 上层应用协议也会根据自身的需要,做路径出现故障时的后续操作。后续过程与实施例1 同样的删除操作,本实施例不再赘述。显然,在本发明中的所有BFD控制报文的收发只在线卡上进行,因而可以快速 高效的检测,不会影响主控卡上控制平面的稳定。在双主控的设备中如果设备由于人为 原因或故障原因发生主从切换事件时,其数据业务保持不中断,目前提出了了优雅重启 (graceful restart,GR)的实现方案。由于检测只在线卡上进行,不会影响BFD控制报文 的收发,不会引起线卡上BFD状态的切换,因而也可以保障GR过程的成功。本发明还提出了一种分布式设备,如图3所示,为一实施例的系统框图,包括一主 控卡1和多个线卡2,主控卡1属于设备中的控制部分,线卡2主要运行设备中转发部分, 主控卡1和线卡2之间建立了卡间通道,用于主控卡1和线卡2之间消息的传输。所述主 控卡1包括第一通知模块11,接口板2包括与第一通知模块连接的第二通知模块21和BFD 会话模块22。
所述第一通知模块11用于接收会话建立/删除消息,并通知某一线卡建立相应的 会话;同时,负责将线卡的故障消息通知给各个上层应用协议。第一通知模块11接收到的 BFD事件消息由第二通知模块21发送;同理,第二通知模块21接收到的消息也是第一通知 模块11发送。所述第二通知模块21,用于接收第一通知模块11的会话建立/删除消息以及在检 测到故障发生时向主控卡发送故障消息。第二通知模块21负责所在线卡上BFD的状态的 通告,通告的事件主要有Down状态到Up状态的切换以及Up状态到Down状态的切换,通告 的对象是主控卡的第一通知模块11。所述BFD会话模块22用于维护BFD会话,负责BFD控制报文的构建和收发,即控 制BFD会话状态的迁移以及检测路径故障,以及BFD会话的建立/删除。当线卡上BFD会话模块22检测到路径出现故障时,通过第一通知模块21发送故 障消息到主控卡上的第一通知模块11,主控卡第一通知模块11将故障消息通知到各个上 层应用协议,各个上层应用协议执行后续删除会话等操作。由于所有的BFD控制报文的生成、收发均在线卡上进行,减少了主控卡和卡间通 信及主控卡的负担,维护了设备的稳定;且主控卡上1只有第一通知模块11,实现起来较为 简单,同时节约了系统资源。如图4所示,为一较佳实施例的设备框图,以包括一个主控卡1和一个线卡2为 例所述主控卡1除了包括第一通知模块11以外,还包括和第一通知模块连接的上层 应用协议模块12,上层应用协议模块12负责发送BFD会话建立/删除消息以及响应第一通 知模块11的故障消息。所述线卡2中的BFD会话模块22,进一步可以分为报文收发模块221、定时器模 块222、状态控制模块223,其中报文收发模块221,负责BFD控制报文的收发,其中发送的BFD控制报文是由该模 块构建,构建的报文包括BFD消息体、UDP头部、IP头部甚至链路头部,构建完控制报文后发 送到对端设备。接收报文的过程,当接收到BFD控制报文后,需查找是否有对应的会话,如 果没有,则丢弃,如果存在则需要重置检测定时器。定时器模块222,主要有发送定时器和检测定时器,分别负责BFD控制报文定时发 送和报文超时检测。一般来说,在BFD状态是Down状态时,报文发送周期在1秒以上,当接 收到对端发送过来的报文后,根据协商后的时间周期定时报文发送,同时启动检测定时器, 检测定时器的检测时间也是由两端协商的参数确定。关于定时器的时间参数确定方式,是 现有的技术方案。状态控制模块223,负责响应外部事件并进行BFD会话状态的迁移,外部事件主要 有接收到对端会话发送的BFD控制报文、检测定时器检测超时、手动关闭会话等。BFD会话 状态的切换主要有=Down状态到Init状态,Init状态到Up状态以及Up状态到Down状态。 关于状态机的驱动实现方式,是现有的技术标准,不再赘述。需要说明的是,以上实施例只是本发明的特定实施例。显然,可以对本实施例进行 修改、等同替换等其他的一些变化,例如线卡上BFD控制报文的收发可以通过其他的一些 方式实现。因此,此特定实施例的描述不作为限定本发明的保护范围。
8
权利要求
一种分布式双向转发检测的方法,其特征在于,包括以下步骤主控卡接收到上层应用协议建立会话的通知消息后,通知本端一线卡建立会话;所述线卡运行BFD协议,完成BFD会话的建立和维护;当检测到出现故障时,由该建立会话的线卡删除会话。
2.如权利要求1所述分布式双向转发检测的方法,其特征在于,所述该建立会话的线 卡删除会话,包括如下步骤a、线卡检测到故障后向主控卡发送故障消息;b、主控卡收到BFD故障消息后,将该消息通知上层应用协议;c、上层应用协议接收到BFD故障消息后,向主控卡发送会话删除消息;d、主控卡接收会话删除消息后,指定该建立会话的线卡删除会话。
3.如权利要求1或2所述分布式双向转发检测的方法,其特征在于,所述通知消息包括 虚拟路由转发参数、本端IP地址、对端IP地址、接口信息等参数信息。
4.如权利要求3所述分布式双向转发检测的方法,其特征在于,主控卡根据该接口信 息获取线卡信息,根据该线卡信息唯一确定具有会话控制权的线卡。
5.如权利要求4所述分布式双向转发检测的方法,其特征在于,在接口信息未分布的 系统中,所述主控卡根据所述接口信息获取的线卡信息为报文发送的槽位号、发送和接收 报文的端口号。
6.如权利要求4所述分布式双向转发检测的方法,其特征在于,在接口信息已分布的 系统中,所述主控卡根据所述接口信息获取的线卡信息为报文发送的槽位号。
7.分布式双向转发检测的设备,包括一个主控卡和至少一个线卡,其特征在于,所述主控卡包括第一通知模块,用于接收上层应用协议会话建立/删除消息并将这一 消息通告到线卡BFD协议,还用于接收线卡BFD协议故障消息并将这一消息通告到上层应 用协议;所述线卡包括第二通知模块和BFD会话模块;所述第二通知模块,用于接收主控卡的 会话建立/删除消息以及检测到故障发生时向主控卡发送故障消息;所述BFD会话模块用 于维护BFD会话。
8.如权利要求7所述分布式双向转发检测的设备,其特征在于,所述主控卡还包括上 层应用协议模块,与所述第一通知模块连接,用于通知所述第一通知模块建立/删除BFD会 话。
9.如权利要求7或8所述分布式双向转发检测的设备,其特征在于,所述BFD会话模块 包括报文收发模块、定时器模块、状态控制模块;所述报文收发模块,用于BFD控制报文的接收和发送;所述定时器模块,用于路径定时检测和报文定时发送;所述状态控制模块,用于BFD状态的运行和维护。
10.如权利要求9所述分布式双向转发检测的设备,其特征在于,所述报文收发模块还 用于当接收到BFD控制报文后,需查找是否有对应的会话,如果没有则丢弃,否则需要重置 检测定时器。
全文摘要
本发明公开了一种分布式双向转发检测方法,包括以下步骤主控卡接收到上层应用协议建立会话的通知消息后,通知本端某一线卡建立会话;所述线卡运行BFD协议,完成BFD会话的建立和维护;当检测到出现故障时,由该建立会话的线卡删除会话。本发明中所有的BFD控制报文的生成、收发均在线卡上进行,减少了卡间通信及主控卡的负担,维护了系统的稳定;而且由于BFD状态机的运行和维护只在线卡上进行,主控卡上只有通知模块,实现起来较为简单,同时节约了系统资源。
文档编号H04L12/56GK101895437SQ20101020705
公开日2010年11月24日 申请日期2010年6月23日 优先权日2010年6月23日
发明者徐海兵, 李永合 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1