工作模式 UDLD支持兩種工作模式;普通(normal)模式(默認)和激進(aggressive)模式。
udld 普通(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信息。