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