■福建 王剛 曾瑋琳 鄭洪飛
引言:環(huán)路問題一直是導(dǎo)致網(wǎng)絡(luò)質(zhì)量下降甚至癱瘓的主要原因之一,在網(wǎng)絡(luò)日常使用中,由于操作不當(dāng)、配置錯誤等原因造成網(wǎng)絡(luò)環(huán)路,數(shù)據(jù)流通不暢,無論是政府單位還是電信運營商,數(shù)據(jù)流通不暢都可能帶來巨大損失。如何快速破壞網(wǎng)絡(luò)環(huán)路,最大程度減少損失顯得非常重要。
為了能夠及時發(fā)現(xiàn)網(wǎng)絡(luò)中的二層網(wǎng)絡(luò)環(huán)路,避免對整個網(wǎng)絡(luò)造成嚴(yán)重影響,當(dāng)網(wǎng)絡(luò)中出現(xiàn)環(huán)路時,可利用交換機環(huán)路檢測技術(shù)(Loopback Detection),及時發(fā)出告警信息,通知用戶檢查網(wǎng)絡(luò)連接和配置情況,并能夠?qū)⒊鰡栴}的接口置于某種管制狀態(tài),以實現(xiàn)快速破壞二層網(wǎng)絡(luò)環(huán)路,最小程度地影響網(wǎng)絡(luò)使用,環(huán)路檢測功能并不能破壞二層網(wǎng)絡(luò)環(huán)路,必須結(jié)合交換機物理接口管制狀態(tài)才能快速破壞二層網(wǎng)絡(luò)環(huán)路。
所有環(huán)路的形成都是由于目的路徑不明確導(dǎo)致混亂而造成的,環(huán)路會造成網(wǎng)絡(luò)動蕩,引起數(shù)據(jù)包數(shù)量增加,造成丟包,嚴(yán)重時會導(dǎo)致網(wǎng)絡(luò)癱瘓。在多數(shù)網(wǎng)絡(luò)故障中,鏈路和設(shè)備故障導(dǎo)致網(wǎng)絡(luò)通訊質(zhì)量下降的占多數(shù),通常在網(wǎng)絡(luò)部署和網(wǎng)絡(luò)設(shè)備調(diào)整過程中也會因路徑的設(shè)置不當(dāng)導(dǎo)致二層網(wǎng)絡(luò)環(huán)路,造成各種危害。
環(huán)路一旦形成,網(wǎng)絡(luò)中的環(huán)路會對廣播、組播以及未知單播等報文進(jìn)行不斷地循環(huán)轉(zhuǎn)發(fā)、廣播和重復(fù)發(fā)送,無法結(jié)束進(jìn)而造成網(wǎng)絡(luò)廣播風(fēng)暴,阻塞帶寬,耗盡交換資源,能讓交換機的CPU使用率高達(dá)85%以上,造成網(wǎng)絡(luò)資源浪費甚至交換機癱瘓。
由于交換機具有學(xué)習(xí)功能,網(wǎng)絡(luò)內(nèi)的主機只要發(fā)送廣播報,交換機就必須在相應(yīng)的物理端口學(xué)習(xí)MAC地址形成MAC地址表,當(dāng)有環(huán)路存在時,交換機會在多個端口學(xué)習(xí)到同一MAC地址和IP地址,從而形成錯誤的MAC地址表,這種現(xiàn)象就是MAC地址飄移,會影響數(shù)據(jù)包的正常轉(zhuǎn)發(fā),造成網(wǎng)絡(luò)中斷。
在規(guī)模較大的局域網(wǎng)網(wǎng)絡(luò)中,時常會遇到網(wǎng)絡(luò)通道被嚴(yán)重堵塞的現(xiàn)象,造成這種故障現(xiàn)象的原因有很多,常見的主要原因有6種。一是網(wǎng)絡(luò)中交換機改動、亂入或位置變化。因為頻繁改動網(wǎng)絡(luò)時很容易引發(fā)網(wǎng)絡(luò)環(huán)路,而由網(wǎng)絡(luò)環(huán)路引起的網(wǎng)絡(luò)堵塞現(xiàn)象常常具有較強的隱蔽性,不利于故障現(xiàn)象的高效排除。二是網(wǎng)絡(luò)線路調(diào)整。在調(diào)試設(shè)備時測試光路形成的環(huán)路。有時我們會在遠(yuǎn)端進(jìn)行線路回環(huán)對線路是否正常進(jìn)行測試,有時因操作導(dǎo)致線路混亂而產(chǎn)生環(huán)路。三是配置不當(dāng)。例如,為實現(xiàn)二層網(wǎng)絡(luò)雙路由保護(hù)或流量分擔(dān),鏈路進(jìn)行聚合操作,當(dāng)在參加的接口上取消了鏈路聚合功能就會形成環(huán)路,還比如,交換機啟動了生成樹協(xié)議,當(dāng)取消生成樹協(xié)議后,原來可能阻塞的環(huán)路恢復(fù)環(huán)路等。四是病毒引發(fā)環(huán)路。原本網(wǎng)絡(luò)中存在環(huán)路,但因使能生成樹協(xié)議后環(huán)路失效,但因病毒引發(fā)線路阻塞,導(dǎo)致生成樹保活的協(xié)議失效,導(dǎo)致生成樹協(xié)議失效,引發(fā)環(huán)路恢復(fù)。五是報文轉(zhuǎn)發(fā)異常導(dǎo)致環(huán)路。當(dāng)數(shù)據(jù)轉(zhuǎn)發(fā)給外連交換機時,因外連交換機的處理能力不足,外連交換機會反彈轉(zhuǎn)發(fā),從而造成網(wǎng)絡(luò)環(huán)路。六是硬件故障。這種故障比較少,因為即使交換機接口出現(xiàn)故障一般也不會形成環(huán)路,但有時接口被高壓等原因擊穿后接口內(nèi)部會形成環(huán)路。
環(huán)路檢測技術(shù)是通過連續(xù)周期性發(fā)送環(huán)路檢測報文來檢測網(wǎng)絡(luò)中是否存在環(huán)路的檢測技術(shù)。二層環(huán)路分為單臂環(huán)路和雙臂環(huán)路,單臂環(huán)路為環(huán)路檢測報文從交換機某端口發(fā)出,又從該端口接收到該環(huán)路檢測報文如圖1所示,可以判斷出該接口產(chǎn)生物理故障或外連網(wǎng)絡(luò)有環(huán)路。雙臂環(huán)路為環(huán)路檢測報文從交換機端口發(fā)出,從該交換機的另一端口接收到環(huán)路檢測報文,可以判斷出該接口產(chǎn)生物理故障或該交換機產(chǎn)生自環(huán)如圖2所示。
圖1 環(huán)路檢測報文
圖2 交換機產(chǎn)生自環(huán)
表1 檢測報文結(jié)構(gòu)說明
環(huán)路檢測報文是由交換機發(fā)送,報文攜帶交換機自身MAC地址和相應(yīng)接口的接口信息,目的MAC地址為BPDU MAC、廣播或組播,這樣就可以區(qū)別于其他交換機發(fā)出的檢測報文,當(dāng)交換機接口在接收到自己發(fā)送的檢測報文后會進(jìn)行比對,如果MAC地址是自己的MAC地址則說明網(wǎng)絡(luò)中存在環(huán)路,如果報文中的接口信息同接收到報文的接口信息一致,則說明網(wǎng)絡(luò)中存在單臂環(huán)路,如果不一致則說明網(wǎng)絡(luò)中存在雙臂環(huán)路。華為交換機環(huán)路檢測報文結(jié)構(gòu)說明,如表1所示。
啟動環(huán)路檢測后,一旦網(wǎng)絡(luò)中有網(wǎng)絡(luò)環(huán)路,交換機會發(fā)送告警和記錄日志,并能根據(jù)管理員事先設(shè)置的處理動作使物理接口處于相應(yīng)的管制狀態(tài),從而快速破壞二層網(wǎng)絡(luò)環(huán)路,減小環(huán)路對交換機乃至整個網(wǎng)絡(luò)的影響,接口被管制后仍會繼續(xù)發(fā)送檢測報文,當(dāng)在設(shè)定的時間或默認(rèn)的時間內(nèi)再未接收到檢測報文后就認(rèn)為網(wǎng)絡(luò)中的環(huán)路被消除了,這時被管制的物理接口會恢復(fù)為正常工作狀態(tài)。
LDT-Type 檢測報文的類型,包括協(xié)議號和子協(xié)議號兩部分。其中,協(xié)議號取值為0x9998,子協(xié)議號取值為0x0001,表示是環(huán)路檢測報文。
Port Information 發(fā)送檢測報文的接口信息。
Flag表示Untagged報文或tagged報文,Untagged用于普通接口檢測,tagged用于VLAN環(huán)境檢測。
一是環(huán)路檢測使能后需要發(fā)送大量檢測報文來進(jìn)行環(huán)路檢測,會消耗大量的網(wǎng)絡(luò)資源,如非排除故障最好關(guān)閉環(huán)路檢測功能。二是因Eth-Trunk接口及其成員接口都不支持配置環(huán)路檢測,不建議和生成樹等協(xié)議共同使用。三是為減少環(huán)路檢測報文發(fā)送數(shù)量和頻率,可對發(fā)送環(huán)路檢測報文默認(rèn)周期適當(dāng)延長。
使能環(huán)路檢測命令
當(dāng)交換機未劃分VLAN時:
進(jìn)入系統(tǒng)視圖,在系統(tǒng)視圖執(zhí)行l(wèi)oopback-detect enable命令,使能所有接口的環(huán)路檢測功能。如需在單個接口使能環(huán)路檢測功能,方法如下:一是在系統(tǒng)視圖執(zhí) 行interface interfacetype interface-number,進(jìn)入接口視圖(interfacetype為接口類型,比如:GigabitEthernet 接 口、Vlanif接 口。interfacenumber為相應(yīng)接口或VLAN 編號,比如:0/0/1、100等)。二是執(zhí)行命令loopback-detect enable,在此接口使用環(huán)路檢測功能。
表2 處理動作
圖3 配置事例
當(dāng)交換機劃分VLAN時(對指定VLAN進(jìn)行檢測):
在系統(tǒng)視圖執(zhí)行interface interface-type interface-number命 令,進(jìn)入VLAN接口視圖。執(zhí)行命令loopback-detect packet vlan xxx(xxx 為指定VLAN檢測編號),配置對指定的VLAN進(jìn)行環(huán)路檢測。
配置檢測報文的發(fā)送周期
執(zhí) 行l(wèi)oopback-detect packet-interval xxx命令(xxx為設(shè)置的發(fā)送周期時間,默認(rèn)為5秒),配置環(huán)路檢測報文的發(fā)送周期。
配置環(huán)路檢測處理動作
華為交換機環(huán)路檢測處理動作有5種,如表2所示。
執(zhí)行命令interface interface-type interfacenumber,進(jìn)入接口視圖。執(zhí)行命令loopback-detect action { block | nolearn |shutdown | trap | quitvlan}(缺省情況下,環(huán)路檢測對接口的處理動作為shutdown)。
如圖3所示。
配置思路
為檢測交換機A所在網(wǎng)絡(luò)是否存在環(huán)路,可以在交換機A上的GE0/0/1和GE0/0/2上分別使能環(huán)路檢測功能,并配置對VLAN 100進(jìn)行環(huán)路檢測,實現(xiàn)對交換機A所在網(wǎng)絡(luò)環(huán)路檢測。
配置步驟
圖4 配置結(jié)果
圖5 阻塞示意
圖6 說明
剛配置完畢,在系統(tǒng)視圖執(zhí)行display loopbackdetect命令,可以看到配置結(jié)果如圖4所示。
再等待一段時間,在系統(tǒng)視圖執(zhí)行display loopback-detect命令,可以看出接口GigabitEthernet 0/0/2被阻塞如圖5所示,二層環(huán)路被破壞。
破壞交換機B和交換機C之間的鏈路,再過一段時間,發(fā)現(xiàn)鏈路中無環(huán)路檢測報文,說明網(wǎng)絡(luò)中無環(huán)路,如圖6所示。
利用交換機環(huán)路檢測功能,當(dāng)網(wǎng)絡(luò)中存在二層網(wǎng)絡(luò)環(huán)路,可以快速發(fā)現(xiàn)二層網(wǎng)絡(luò)環(huán)路,通過物理處理動作可快速破壞環(huán)路,減少中斷時長,最大程度減少損失。