罗智华,张武洪
(咸宁职业技术学院,湖北 咸宁 437100)
OAM(Operations,Administration and Maintenance,操作、管理和维护)机制在传统电信网中已应用很久了[1],该机制用于检测网络中是否存在故障以及故障存在的位置,并对故障进行隔离告警,从而保障网络的正常运行。802.1ag是网络级以太网OAM技术,常用于网络的接入汇聚层,用于对整个网络的连通性进行检测并进行连通性故障定位[2]。它把整个网络划分成最多8个层次(0-7层)的维护域(MD, Maintenance Domain)。维护管理人员可以对域内的通信设备进行相应的OAM操作, 但OAM报文只在域内有效, 在域边界被丢弃或者被过滤掉[3]。
维护域内参与维护监控的节点称为维护点(MP,Maintenance Point), MP配置在bridge的某个需要监控的端口上。MP有两种,一种称为维护关联端点( MEP,Maintenance association End Point),位于维护域的边缘;另一种称为维护域中间节点(MIP,Maintenance domain Intermediate Point),MIP能够响应某些OAM报文,但不会主动发起OAM报文,对途经的以太网其他报文也不采取任何动作[4]。每个MD内都有两个或者两个以上MEP,这些MEP的组合称为维护关联(MA,Maintenance Association),每个MA都对应一个服务实例。802.1ag就是对每一个MA来进行维护管理,检测MA中的故障。
图1 以太网OAM 体系结构图[5]
连续性检测功能是一种主动功能,用于侦测处于同一个维护域中的任一对MEP之间的是否处于连通状态,同时检测两个维护域之间或者同一个维护域中的MEP之间是否存在错误连接,以及其他一些缺陷情况[6]。同一个维护域内的MEP周期性地向其他MEP发送CCM(Continuity Check Message)报文,同时也接收其他MEP的CCM报文。
环回检测是一种按需功能。同一个维护域内的本地MEP发送LBM(Loopback Message)报文到指定的远端MEP或MIP。在无故障的情况下,远端MEP或者MIP会在规定时间内进行响应,并发送LBR(Loopback Reply)响应报文给本地MEP。本地MEP接收到LBR报文后,会对本端发送的LBM报文进行比对,从而判断该LBR报文是否是期望的报文,如果是期望的报文,则显示正确信息给用户,否则显示超时或者告警信息[7]。
环回检测是一种按需功能。同一个维护域内的MEP发送LTM(Linktrace Message)报文到指定的远端MEP, MEP接收并处理LTM报文并回复LTR(Linktrace Reply)信号,来检测故障点。在以太网OAM报文中设置类似于IP包中TTL字段, 启用链路跟踪功能时,该字段值被初始化为1, 然后逐渐增加, 通过软件方式使通信设备记录下需要被跟踪路径的MAC地址[8]。
本软件模块运行于vxworks或者Linux等嵌入式系统中。整个软件模块分为7个子模块,分别为:控制子模块、定时器子模块、数据收发子模块、CCM报文处理子模块、LBM和LBR报文处理子模块、LTM和LTR报文处理子模块、告警与统计信息处理子模块。整体流程为:控制子模块接收并处理网管系统下发的以太网OAM配置协议,根据配置协议初始化MD、MA、MIP、MEP数据结构体,并启动定时器子模块和数据收发子模块;数据收发子模块根据控制子模块设定的需要发送的802.1ag协议报文的类型和定时器子模块设定的时间间隔接收或者发送以太网OAM报文,对于接收到的符合802.1ag协议报文格式的数据,分流到对应的报文处理子模块中;CCM报文处理子模块、LBM和LBR报文处理子模块、LTM和LTR报文处理子模块对接收到的802.1ag协议报文进行解析,并将相应的告警信息或者统计信息发送到告警与统计信息处理子模块;告警与统计信息处理子模块根据接收到的信息的类型产生对应的告警信号或者统计数据,并发送到网管系统中,最后在网管系统的界面里进行显示。
在CCM报文处理子模块中,提取CCM报文的VLAN和MD Level后,先查找对应的MA中的MEP,找到后然后检查报文中目的MAC地址是否合法,如果不合法则丢弃该报文;如果合法则检查报文中MEG ID是否合法,如果MEG ID不合法,则产生误连接告警,如果合法则检查报文中MEP ID是否在远端MEP列表中存在,如果不存在,则将远端MEP信息添加到远端MEP管理列表中,如果存在则更新远端MEP的状态信息并检查报文中MEP ID是否存在于配置表中,如果不存在,则产生未预期的MEP ID告警,如果存在,则检查报文中CCM Interval是否和本地配置一致,如果不一致则产生未预期的CCM间隔告警,如果一致则结束本次处理流程。
在LBM和LBR报文处理子模块中,构造LBM消息,检查已发送的LBM报文次数是否大于设定的次数,如果大于,则更新最终的统计信息,包括发送的LBM报文个数,接收的LBR报文个数,延时和丢包率;如果小于,则通过数据收发子模块发送LBM报文。发送成功之后等待接收LBR报文,如果收到了LBR报文或者等待超时未收到LBR报文,则更新最终的统计信息,包括发送的LBM报文个数,接收的LBR报文个数,延时和丢包率。
在LTM和LTR报文处理子模块中,构造LTM消息,并通过数据收发子模块发送LTM报文,如果发送成功,则等待一段设定的时间(默认5秒)接收LTR报文,如果超时未收到LTR报文,则检查LTR列表,获取LTR的统计信息。
本文以IEEE 802.1ag协议为基础,介绍了以太网OAM的基本概念和具有的功能,给出了软件模块设计的整体思路。目前端到端的网络层OAM协议,除了IEEE 802.1ag,还有ITU-T Y.1731。Y.1731在802.1ag的基础上,新增了性能管理,极大地改进了以太网OAM管理机制,有助于网络提供高性能、高水平的服务[9]。因此ITU-T Y.1731协议中的告警抑制功能、单向丢包测试功能、帧时延测试功能和比特错误测试功能[10]的实现还有待于进一步研究。