CFD是Connectivity Fault Detection(连通错误检测)的简称,遵循IEEE 802.1ag的CFM(Connectivity Fault Management,连通错误管理)协议和ITU-T的Y.1731协议。它是一种二层链路上基于VLAN的端到端OAM(Operations, Administration and Maintenance,操作、管理和维护)机制,主要用于在二层网络中检测链路连通性,确认故障并确定故障发生的位置。
维护域(Maintenance Domain,MD)指明了连通错误检测所覆盖的网络,其边界是由配置在端口上的一系列维护端点所定义的。维护域以“维护域名”来标识。
为了准确定位故障点,在维护域中引入了级别(层次)的概念。维护域共分为八级,用整数0~7来表示,数字越大级别越高,维护域的范围也就越大。不同维护域之间可以相邻或嵌套,但不能交叉,且嵌套时只能由高级别维护域向低级别维护域嵌套,即低级别维护域必须包含在高级别维护域内部。
维护域的分级使得故障定位更加便利和准确,如图 1所示,维护域MD_B嵌套于维护域MD_A中,如果在MD_A的边界上发现链路不通,则表明该域内的设备出现了故障,故障可能出现在Device A~Device E这五台设备上。此时,如果在MD_B的边界上也发现链路不通,则故障范围就缩小到Device B~Device D这三台设备上;反之,如果MD_B内的设备都工作正常,则至少可以确定Device C是没有故障的。
CFD协议报文的交互以及相关处理都是基于维护域的,合理的维护域规划可以帮助网络管理员迅速定位故障点。
在维护域内根据需要可以配置多个维护集(Maintenance Association,MA),每个维护集是维护域内一些维护点的集合。维护集以“维护域名+维护集名”来标识。
维护集服务于一个VLAN,维护集中的维护点所发送的报文都带有该VLAN的标签,同时维护集中的维护点可以接收由本维护集中其它维护点发来的报文。
维护点(Maintenance Point,MP)配置在端口上,属于某个维护集,可分为维护端点(Maintenance association End Point,MEP)和维护中间点(Maintenance association Intermediate Point,MIP)两种。
(1) 维护端点
维护端点以称为MEP ID的整数来标识,它确定了维护域的范围和边界。维护端点所属的维护集和维护域确定了该维护端点所发出报文的VLAN属性和级别。
维护端点的级别决定了其所能处理的报文的级别,维护端点所发出报文的级别就是该维护端点的级别。当维护端点收到高于自己级别的报文时,不会进行处理,而是将其按原有路径转发;而当维护端点收到小于等于自己级别的报文时,才会进行处理。
上述描述是指同一VLAN内的报文处理方式,不同VLAN内的报文之间是相互隔离的,不会相互影响。
维护端点具有方向性,分为外向MEP和内向MEP两种。维护端点的方向表明了维护域相对于该端口的位置。
图 2 外向MEP示意图
如图 2所示,外向MEP是向它所在端口发送报文的。
图 3 内向MEP示意图
如图 3所示,内向MEP不向它所在端口发送报文,而是向设备的其它端口发送报文。
(2) 维护中间点
维护中间点位于维护域内部,不能主动发出CFD协议报文,但可以处理和响应CFD协议报文。维护中间点所属的维护集和维护域确定了该维护中间点所接收报文的VLAN属性和级别。
维护中间点可以配合维护端点完成类似于ping和tracert的功能。与维护端点类似,当维护中间点收到高于自己级别的报文时,不会进行处理,而是将其按原有路径转发;而当维护中间点收到小于等于自己级别的报文时,才会进行处理。
如图 4所示,是CFD的一种分级配置方式,假设所有六台设备都只有两个端口,并在其中一些端口上配置了维护端点和维护中间点,譬如Device B的端口1上配置的维护点如下:级别为5的维护中间点、级别为3的内向维护端点、级别为2的内向维护端点和级别为0的外向维护端点。图中共有四个级别的维护域,标识号较大的维护域的级别高、控制范围广;标识号较小的维护域的级别低、控制范围小。
维护端点列表是同一维护集内允许配置的本地维护端点和需要监控的远端维护端点的集合,它限定了维护集内维护端点的选取范围:不同设备上同一维护集内的所有维护端点都应包含在此列表中,且MEP ID互不重复。如果维护端点收到来自远端设备的CCM(Continuity Check Message,连续性检测报文)报文所携带的维护端点不在同一维护集的维护端点列表中,就丢弃该报文。
连通错误检测的有效应用建立在合理的网络部署和配置之上。它的功能是在所配置的维护点之间实现的,包括:
l 连续性检测功能(Continuity Check,CC)
l 环回功能(Loopback,LB)
l 链路跟踪功能(Linktrace,LT)
l 告警抑制功能(Alarm Indication Signal,AIS)
l 以太网告警抑制功能(Ethernet Alarm Indication Signal,EAIS)
l 单向丢包测试功能(Loss Measurement,LM)
l 帧时延测试功能(Delay Measurement,DM)
l 比特错误测试功能(Test,TST)
连续性检测功能用来检测维护端点之间的连通状态。连通失败可能由设备故障或配置错误造成。该功能的实现方式是:由维护端点周期性地发送CCM报文,该报文是组播报文,相同维护集的其它维护端点接收该报文,并由此获知远端状态。若维护端点在3.5个CCM报文发送周期内未收到远端维护端点发来的CCM报文,则认为链路有问题,会输出日志报告。当维护域内的多个维护端点在发送CCM报文时,就实现了多点到多点之间的链路检测。CCM报文是组播报文。
环回功能类似于IP层的ping功能,用于验证本地设备与远端设备之间的连接状态。该功能的实现方式是:由维护端点发送LBM(Loopback Message,环回报文)报文给远端维护点,并根据能否收到对端反馈的LBR(Loopback Reply,环回应答)报文来检验链路状态。LBM报文和LBR报文都是单播报文。
链路跟踪功能用于确定源端到目标维护端点的路径,其实现方式是:由源端发送LTM(Linktrace Message,链路跟踪报文)报文给目标维护端点,目标维护端点及LTM报文所经过的维护中间点收到该报文后,会发送LTR(Linktrace Reply,链路跟踪应答)报文给源端,源端则根据收到的LTR报文来确定到目标维护端点的路径。LTM报文是组播报文,LTR报文是单播报文。
告警抑制功能用来减少故障告警的上报数量。如果维护端点在3.5个CCM报文发送周期内未收到远端维护端点发来的CCM报文,便开始周期性地发送AIS(Alarm Indication Signal,告警指示信号)报文,该报文地发送方向与CCM报文相反。维护端点在收到AIS报文后,会抑制本端的故障告警,并继续发送AIS报文。各维护端点如果在3.5个CCM报文发送周期内重新收到了CCM报文,便停止发送AIS报文。AIS报文是组播报文。
以太网告警抑制功能用来建立以太网端口的状态与告警抑制功能之间的联动。如果设备的端口发生up/down事件,便开始在指定VLAN内周期性地发送EAIS(Ethernet Alarm Indication Signal,以太网告警指示信号)报文以抑制故障告警的上报。维护端点在收到EAIS报文后,会抑制本端的故障告警,并继续发送EAIS报文。各维护端点如果在3.5个EAIS报文发送周期内再未收到EAIS报文,则表明故障已消除,于是便停止发送EAIS报文并恢复故障告警。EAIS报文是组播报文。
单向丢包测试功能用来检测维护端点之间的单向丢包情况,其实现方式是:由源端发送LMM(Loss Measurement Message,丢包测量报文)报文给目标维护端点,目标维护端点收到该报文后,会发送LMR(Loss Measurement Reply,丢包测量应答)报文给源端,源端则根据两个连续的LMR报文来计算源端和目标维护端点间的丢包数,即源端从收到第二个LMR报文开始,根据本LMR报文和前一个LMR报文的统计计数来计算源端和目标维护端点间的丢包数。LMM报文和LMR报文都是单播报文。
帧时延测试功能用来检测维护端点之间报文传输的时延情况,分为单向时延测试和双向时延测试两种:
(1) 单向时延测试
单向时延测试功能的实现方式是:源端发送1DM(One-way Delay Measurement,单向时延测量)报文给目标维护端点,该报文中携带有其发送时间。目标维护端点收到该报文后记录其接收时间,并结合其发送时间来计算并记录链路传输的时延和抖动。1DM报文是单播报文。
(2) 双向时延测试
双向时延测试功能的实现方式是:源端发送DMM(Delay Measurement Message,时延测量报文)报文给目标维护端点,该报文中携带有其发送时间。目标维护端点收到该报文后记录其接收时间,然后再发送DMR(Delay Measurement Reply,时延测量应答)报文给源端,该报文中携带有DMM报文的发送和接收时间,以及DMR报文的发送时间。源端收到DMR报文后记录其接收时间,并据此计算出链路传输的时延和抖动(即时延变化值)。DMM报文和DMR报文都是单播报文。
比特错误测试功能用来测试维护端点之间的比特错误。源端发送TST(Test,比特错误测试)报文给目标维护端点,该报文中携带有伪随机序列或全0值。目标维护端点收到该报文后,通过对报文内容进行计算比较来确定错误比特地情况。TST报文是单播报文。