■ 山東 錢衛(wèi)
編者按:在網(wǎng)絡(luò)部署中,采用VLAN是常用的網(wǎng)段劃分及隔離手段,但是由于設(shè)備的不同,console中的配置命令使用不同的體系,有時會出現(xiàn)某些故障現(xiàn)象。筆者單位就遇到類似問題,在進行相關(guān)梳理和分析后,解決了問題。
在網(wǎng)絡(luò)部署中,為了做到最大的業(yè)務(wù)隔離和用戶安全,一個最基本的原則,就 是 PUPSPV(每用戶每業(yè)務(wù)每VLAN),也就是讓任何一個用戶的任何一個業(yè)務(wù),都使用不同的VLAN。根據(jù)業(yè)務(wù)的不同,有的使用單層VLAN,有的使用QinQ雙層VLAN。
但是由于設(shè)備的不同,console中的配置命令使用不同的體系,有的時候,很可能表面上看去已經(jīng)完美的實現(xiàn)了規(guī)劃的業(yè)務(wù),但是一些隱藏起來的默認設(shè)置,會留下非常大的隱患。
某段時間,在我單位某幾個業(yè)務(wù)中,突然有大量用戶反應(yīng)網(wǎng)絡(luò)訪問速度劇降,甚至很多用戶無法撥號,受影響的用戶大約占這幾個鄉(xiāng)鎮(zhèn)用戶的30%。同時,這幾個鄉(xiāng)鎮(zhèn)的內(nèi)網(wǎng)業(yè)務(wù)全部中斷。
圖1 在UNI4口下抓包結(jié)果
經(jīng)過現(xiàn)場及鄉(xiāng)鎮(zhèn)負責(zé)同事的排查,確認了邏輯業(yè)務(wù)均正常,無故障:
1.網(wǎng)線、光纜、光收發(fā)等各類材料和設(shè)備正常,無松動、死機、過熱等情況。
2.在中心機房測試,各類業(yè)務(wù)正常運行。
3.各個業(yè)務(wù)使用各自的單層 VLAN或 QinQ VLAN,沒有使用非法VLAN的情況。
4.各端口只透傳了相應(yīng)的VLAN,同時受影響VLAN中沒有發(fā)現(xiàn)倒接路由器的情況。
5.未發(fā)現(xiàn)廣播風(fēng)暴。
鑒于業(yè)務(wù)受影響比較大,且受影響用戶的地理分布存在隨機性,同一個用戶也是時好時壞。因此我們到幾個現(xiàn)場進行了實地排障。
在確認了上述5個方面沒有問題后,可以確定,在規(guī)劃的邏輯業(yè)務(wù)中是不存在問題的,那么故障原因只能存在于規(guī)劃之外。
首先在用戶和中心機房之間的機房中,搭建內(nèi)網(wǎng)專線環(huán)境,經(jīng)過我們的測試,發(fā)現(xiàn)業(yè)務(wù)時通時不通,但抓包無異常數(shù)據(jù)。登錄交換機,卻發(fā)現(xiàn)設(shè)備的CPU和端口帶寬處于峰值;關(guān)閉測試環(huán)境的上聯(lián)口,相關(guān)指標(biāo)迅速降下來。
在OLT下面搭建用戶測試環(huán)境,給ONU的四個端口VLAN分別進行如下配置:UNI1為寬帶,UNI2為點播,UNI3為智慧類業(yè)務(wù),UNI4不配置。經(jīng)過多步測試,終于發(fā)現(xiàn)了幾個異常點:uni1口的業(yè)務(wù)為test@nw,無法撥號;uni4理論上不能撥號,但使用另外一個縣區(qū)的test@jn卻撥號成功,并且可以正常上網(wǎng)。這兩個縣區(qū)使用的核心路由器不是同一臺,能夠成功認證,只能說明在物理連接中出現(xiàn)了串路。
同時我們在UNI4口下面抓包,如圖1所示,發(fā)現(xiàn)存在大量的廣播包,20.8秒內(nèi)抓到111萬數(shù)據(jù)包,隨后抓包的電腦死機。
這些數(shù)據(jù)包幾乎全部是DHCP Offer包,且 其Transaction ID相同。DHCP Offer數(shù)據(jù)是服務(wù)器向終端發(fā)送的響應(yīng)包。
打開任何一個數(shù)據(jù)包,通過source MAC地址78:eb:14:d0:c0:20的 前三個字節(jié),可以查到這是一款FAST路由器,且其網(wǎng)關(guān)地址為192.168.1.1,這種配置一般是普通的家用路由器。Destination Mac地址20:8b:37:16:11:ef則是一款Skyworth機頂盒,一般是接到UNI2口的,如圖2所示。
圖2 打開一個數(shù)據(jù)包查看詳情
由此可以確定,鄉(xiāng)鎮(zhèn)有用戶將機頂盒從UNI2口誤接到了UNI4口,且鄉(xiāng)鎮(zhèn)安裝人員未按照規(guī)定給無業(yè)務(wù)的UNI端口配置寬帶VLAN或關(guān)閉此端口,且在某處存在用戶倒接路由器,且該用戶的無業(yè)務(wù)UNI口也沒關(guān)閉,兩個縣區(qū)之間存在物理環(huán)路。
由此,就產(chǎn)生了本文所敘述的故障:各個業(yè)務(wù)本身沒有問題,在相應(yīng)業(yè)務(wù)出口抓包也沒異常,卻全部卡頓或中斷。畢竟即使業(yè)務(wù)邏輯隔離了,但他們是在相同的設(shè)備、光模塊、網(wǎng)線中傳輸,共用同樣的CPU、光電轉(zhuǎn)換能力、網(wǎng)口速率等。
上述5個問題共同存在,才導(dǎo)致了這次詭異事故的產(chǎn)生。這種情況既是偶發(fā)性的,也是在這種網(wǎng)絡(luò)架構(gòu)下必然遲早要發(fā)生的。
首先是外網(wǎng)與內(nèi)網(wǎng)必須從邏輯隔離改為物理隔離,其他業(yè)務(wù)視情況而定。其次,從頂層BRAS向下,需要全面封鎖VLAN1。
1.BRAS
BRAS利用各個
子接口接收不同VLAN的業(yè)務(wù),如interface gei-0/0/0/1.111222開 啟了user-dynamic-vlan anyother-qinq,并且限制了qinq range internal-vlanrange 300-400 externalvlan-range 111-222。但是對于沒有QinQ的業(yè)務(wù),也可以響應(yīng)PPPOE請求,需要將本功能封閉,或者在對端設(shè)備關(guān)閉。
2.交換機
各類不同的交換機配置命令不同,例如使用port link-type trunk開啟透傳模式,port trunk allow-pass vlan 1234指定允許透傳的VLAN,其他VLAN一律丟棄。
但其實VLAN1是默認透傳的,這條默認的命令隱藏看不到。
在VLAN1為系統(tǒng)保留VLAN不能全局關(guān)閉的情況下,需要在各個trunk口手動關(guān)閉undo port trunk allow-pass vlan 1。
再者,其他untagged或者native口,不用的時候需要 disable或 shutdown,或者配置一個非法的VLAN防止業(yè)務(wù)通過。
3.OLT+ONU
OLT中,由于設(shè)備的不同,命令各式各樣,除了trunk封閉VLAN1外,還需要考慮到PON口下面ONU的注冊行為。
ONU上線后,需要給其配置不同的業(yè)務(wù)。沒有給UNI口手動配置的時候,注冊時會默認配置為:
vlan mode tagged
native vlan 1(隱藏不顯示)
此時可以建立業(yè)務(wù)模板。如我們使用的某廠家設(shè)備,可以建立4口create onusvr-template 1 name vlanauto-set uni-eth-num 4模板,然后再每一個PON口都綁定模板。
我們使用的模板,用累加的方式給四個口分別配置111、222、333、444,第二個上線的設(shè)備配置 112、223、334、445,依次類推。
也可以用模板讓其上線后的默認配置改為native vlan 2這類沒有使用的VLAN,則數(shù)據(jù)包在pon口就被丟棄了。