劉柏然
(中國電信股份有限公司韶關分公司 韶關512026)
在企業網中,用戶通過二層以太網交換機接入網絡,同時內部的二層互通也相當迫切;在家庭網中,家用路由器、hub交換機的使用越來越廣泛,二層環路的問題不可避免。而PON(無源光網絡)中,接入層也是一個二層交換網絡,PON同樣存在二層環路的問題。
現有IP網絡在二層交換中,通過MAC地址尋址進行報文轉發。二層設備的MAC地址學習通過源MAC地址學習實現。即當端口收到一個未知源MAC地址的報文時,將這個MAC地址添加到接收端口上,以便后續以該MAC地址為目的地址的報文能夠直接轉發,即一次學習,多次轉發。
二層設備的MAC地址更新機制是:老化,在指定的老化時間沒有源或者目的hit,從地址表中刪除該MAC地址;移動,新來源MAC地址如果發現其已經學習到了二層設備上,但源端口不一樣,修改原來MAC地址的源端口,即將原來的MAC地址移動到新的端口上。MAC地址的移動是必然的。因此當鏈路上存在環回情況時,最終整個二層網絡中的所有MAC地址都移動到了存在環回的端口上,導致二層網絡癱瘓。這也是環路產生的原因和危害。
環路檢測的原理是:通過在設備的端口上發送ring check報文,檢測該報文是否能夠從發送端口送回來,確定這個端口是否存在環回情況。因為網絡是一個隨時有可能存在變動的對象,因此環路檢測是一個持續的過程,也就是說,在設備上需要每隔一定的時間進行一次檢測,以確定各個端口上是否存在環回以及上次發現端口上的環回是否已經消失等情況。
ring check特性是通過設備在用戶端口周期性地發送ring check報文,監控用戶側和網絡側收到的ring check報文,檢測運營商網絡是否形成環路。當開啟環路檢測時,如果PON中有環路產生,ONU通過去激活形成環路的用戶端口,如果已經擴散到OLT,OLT也可以去激活整個ONU,以保證OLT設備的正常運轉,而二層交換機只能去激活以太網端口。ring check報文格式如圖1所示,具體介紹如下。
·DMAC為廣播MAC地址,值為0xFF,SMAC為橋MAC地址。
·IEEE 802.1Q head根據用戶側流屬性,自動選擇是否填寫。
·type為私有以太網類型,可配置。

圖1 ring check報文格式
·報文內容payload為私有,無需配置。
對于OLT/ONU來說,ring check報文分為用戶側和網絡側捕獲到的報文,處理方法各有不同。
對于從網絡側捕獲的環網檢測報文,即OLT/ONU上行口捕獲的報文,系統首先判斷該報文是否由本設備發送,如果是,則解析出報文發送源端口,向網絡管理系統上報告警,但不會將發送源端口去激活,這是因為系統無法判斷是用戶仿冒的ring check報文還是設備發的檢測報文,從而避免檢測點誤判斷操作;如果不是,則丟棄該報文,如圖2(a)所示。對于從用戶側收到的環網檢測報文,向網絡管理系統上報告警,并對收到該報文的端口去激活,實現環網消除,如圖2(b)所示。因此PON的環路檢測機制只能去激活用戶側的環路端口,不能去激活網絡側的環路端口。

圖2 環路檢測起作用機制

圖3 FTTB不同場景開啟環路檢測
(1)FTTB MDU場景
FTTB MDU場 景 在OLT、ONU開 啟 環 路 檢 測,4種 不同的場景如圖3所示,具體介紹如下。
·OLT、MDU同時開啟環路檢測,MDU下兩個不同端口連接用戶終端環路,此時MDU的環路檢測發生作用,MDU自行去激活兩個環路端口,沒有擴散到OLT。
·OLT和下掛同一個PON口的兩臺MDU都開啟環路檢測,兩臺MDU下連接不同的用戶終端環路,此時,兩臺MDU都檢測到網絡側過來的ring check,但根據原理,網絡側檢測到的ring check分組不會去激活網絡側端口,因此MDU只會向網管報警而不會對連接CPE的鏈路去激活。OLT的環路檢測發生作用,發現兩臺MDU的流產生環路,此時OLT對其中一臺MDU去激活,被去激活的MDU離線。
·OLT、MDU同時開啟環路檢測,MDU下同一個端口連接用戶終端自行環路,MDU的環路檢測發生作用,自行去激活環路端口,OLT的環路檢測不起作用。
·OLT開啟環路檢測,MDU不開啟環路檢測,MDU下連接用戶自環,MDU沒有環路檢測,擴散到OLT,OLT執行環路檢測,發現同一臺MDU下的流存在環路,從而對整臺MDU去激活,MDU離線,所有MDU承載的用戶業務中斷。
因此,在MDU側開啟環路檢測效果更好,對于ONU之間的環路,只能靠OLT的環路檢測才能實現。
(2)FTTH ONT場景和FTTH FTTB混合場景
FTTH終端分兩種:帶有環路檢測功能和不帶環路檢測功能,如華為HG850E、HG8240不帶環路檢測功能,新的E8C終端帶有環路檢測功能,因此圖4的4種場景旨在比較FTTH終端有沒有環路檢測的情況。
·FTTH終端開啟環路檢測,OLT開啟環路檢測,用戶側的CPE自行環路,FTTH終端去激活終端設備上的環路端口,不影響ONT的運行。
·FTTH終端不具備環路檢測功能,OLT開啟環路檢測,用戶側的CPE自行環路,OLT將ONT自動去激活,ONT離線變成去激活狀態,ONT上的固話業務也中斷。

圖4 FTTH不同場景開啟環路檢測
·FTTH終端不具備環路檢測功能,FTTH、FTTB混用在同一PON口,MDU只會向網管報警而不會對連接CPE的鏈路去激活。而OLT的環路檢測發生作用,發現兩臺ONU的流產生環路,此時OLT對其中一臺MDU去激活,被去激活的MDU離線。
·FTTH終端具備環路檢測功能,FTTH、FTTB混用在同一PON口,MDU和FTTH終端只會向網管報警而不會對連接CPE的鏈路去激活。而OLT的環路檢測發生作用,發現兩臺ONU的流產生環路,此時OLT對其中一臺MDU去激活,被去激活的MDU離線。
因此,對于FTTH終端的場景,FTTH終端最好要求具有環路檢測功能,同時對于現網使用的終端,仍有不具備環路檢測功能的,OLT有必要開啟環路檢測。
以華為OLT MA5680T和MDU MA5620為例進行介紹。
·MA5680T定時向用戶端口發送私有的BPDU(bridge protocol data unit)報文。目前系統可支持的流有8 kbit/s。環網檢測每次(1 s)涉及300條流,換言之,如果有環網產生,最多需要經過8 000/300 s后才能檢測出來。
·MA5620定時向用戶端口發送私有的ring check報文。目前系統可支持的流有280條。環網檢測每次(1 s)涉及300條流,換言之,如果有環網產生,最多需要1 s就能檢測出來。
可以看出,在MDU側開啟環路檢測比在OLT側開啟環路檢測更有效率,但MDU側開啟環路檢測不能檢測出兩臺ONU間的環路。
根據對以上8種場景的分析,可以得出結論:
·ONU側開啟環路檢測可以檢查出用戶端的環路,從而避免環路擴散;
·ONU側的環路檢測不能檢測出兩臺ONU間的環路;
·OLT側開啟環路檢測可以檢測出不同ONU間的環路,而OLT的環路檢測對整臺ONU去激活,擴大了故障影響范圍;
·FTTH終端應具備環路檢測功能;
·在當前FTTH終端不具備環路檢測功能的前提下,OLT有必要開啟環路檢測功能。
因為現網的場景更加復雜,有FTTB和FTTH混用同一個PON口,FTTB、FTTH單獨使用不同的PON板卡等情況。建議在現網MDU側開啟環路檢測,OLT側也開啟環路檢測。
本文根據環路檢測的場景得出了環路檢測配置下的各種反應,但因為環路檢測是PON設備的一種軟件功能,是設備靠CPU的計算得出的判斷,因此不可避免地在現網中存在誤判,因為設備的判斷自行去激活端口有可能引起用戶的故障。本文旨在分析光網絡環境下環路檢測可以達到的效果,但現網各種設備的環路檢測功能參差不齊,影響環路檢測的實際效果,希望能優化環路檢測的功能,達到PON環路保護的目的。
1 思科CCNP SWITCH學習指南.北京:人民郵電出版社,2011