簡介
本檔案介紹如何對Cisco Nexus 7000系列交換器上的單向連結偵測(UDLD)錯誤訊息進行疑難排解。
必要條件
需求
思科建議您瞭解以下主題的基本知識:
- Cisco Nexus作業系統(Cisco NX-OS)
- 基本UDLD操作
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- Cisco Nexus 7000 系列交換器
- Cisco NX-OS版本6.2(10)
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
執行UDLD偵測程式時,連線埠會交換UDLD封包,包括建立者交換器ID和建立者連線埠ID。收到UDLD封包時,交換器會將對等交換器ID和連線埠ID回送到對等路由器。當交換器交換回應封包時,會形成雙向關係。
當交換器沒有從其UDLD對等點收到預期資訊時,存在UDLD錯誤情況。
本檔案將說明以下UDLD錯誤情況以及如何進行疑難排解:
- Empty-echo
- 傳輸 — 接收(Tx-Rx)回圈
- 單向
- 鄰居不匹配
- 突然停止UDLD幀
UDLD錯誤條件
本節介紹各種型別的UDLD錯誤情況以及一些可能的原因。
空回應
交換器A從交換器B收到UDLD訊框,但預期沒有交換器A交換器ID和連線埠ID的回應時,就會出現此情況。
偵測到空回應時,UDLD會執行以下動作:
模式
|
動作
|
正常模式 |
err-disable port |
積極模式 |
err-disable port |
然後生成以下系統日誌消息:
2015 Mar 19 11:57:56.155 N7kA ETHPORT-2-IF_DOWN_ERROR_DISABLED Interface Ethernet1/2
is down (Error disabled. Reason:UDLD empty echo)
2015 Mar 19 11:57:56.186 N7kA ETH_PORT_CHANNEL-5-PORT_INDIVIDUAL_DOWN individual port
Ethernet1/2 is down
2015 Mar 19 11:57:56.336 N7kA ETHPORT-2-IF_DOWN_ERROR_DISABLED Interface Ethernet1/2
is down (Error disabled. Reason:UDLD empty echo)
以下是造成此情況的一些可能原因
- 交換器B上的UDLD雙向關係已逾時,因為它沒有收到來自交換器A的UDLD訊框。
- 交換器B收到交換器A傳來的UDLD訊框,但並未處理它們。
- 交換器A沒有將UDLD訊框傳送到交換器B。
Tx-Rx回圈
當在傳送幀的同一連線埠上接收UDLD訊框時,會發生此情況。
當檢測到Tx-Rx環路時,UDLD會執行下列操作:
模式
|
動作
|
正常模式 |
err-disable port |
積極模式 |
err-disable port |
然後生成以下系統日誌消息:
2015 Mar 20 14:52:30 N7kA %ETHPORT-2-IF_DOWN_ERROR_DISABLED: Interface Ethernet17/5
is down (Error disabled. Reason:UDLD Tx-Rx Loop)
2015 Mar 20 14:52:30 N7kA %ETHPORT-2-IF_DOWN_ERROR_DISABLED: Interface Ethernet17/5
is down (Error disabled. Reason:UDLD Tx-Rx Loop)
以下是造成此情況的一些可能原因:
- 可能存在佈線錯誤或物理介質問題。
- 中間裝置將幀反射回傳送埠。
鄰居不匹配
當交換器A上的連線埠A收到來自已與其建立UDLD雙向關係的連線埠以外的連線埠的訊框時,就會出現此情況。
偵測到鄰居不相符時,UDLD會執行以下動作:
模式
|
動作
|
正常模式 |
err-disable port |
積極模式 |
err-disable port |
然後生成以下系統日誌消息:
2015 Mar 21 10:23:05.598 N7kA %ETHPORT-2-IF_DOWN_ERROR_DISABLED: Interface Ethernet3/21
is down (Error disabled. Reason:UDLD Neighbor mismatch)
2015 Mar 21 10:24:07.065 N7kA %ETHPORT-2-IF_DOWN_ERROR_DISABLED: Interface Ethernet3/21
is down (Error disabled. Reason:UDLD Neighbor mismatch)
以下是造成此情況的一些可能原因:
- 有問題的UDLD連線埠是成員連線埠已變更狀態的連線埠通道的成員。
- 兩個連線埠之間有一個中間裝置,形成雙向關係。
UDLD訊框的突然停止
如果形成雙向關係的連線埠在間隔逾時(預設為50秒)時未收到UDLD訊框,就會出現此情況。
偵測到這種情況時,UDLD會執行以下動作:
模式
|
動作
|
正常模式 |
UDLD將連線埠標籤為Undetermined,而連線埠會依照其跨距樹狀目錄連線埠狀態繼續運作 |
積極模式 |
err-disable port |
排除UDLD錯誤情況
本節介紹如何進行疑難排解,以及在遇到UDLD的情況下必須完成的步驟 error-disabled
連接埠.
由於UDLD錯誤指示物理層故障,因此適合在物理層進行故障排除。遇到UDLD錯誤訊息時,請考慮以下問題:
- 如果更換了小型封裝熱插拔收發器(SFP),該錯誤是否持續存在?
- 如果更換了電纜,錯誤是否仍然存在?
- 如果將連線移動到交換機上的另一個物理埠,該錯誤是否會持續下去?
有用的命令
使用以下命令以還原已放置到中的所有埠 error-disable
模式:
N7KA(config)# udld reset
使用以下命令以驗證雙向關係:
N7KA-NORTH-AGG(config-if)# show udld eth 3/4
Interface Ethernet3/4
--------------------------------
Port enable administrative configuration setting: enabled
Port enable operational state: enabled
Current bidirectional state: bidirectional
Current operational state: advertisement - Single neighbor detected
Message interval: 7
Timeout interval: 5
Entry 1
----------------
Expiration time: 39
Cache Device index: 1
Current neighbor state: bidirectional
Device ID: JAF1620ABAB
Port ID: Ethernet3/12
Neighbor echo 1 devices: JAF1617BACD
Neighbor echo 1 port: Ethernet3/4
Message interval: 15
Timeout interval: 5
CDP Device name: N7KB-SOUTH-AGG(JAF1620ABAB)
Last pkt send on: 400096, Aug 6 13:58:52 2014
Probe pkt send on: 400096, Aug 6 13:58:52 2014
Echo pkt send on: 395799, Aug 6 13:58:43 2014
Flush pkt send on: None.
Last pkt recv on: 740333, Aug 6 13:58:52 2014
Probe pkt recv on: 740333, Aug 6 13:58:52 2014
Echo pkt recv on: 730454, Aug 6 13:58:43 2014
Flush pkt recv on: None.
Deep pkt inspections done: None.
Mismatched if index found: None.
Deep pkt inspection drops: None.
使用以下命令驗證實體介面上的錯誤計數器,這些計數器會判斷是否由於實體層硬體錯誤而捨棄UDLD訊框:
RTP-Agg1# show interface ethernet 4/1 | i error|CRC|discard|drop
0 runts 0 giants 0 CRC/FCS 0 no buffer
0 input error 0 short frame 0 overrun 0 underrun 0 ignored
0 watchdog 0 bad etype drop 0 bad proto drop 0 if down drop
0 input with dribble 0 input discard
0 output error 0 collision 0 deferred 0 late collision
0 lost carrier 0 no carrier 0 babble 0 output discard
使用以下命令檢查CPU使用率,它確定CPU使用率高是否阻止UDLD幀的進程:
N7K-A# show system resources
Load average: 1 minute: 0.17 5 minutes: 0.25 15 minutes: 0.20
Processes : 1993 total, 1 running
CPU states : 0.18% user, 0.81% kernel, 98.99% idle
有用的TAC資訊
本節介紹在還原連結之前(如果情況允許)必須收集的輸出。這有助於為思科技術協助中心(TAC)提供診斷UDLD進入錯誤停用模式的連結根本原因的最佳機會:
show tech-support lacp all
(如果失敗介面是鏈路聚合控制協定(LACP)portchannel的成員)
show tech-support module
其中x是檢測到UDLD錯誤的模組)
show tech-support ethpm
show tech-support udld
show udld internal event-history errors
show udld internal event-history msgs | grep -a 3 -b 3 L2_RX_DATA
show udld internal event-history ethernet
show log logfile | grep UDLD
show log logfile | grep Ethernet
show processes cpu history
show interface ethernet
show hardware internal errors module
show interface counters errors module
相關資訊