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