发明内容
本发明提供了一种VLL故障检测方法及设备,以降低VLL故障检测时对PE节点之间公网链路其他业务的影响,并实现PE节点之间的PW连同PE与CE之间的AC的故障检测。
为了达到以上目的,本发明实施例提供一种虚拟专用线路VLL故障检测方法,应用于包括多个服务提供商边缘PE节点和用户网络边缘CE节点的多协议标签交换二层虚拟专用网络MPLS L2VPN中,本地CE节点与远程CE节点之间建立有主虚电路VC和对应的备份VC,所述主VC中的本地PE节点与本地CE节点连接,对端PE节点与远程CE节点连接,该方法包括:
所述本地PE节点向所述对端PE节点发送特定双向检测BFD报文,所述BFD报文中携带有用于标识所述本地PE节点与所述对端PE节点之间的伪线路PW的源MAC地址,以及用于标识所述BFD报文为特定BFD报文的标识信息;所述特定BFD报文用于检测所述PW连同所述对端PE节点与所述远程CE节点之间的接入电路AC是否故障;
当所述本地PE节点在预设时间内未接收到所述BFD报文的响应报文的次数超过阈值时,确定所述PW或/和AC故障。
其中,所述本地PE节点向所述对端PE节点发送BFD报文,具体为:
所述本地PE节点获取与所述对端PE节点之间的PW的标识PWID,将所述PWID转换为用于标识所述PW的源MAC地址,并向所述对端PE节点发送携带有所述用于标识所述PW的源MAC地址的BFD报文;其中,所述PWID与所述用于标识所述PW的源MAC地址一一对应。
其中,所述本地PE节点接收所述BFD报文的响应报文,具体为:
所述本地PE节点接收所述远程CE节点根据所述第一ACL规则重定向的BFD报文;所述第一ACL规则用于指示所述远程CE节点将所述特定BFD报文重定向到接收该BFD报文的源端口。
其中,所述本地PE节点中配置有用于指示所述本地PE节点将接收到的所述特定BFD报文重定向到OAM CPU的第二ACL规则;该方法还包括:
当所述本地PE节点接收到所述对端PE节点返回的BFD报文,且所述本地PE节点确定所述BFD报文为所述特定BFD报文时,所述本地PE节点将所述BFD报文重定向到OAM CPU,通过OAM CPU将BFD报文中携带的源MAC地址转换为PWID,并当所述PWID与所述本地PE节点和对端PE节点之间的PW的PWID一致时,确定所述PW未发生故障。
其中,所述当所述本地PE节点在预设时间内未接收到所述BFD报文的响应报文的次数超过阈值时,确定所述PW以及所述对端PE节点与所述远程CE节点之间的接入电路AC故障,具体为:
若所述预设时间为一个检测周期,则当所述本地PE节点在该检测周期内未接收到所述BFD报文的响应报文时,确定所述PW或/和AC故障;
若所述预设时间为连续N个检测周期,则当所述本地PE节点在连续N个检测周期内未接收到所述BFD报文的响应报文的次数超过M时,确定所述PW或/和AC故障;其中N为大于1的正整数,M为小于N正整数。
本发明实施例还提供了一种网络设备,作为本地服务提供商边缘PE节点应用于包括多个PE节点和用户网络边缘CE节点的多协议标签交换二层虚拟专用网络MPLS L2VPN中,本地CE节点与远程CE节点之间建立有主虚电路VC和对应的备份VC,所述主VC中的本地PE节点与本地CE节点连接,对端PE节点与远程CE节点连接,该网络设备包括:
发送模块,用于向所述对端PE节点发送特定双向检测BFD报文,所述BFD报文中携带有用于标识所述本地PE节点与所述对端PE节点之间的伪线路PW的源MAC地址,以及用于标识所述BFD报文为特定BFD报文的标识信息;所述特定BFD报文用于检测所述PW连同所述对端PE节点与所述远程CE节点之间的接入电路AC是否故障
接收模块,用于接收所述BFD报文的响应报文;
确定模块,用于当所述接收模块在预设时间内未接收到所述BFD报文的响应报文的次数超过阈值时,确定所述PW或/和AC故障。
其中,所述网络设备还包括:
获取模块,用于获取所述网络设备与所述对端PE节点之间的PW的标识PWID;
操作和维护OAM中央处理器CPU,用于将所述获取模块获取到的PWID转换为用于标识所述PW的源MAC地址;其中,所述PWID与所述用于标识所述PW的源MAC地址一一对应
所述发送模块具体用于,向所述对端PE节点发送携带有所述用于标识所述PW的源MAC地址的BFD报文。
其中,所述接收模块具体用于,接收所述远程CE节点根据所述第一ACL规则重定向的BFD报文;所述第一ACL规则用于指示所述远程CE节点将所述特定BFD报文重定向到接收该BFD报文的源端口。
其中,所述网络设备还包括:
存储模块,用于存储用于指示所述网络设备将接收到的所述特定BFD报文重定向到OAM CPU的第二ACL规则;
所述接收模块还用于,接收所述对端PE节点返回的BFD报文,并当该BFD报文为所述特定报文BFD报文时,将所述BFD报文重定向到OAM CPU;
所述OAM CPU还用于,当所述BFD报文中携带的源MAC地址转换为PWID;
所述确定模块具体用于,当所述PWID与所述网络设备与所述对端PE节点之间的PW的PWID一致时,确定所述PW未发生故障。
其中,所述确定模块具体用于,
若所述预设时间为一个检测周期,则当所述接收模块在该检测周期内未接收到所述BFD报文的响应报文时,确定所述PW或/和AC故障;
若所述预设时间为连续N个检测周期,则当所述接收模块在连续N个检测周期内未接收到所述BFD报文的响应报文的次数超过M时,确定所述PW或/和AC故障;其中N为大于1的正整数,M为小于N正整数。
本发明上述实施例中,针对PE节点之间的特定PW进行故障检测,可以实现在不影响PE之间公网链路上承载的其他业务的基础上通知VLL主备链路的切换,此外,还可以实现对PE之间的PW连同PE与CE之间的AC进行链路故障检测,提高了故障检测的可靠性。
具体实施方式
针对现有技术中存在的上述问题,本发明实施例提供了一种VLL故障检测的技术方案,可以应用于包括多个PE节点和CE节点的MPLS L2VPN中。在该技术方案中,针对PE节点之间的特定PW进行故障检测,可以实现在不影响PE之间公网链路上承载的其他业务的基础上通知VLL主备链路的切换,此外,还可以实现同时对PE之间的PW连同PE与CE之间的AC进行链路故障检测,提高了故障检测的可靠性。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整的描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。
该实施例提供了一种VLL故障检测方法,可以应用于包括多个PE节点和CE节点的MPLS L2VPN中。以图2所示的应用场景为例,CE 1(即本地CE)与CE 2(即远程CE)之间建立有主VC和对应的备份VC,该主VC中的PE 1(即本地CE)与CE1节点连接,PE2(即对端PE)与CE 2连接。
如图3所示,为本发明实施例提供的一种VLL故障检测方法的流程示意图,可以包括以下步骤:
步骤301、本地PE节点向对端PE节点发送BFD报文;该BFD报文中携带有用于标识该本地PE节点和对端PE节点之间的PW的源MAC地址,以及用于标识BFD报文为特定BFD报文的标识,该特定报文用于检测本地PE节点与对端PE节点之间的伪线路PW连同对端PE节点与远程CE节点之间的接入电路AC是否故障。
具体的,针对现有技术中使用BFD for LSP对PE之间的VC链路进行故障检测时,会占用PE之间物理链路,影响其他业务正常运行的问题,本发明引入BFD for PW-AC技术,对PE之间特定的PW连同PE与CE之间的AC进行故障检测。
在本发明实施例提供的技术方案中,PE 1与PE 2配置的BFD会话为BFDfor PW-AC。其中:
1)、PE 1向PE 2发送的BFD报文中携带有用于标识PE 1与PE 2之间的PW的源MAC地址一BFD For PW-AC SMAC。该源MAC地址(即BFD ForPW-AC SMAC)与PE 1和PE 2之间PW的标识PWID一一对应,例如,可以通过以下公式将PWID转换为BFD For PW-AC SMAC:
BFD For PW-AC SMAC=Fun(PWID)
其中,Fun()为将PWID转换为MAC地址的函数。
具体的,PE 1获取与PE 2之间的PW的标识PWID,通过OAM CPU将该PWID转换为用于标识该PW的源MAC地址,并向PE 2发送携带有用于标识该PW的源MAC地址的BFD报文。
2)、PE 1向PE 2发送的BFD报文中还可以携带用于标识该BFD报文为特定BFD报文的标识信息。
在本发明实施例中,CE 2中配置有用于指示CE 2将接收到的特定BFD报文重定向到接收到该特定BFD报文的源端口的第一ACL规则。CE 2中相关配置完成后,PE 1可以获知CE 2中所配置的特定BFD报文的标识。相应地,PE1向PE 2发送的报文中可以携带该标识信息。
具体的,CE 2中配置的用于指示将接收到的特定BFD报文重定向到接收到该特定BFD报文的源端口的第一ACL规则可以具体为以下几种情况:
a、指示CE 2将携带有特定目的MAC地址的BFD报文重定向到接收该BFD报文的源端口的第一ACL规则;相应地,PE 1向PE 2发送的BFD报文中携带所配置的特定目的MAC地址;或,
b、指示CE 2将携带有特定源MAC地址的BFD报文重定向到接收该BFD报文的源端口的第一ACL规则;其中,PE 1向PE 2发送的BFD报文中携带所配置的特定源MAC地址;或,
c、指示CE 2将携带有特定IP地址(例如,该特定IP地址可以为组播地址段的保留IP地址,如224.0.0.X(0-255))的BFD报文重定向到接收该BFD报文的源端口的第一ACL规则;其中,PE 1向PE 2发送的BFD报文中携带所配置的特定IP地址。
步骤302、当本地PE节点在预设时间内未接收到BFD报文的响应报文的次数超过阈值时,确定本地PE节点与对端PE节点之间的PW或/和对端PE节点与远程CE节点之间的AC故障。
具体的,在本发明实施例中,由于CE 2中配置有将接收到的特定的BFD报文重定向到接收到该特定BFD报文的端口的第一ACL规则,因此,CE 2接收到PE 1发送的BFD报文后,会将该BFD报文重新发送给PE 1。
进一步地,在本发明实施例中,PE 1中还可以配置用于指示PE 1将接收到的特定BFD报文重定向到OAM CPU的第二ACL规则。相应地,PE 1接收到PE 2返回的BFD报文,且确定该BFD报文为特定BFD报文时,PE 1将该BFD报文定向到OAM CPU,通过OAM CPU将BFD报文中携带的源MAC地址转换为PWID,并当该PWID与PE 1与PE 2之间的PW的PWID一致时,确定PW未发生故障;当PE 1在预设时间内未接收到PE 2返回的BFD报文(即PE 1发送给PE 2的BFD报文的响应报文)的次数超过阈值时,确定PE 1与PE 2之间的PW或/和PE 2与CE 2之间的AC故障。其中,第一ACL规则中指定的特定BFD报文的特征信息(即特定的目的MAC、源AMC或IP地址)与第二ACL规则指定的特定BFD报文的特征信息相同。
其中,在本发明实施例中,PE 1在预设时间内未接收到PE 2返回的BFD报文的次数超过阈值,确定PE 1与PE 2之间的PW或/和PE 2与CE 2之间的AC故障,至少可以包括以下两种情况:
情况一、该预设时间为一个检测周期,则该阈值为0,即当PE 1在该检测周期内未接收到PE 2返回的BFD报文时,确定PE 1与PE 2之间的PW或/和PE 2与CE 2之间的AC故障。
情况二、该预设时间为连续N个检测周期,则该阈值为M,即当PE 1在连续N个检测周期内未接收到PE 2返回的BFD报文的次数超过M次时,确定PE 1与PE 2之间的PW或/和PE 2与CE 2之间的AC故障。
为了更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案中,PE 1、PE 2以及CE 2之间的BFD报文(BFD For PW-AC)交互过程进行详细描述。
在该实施例中,仍以图2所示的应用场景为例进行描述。其中,CE 2中配置有将目的MAC为BFD For PW-AC DMAC的BFD报文重定向到接收到该BFD报文的端口的第一ACL规则,PE 1中配置有将目的MAC为BFD ForPW-AC DMAC的BFD报文重定向到OAM CPU的第二ACL规则。
如图4所示,为本发明实施例提供的PE 1、PE 2以及CE 2之间的BFD报文交互过程的流程示意图,可以包括以下步骤:
步骤401、OAM CPU构造带公网标签、私网标签的BFD报文。
其中,该BFD报文的格式为:目的MAC,源MAC,公网标签,私网标签,BFD For PW-AC DMAC,BFD For PW-AC SMAC,IPLOAD。
步骤402、OAM CPU从公网口port1发送该BFD报文。
步骤403、PE 2从port2接收到该BFD报文后,终结公网标签,并根据私网标签将该报文从私网口port3发出。
其中,PE 2从port3发出的报文是目的MAC为BFD For PW-AC DMAC,该报文的格式为:BFD For PW-AC DMAC,BFD For PW-AC SMAC,IPLOAD。
步骤404、CE 2从port4接收到BFD报文后,根据第一ACL规则将该BFD报文从port4发出。
步骤405、PE 2接收到CE 2返回的BFD报文后,封装公网标签和私网标签,并从port2发出。
其中,从port2到port1的报文格式为DMAC,SMAC,公网标签,私网标签,BFD For PW-AC DMAC,BFD For PW-AC SMAC,IPLOAD。
步骤406、PE 1接收到BFD报文后,终结公网标签和私网标签,并根据第二ACL规则将该BFD报文重定向到OAM CPU。
步骤407、OAM CPU解析该报文,将源MAC(BFD For PW-AC SMAC)转换为PWID,并确定该PWID是否与PE 1和PE 2之间的PW的PWID相同。
需要注意的是,上述方法实施例描述的是由本地PE节点发起BFD ForPW-AC检测的情况,但本发明实施例提供的技术方案并不限于由本地PE节点发起BFD For PW-AC检测,即在本发明实施例提供的技术方案中,也可以由对端PE节点发起BFD For PW-AC检测,其具体处理方式与由本地PE节点发起BFD For PW-AC检测的处理方式相类似,在此不再赘述。
通过以上描述可以看出,在本发明实施例提供的技术方案中,针对PE节点之间的特定PW进行故障检测,可以实现在不影响PE之间公网链路上承载的其他业务的基础上通知VLL主备链路的切换,此外,还可以实现对PE之间的PW连同PE与CE之间的AC进行链路故障检测,提高了故障检测的可靠性。
基于上述方法实施例相同的技术构思,本发明实施例还提供了一种网络设备,可以作为本地PE节点应用于上述方法流程。
如图5所示,为本发明实施例提供的一种网络设备的结构示意图,作为本地服务提供商边缘PE节点应用于包括多个PE节点和用户网络边缘CE节点的多协议标签交换二层虚拟专用网络MPLS L2VPN中,本地CE节点与远程CE节点之间建立有主虚电路VC和对应的备份VC,所述主VC中的本地PE节点与本地CE节点连接,对端PE节点与远程CE节点连接,该网络设备可以包括:
发送模块51,用于向所述对端PE节点发送BFD报文,所述BFD报文中携带有用于标识所述本地PE节点与所述对端PE节点之间的伪线路PW的源MAC地址,以及用于标识所述BFD报文为所述特定BFD报文的标识信息;所述特定BFD报文用于检测所述PW连同所述对端PE节点与所述远程CE节点之间的接入电路AC是否故障;
接收模块52,用于接收所述BFD报文的响应报文;
确定模块53,用于当所述接收模块52在预设时间内未接收到所述BFD报文的响应报文的次数超过阈值时,确定所述PW或/和AC故障。
其中,所述网络设备还包括:
获取模块54,用于获取所述网络设备与所述对端PE节点之间的PW的标识PWID;
操作和维护OAM中央处理器CPU 55,用于将所述获取模块54获取到的PWID转换为用于标识所述PW的源MAC地址;其中,所述PWID与所述用于标识所述PW的源MAC地址一一对应;
所述发送模块51具体用于,向所述对端PE节点发送携带有所述用于标识所述PW的源MAC地址的BFD报文。
其中,所述接收模块52具体用于,接收所述第二CE节点根据所述第一ACL规则重定向的BFD报文;所述第一ACL规则用于指示所述远程CE节点将所述特定BFD报文重定向到接收该BFD报文的源端口。
其中,所述网络设备还包括:
存储模块56,用于存储用于指示所述网络设备将接收到的所述特定BFD报文重定向到OAM CPU 54的第二ACL规则;
所述接收模块52还用于,接收所述对端PE节点返回的BFD报文,并当该BFD报文为所述特定报文BFD报文时,将所述BFD报文重定向到OAM CPU54;
所述OAM CPU 55还用于,将所述BFD报文中携带的源MAC地址转换为PWID;
所述确定模块53具体用于,当所述PWID与所述网络设备与所述对端PE节点之间的PW的PWID一致时,确定所述PW未发生故障。
其中,所述确定模块53具体用于,
若所述预设时间为一个检测周期,则当所述接收模块52在该检测周期内未接收到所述BFD报文的响应报文时,确定所述PW或/和AC故障;
若所述预设时间为连续N个检测周期,则当所述接收模块52在连续N个检测周期内未接收到所述BFD报文的响应报文的次数超过M时,确定所述PW或/和AC故障;其中N为大于1的正整数,M为小于N正整数。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。