简介
本文档介绍如何对Cisco Nexus 7000系列交换机上的单向链路检测(UDLD)错误消息进行故障排除。
先决条件
要求
Cisco建议您了解以下主题的基础知识:
- Cisco Nexus操作系统(Cisco NX-OS)
- 基本UDLD操作
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科 Nexus 7000 系列交换机
- 思科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没有向交换机B发送UDLD帧。
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将端口标记为未确定,并且端口可根据其生成树端口状态继续运行 |
积极模式 |
err-disable port |
UDLD错误情况故障排除
本部分介绍如何进行故障排除,以及在遇到UDLDerror-disabled端口时必须完成的步骤。
由于UDLD错误指示物理层故障,因此有必要在物理层进行故障排除。遇到UDLD错误消息时,请考虑以下问题:
- 如果更换小型封装热插拔收发器(SFP),错误是否仍然存在?
- 如果更换了电缆,错误是否仍然存在?
- 如果将连接移到交换机的其他物理端口,此错误是否仍然存在?
有用的命令
使用此命令可以恢复UDLD已置于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> (其中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 <x/y>
show log logfile | grep UDLD
show log logfile | grep Ethernet<x/y>
show processes cpu history
show interface ethernet <x/y>
show hardware internal errors module <x>
show interface counters errors module <x>
相关信息