羅智華,張武洪
(咸寧職業技術學院,湖北 咸寧 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]的實現還有待于進一步研究。