用于单向路径检测的bfd会话建立方法及bfd会话系统的制作方法

文档序号:7772568阅读:597来源:国知局
专利名称:用于单向路径检测的bfd会话建立方法及bfd会话系统的制作方法
技术领域
本发明涉及网络通信设备领域的双向转发检测(Bidirectional ForwardingDetection, BFD)技术,特别涉及一种用于单向路径检测的BFD会话建立方法及BFD会话系统。
背景技术
BFD是一套标准化的轻量级检测协议,用于快速检测、监控网络中路径或者IP路由转发的连通状况。它提供的是一种通用的、标准化的、介质无关、协议无关的故障检测机制,可为各上层路由协议、MPLS (Multiprotocol Label Switching,多协议标签交换)等提供统一、持续、快速的故障检测能力。从很多方面来看,BFD都和已知路由协议中用于检测邻居故障的简单Hello协议相似。BFD在进行检测前,需要在两个对等系统间建立BFD会话,由于BFD没有自己的发现机制,BFD会话将基于使用它的具体应用的需要而建立。BFD会话的建立采用三次握手的机制,在此过程中双方将进行会话参数的协商以及会话状态BFD Down (关闭)=> BFDInit (初始化)=> BFD Up (激活)的迁移。对于某些需要维护邻居关系的对称的上层应用协议,如0SPF(0pen ShortestPath First,开放最短路径优先)、BGP (Border Gateway Protocol,边界网关协议)等,其邻居关系建立后可以很自然地将相应的邻居信息通告给BFD来建立会话,上述BFD会话的双方都关心会话的状态,即该类BFD会话适用于双向路径的检测。对于某些不对称的单向上层应用协议,如静态路由协议、RIP (Routing Information Protocol,路由信息协议)、IPFRR(IP Fast Reroute,基于互联网协议的快速重路由)等,为其建立的BFD会话仅会话建立主动端一方关心会话的状态,即该类BFD会话适用于单向路径的检测。目前,应用于单向路径检测的BFD会话建立方案主要有如下3种:1、通过在被动端进行对应于主动端的手工配置来建立检测单向路径的BFD会话。该方案不仅工作量大、灵活性差,同时由于在删除BFD会话时也需要会话两端进行手工配置,因此还容易引入错误。2、在中国专利申请CNl01425942 ( —种实现双向转发检测的方法、装置及系统)中,使用BFD控制报文的接收作为条件来触发被动端建立检测单向路径的BFD会话。该方案简化了被动端的配置操作,但是仅使用了 TTL和端口号相结合的类型来进行简单的校验,因此这种方案不能提供较高的安全性保证。3、在中国专利CN101163060B (BFD会话建立方法、BFD会话建立装置及路由设备)中,使用BFD机制中的回声(Echo)功能来检测单向路径,即将发送至远端的BFD回声报文的IP头中的目的端地址设置为本端发送回声报文的接口 IP地址,本端接收并处理远端环回的回声报文。这种方案不需要业务末结点进行任何BFD配置操作,甚至不需要业务末结点支持BFD,具有很高的简单灵活性,但该方案仅支持对单跳路径的检测,具有较大的局限性。
可见,上述方案都具有各自的局限,目前尚无一种用于检测单向路径的BFD会话建立方案能同时满足简单灵活、支持多跳、高安全性的要求。

发明内容
本发明所要解决的技术问题是:提供一种用于单向路径检测的BFD会话建立方法及会话系统,以解决传统技术中的应用BFD检测单向路径的方案不能同时满足简单灵活、支持多跳、高安全性的问题。本发明解决上述技术问题所采用的方案是:主动端与被动端预先确定建立BFD会话的认证信息,主动端在接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并向被动端发送包含相应认证信息的BFD控制报文;被动端接收主动端发送的BFD控制报文,在执行报文有效性检查成功后分离报文至相应的BFD会话,在分离报文时如果判断不存在相应的BFD会话且该BFD控制报文需要认证,则使用与主动端预先确定的认证信息进行认证,在认证通过后,建立BFD会话。进一步,所述主动端与被动端通过手工配置或动态信令交互的方式预先确定建立BFD会话的认证信息。进一步,所述认证信息包括认证类型和认证密钥对。具体的,所述认证密钥对为Key ID和Password的组合,或者为Key ID和SecretKey的组合。具体的,所述认证类型为Simple Password或Keyed MD5 或Meticulous Keyed MD5或 Keyed SHAl 或 Meticulous Keyed SHAl。进一步,该方法具体步骤包括:a.主动端的相应步骤:al.与被动端预先确定建立BFD会话的认证类型及认证密钥对;a2.接收单向上层应用协议的建立BFD会话的指令后,创建BFD会话并触发会话状态机运行;a3.判断会话状态是否为BFD Down,如是则执行步骤a4,否则,执行步骤a5 ;a4.根据预先确定的认证类型及认证密钥对构造BFD控制报文,并发送至被动端,结束流程;a5.根据当前BFD会话状态及参数构造BFD控制报文并发送至被动端;b.被动端的相应步骤:bl.与主动端预先确定建立BFD会话的认证类型及认证密钥对;b2.接收主动端发送的BFD控制报文,并对BFD控制报文执行报文有效性检查;b3.报文有效性检查成功后分离该BFD控制报文至相应会话,并判断分离是否成功,如是则执行步骤b7,否则执行步骤b4 ;b4.判断该报文是否需要认证,如是则执行步骤b5,否则,丢弃该报文,结束流程;b5.根据预先确定的认证类型及认证密钥对进行认证,如果认证通过,则执行步骤b6,否则,丢弃该报文,结束流程;b6.创建 BFD 会话;bl.执行BFD协议的后续处理。
进一步,步骤a4中,主动端在构造BFD控制报文时,选取报文的本端鉴别值,并将对端鉴别值置O。进一步,步骤b6中,被动端针对创建的BFD会话在本地选取一个本地鉴别值,并将接收到的BFD控制报文中的主动端的本地鉴别值作为对端鉴别值。本发明的另一目的是提出一种BFD会话系统,其包括:主动端和被动端;所述主动端,用于在接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并向被动端发送包含认证信息的BFD控制报文;所述被动端,用于接收主动端发送的BFD控制报文,并在执行报文有效性检查成功后分离BFD控制报文至相应的BFD会话,在分离报文时如判断不存在相应的BFD会话且该BFD控制报文需要认证,则使用与主动端预先确定的认证信息进行认证,在认证通过后,建立BFD会话。进一步,所述认证信息包括认证类型和认证密钥对;所述认证类型为SimplePassword 或 Keyed MD5 或 Meticulous Keyed MD5 或 Keyed SHAl 或 Meticulous KeyedSHAl ;所述认证密钥对为Key ID和Password的组合,或者为Key ID和Secret Key的组

口 ο本发明的有益效果是:主动端和被动端仅需预先确定相同的认证类型和相应的密钥对,通过接收包含认证信息的BFD控制报文并认证来触发被动端自动建立BFD会话,具备灵活性;同时由于采用了认证类型,相对现有方案来说极大地提高了网络的安全性。而且由于本发明采用BFD控制报文来建立单向会话,而BFD控制报文的目的IP地址可以是任意的可路由地址,因此方案建立的BFD会话能同时支持对单跳路径和多跳路径的检测。


图1是本发明的系统实施例的示意图;图2是本发明实施例1中主动端处理机制的流程示意图;图3是本发明实施例1中被动端处理机制的流程示意图;图4是本发明实施例1中主动端发送的BFD控制报文认证信息结构示意图;图5是本发明实施例2中主动端处理机制的流程示意图;图6是本发明实施例2中被动端处理机制的流程示意图;图7是本发明实施例2中主动端发送的BFD控制报文认证信息结构示意图。
具体实施例方式为解决传统技术中的应用BFD检测单向路径的方案不能同时满足简单灵活、支持多跳、高安全性的问题,本发明提出了用于单向路径检测的BFD会话建立方法及会话系统;参见图1,该BFD会话系统包括主动端和被动端,其中主动端用于在接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并向被动端发送包含认证信息的BFD控制报文;被动端用于接收主动端发送的BFD控制报文,并检查报文有效性和分离报文至相应的BFD会话,如果不存在相应的BFD会话且该BFD控制报文需要认证,则使用与主动端相同的认证类型和相应的密钥对进行认证,在认证通过后,建立BFD会话。在本发明中,主动端和被动端需预先确定为单向上层应用协议创建BFD会话的认证类型以及相应的Key ID (密钥ID)、Password (口令)/Secret Key (密钥),确定的方式可以是手工配置、动态信令或其他,本发明不限于使用某种特定的协商方式。当主动端接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并根据确定的认证信息包括认证类型和相应的Key ID、Password/Secret Key,构造包含认证信息的BFD控制报文发送至被动端。被动端接收到该BFD控制报文后首先将依照现有实现机制检查报文有效性并分离该报文至本地的某个会话,由于被动端还未创建相应的会话,此时将分离失败。被动端随后根据该BFD控制报文的内容判断出该报文需要进行认证,因此将针对该BFD控制报文的认证信息,根据预先为单向上层应用协议创建BFD会话所配置的认证类型和相应Key ID、Password/SecretKey对其进行认证。如果认证通过,则建立BFD会话,并进行会话状态机维护等现有标准实现机制的处理。需要说明的是,上述方案中,主动端仅在本端为单向上层应用协议所建立的BFD会话状态为Down时才向被动端发送包含认证信息的BFD控制报文,被动端建立BFD会话后的处理流程完全遵循现有标准技术方案,其发送给主动端的BFD控制报文不包含认证信
肩、O本发明所实现的用于检测单向路径的BFD会话建立方法在不增加配置复杂度和降低应用灵活性的基础上,能同时支持对单跳路径和多跳路径的检测,并采用认证的类型保证了网络的高安全性。本发明所采用的BFD控制报文的认证信息遵循已有标准定义,目前已定义的可选认证类型包括:1> Simple Password (简单口令认证,认证类型编码为I);2、Keyed MD5 (基于消息摘要算法第5版的带密钥认证,认证类型编码为2);3、Meticulous Keyed MD5 (基于消息摘要算法第5版的周密的带密钥认证,认证类型编码为3);4、Keyed SHAl (基于安全散列算法I的带密钥认证,认证类型编码为4);5、Meticulous Keyed SHAl (基于安全散列算法I的周密的带密钥认证,认证类型编码为5)。本发明不限于使用上述任何一种特定的认证类型,根据所采用的不同的认证类型可以有多种不同的实现类型,例如:采用Simple Password认证类型建立检测单向路径的BFD会话;采用Keyed MD5认证类型建立检测单向路径的BFD会话。下面将根据上述两种实现类型各举一个具体的实施例来说明本发明的全部实现过程。实施例1在该实施例1中,主动端的实现流程如图2所示,包括如下步骤:步骤201:为单向上层应用协议建立BFD会话预先配置认证类型为SimplePassword,同时配置 Key ID 和 Password。步骤202:接收单向上层应用协议建立BFD会话的指令,创建BFD会话并触发会话状态机运行。步骤203:会话状态是否为Down,如果是则执行步骤204,否则执行步骤205。步骤204:依照本端所配置认证类型Simple Password,以及Key ID和相应的Password,按现有标准构造一个A位(Authentication Present,认证标识)置I并包含认证信息的BFD控制报文发送至被动端,其中的认证信息按格式如图4所示,该认证信息承载于标准BFD控制报文的后面。该BFD控制报文的My Discriminator (本端鉴别值)由发送端本地选取,YourDiscriminator (对端鉴别值)为O。步骤205:根据当前BFD会话状态及参数构造不包含认证信息的BFD控制报文并发送至被动端。在该实施例1中,被动端的实现流程如图3所示,包括如下步骤:步骤301:为单向上层应用协议建立BFD会话预先配置认证类型为SimplePassword,同时配置与主动端相同的Key ID和Password。步骤302:接收BFD控制报文,按现有标准实现机制进行报文有效性检查,检查的部分包括版本号、报文长度、检测倍数、本端鉴别值和保留的多点位(Multipoint bit),即检查版本号是否为1、报文长度是否正确、检测倍数和本端鉴别值字段是否非O、保留的多点位是否置O。步骤303:判断报文有效性检查结果,如果检查通过,执行步骤304,否则执行步骤309。步骤304:分离报文至相应会话。如果分离失败,执行步骤305,分离成功则执行步骤 310。步骤305:判断报文是否需要认证。若该BFD控制报文A位置I并包含有效的认证信息,执行步骤306,否则执行步骤309。步骤306:按现有标准实现机制对报文进行Simple Password认证。步骤307:判断认证结果。若认证通过则执行步骤308,否则执行步骤309。步骤308:创建BFD会话并触发会话状态机。针对这个新建的BFD会话被动端将本地选取一个My Discriminator,同时将接收到的BFD控制报文中的My Discriminator作为 YourDi scriminator。步骤309:丢弃报文并结束。步骤310:现有标准实现机制处理,即执行BFD会话状态机,根据当前BFD会话状态及参数构造BFD控制报文并发送至主动端。需要指出的是,若步骤304的结果是分离成功,其下一步骤310中仍可按现有标准技术方案进行报文认证的处理,本发明所述方案中的报文认证不影响现有标准技术方案中的报文认证流程。实施例2在该实施例2中,主动端的实现流程如图5所示,包括如下步骤:步骤501:为单向上层应用协议建立BFD会话预先配置认证类型为Keyed MD5,同时配置 Key ID 和 Secret Key。步骤502:接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并触发会话状态机运行。步骤503:会话状态是否为Down,如果是则执行步骤504,否则执行步骤505。步骤504:依照本端所配置的Keyed MD5认证类型,以及Key ID和相应的SecretKey,按现有标准构造一个A位(Authentication Present,认证标识)置I并包含认证信息的BFD控制报文发送至被动端,其中的认证信息如图7所示。认证信息中的SequenceNumber (序列号)在本实施例中没有特别的作用,主动端可以将其置为O,而Auth Key/Digest (认证密钥/摘要)字段是一个16字节的二进制字符串,其生成方法遵循现有标准。主动端对该BFD控制报文的My Discriminator和Your Discriminator的选取与实施例1相同。步骤505:现有标准实现机制处理,即根据当前BFD会话状态及参数构造不包含认证信息的BFD控制报文并发送至被动端。在该实施例2中,被动端的实现流程如图6所示,包括如下步骤:步骤601:为单向上层应用协议建立BFD会话预先配置认证类型为Keyed MD5,同时配置与主动端相同的Key ID和Secret Key。步骤602:接收BFD控制报文,按现有标准实现机制进行报文有效性检查,即检查版本号是否为1、报文长度是否正确、检测倍数和本端鉴别值字段是否非O、保留的多点位是否直O。步骤603:判断报文有效性检查结果,如果检查通过,执行步骤604,否则执行步骤609。步骤604:分离报文至相应会话。如果分离失败,执行步骤605,分离成功则执行步骤 610。步骤605:判断报文是否需要认证。若该BFD控制报文A位置I并包含有效的认证信息,执行步骤606,否则执行步骤609。 步骤606:按现有标准实现机制对报文进行Keyed MD5认证。步骤607:判断认证结果。若认证通过则执行步骤608,否则执行步骤609。步骤608:创建BFD会话并触发会话状态机。针对这个新建的BFD会话被动端将本地选取一个My Discriminator,同时将接收到的BFD控制报文中的My Discriminator作为 YourDiscriminator0步骤609:丢弃报文并结束。步骤610:现有标准实现机制处理,即执行BFD会话状态机,根据当前BFD会话状态及参数构造BFD控制报文并发送至主动端。需要说明的是,以上实施例只是本发明的特定实施例。本技术领域人员在不脱离本发明的实质和精神的情况下,较容易对上述实施例作出等同修改/替换,例如可采用动态信令的方式在会话主动端和被动端间为单向上层应用协议建立BFD会话协商认证类型和相应的Key ID、Password/Key。因此,本发明所要求保护的方案包含但不限于上述实施例,大凡在不脱离本发明的实质和精神的情况下对上述方案作出的改动均在本发明的保护范围内。
权利要求
1.用于单向路径检测的BH)会话建立方法,其特征在于,包括:主动端与被动端预先确定建立BFD会话的认证信息,主动端在接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并向被动端发送包含相应认证信息的BFD控制报文;被动端接收主动端发送的BFD控制报文,在执行报文有效性检查成功后分离报文至相应的BFD会话,在分离报文时如果判断不存在相应的BFD会话且该BFD控制报文需要认证,则使用与主动端预先确定的认证信息进行认证,在认证通过后,建立BFD会话。
2.如权利要求2所述的用于单向路径检测的BFD会话建立方法,其特征在于,所述主动端与被动端通过手工配置或动态信令交互的方式预先确定建立BFD会话的认证信息。
3.如权利要求1或2所述的用于单向路径检测的BFD会话建立方法,其特征在于,所述认证信息包括认证类型和认证密钥对。
4.如权利要求3所述的用于单向路径检测的BFD会话建立方法,其特征在于,所述认证密钥对为Key ID和Password的组合,或者为Key ID和Secret Key的组合。
5.如权利要求3所述的用于单向路径检测的BFD会话建立方法,其特征在于,所述认证类型为 Simple Password 或 Keyed MD5 或 Meticulous Keyed MD5 或 Keyed SHAl 或Meticulous Keyed SHAl0
6.如权利要求3所述的用于单向路径检测的BFD会话建立方法,其特征在于,该方法具体步骤包括: a.主动端的相应步骤: al.与被动端预先确定建立BFD会话的认证类型及认证密钥对;a2.接收单向上层应用协议的 建立BFD会话的指令后,创建BFD会话并触发会话状态机运行; a3.判断会话状态是否为BFD Down,如是则执行步骤a4,否则,执行步骤a5 ;a4.根据预先确定的认证类型及认证密钥对构造BFD控制报文,并发送至被动端,结束流程; a5.根据当前BFD会话状态及参数构造BFD控制报文并发送至被动端; b.被动端的相应步骤: bl.与主动端预先确定建立BFD会话的认证类型及认证密钥对;b2.接收主动端发送的BFD控制报文,并对BFD控制报文执行报文有效性检查;b3.报文有效性检查成功后分离该BFD控制报文至相应会话,并判断分离是否成功,如是则执行步骤b7,否则执行步骤b4 ; b4.判断该报文是否需要认证,如是则执行步骤b5,否则,丢弃该报文,结束流程;b5.根据预先确定的认证类型及认证密钥对进行认证,如果认证通过,则执行步骤b6,否则,丢弃该报文,结束流程;b6.创建BFD会话;b7.执行BFD协议的后续处理。
7.如权利要求6所述的用于单向路径检测的BFD会话建立方法,其特征在于,步骤a4中,王动端在构造BFD控制报文时,选取报文的本端鉴别值,并将对端鉴别值直O。
8.如权利要求7所述的用于单向路径检测的BFD会话建立方法,其特征在于,步骤b6中,被动端针对创建的BFD会话在本地选取一个本地鉴别值,并将接收到的BFD控制报文中的主动端的本地鉴别值作为对端鉴别值。
9.BFD会话系统,包括:王动端和被动端;其特征在于, 所述主动端,用于在接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并向被动端发送包含认证信息的BFD控制报文; 所述被动端,用于接收主动端发送的BFD控制报文,并在执行报文有效性检查成功后分离BFD控制报文至相应的BFD会话,在分离报文时如判断不存在相应的BFD会话且该BFD控制报文需要认证,则使用与主动端预先确定的认证信息进行认证,在认证通过后,建立BFD会话。
10.如权利要求9所述的BFD会话系统,其特征在于,所述认证信息包括认证类型和认证密钥对;所述认证类型为Simple Password或Keyed MD5或Meticulous Keyed MD5或KeyedSHAl 或 Meticulous Keyed SHAl ;所述认证密钥对为 Key ID 和 Password 的组合,或者为KeyID和Secret Key的组合。·
全文摘要
本发明涉及网络通信设备领域的双向转发检测技术,其公开了一种用于单向路径检测的BFD会话建立方法,以解决传统技术中的方案不能同时满足简单灵活、支持多跳、高安全性的问题。其技术方案的要点是主动端与被动端预先确定建立BFD会话的认证信息,主动端在接收单向上层应用协议的建立BFD会话的指令后,建立BFD会话并向被动端发送包含相应认证信息的BFD控制报文;被动端接收主动端发送的BFD控制报文,在执行报文有效性检查成功后分离报文至相应的BFD会话,在分离报文时如果判断不存在相应的BFD会话且该BFD控制报文需要认证,则使用与主动端预先确定的认证信息进行认证,在认证通过后,建立BFD会话。此外,本发明还公开了一种BFD会话系统,适用于网络通信。
文档编号H04L29/06GK103166915SQ20111041151
公开日2013年6月19日 申请日期2011年12月12日 优先权日2011年12月12日
发明者秦川, 李永合, 徐海兵 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1