■ 枝江市職業(yè)教育中心 楊華 李善斌
編者按:本文系統(tǒng)探討了造成網(wǎng)絡(luò)物理環(huán)路的成因以及相關(guān)的檢測機制,并通過模擬大量實驗,對比了主要廠家設(shè)備的特點。
關(guān)于物理環(huán)路,大家很自然想到生成樹STP協(xié)議。其實STP主要是為了實現(xiàn)鏈路冗余,而現(xiàn)實中物理環(huán)路的情況非常復(fù)雜,而STP 只是解決了其中一種,如圖1 ~3所示。STP 協(xié)議只能解決圖中部分的環(huán)路,如果交換機下聯(lián)的傻瓜交換機出現(xiàn)環(huán)路,一樣會影響到上級交換機造成上層交換機網(wǎng)絡(luò)癱瘓,并且STP協(xié)議無法解決這種問題,此時必須使用其他解決方案來解決。而不同的設(shè)備廠商也有不同的技術(shù)措施。
筆者根據(jù)多年的實踐經(jīng)驗,利用手中現(xiàn)有真實設(shè)備,模擬了大量實驗,并總結(jié)如下。
如圖1 ~3所示。
圖1 設(shè)備下掛網(wǎng)絡(luò)環(huán)路
圖2 設(shè)備所在網(wǎng)絡(luò)環(huán)路
圖3 設(shè)備接口自環(huán)路
在此物理環(huán)境下,思科交換機有多種檢測機制可以檢測,有時系統(tǒng)會直接給出如下內(nèi)存錯誤提示信息。登錄監(jiān)控系統(tǒng)查看這臺交換機各個端口的使用率,有的端口占用率竟然高達90%。
主要原因是環(huán)路引發(fā)的廣播風暴崩潰了系統(tǒng),還來不及顯示精確的錯誤信息(是由哪種機制檢測出來的),但可以通過err-disabled項查詢,如圖4 所示。
(1)環(huán)路自檢測
以上信息就明確表示由于檢測到第37 端口出現(xiàn)了環(huán)路,所以將該端口置于了err-disable 狀態(tài)。
(2)思科獨有二層鄰居發(fā)現(xiàn)協(xié)議CDP
以上信息就明確表示由于檢測到第29 端口收到自己發(fā)出的CDP 協(xié)議包,認定此端口號下聯(lián)環(huán)境有環(huán)路存,所以將該端口置于了err-disable 狀態(tài)。
(3)思科獨有二層動態(tài)中繼協(xié)議DTP
以上信息明確表示由于檢測到第35 端口收到自己發(fā)出的DTP 協(xié)議包,本來是用來發(fā)出去進行中繼,但又轉(zhuǎn)回來了,認定此端口號下聯(lián)環(huán)境有環(huán)路存,所以將該端口置于err-disable 狀態(tài)。
(4)生成樹協(xié)議端口保護功能
在全局或在接口號下開啟portfast:
圖4 通過err-disabled 項查詢下連設(shè)備物理自環(huán)
圖5 通過端口流量發(fā)現(xiàn)環(huán)路風暴
以上信息就明確表示由于檢測到第45 端口收到自己發(fā)出的BPDU 協(xié)議包,本來是用來防止下聯(lián)端口接入了其它的交換機設(shè)備,改變了之前的生成樹的拓樸結(jié)構(gòu),但因為環(huán)路又轉(zhuǎn)回來了,認定此端口號下聯(lián)環(huán)境有生產(chǎn)樹產(chǎn)生的BPDU,所以將該端口置于了err-disable 狀態(tài)。
注意:以上幾種情況可能根據(jù)思科具體產(chǎn)品不同觸發(fā)機制會不一樣了,再加上人為修改了觸發(fā)時間,可能也不一樣了。
端口直接不會UP 起來,不清楚是什么原理。思科的設(shè)備不知做了什么技術(shù)偵測,直接跟DOWN,可能它認為,自環(huán)本身就是一個錯誤,直接不讓它發(fā)生。
如圖5 所示。
(1)如果只有一臺設(shè)備的一個端口出入方向流量較大,可能是單端口環(huán)回。
(2)如果只有一臺設(shè)備的兩個端口流量較大,可能是本設(shè)備兩個端口環(huán)回,如上所示。
(3)如果某端口只有單方向流量,需要重點排查,該端口下設(shè)備可能存在環(huán)路。
分析:使用體驗不好,因為真正發(fā)生環(huán)路風暴后,交換機系統(tǒng)CPU 使用過載,無法正常使用命令調(diào)試查看。
對于端口配置了廣播抑制,或單環(huán)、半環(huán)場景,流量無法產(chǎn)生風暴,則還可通過MAC 漂移檢測來判斷是否存在環(huán)路,任何二層環(huán)路都會伴隨持續(xù)MAC 地址漂移。如下所示,如果設(shè)備一直打印該告警,GE3/0/5 和GE3/0/6端口之間可能存在環(huán)路。
華為主要是通過Loop Detection 以及Loopback Detection 這兩種技術(shù)來檢測各種二層環(huán)路。它們都是一種通過周期性發(fā)送環(huán)路檢測報文來檢設(shè)備下掛網(wǎng)絡(luò)環(huán)路、設(shè)備所在網(wǎng)絡(luò)環(huán)路、設(shè)備接口自環(huán)路,并能及時發(fā)送告警,自動找出問題的接口受控,從而減小環(huán)路對本設(shè)備乃至網(wǎng)絡(luò)的影響。
這個應(yīng)該是一個公共協(xié)議判斷,所有設(shè)備都支持,雖然其本意不是判斷環(huán)路。
如下所示,在端口10 上發(fā)現(xiàn)了BPDU 報文,迅速把它置于blocked 狀態(tài)。
H3C 與華為設(shè)備的環(huán)路檢測比較相似,下面探討一下關(guān)于對于不同端口屬性的環(huán)路處理。
在全局下開啟環(huán)路檢測并設(shè)置檢測間隔時間:
當網(wǎng)絡(luò)中真出現(xiàn)環(huán)路時,可以用以下命令查看環(huán)路來自哪個端口:
缺省情況下,系統(tǒng)只在Trunk 端口或Hybrid 端口所屬的缺省VLAN 內(nèi)進行環(huán)回監(jiān)測。如果要對trunk 或hybrid 接口上的所有VLAN 進行環(huán)路檢測,則需要使用以下命令開啟多VLAN 檢測功能。注意,loop back-detection per-vlan enable 命令對Access端口無效。
例如,如果想讓交換機trunk 端口g1/0/16 下的所有VLAN 中執(zhí)行網(wǎng)絡(luò)環(huán)回監(jiān)測操作,必須進行以下配置操作:
進入接口視圖:int G1/0/16
輸入命令:loopback-det ection per-vlan enable
或loopback-detection enable vlan
交換機就能在Hybrid 端口和Trunk 端口所屬的所有VLAN 中執(zhí)行網(wǎng)絡(luò)環(huán)路監(jiān)測。
當檢測到端口存在環(huán)回后,首先會上報錯誤信息,提示某端口在某VLAN 中存在環(huán)回情況。如果配置了端口要進入受控狀態(tài),則會設(shè)置該端口不再學(xué)習(xí)MAC 地址,端口的流量和其它端口隔離,從而進入該端口下存在環(huán)路而不影響其它端口的狀態(tài)。
推薦配置:
設(shè)備的上行端口(trunk)打開環(huán)回檢測,但是配置該端口不受控。這樣,當該端口檢測到某個VLAN 存在環(huán)路后,僅僅上報環(huán)回的trap,但不會使端口進入受控狀態(tài)。這樣,一些VLAN 的環(huán)路則不會影響別的VLAN 中的業(yè)務(wù)。
對于下行端口和用戶端口,打開環(huán)路檢測,且配置端口受控。
RLDP 技術(shù)是銳捷自己研發(fā)的一種鏈路監(jiān)測機制,一般應(yīng)用在接入交換機,它不僅僅能夠檢測環(huán)路故障,還可以檢測單側(cè)鏈路故障和雙側(cè)鏈路故障。
環(huán)路故障原理:交換機某個端口可以收到自己的探測報文。
以下是完整的配置命令:
Rujijie(config)#rldp enable 全局開啟RLDP 功能
Rujijie(config)# inter face range g0/1-24 對于下聯(lián)PC 或HUB 的端口需要開啟,不要在接入交換機的上聯(lián)口開啟該功能
Rujijie(config-if-ra nge) #rldp port loop-dete ct shutdown-port 接口開啟RLDP 功能,如果檢測出環(huán)路后showdow 該端口
Rujijie(config)# err disable recovery interval 300 如果端口被RLDP 檢測并shutdown,再過300 s 后會自動恢復(fù),重新檢測是否有環(huán)路
建議:環(huán)路檢測處理機制是當系統(tǒng)檢測到端口出現(xiàn)環(huán)路時不同廠商設(shè)備都有不同的處理機制,比如上報錯誤信息、處于阻塞狀態(tài)、直接Shutdown、自動恢復(fù)、生成日志信息等。選擇合適的處理機制,將會影響到整個網(wǎng)絡(luò)的性能。當網(wǎng)絡(luò)中存在環(huán)路時,為防止大量報文的沖擊,設(shè)備會丟棄部分報文。而如果環(huán)路檢測報文也被丟棄,設(shè)備在端口狀態(tài)自動恢復(fù)功能的作用下會誤判定環(huán)路已消除。在這種情況下,建議將環(huán)路檢測的處理模式配置為Shutdown 模式,或當設(shè)備提示出現(xiàn)環(huán)路時通過手工排查來消除環(huán)路。
從以上幾個廠商的設(shè)備分析不難看出,華為針對二層的環(huán)路故障做了很多技術(shù)保障,在細節(jié)上很用心,為不同用戶都提供了合適的解決方案;華三也是在基于端口的特征及VLAN 屬性上進行精準檢測,但在實驗上感覺不是很明確,可能沒有達到一定的規(guī)模。CISCO 設(shè)備在鏈路故障檢測和設(shè)備智能化的配置上下足了功夫,對設(shè)備后期的維護很精準,當然對設(shè)備本身的硬件配置提出了更高要求,再就是部分協(xié)議是私有的,不具有通用性,與其它廠商設(shè)備在一起可能會導(dǎo)致一些不確定故障。