南京信息職業(yè)技術(shù)學(xué)院 丁秀鋒
不同ONU下掛的PC之間需要實現(xiàn)二層以太網(wǎng)業(yè)務(wù)的互通。由于OLT啟用了QinQ業(yè)務(wù),所以不同PON口之間不能實現(xiàn)互通,在OLT上傳采用VPLS業(yè)務(wù)實現(xiàn)。VPLS(Virtual Private LAN Service)是虛擬專用局域網(wǎng)服務(wù),在公用網(wǎng)絡(luò)中提供的一種點到多點的L2VPN業(yè)務(wù)。VPLS使地域上隔離的用戶站點能通過MAN/WAN相連,并且使各個站點間的連接效果像在一個LAN中一樣。
OLT啟用基于PON-OLT口的靈活QinQ,需要實現(xiàn)不同PON口雙層VLAN業(yè)務(wù)的互通。當前OLT可以通過ARP-AGENT來實現(xiàn)單層業(yè)務(wù)在OLT內(nèi)部的互通,而雙層業(yè)務(wù)的互通只能在上層設(shè)備上實現(xiàn),在SR上通過VPLS配置來實現(xiàn),網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 組網(wǎng)結(jié)構(gòu)圖
PC1和PC2是一個網(wǎng)段的2個用戶,現(xiàn)在的目的就是要實現(xiàn)他們兩者的互相通信。PC1和PC2分別接在9806H-1和9806H-2上,都使用的內(nèi)層VLAN為334。到OLT之后,OLT將對334打不同的外層標簽。具體配置如下:
打不同的外層標簽以后再發(fā)給SR,在SR上做了一個VPLS(二層VPN),配置如下:
VPLS的功能就是做二層的轉(zhuǎn)發(fā),也就是PC1要訪問PC2,正常情況下流程描述如下。
(1)PC和ONU。PC發(fā)出的數(shù)據(jù)報文是普通數(shù)據(jù)報文,不帶VLAN標簽。數(shù)據(jù)報文在進入9806端口時根據(jù)端口PVID打上VLAN標簽“334”,并通過上聯(lián)口透傳到OLT的內(nèi)聯(lián)口上。
(2)OLT。從9806上傳的數(shù)據(jù)業(yè)務(wù)流需要經(jīng)過OLT的內(nèi)聯(lián)口、交換芯片處理和上聯(lián)口等幾個環(huán)節(jié)。業(yè)務(wù)流在內(nèi)聯(lián)口上直接打上保留“VLAN 4042”,變成雙層VLAN標簽業(yè)務(wù)(334,4042)。之后根據(jù)VLAN轉(zhuǎn)換規(guī)則將雙層VLAN標簽的數(shù)據(jù)業(yè)務(wù)報文的外層保留標簽轉(zhuǎn)換成實際的外層標簽,業(yè)務(wù)流變成(334,1003)。由于外層標簽以tag方式加入上聯(lián)口,所以該報文就會從上聯(lián)口轉(zhuǎn)發(fā)出去。
(3)SR。數(shù)據(jù)包到了SR以后,SR會將這個數(shù)據(jù)包從sap 1/1/4:1004.334 轉(zhuǎn)發(fā)出去,也就是又轉(zhuǎn)發(fā)回了OLT。正常情況下,這個數(shù)據(jù)包轉(zhuǎn)回OLT時,帶的外層標簽為“1004”,內(nèi)層標簽為“334”,業(yè)務(wù)流報文變成(334,1004)。可以看出此時到了OLT以后,OLT應(yīng)該把1004的外層標簽替換成保留VLAN 4043,然后轉(zhuǎn)發(fā)給PON口0/3/4口,從0/3/4轉(zhuǎn)發(fā)給ONU時就把保留VLAN 4042去掉,只保留了334的內(nèi)層VLAN。這時在9806H-2上就會根據(jù)VLAN 334轉(zhuǎn)發(fā)并最終發(fā)給PC2。
(1)OLT。數(shù)據(jù)報文在SR轉(zhuǎn)發(fā)出來后,源/目的MAC地址和內(nèi)層CVLAN均保持不變,只改變外層VLAN為PC2所帶的外層VLAN為1004。因此該業(yè)務(wù)可以從上聯(lián)口進入設(shè)備并在VLAN 1004中轉(zhuǎn)發(fā)。當該報文抵達PON口時,將外層標簽剝離掉。所以從內(nèi)聯(lián)口出去時就變成單層VLAN(334)的數(shù)據(jù)報文。
(2)ONU。OLT內(nèi)聯(lián)口發(fā)出的數(shù)據(jù)報文廣播到該PON口下帶的所有網(wǎng)元。根據(jù)報文頭中的LLID進入相對應(yīng)的ONU,并剝離PON封裝報文還原成標準以太網(wǎng)幀。由于ONU的上聯(lián)口透傳所有VLAN(默認配置),所以“vid=334”的報文進入上聯(lián)口,并根據(jù)MAC地址學(xué)習(xí)表轉(zhuǎn)發(fā)到相對應(yīng)的用戶端口,在用戶口上將VLAN標簽剝離還原成普通數(shù)據(jù)報文。
由上面正常業(yè)務(wù)轉(zhuǎn)發(fā)流程可以看出,業(yè)務(wù)的關(guān)鍵在上層的SR設(shè)備將上聯(lián)口出去報文的VLAN標簽從“1003”改為“1004”后,再從原上聯(lián)口轉(zhuǎn)發(fā)回去。由于PC1的MAC地址雖然作為源地址出現(xiàn)在上聯(lián)口,但由于這時上下VLAN不一致,所以不會造成MAC地址漂移的問題。
現(xiàn)場出現(xiàn)這樣的問題:開通VPLS業(yè)務(wù)VLAN均出現(xiàn)業(yè)務(wù)中斷的問題。對MAC地址查詢是處理業(yè)務(wù)中斷問題的有效手段,檢查OLT和ONU上MAC地址學(xué)習(xí)情況如下。
(1)先查詢ONU用戶端口的MAC地址學(xué)習(xí)情況
(2)再查詢OLT上的MAC地址學(xué)習(xí)情況
從MAC地址表分析,ONU的用戶口MAC地址學(xué)習(xí)正常,且在正確的VLAN中,所以排除ONU的MAC地址學(xué)習(xí)問題。檢查OLT的MAC地址學(xué)習(xí)情況,可以發(fā)現(xiàn)用戶的MAC地址作為源地址在上聯(lián)口動態(tài)學(xué)習(xí)到1004 VLAN中去,同時靜態(tài)學(xué)習(xí)到所有保留VLAN中去。
動態(tài)學(xué)習(xí)到1004 VLAN中,是由于SR設(shè)備轉(zhuǎn)發(fā)VPLS業(yè)務(wù),因此這個學(xué)習(xí)是正常的。靜態(tài)學(xué)習(xí)到所有保留VLAN中是由于當前QinQ的內(nèi)部學(xué)習(xí)機制產(chǎn)生也屬于正?,F(xiàn)象。
為正確了解上述MAC地址學(xué)習(xí)情況,需要對OLT的靈活QinQ配置下MAC地址學(xué)習(xí)有所了解。OLT在啟用QinQ功能后,上行業(yè)務(wù)流中用戶MAC地址在單層VLAN的情況下轉(zhuǎn)發(fā)到OLT的內(nèi)聯(lián)口時首先學(xué)習(xí)到該內(nèi)聯(lián)口的保留VLAN中,然后根據(jù)業(yè)務(wù)類型進行軟件學(xué)習(xí):如果業(yè)務(wù)是透傳的(單層VLAN),那么將用戶MAC地址再軟件學(xué)習(xí)到透傳VLAN中去;如果業(yè)務(wù)是雙層的(內(nèi)層CVLAN+外層SVLAN),那么將用戶MAC地址再軟件學(xué)習(xí)到外層SVLAN中去。
下行業(yè)務(wù)流中,MAC地址首先學(xué)習(xí)到上聯(lián)口的外層SVLAN中去(上聯(lián)口上需要配置外層SVLAN),然后將該MAC地址軟件學(xué)習(xí)到上聯(lián)口上配置的保留VLAN中去。
如上所述,內(nèi)聯(lián)口和上聯(lián)口學(xué)習(xí)到MAC地址都會同時存在用戶業(yè)務(wù)VLAN(透傳VLAN或外層SVLAN)以及保留VLAN中,前者是動態(tài)學(xué)習(xí)的,后者是軟件學(xué)習(xí)(靜態(tài))的。
由于OLT的MAC地址學(xué)習(xí)機制,當業(yè)務(wù)流從SR轉(zhuǎn)發(fā)回給OLT時,OLT的MAC學(xué)習(xí)并不只學(xué)習(xí)在外層1004里面,而且也會學(xué)習(xí)到所有保留VLAN里。由于上聯(lián)口在4042 VLAN中靜態(tài)學(xué)習(xí)到用戶PC1的MAC地址,這就和EPON-OLT_0/3/4內(nèi)聯(lián)口在VLAN 4042中學(xué)習(xí)到的該用戶的MAC地址之間存在沖突,即PC1的用戶地址被錯誤的遷移到上聯(lián)口上。由于用戶PC1的MAC地址在保留VLAN 4042中,PON口也學(xué)習(xí)到了,上聯(lián)口也學(xué)習(xí)到了,所以就出現(xiàn)了業(yè)務(wù)不通的情況。
由此可見,業(yè)務(wù)中斷是由于QinQ情況下MAC地址學(xué)習(xí)機制和上層VPLS的業(yè)務(wù)轉(zhuǎn)發(fā)機制沖突造成的。
造成該問題的關(guān)鍵是用戶MAC地址在上聯(lián)口學(xué)習(xí)到錯誤的保留VLAN中去。由于這個學(xué)習(xí)是OLT的軟件學(xué)習(xí),是靜態(tài)的,而OLT上只能用命令清除動態(tài)地址,所以“clear mac dynamic all”命令是無效的,只能手工刪除靜態(tài)MAC地址。
當執(zhí)行:
以后,再執(zhí)行:
業(yè)務(wù)就正常了。
上述方法只能暫時規(guī)避這個問題,如果SR重新進行VPLS業(yè)務(wù)轉(zhuǎn)發(fā)時,用戶的MAC地址還是會學(xué)習(xí)到上聯(lián)口所有的保留VLAN中去,一旦保留VLAN學(xué)習(xí)在上聯(lián)口學(xué)習(xí)到用戶的MAC地址,業(yè)務(wù)仍然會中斷。問題的關(guān)鍵是OLT的MAC地址學(xué)習(xí)方式上。
當前OLT啟用QinQ有多種模式,默認為normal模式。普通模式即開啟QinQ功能時在上聯(lián)口學(xué)習(xí)到上聯(lián)設(shè)備源MAC地址時會自動將這些MAC地址靜態(tài)學(xué)習(xí)到該上聯(lián)口所有的保留VLAN中。也就是QinQ的這種工作模式造成了本故障。
OLT的QinQ還有用戶模式(customer模式)。用戶模式下關(guān)閉了上聯(lián)口的MAC地址靜態(tài)學(xué)習(xí)功能,也就是說上聯(lián)口的MAC地址不會學(xué)習(xí)到保留VLAN中。因此采用用戶模式可以解決此故障。配置方法:
需要注意的是修改QinQ的工作模式,并不能自動刪除上聯(lián)口已經(jīng)學(xué)習(xí)到的靜態(tài)MAC地址,可以使用MAC地址刪除的命令:
在關(guān)閉上聯(lián)口MAC地址軟件學(xué)習(xí)后,下行業(yè)務(wù)流存在洪泛問題,所以還要取消OLT上的洪泛抑制,具體命令如下:
見www.dcw.org.cn