udld

UDLD (UniDirectional Link Detection 單向鏈路檢測):是個Cisco私有的二層協定,用於監聽利用光纖或雙絞線連線的以太鏈路的物理配置,當出現單向鏈路(只能向一個方向傳輸,比如我能把數據發給你,你也能收到,但是你發給我的數據我收不到)時,UDLD可以檢測出這一狀況,關閉相應接口並傳送警告信息。單向鏈路可能引起很多問題,尤其是生成樹,可能會造成迴環。注意:UDLD需要鏈路兩端設備都支持才能正常運行。

基本介紹

  • 中文名:單向鏈路檢測
  • 外文名:UniDirectional Link Detection
  • 性質:私有的二層協定
  • 分類:普通模式和激進模式
工作模式,工作原理,維護鄰居資料庫,檢測和回報,配置,算法,

工作模式

UDLD支持兩種工作模式;普通(normal)模式(默認)和激進(aggressive)模式。
udldudld
普通(normal)模式:這個模式下,UDLD可以檢測單向鏈路,並標記連線埠為undetermined狀態產生系統日誌,In other words, normal
mode will shut down a port only if it can explicitly determine that
the associated link is faulty for an extended period of time.
激進(aggressive)模式:這個模式下,UDLD可以檢測到由單向鏈路。並且會嘗試重建鏈路,連續傳送8秒的UDLD message,如果此間沒有任何的UDLD echo應答,此連線埠會被放置於errdisable狀態

工作原理

維護鄰居資料庫

UDLD 周期性的在每個活動接口上傳送hello包(也叫通告advertisement或探針probe)。
交換機收到hello包後,存儲這一信息直到老化時間到期,當老化時間到期前再次收到hello時,則刷新老化時間。

檢測和回報

交換機會向其鄰居傳送回復(echo),當鄰居在一定時間內沒有收到回復,則認為與鄰居間的鏈路出現問題。如果是普通模式,鏈路有可能會被認為是不確定的狀態而不會被關閉(強調一下,普通模式只能檢測光纖誤接,比如Tx、Rx插反了)。如果是激進模式,則鏈路會被認為是單向的而被關閉(接口置於err-disable狀態)。
以上我只是大概的說了一下,Cisco官方文檔中內容很多的,想詳細了解的話可以查一下。

配置

注意:
UDLD默認不在全局或任何接口下啟用。
UDLD不支持ATM接口。
確保鏈路兩端接口設備都支持UDLD,並且需要工作在相同的UDLD模式下。
conf t
udld {aggressive | enable | message time 間隔時間} '全局啟用UDLD,aggressive設定為激進模式,enable設定為普通模式,message time設定hello間隔,範圍是1-90,默認15。
int fa0/10
udld port [aggressive] '接口下啟用UDLD,不加aggressive為普通模式。
show udld [接口名] '查看UDLD信息。
udld reset '特權模式下重啟所有被UDLD關閉的接口。
有的IOS配置命令可能是下面的:
(config)# udld {enable | aggressive}
(config-if)# udld port [aggressive]
(config)# udld message time 間隔
還有,剛才提到過,UDLD檢測到單向鏈路後會將接口置為err-disable狀態,我們可以用以下命令恢復:
(config)# errdisable recovery cause udld
Shutdown、No Shutdown 被置為Err-disable的連線埠
errdisable recovery cause udld 可以將UDLD置為err-disable狀態的接口恢復,不過前提條件是鏈路已經不再是單向的了,要不然會再次被UDLD關閉。回頭再仔細說說關於errdisable recovery。
當鏈路保持“up”狀態的時候,但接口卻沒有傳遞流量,udld協定能夠監測到交換機連線埠上的單向鏈路的情形。這種情形通常會出現在以下幾種情況之中:gbic(吉比特接口轉換器)或接口出現故障、軟體故障、硬體失效或其他異常表現。udld有助於防止在上述幾種失效中發生災難性的事件,當監測到有單向鏈路,它將停止連線埠傳送信息。
udld是一種第2層協定,它與第1層機制協同工作來確定鏈路的物理狀態。在第1層中,自動協商功能將照顧到物理信令和故障監測。udld能夠執行自動協商不能執行的任務,例如監測鄰居身份和關閉連線不當的連線埠。當同時啟用自動協商和udld的時候,第1層和第2層監測將協同工作來防止物理或邏輯上的單向連線,並且還可以其他協定的故障。
udld有兩種模式:通常模式和廣泛模式。通常模式是默認的,當監測吉比特接口出現了故障,它會監測到單向性鏈路,防止出現問題。如果某個連線埠連線正確沒有故障,但只是傳輸是單向的,udld不會監測到單向鏈路,因為第1層機制沒有問題,它也不會非法這個連線埠。
廣泛模式下,當出現一下情況時,它會監測到單向鏈路,它將非法連線埠:
* 一個光纖吉比特連線埠或雙絞線鏈路中,其中一個連線埠不能傳送或接收數據包
* 一個光纖吉比特連線埠或雙絞線鏈路中,其中一個連線埠斷了而其他連線埠是活動
* 一個光纖線纜的一頭連線錯誤
積極模式udld是udld的一種變種,它能夠提供額外的好處。在啟用積極模式udld的情況下,當連線埠停止接收udld數據包的時候,udld將嘗試重新建立與鄰居的連線。但如果嘗試次數超過8次之後,那么連線埠狀態就將變更為“error-disable”狀態,它將有效地禁用連線埠。

算法

學習鄰居的信息並將信息保存在一個本地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信息。

相關詞條

熱門詞條

聯絡我們