前言
非線性編輯網絡其系統的穩定性、安全性是非常重要的,它直接影響到節目的生產制作與播出。我臺從2005年開始引進了索貝公司的非線性編輯系統,承擔了全臺的節目編輯工作,保證節目正常編輯的情況下,在最大限度里給與編輯們以很大的自由,但保證非編系統的穩定和安全,保證素材和編輯信息的正常使用,成為網絡技術人員至關重要的課題,下面我們重點討論一個很典型的網絡環路問題
我們大家都知道,網絡是最怕環路的。當在一個中大型的網絡中出現環路特別是Layer 2環路是,所產生的廣播風暴會在瞬間十幾秒內淹沒整個網絡。因此對于網管來說,如何應對網絡環路造成的風險是一個最大的難題。
基于這個考慮,本文結合實際工作經驗,提出一種切實可行的辦法。
UDLD
1.單向鏈路檢測Overview:
UDLD協議可以對網絡介質為光纖或者utp的網絡端口通過檢測是否有多余鏈路存在的方式來監控是否有環路現象。當有一個多余鏈路存在時,UDLD會關閉受影響的Lan端口并警告用戶。UDLD會導致很多問題,諸如STP環路等。
單向鏈路檢測(UDLD)特性用于檢測光纖或銅纜以太網鏈路上的故障:
(1)監視物理電纜的配置,并將通過"ErrDisabled"狀態將配置不正確的端口給down掉。
(2)避免出現單向連接,當檢測到一個因為介質或端口故障導致的單向連接時,將端口shutdown并標識為"ErrDisabled"狀態,同時產生一個syslog信息。
由于生成樹具有單向的BPDU流,對這種故障相當敏感。在一個端口突然不能發送BPDUs的時候,引起鄰居的STP狀態改變,導致鄰居的"blocking"端口切換到"forwarding"狀態。由于原forwarding端口仍然可以接收包,從而引起環路。
●運行機制
UDLD是一個工作在LLC層之上的二層協議,使用01-00-0c-cc-cc-cc為目的mac地址,SNAP HDLC的協議類似為0x0111,當和第一層的FEFI、自動協商機制一起運行時,可以驗證一條鏈路在物理層和邏輯鏈路層的完整性。
UDLD 可以完成一些FEFI和自動協商不可能提供的功能,如檢測并緩存鄰居的信息、down掉任何一個錯誤配置的端口,檢查非點對點的邏輯端口的讓的故障和失效等。
UDLD使用兩個基本機制:學習鄰居的信息并將信息保存在一個本地cache中,一但檢測到一個新的鄰居或一個鄰居請求重新同步cache時,就發送一系列的UDLD probe/echo(hello)包。
UDLD在所有端口上持續的發送probe/echo信息,當在端口上收到一個UDLD響應信息時觸發一個"detection-phase"和驗證進程。如果所有的有效條件都達滿足(端口是雙向連接,并且線纜正確),這個端口被啟用。否則,該端口被禁用,并觸發如下所示的syslog信息:
"UDLD-3-DISABLE: Unidirectional link detected on port mod/port. Port disabled"()
"UDLD-4-ONEWAYPATH: A unidirectional link from port mod/port to port mod/port of device [chars] was detected"
一但一個鏈路建立起來并被標志為雙向的,UDLD會繼續每隔15秒發送一個probe/echo信息。
●鄰居緩存的維護: UDLD在每個活動的接口上周期性的發送probe/echo包,以維護鄰居緩存的完整性。一量收到一個hello信息,將它緩存到內存中,并保存一個通過hold-time定義的時間間隔。如果一個hold-time超時,相應的cache被清空,如果在hold-time定義的時間間隔內收到新的hello信息,則新的替代老的,并將計時器清零。
為了維護UDLD cache的完整性,一旦一個啟用了UDLD的接口被禁用,或該接口上的設備被重啟,該接口存在的所有緩存均會被清除,UDLD傳送至少一個信息讓鄰居清空響應的緩存條目。
●回顯檢測機制:回顯機制構成了檢測算法的基礎。一旦一個UDLD設備學習到了一個新的鄰居或從一個非同步狀態的鄰居收到一了個重新同步的請求。它將啟動或重啟本端的檢測窗口,并發送一個完全同意的回顯信息。由要求所有的鄰居都必須有這個相應的行為,回顯的發送者期待收到一個響應的echo。如果檢測窗口結束,而沒有合法的響應信息收到,這個鏈路被認為是單向連接。就觸發鏈路重連接或端口shutdown進程。
2.實際應用
結合實際網絡環境,得出如下網絡測試報告
環境1:
 |
環境描述:兩臺3026照上圖接法連入園區網
IOS版本:3750為12.2(25) ipservice版本。
測試過程:
1:產生環路
先將區域主干交換機的上聯端口斷掉,以免影響到園區網絡運行。
將3026(關掉STP)用一根網線連起來。如下圖所示:
此時,兩臺3026交換機的上聯端口狂閃,同時,3750的F1/0/1口端口的廣播包和多播迅速上升,CPU Load 也由未環路時的6%上升到現在的99%。
I:在3750的F1/0/1和添加udld port兩條命令后。當環路產生時,顯著的發現區域主干交換機的F1/0/1口在經歷了大約10秒鐘的廣播包和多播包的沖擊后,出現了將F1/0/1端口出于err-disable狀態。
此后區域主干交換機的CPU負載基本維持在5%左右。
環路被終止在3750的f1/0/1口。
環境2:
如下圖所示:
環境說明:在3750下添加一臺2924作為接入設備。兩臺3026均接入2924。
3750IOS為12.2(25)ipservice
2924版本為12.0(5.0)
1:產生環路
先斷開3750上連園區的網絡
如下圖所示:
此時2924的f0/2口上的廣播包和多播包迅速增加,cpu利用率從30%上升到89%。此時3750上的cpu利用率迅速上升。
環路產生。
2:進行測試
在2924上的f0/2口上添加udld port .