1. 程式人生 > >UDLD(Unidirectional Link Detection)

UDLD(Unidirectional Link Detection)

1、UDLD(單向鏈路檢測協議)工作原理
         為了在生成轉發環路之前檢測到單向鏈路,Cisco 設計並實施了 UDLD 協議。UDLD 是與第 1 層 (L1) 機制一起工作以確定鏈路物理狀態的第 2 層 (L2) 協議。
         在第 1 層中,自動協商負責物理信令和故障檢測。UDLD 執行自動協商不能執行的任務,例如,檢測鄰居身份和關閉錯誤連線的埠。當同時啟用自動協商和 UDLD 時,第 1 層和第 2 層檢測將一起工作,以防止出現物理和邏輯單向連線以及其他協議無法正常工作的情況。
    UDLD 的工作方式為與相鄰裝置交換協議資料包。為了使 UDLD 發揮作用,鏈路上的兩個裝置必須支援 UDLD,並且已在各自的埠上啟用了 UDLD。
         為 UDLD 配置的每個交換機埠將傳送 UDLD 協議資料包,這些資料包中包含該埠自己的裝置/埠 ID

,以及由該埠上的 UDLD 發現的接裝置/埠 ID鄰接埠應在接收自另一端的資料包中檢視它們自己的裝置/埠 ID(回聲)。

如何判斷為單向鏈路:如果在特定的持續時間內,該埠在傳入的 UDLD 資料包中未看到其自己的裝置/埠 ID,則該鏈路會被視為單向鏈路。

此回聲演算法允許檢測以下問題:
①鏈路兩端均已接通,但是,只有一端可以接收資料包(單通)。
②當接收和傳輸光纖未連線到遠端端上的同一埠時發生的配線錯誤。

UDLD觸發時的現象和如何恢復:
一旦 UDLD 檢測到單向鏈路,將禁用各自的埠,並將在控制檯上輸出以下資訊:
UDLD-3-DISABLE Unidirectional link detected on port 1/2.Port disabled

由 UDLD 關閉的埠將保持禁用狀態,直到手動重新啟用該埠,或直到 errdisable 超時到期(如果已配置)。

2、UDLD 執行模式
UDLD 能夠以兩種模式執行:正常和主動

在正常模式下,如果確定埠的鏈路狀態為雙向,並且 UDLD 資訊超時,UDLD 不會執行任何操作。UDLD 的埠狀態標記為未確定。該埠根據其 STP 狀態執行。
在主動模式下,如果確定埠的鏈路狀態為雙向,並且在該埠上的鏈路仍處於接通狀態時,UDLD 資訊超時,則 UDLD 將嘗試重建埠狀態。如果不成功,則該埠被置於 errdisable 狀態。

當執行 UDLD 的埠在保留時間段內不接收來自鄰接埠的 UDLD 資料包時,會發生 UDLD 資訊老化的情況。埠的保留時間由遠端埠決定,並且取決於遠端端的訊息間隔。
訊息間隔越短,保留時間就越短,檢測速度也越快。UDLD 的最近實施允許配置訊息間隔。

UDLD 資訊可能會由於埠上的錯誤率較高(由某個物理問題或雙工不匹配導致)而老化。這樣的資料包丟棄並不意味著鏈路是單向的,以正常模式執行的 UDLD 不會禁用這樣的鏈路。
為了保證適當的檢測時間,能夠選擇正確的訊息間隔非常重要。訊息間隔應該足夠短,以便可以在生成轉發環路之前檢測到單向鏈路,但是,它不應使交換機 CPU 過載。預設的訊息間隔為 15 秒,完全能夠在用預設 STP 定時器生成轉發環路之前檢測到單向鏈路。


檢測時間大約等於訊息間隔的三倍。
例如:T檢測 | message_interval x3
對於預設的訊息間隔 15 秒,檢測時間為 45 秒。
它採取T STP的reconvergence(再收斂) = max_age + 2x forward_delay能再聚合在單向鏈路故障的情況下。使用預設定時器,需要花費 20+2x15=50 秒。
它通過選擇一個適當的訊息間隔推薦保持T檢測 < T再收斂

在主動模式下,一旦資訊老化,UDLD 將嘗試通過每秒傳送一次資料包(共持續 8 秒)的方式來重建鏈路狀態。如果仍然沒有確定鏈路狀態,將禁用該鏈路。

主動模式添加了對以下情況的附加檢測:
①埠停止響應(一端的埠既不傳輸也不接收,但是鏈路兩端均處於接通狀態)。
②鏈路在一端處於接通狀態,並在另一端處於斷開狀態。這是光纖埠可能出現的問題。從本地埠上拔下傳輸光纖後,鏈路仍然在本地端處於接通狀態。但是,它在遠端端已斷開。

最近,為使鏈路兩端在這些情況下都處於斷開狀態,光纖快速乙太網硬體實施提供了遠端故障指示(FEFI) 功能。在千兆乙太網上,鏈路協商提供了一個相似的功能。銅纜埠通常不會受這類問題的影響,因為它們使用乙太網鏈路脈衝監控鏈路。必須指出的是,在這兩種情況下,由於埠之間沒有任何連線,所以不會存在任何轉發環路。但是,如果鏈路的一端接通,而另一端斷開,則可能發生資料流黑洞。主動 UDLD 設計為可防止出現此問題。

3、可用性


4、配置和監控

通過使用以下命令詳細說明了執行 CatOS 的 Catalyst 交換機上的 UDLD 配置。首先需要使用以下命令全域性啟用 UDLD(預設為禁用狀態):
Vega> (enable) set udld enable     //UDLD enabled globally


發出以下命令:以驗證是否已啟用 UDLD
Vega> (enable) show udld

UDLD :enable

Message Interval:15 seconds


還需要對必要的埠使用以下命令啟用 UDLD:
Vega> (enable) set udld enable 1/2    //UDLD enabled on port 1/2
要驗證是否已對埠啟用 UDLD 以及鏈路狀態是什麼狀態,請發出 show udld port 命令:


Vega> (enable) show udld port

UDLD : enabled

Message Interval : 15 seconds

Port Admin Status Aggressive Mode Link State

-------- ------------ --------------- ----------------

1/1 enabled disabled undetermined

1/2 enabled disabled bidirectional
使用 set udld aggressive-mode enable <module/port> 命令,對每個埠啟用主動 UDLD:
Vega> (enable) set udld aggressive-mode enable 1/2 

Aggressive UDLD enabled on port 1/2.


Vega> (enable) show udld port 1/2

UDLD : enabled

Message Interval : 15 seconds

Port Admin Status Aggressive Mode Link State

-------- ------------ --------------- ----------------

1/2 enabled enabled undetermined
發出以下命令以更改訊息間隔:
Vega> (enable) set udld interval 10   //UDLD message interval set to 10 seconds
間隔範圍可為 7 秒到 90 秒,預設值是 15 秒。

原文連結:https://www.cisco.com/c/zh_cn/support/docs/lan-switching/spanning-tree-protocol/10591-77.html