• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    以太网OAM

    作者:  |  上传时间:2009-11-16  |  关键字:

    1         以太网OAM

    为了推动城域网应用的拓展,IEEEITU-T等标准化组织正在大力推动相关技术的标准化工作。简单的说,城域网所应用的技术主要有两种,一种是MPLS,一种是以太网。目前这两种技术都存在缺乏OAM机制的问题。MPLS OAMIETF主导完成,本文不做描述。除了OAM机制外,以太网还缺乏应用于核心网的能力,因此,IEEE也正在完善这部分标准,主要包括QinQMacinMac

    OAM(Operations, Administration, and Maintenance) 即操作、管理和维护机制在传统电信网中已应用很久了,主要是通过故障检测、告警、定位和隔离等手段提高网络的运维水平。OAM技术在SDHATM中已取得成功的应用,实践证明它能有效地降低运行维护成本,最大限度地有效利用投资。随着电信管制政策的开放、电信竞争的引入与加剧,OAM技术受到工业界(尤其是运营商)的空前重视。

    长期以来,以太网的运行、维护和管理大多由使用者(例如公司的网管人员)承担。过去,由于局域网很少作为服务出售,因此,尽管以太网在运行维护方面远远达不到电信级的水平(与SDHATM等技术相比),尽管耗费人力且效率低下,却也能够接受。但是,若以太网进入需要付费的电信运营领域,这样的维护方式和水平不能满足运营商的服务模式。

    目前,各标准化组织正在完成和已经完成的以太网OAM相关标准有:

    ü         IEEE 802.3-2005 57章(原IEEE 802.3ah 57章)

    ü         城域以太网论坛制定的E-LMIEthernet Local Management Interface

    ü         Connectivity Fault Management (CFM)IEEE 802.1ag

    ü         ITU-T和城域以太网论坛制定的Y.1731,可兼容802.1ag

    本文将介绍802.3 57章和CFM

     

    1.1        关于以太网OAM”名称

    以太网OAM相关的标准有若干,每个标准的内容也不同,当交流中碰到以太网OAM”这个名称的时候,指的是哪个呢?

    802.3的名称是以太网MAC层和物理层规范,它的第57章标题为“Operations, Administration, and Maintenance (OAM)”,因此,IEEE 802.3-2005 57章是可以称作以太网OAM”的。

    ITU-T和城域以太网论坛制定的Y.1731的标题为“OAM functions and mechanisms for Ethernet based networks”,将它简单地称作以太网OAM”也无不可。

    IEEE 802.1ag的标题为“Connectivity Fault Management”,在该标准中,没有提到“Ethernet”的字样,也没有提到“OAM”。作者选用了CFM做为协议名称,避开“OAM”字眼,也是为了不与其他协议混淆。这同IEEE的一贯逻辑是一致的,作为802.1Q协议(Virtual Bridged Local Area Networks)的修订,802.1ag并非必须基于以太网,在理论上它也可以用在令牌环网等其他介质上。而IEEE标准中所指的以太网,是非常严谨的,仅局限于802.3协议中。但是,802.1agY.1731是兼容的,它实际上是Y.1731的一个子集,两个协议具有相同的概念、相同的体系结构,只不过有些名词使用不同,802.1ag协议范围更小、规定具体、更贴近实现。

    正如以太网的发明者Bob Metcalfe所说,如今人们所指的以太网,已经与他和Dave1973年所发展的称为CSMA/CD的技术鲜有相似之处。上述这些协议,不论其名词,就内涵而言,它们都主要用于以太网上,功能也都符合OAM的范畴,都归于以太网OAM”也没有什么错。因此,在实际交流当中,当客户提到以太网OAM”时,我们应当弄清楚,它是泛指OAM的功能,还是特指某个标准,如果是特指,指的是哪一个。

     

    1.2        OAM类协议的常用方法

    各种OAM协议,在不同的网络层次上使用,均有一些类似的方法,本节总结了一些。

    1.2.1       连通检测

    即检测链路是否能正常传输报文,一般各种OAM协议都采用周期性发送特定报文的方式完成,当一定数量的报文丢失,便判断为链路不可用。例如:在802.3 OAM中,每秒发送一个Information报文,当连续5个报文丢失时,认为链路断开;在802.1ag中,周期性地(周期可配置)发送CCM报文,连续3个报文丢失则认为对方已不可达;在MPLS OAM中,则周期性地发送CV报文和FFD报文。

    1.2.2       环回

    主要目的是检测链路的双向连通性。方法是将报文发送到目标实体,并由目标实体应答报文,发送者根据返回报文的情况判断连通性。在发送和返回的报文中可以携带各种信息。例如:IP协议中的ping802.3 OAM中的远端环回;802.1ag中的loopbackMPLS OAM中的LSP Ping

    1.2.3       链路跟踪

    方法是将报文发送到目标实体,处于发送路径上、能识别该报文的设备向源实体回应报文。源实体通过收到的回应报文确定到达目标实体所经过的路径。例如:IP协议中的traceroute ;在802.1ag协议中使用的linktrace

    1.2.4       错误指示

    可分为前向错误指示和反向错误指示。在一个路径上,当某个节点发现源节点发送的报文有错误时,它可以通知其他节点,它可以沿着这个路径向下游发送通知,起到预防的作用,这就是前向错误指示;它也可以沿着路径逆向传递,告诉发送者,它发出的报文有错误。

    在各种协议中,反向错误指示更常见。一般来说,报文的发送者感知不到自己发出的报文有错误,它只能通过其他节点的反馈来了解自己。错误指示的形式多样,可以是单独的报文,也可以是插入到周期性报文中的比特位或TLV

     

    1.3        802.3 OAM

    1.3.1       简介

    3ahIEEE在协议制定过程中的编号,其中‘a’表示对原协议的修订,3ah2004年已经成为正式标准,并合入2005年发布的802.3协议中,不再单独发布。因此,之前所用的名称“3ah OAM”将逐渐淡化,由“802.3 57“802.3 OAM”替代。3ah协议是关于以太网最后一英里(Ethernet in the First Mile)的技术,该协议第57章为OAM,主要是用在网络边缘。

    802.3 OAM协议属于慢速协议(slow protocol),另一个著名的慢速协议是链路聚合控制协议(LACP)。慢速协议具有如下共同特点:

    ü         每秒钟传输的报文不超过10帧。

    ü         协议报文(PDU)不带VLAN Tag

    ü         协议报文目的地址为01-80-C2-00-00-02

    ü         协议报文的Type域为88-09

    慢速协议之间的区分采用报文中的SubType域,值为03时,表示该报文为OAM报文。

     

    DA6字节)=01-80-C2-00-00-02

    SA6字节):源MAC

    Type2字节)=88-09

    SubType1字节)=0x03

    Flags2字节):OAM协议状态位

    Code1字节):OAM协议报文类型

    Data(若干字节):根据不同类型内容不同

                                                                                                                                                            图1 OAM协议报文格式

    慢速协议还有一个共同的处理方式是协议报文不能被转发,这就会引出OAM协议的作用范围。802.3 OAM监控一段链路,从一个以太网口到另外一个以太网口,中间不能经过其他设备。

    在正常情况下,OAM链接的两端每秒会互发一个Information报文,报文中携带本地的一些状态信息,这相当于是握手报文。当有5个报文接收不到,即认为OAM连接有问题。

    目前,我们系统所实现的802.3 OAM功能包括:链路监控,异常通知和远端环回。

    1.3.2       链路监控

    链路监控用于发现错误和低效的连接。

    802.3 OAM定义了四种一般链路事件来描述链路的质量。如果端口上所收到的报文的错误统计在给定的周期内达到了预设的值,OAM就报错,同时,发送一般链路事件报文给对端,告诉对端:你发出的报文错误很多。这种OAM报文的Code01

    ü         错误信号周期(Errored Symbol Period) :就是误码率,目前不支持误码率的检测。

    ü         错误帧(Errored Frame):在指定时间内的错误帧数超过阈值,会产生本事件。

    ü         错误帧周期(Errored Frame Period):在指定的连续帧数内的错误帧数超过阈值,会产生本事件。

    ü         错误帧秒数(Errored Frame Seconds Summary):若在一秒内有错误帧出现,则计数为一个错误帧秒数;在指定的时间内的错误帧秒数超过阈值,会产生本事件。

    应用中可以根据具体的要求选用一种或几种事件,设置阈值和周期,对链路进行监控。

     

    1.3.3       异常通知

    异常通知是告知对端发生了严重的错误,会导致链路不可用。异常通知采用OAM协议报文中Flags域中的3个比特位通知对端。当发生这些事件时,会立即产生一个比特位置位Information报文,在之后发送的其他报文中,该比特位也会置位,直到故障解除。

    这三个比特位分别表示:

    ü         链路故障(Link Fault):对端链路信号丢失,在光口上,收端收不到信号时,在发端发送。在电口上,一般不会产生这个事件,因为在电口上,采用RJ-45接头的收发端在一根电缆中,仅有收端出现故障而发端无故障的概率几乎没有。

    ü         临终遗言(Dying Gasp):不可预知的状态发生,比如电源中断,则利用电池或电容中的电量发出报文。目前我司系统不支持。

    ü         紧急事件(Critical Event):不能确定的紧急事件发生,目前我司系统不支持。

     

    1.3.4       远端环回

    由于处于物理层,802.3的环回同其他OAM类协议的环回有所不同。802.3的环回是一种物理状态,而不是报文处理流程。

    远端环回分为主动端和被动端。主动端发起环回,向被动端发送一个回环报文,被动端收到环回报文后,将本端设置为环回状态。在这种状态下,被动端收到的所有非OAM报文均被原封不动地返回。这种状态是一种测试状态,显然,其他协议将不能正常工作,对于上层协议来说,该链路实际上处于Down状态。

    被动端处于环回状态时,不再发送除OAM报文之外的其他报文。这时,主动端将收到的所有非OAM报文丢弃。

     

                                                                                                                                                图2 802.3ah OAM 远端环回状态

    OAM的环回功能使得主动端能够单独对双向物理链路进行检测,这时,它可以发送测试报文,对链路进行探测,确定链路的通断、性能等。主动端最后发送解除环回的报文,使被动端恢复正常。

     

    1.3.5       简单应用

    802.3 OAM主要应用于最后一公里,如3所示,位于园区的设备一般为被动端,接入设备为主动端,链路上可以配置一般链路事件进行监测。在测试时或其他必要的时候,主动端也可以用环回探测链路的情况,但这会造成正常其他业务的不可用。

    OAM

     

                                                                                                                                                          图3 802.3 OAM组网应用

     

    1.4        802.1ag

    1.4.1       简介

    1agIEEE在标准制定过程中的编号,该标准是对802.1Q协议的修订。在写作本文的时候,也就是20073月,802.1ag即将在IEEE全会上通过技术性投票,之后经过一些非技术性的工作,准备在2007年下半年进行工作组的投票,通过后成为正式标准。

    IP层的pingtracerout是针对IP地址进行工作的,1ag则针对的是MAC地址,它判断相应的MAC地址是否可达,从而获得二层网络的相应工作状态和路径。

    1.4.2      

    802.1ag引入了一个非常重要的概念,就是域,它在逻辑上将网络从内到外划分为不同的层次,称作维护域(Maintenance Domain),维护域可以嵌套,不能交叉,这样,在出现问题时,可以通过问题所在的域的范围判断问题的归属。这个想法的目的是将运营商网络同用户网络隔离开,或者说将网络在逻辑上同实际使用者对应起来,从而产生清晰的界面。当出现问题时,通过在不同域中的判断确定问题的具体位置。示意图如4

     

                                                                                                                                                                          图4 域的划分

    作为标准,运营商域用户域的称谓当然不够严谨,因此,较新的标准草案中并没有类似的词汇。协议中区分不同层次的域的方法是为每个域定义一个级别(level),高级别的域可以嵌套低级别的域。高低级别的域之间是不通信息的,它们各自通报本域内的错误,范围较大的域的802.1ag报文可以穿过较小的域,范围较小的域的报文不可以发送到域的外面。

    维护域在网络组成的设备上是如何实现的呢?维护域是有边界的,它的边界就是一个个的端口,因此,只要在边界端口上配置一个实体就可以了,这个实体叫做维护端点(Maintenance association End PointMEP)。当所有的边界端口都配置了维护端点,域的边界就确定了,域的范围也确定了。

    在维护域内的端口上也可以配置实体,叫做维护中间点(Maintenance domain Intermediate PointMIP)。MEPMIP统称为维护点(Maintenance Point)。维护点是本协议功能实现的主体,所有的功能均通过维护点的处理得以体现。

    5表示了维护域和维护点在网络中的实现,图中用颜色表示了两个不同的域。在端口上,三角形表示维护端点,半圆形表示维护中间点。

     

                                                                                                                                                        图5 维护域和维护点示意图

    1.4.3       两个基本的参数

    有两个基本的参数贯串了802.1ag协议的处理,它们就是维护域的级别(level)和它所服务的VLAN。这两个参数将网络进行了划分,它们影响到维护点的归属,影响到802.1ag的报文内容、MAC地址,影响到报文的处理等。

    维护域共分为8个级别,从07,数字越大,代表的维护域范围越大。级别较小的域中的1ag报文不能穿过域的边界进入到较大的域中。由于各级别的维护域是嵌套的,如果在级别较大的域中发现了较小级别的报文,就属于一种错误,维护域中的维护点就会报告错误。错误的处理则是系统管理员的工作,有时候可能是网络的错误,也有时候可能就是系统管理员配置错误。

    VLAN当然是很重要的,这是目前二层网络的基础,802.1ag协议报文是带有VLAN Tag的,本文不再赘述。

    之所以为这两个参数特意写了一节,是因为所有的维护点都具有这两个特性,理解了它们,就更容易理解本标准的基本概念。

    1.4.4       基本概念

    本节归纳本标准的基本概念,它们是:

    维护域(Maintenance Domain):是进行错误管理的一部分网络,维护域的边界由维护端点(MEP)围成。它由维护域名称(一个字符串)唯一标识。它具有的另外一个属性是维护域级别。

    维护集(Maintenance Association):维护集属于某个维护域,由维护域内唯一的名称(一个字符串)标识。它具有的另外一个属性是VLAN

    维护端点(Maintenance association End Point):是一个功能实体。属于某个维护集,从维护域和维护集中继承了它们的属性:级别和VLAN。维护端点用一个整数唯一标识,称为MEPID。该整数在维护集内是唯一的。维护端点可发出802.1ag报文。在图示中,维护端点一般用三角形表示,就象1.4.6中所描述的那样。

    维护中间点(Maintenance domain Intermediate Point):是一个功能实体。属于某个维护集,从维护域和维护集中继承了它们的属性:级别和VLAN。维护中间点仅回应收到的802.1ag报文,不会自己主动发出。维护中间点用圆形或半圆形表示,在1.4.7中会进一步描述。

    维护点(Maintenance Point):维护端点和维护中间点的统称。

     

    1.4.5       功能介绍

    本节介绍本标准的三个功能:连通性检测(Continuity Check),环回(loopback),链路跟踪(linktrace

    ü         连通性检测

    连通性检测的方法是:维护端点周期性地向同一维护集中(即同级别同VLAN中)的其他维护端点发送CCMContinuity Check Message)报文,同时也接收其他维护端点的CCM报文。如果在三个周期内没有收到对方的CCM报文,则认为链路出现故障,报告错误。

    发送CCM的周期是可以配置的,但在一个维护集中是相同的。很显然,如果一个MEP配置的周期同其他MEP的不同,在一定的周期内,就会有MEP认为其他MEP的报文丢失,从而报告错误。发送的周期最小可到3 1/3毫秒,也就是说,频率为300Hz,这样小的间隔必须由硬件辅助才能处理。

    由于CCM报文是发送给维护集内的所有其他MEP的,因此,它是组播报文,目前具体的组播MAC地址还未确定,将在标准正式发布时分配。CCM报文一共占用8个组播地址,这8个组播地址只有最后三个bit位不同,这三个比特代表了该报文的维护域级别。维护域一共有8个级别,这三个比特位正好表示了所有级别。在CCM报文的内容里,是有维护域级别字段的,将级别放在目的地址中,显然是为了处理上的方便,尤其是为了便于硬件处理。如果某个设备上所配的维护点的级别较低,对于较高级别的报文,硬件可以根据这个组播MAC地址和VLAN直接进行转发。

    每个MEP均有一个CCM数据库,记录通过CCM报文收到的其他MEP的相关信息。

    ü         环回

    以太网环回功能用于验证与远端设备之间的连接状态,它由两种报文实现。

    实现方式:由MEP发送环回报文(LBM)给远端MP,远端MP在收到报文后,向源MEP发送环回应答报文(LBR),源MEP可以根据收到的应答报文确定链路状态。

    连通性检测(CC)适合检测单向的连通性失败,而环回适合检测双向的连通性失败。用于环回检测的两种报文都是单播报文,MEP所发出的LBM报文的目的MAC地址可以由管理员输入,或者从MEPCCM数据库中查询。

    ü         链路跟踪

    链路跟踪功能(linktrace)有两个目的:相邻关系检索和故障定位。

    实现方式:由MEP发送链路跟踪报文(LTM)给目标MEP,目标MEP及链路跟踪报文(LTM)路过的MP接收到并返回链路跟踪回复报文(LTR),源MEP根据返回的LTR确认链路情况和报文转发情况。并可以获得到达目标MAC所经过的路径。

    链路跟踪报文(LTM)的目的MAC地址是组播地址,也是一组8个地址,最后三个比特位表示维护域级别。在这里,需要区分链路跟踪的目标MAC”目的MAC”。用于确定链路的目标MAC,也就是LTM的最终目标,放在LTM报文的数据中。很显然,如果LTM报文是单播报文的话,处于链路中间的MP将无法收到该报文,从而无法回复。

    处于链路中间的MP接收到LTM后,会从报文中解析出它的目标MAC地址,根据该MAC地址,查找本地的MAC地址表。然后向源端回应一个LTR,并且继续向查到的端口发送LTM组播报文。LTM报文就这样接力似的被传递到最终的目标,源端也就收到了路径中的所有实体的回应。

    1.4.6       理解MEP

    当我们配置MEP的时候,顺序如下:

    ü         配置一个维护域,指定它的维护域名称和级别。

    ü         在维护域内配置一个维护集,指定它的维护集名称和VLAN

    ü         在端口上,配置维护集中的MEP,指定它的MEPID和方向。

    MEP的方向是MEP必需的参数,关于它的理解可参见下面两个图,图中的三角形表示在该端口上配置的MEP

                                                                                                                                                                图6 方向向外的MEP

     

                                                                                                                                                                            图7 方向向内的MEP

    在一个端口上配置MEP时,必须要确定维护域在MEP的哪个方向,就象在两个国家的边界上设立界碑,单有界碑是不够的,必须在某一面标明国家,不然谁也不知道哪面是哪个国家。

    方向向外的MEP称为Down MEP,在早期的草案中用Outward表示;方向向内的MEP称为Up MEP,在早期的草案中用Inward表示。

    MEP同维护域的相对位置明确了,它的行为才明确。因为MEP仅向维护域内发送报文。当主动发送报文时,包括CCMLBMLTM,外向MEP是在配置了MEP的端口上发送的;而内向MEP则不在它所配置的端口上发送,它向其他没有配置MEP(指同域同VLAN)的端口发送。同样,接收报文也是这样,MEP仅从维护域内部接收报文,外部发来的报文被认为是错误的,直接丢弃。外向MEP从它所配置的端口上接收报文;内向MEP则从其他端口上接收报文,或者说,它接收的是从其他端口转发来的报文。

     

    1.4.7       理解MIP

    MIP是另一个重要的功能实体,它响应LBMLTM报文。

    MIP并不是直接配置的,它是由系统根据一定的规则计算生成的。规则是可以配置的,分为explictdefault,它的计算规则见1MIP是在每个VLAN内单独计算的。在一个VLAN内,不同级别的维护域内会配有维护集(MA),这些维护集的VLAN属性相同,但所处的级别不同。

                                                                                                                                                                         表1 生成MIP的规则

    低级别MA上是否存在MIP

    配置的规则参数

    低级别MA上是否存在MEP

    是否创建MIP

    explicit

    default

    在每个端口和每个VLAN上,系统根据规则表从没有MEP的最低级别开始计算该级别是否应该产生MIP。需要考虑的限制条件如下:

    ü         第一条规则,在一个端口上,每个维护集中至多只有一个MIP。因此,系统会判断在低级别的MA上是否有MIP,如果已经有了,本级别就不会再生成;如果没有,则继续后面的计算。

    ü         第二条规则,当系统管理员所配置的规则是default时,则生成一个MIP

    ü         第三条规则,当系统管理员所配置的规则是explicit时,则需要判断在低级别的MA上是否配置了MEP,如果配置了MEP,则本级别生成MIP;如果没有配置MEP,则本级别不生成MIP

     

                                                                                                                                                        图8 维护点层次结构示意图

    这种生成方法,是根据802.1ag标准的原则精心设计的。在配置规则为explicit时,它确保了MIP总是在各层维护域中的最上层,并且在它的下面,总是对应着低层的维护域。这就好像低层的维护域在较高层的维护域中有了一个投影。尽管不同层次的维护域之间不相互影响,这种方式也可以使得规划成为一个整体,体现了分层维护的优势。

    8显示了配置后的维护点层次结构,这些维护点位于不同的设备上,竖直的虚线所联系的维护点均配置于同一个端口上。这个图显示了该网络维护规划的一个层次结构,这使得定位问题更加方便,可以逐层向下,逻辑清晰。下面举例说明一个错误的定位过程:在级别为7的维护域中,如果CCM报文中断,两端的MEP向设备报告错误。管理员在报错的MEP处确定错误发生的区间,在两端的MEP上用环回功能(loopback)或链路跟踪功能(linktrace)向其他的MP测试。如果发现错误在两个MIP中间,则在级别为5的维护域中继续定位,直到确定了错误发生的最小区间。