■福建 王剛 曾瑋琳 鄭洪飛
引言:環路問題一直是導致網絡質量下降甚至癱瘓的主要原因之一,在網絡日常使用中,由于操作不當、配置錯誤等原因造成網絡環路,數據流通不暢,無論是政府單位還是電信運營商,數據流通不暢都可能帶來巨大損失。如何快速破壞網絡環路,最大程度減少損失顯得非常重要。
為了能夠及時發現網絡中的二層網絡環路,避免對整個網絡造成嚴重影響,當網絡中出現環路時,可利用交換機環路檢測技術(Loopback Detection),及時發出告警信息,通知用戶檢查網絡連接和配置情況,并能夠將出問題的接口置于某種管制狀態,以實現快速破壞二層網絡環路,最小程度地影響網絡使用,環路檢測功能并不能破壞二層網絡環路,必須結合交換機物理接口管制狀態才能快速破壞二層網絡環路。
所有環路的形成都是由于目的路徑不明確導致混亂而造成的,環路會造成網絡動蕩,引起數據包數量增加,造成丟包,嚴重時會導致網絡癱瘓。在多數網絡故障中,鏈路和設備故障導致網絡通訊質量下降的占多數,通常在網絡部署和網絡設備調整過程中也會因路徑的設置不當導致二層網絡環路,造成各種危害。
環路一旦形成,網絡中的環路會對廣播、組播以及未知單播等報文進行不斷地循環轉發、廣播和重復發送,無法結束進而造成網絡廣播風暴,阻塞帶寬,耗盡交換資源,能讓交換機的CPU使用率高達85%以上,造成網絡資源浪費甚至交換機癱瘓。
由于交換機具有學習功能,網絡內的主機只要發送廣播報,交換機就必須在相應的物理端口學習MAC地址形成MAC地址表,當有環路存在時,交換機會在多個端口學習到同一MAC地址和IP地址,從而形成錯誤的MAC地址表,這種現象就是MAC地址飄移,會影響數據包的正常轉發,造成網絡中斷。
在規模較大的局域網網絡中,時常會遇到網絡通道被嚴重堵塞的現象,造成這種故障現象的原因有很多,常見的主要原因有6種。一是網絡中交換機改動、亂入或位置變化。因為頻繁改動網絡時很容易引發網絡環路,而由網絡環路引起的網絡堵塞現象常常具有較強的隱蔽性,不利于故障現象的高效排除。二是網絡線路調整。在調試設備時測試光路形成的環路。有時我們會在遠端進行線路回環對線路是否正常進行測試,有時因操作導致線路混亂而產生環路。三是配置不當。例如,為實現二層網絡雙路由保護或流量分擔,鏈路進行聚合操作,當在參加的接口上取消了鏈路聚合功能就會形成環路,還比如,交換機啟動了生成樹協議,當取消生成樹協議后,原來可能阻塞的環路恢復環路等。四是病毒引發環路。原本網絡中存在環路,但因使能生成樹協議后環路失效,但因病毒引發線路阻塞,導致生成樹保活的協議失效,導致生成樹協議失效,引發環路恢復。五是報文轉發異常導致環路。當數據轉發給外連交換機時,因外連交換機的處理能力不足,外連交換機會反彈轉發,從而造成網絡環路。六是硬件故障。這種故障比較少,因為即使交換機接口出現故障一般也不會形成環路,但有時接口被高壓等原因擊穿后接口內部會形成環路。
環路檢測技術是通過連續周期性發送環路檢測報文來檢測網絡中是否存在環路的檢測技術。二層環路分為單臂環路和雙臂環路,單臂環路為環路檢測報文從交換機某端口發出,又從該端口接收到該環路檢測報文如圖1所示,可以判斷出該接口產生物理故障或外連網絡有環路。雙臂環路為環路檢測報文從交換機端口發出,從該交換機的另一端口接收到環路檢測報文,可以判斷出該接口產生物理故障或該交換機產生自環如圖2所示。

圖1 環路檢測報文

圖2 交換機產生自環

表1 檢測報文結構說明
環路檢測報文是由交換機發送,報文攜帶交換機自身MAC地址和相應接口的接口信息,目的MAC地址為BPDU MAC、廣播或組播,這樣就可以區別于其他交換機發出的檢測報文,當交換機接口在接收到自己發送的檢測報文后會進行比對,如果MAC地址是自己的MAC地址則說明網絡中存在環路,如果報文中的接口信息同接收到報文的接口信息一致,則說明網絡中存在單臂環路,如果不一致則說明網絡中存在雙臂環路。華為交換機環路檢測報文結構說明,如表1所示。
啟動環路檢測后,一旦網絡中有網絡環路,交換機會發送告警和記錄日志,并能根據管理員事先設置的處理動作使物理接口處于相應的管制狀態,從而快速破壞二層網絡環路,減小環路對交換機乃至整個網絡的影響,接口被管制后仍會繼續發送檢測報文,當在設定的時間或默認的時間內再未接收到檢測報文后就認為網絡中的環路被消除了,這時被管制的物理接口會恢復為正常工作狀態。
LDT-Type 檢測報文的類型,包括協議號和子協議號兩部分。其中,協議號取值為0x9998,子協議號取值為0x0001,表示是環路檢測報文。
Port Information 發送檢測報文的接口信息。
Flag表示Untagged報文或tagged報文,Untagged用于普通接口檢測,tagged用于VLAN環境檢測。
一是環路檢測使能后需要發送大量檢測報文來進行環路檢測,會消耗大量的網絡資源,如非排除故障最好關閉環路檢測功能。二是因Eth-Trunk接口及其成員接口都不支持配置環路檢測,不建議和生成樹等協議共同使用。三是為減少環路檢測報文發送數量和頻率,可對發送環路檢測報文默認周期適當延長。
使能環路檢測命令
當交換機未劃分VLAN時:
進入系統視圖,在系統視圖執行loopback-detect enable命令,使能所有接口的環路檢測功能。如需在單個接口使能環路檢測功能,方法如下:一是在系統視圖執 行interface interfacetype interface-number,進入接口視圖(interfacetype為接口類型,比如:GigabitEthernet 接 口、Vlanif接 口。interfacenumber為相應接口或VLAN 編號,比如:0/0/1、100等)。二是執行命令loopback-detect enable,在此接口使用環路檢測功能。

表2 處理動作

圖3 配置事例
當交換機劃分VLAN時(對指定VLAN進行檢測):
在系統視圖執行interface interface-type interface-number命 令,進入VLAN接口視圖。執行命令loopback-detect packet vlan xxx(xxx 為指定VLAN檢測編號),配置對指定的VLAN進行環路檢測。
配置檢測報文的發送周期
執 行loopback-detect packet-interval xxx命令(xxx為設置的發送周期時間,默認為5秒),配置環路檢測報文的發送周期。
配置環路檢測處理動作
華為交換機環路檢測處理動作有5種,如表2所示。
執行命令interface interface-type interfacenumber,進入接口視圖。執行命令loopback-detect action { block | nolearn |shutdown | trap | quitvlan}(缺省情況下,環路檢測對接口的處理動作為shutdown)。
如圖3所示。
配置思路
為檢測交換機A所在網絡是否存在環路,可以在交換機A上的GE0/0/1和GE0/0/2上分別使能環路檢測功能,并配置對VLAN 100進行環路檢測,實現對交換機A所在網絡環路檢測。
配置步驟



圖4 配置結果

圖5 阻塞示意

圖6 說明



剛配置完畢,在系統視圖執行display loopbackdetect命令,可以看到配置結果如圖4所示。
再等待一段時間,在系統視圖執行display loopback-detect命令,可以看出接口GigabitEthernet 0/0/2被阻塞如圖5所示,二層環路被破壞。
破壞交換機B和交換機C之間的鏈路,再過一段時間,發現鏈路中無環路檢測報文,說明網絡中無環路,如圖6所示。
利用交換機環路檢測功能,當網絡中存在二層網絡環路,可以快速發現二層網絡環路,通過物理處理動作可快速破壞環路,減少中斷時長,最大程度減少損失。