简介
本文档介绍如何对Cisco IOS® XR路由器中的接口上的循环冗余校验(CRC)错误进行故障排除。
先决条件
要求
Cisco建议您了解Cisco IOS XR平台。
注意:Cisco建议您必须具有Cisco IOS XR和管理CLI访问权限。
使用的组件
本文档中的信息基于Cisco IOS XR平台,包括但不限于:
- Cisco ASR 9000系列路由器(例如,ASR 9006和ASR 9010)
- 思科NCS 540系列路由器
- 思科NCS 560系列路由器
- 思科NCS 5500系列路由器
- 思科NCS 5700系列路由器
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
CRC是一种基本的错误检测码,用于数字网络和存储设备,用于检测传输期间对原始数据的意外更改。它通过识别由于通信信道上的噪音或干扰而导致的损坏,来确保数据的完整性。
CRC工作原理
CRC通过将数据块视为二进制多项式来运行。在发送方末端,数学算法将该数据多项式除以一个预定义的固定除数多项式,称为生成多项式。该多项式除法的余数是一个短的、固定长度的二进制序列,称为CRC校验和(或校验值)。 然后将此校验和附加到原始数据上,并与之一起传输。
接收数据时,接收方对接收的数据(包括附加的校验和)执行相同的CRC计算。 如果数据传输没有错误,则此除法的剩余部分必须为零。如果余数为非零,则表示在传输过程中检测到错误,数据被视为已损坏。CRC在检测常见错误时特别有效,例如在许多通信信道中普遍存在的突发错误(多个连续的损坏比特)。
问题
Cisco IOS XR平台利用物理接口(例如以太网、光纤等)上的CRC检查来保持链路可靠性。它们提供包括CRC错误计数器的接口统计信息。高CRC错误计数通常表示物理层问题,例如电缆故障、连接器故障或收发器故障。Cisco IOS XR诊断命令允许工程师实时监控CRC错误,并将它们与其他接口错误关联起来,以进行全面的故障排除。CRC错误数据集成到Cisco IOS XR遥测和日志记录系统中,实现主动网络运行状况监控。
在NCS 5500/5700系列和ASR 9000系列等平台上,CRC错误趋势可以触发警报或自动工作流程,以最大限度地减少停机时间。
识别接口CRC错误
故障排除的第一步是确认CRC错误确实正在特定接口上发生并且正在增加。
步骤1.在Cisco IOS XR CLI中登录路由器并运行此命令,以确定接口的CRC错误计数是否正在增加。
命令输出示例:
RP/0/RP0/CPU0:N540X-12Z16G-SYS-D#show interfaces Te0/0/0/26
Mon Jul 21 19:50:25.842 WIB
TenGigE0/0/0/26 is up, line protocol is up
Interface state transitions: 39
Dampening enabled: penalty 0, not suppressed
half-life: 1 reuse: 750
suppress: 2000 max-suppress-time: 4
restart-penalty: 0
Hardware is TenGigE, address is xxx.xxx.xxx (bia xxx.xxx.xxx)
Description: 10G:
Internet address is Unknown
MTU 9212 bytes, BW 10000000 Kbit (Max: 10000000 Kbit)
reliability 255/255, txload 0/255, rxload 6/255
Encapsulation ARPA,
Full-duplex, 10000Mb/s, 10GBASE-LR, link type is force-up
output flow control is off, input flow control is off
Carrier delay (up) is 2000 msec, Carrier delay (down) is 100 msec
loopback not set,
Last link flapped 1w4d
Last input 00:00:00, output 00:00:00
Last clearing of "show interface" counters 01:35:40
30 second input rate 249013000 bits/sec, 27739 packets/sec
30 second output rate 34886000 bits/sec, 11563 packets/sec
152403495 packets input, 172646518724 bytes, 0 total input drops
0 drops for unrecognized upper-level protocol
Received 0 broadcast packets, 84723 multicast packets
13 runts, 0 giants, 0 throttles, 0 parity
3731 input errors, 3718 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
66477366 packets output, 24050248792 bytes, 0 total output drops
Output 0 broadcast packets, 77461 multicast packets
0 output errors, 0 underruns, 0 applique, 0 resets
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
在输入错误下查找CRC计数器。如果该值增加,则确认存在CRC错误。
步骤2.在Cisco IOS XR CLI中登录路由器并运行此命令,以验证并确认接口的CRC错误计数是否增加,并提供更详细的统计信息。
命令输出示例:
RP/0/RP0/CPU0:N540X-12Z16G-SYS-D# show controllers Te0/0/0/26 stats
Mon Jul 21 19:50:56.139 WIB
Statistics for interface TenGigE0/0/0/26 (cached values):
Ingress:
Input total bytes = 173638989945
Input good bytes = 173638989945
Input total packets = 153271045
Input 802.1Q frames = 0
Input pause frames = 0
Input pkts 64 bytes = 1332238
Input pkts 65-127 bytes = 14101870
Input pkts 128-255 bytes = 9711091
Input pkts 256-511 bytes = 4850242
Input pkts 512-1023 bytes = 4395212
Input pkts 1024-1518 bytes = 117306517
Input pkts 1519-Max bytes = 1577617
Input good pkts = 153271045
Input unicast pkts = 153185898
Input multicast pkts = 85158
Input broadcast pkts = 0
Input drop overrun = 0
Input drop abort = 0
Input drop invalid VLAN = 0
Input drop invalid DMAC = 0
Input drop invalid encap = 0
Input drop other = 0
Input error giant = 0
Input error runt = 13
Input error jabbers = 0
Input error fragments = 9
Input error CRC = 3729
Input error collisions = 0
Input error symbol = 370
Input error other = 0
Input MIB giant = 0
Input MIB jabber = 0
Input MIB CRC = 3729
Egress:
Output total bytes = 24170362757
Output good bytes = 24170362757
Output total packets = 66833308
Output 802.1Q frames = 0
Output pause frames = 0
Output pkts 64 bytes = 10113
Output pkts 65-127 bytes = 35246624
Output pkts 128-255 bytes = 14254990
Output pkts 256-511 bytes = 2888642
Output pkts 512-1023 bytes = 3779102
Output pkts 1024-1518 bytes = 10642390
Output pkts 1519-Max bytes = 11455
Output good pkts = 66833308
Output unicast pkts = 66755447
Output multicast pkts = 77865
Output broadcast pkts = 0
Output drop underrun = 0
Output drop abort = 0
Output drop other = 0
Output error other = 0
Input error CRC和Input MIB CRC计数器提供CRC错误的明确指示。
接口CRC错误的常见原因
Cisco IOS XR和其他网络设备上CRC错误的常见原因通常源于物理层问题或配置错误。最常见的根本原因包括:
- 物理介质损坏或故障:包括铜缆或光缆或直接连接电缆(DAC)。
- 发生故障或损坏的收发器/光纤:SFP、SFP+、QSFP等,可能会降低或发生故障。
- 配线面板端口故障:配线面板上的连接器可能会损坏或变脏。
- 有缺陷的网络设备硬件:这可能包括线卡、线卡ASIC、介质访问控制(MAC)或交换矩阵模块上的特定端口。
- 连接主机/设备中的网络接口卡(NIC)故障:远程端的硬件可能存在故障。
- 配置不匹配:例如设备之间的最大传输单位(MTU)大小不匹配,这会导致大数据包被错误截断,导致CRC错误。
解决Cisco IOS XR路由器上的接口CRC错误的程序
确定CRC错误后,请执行这些步骤,以便系统地排除故障和解决问题。
步骤1.清除接口计数器
在继续进行故障排除之前,请清除接口计数器以获得新的基线,并观察CRC错误是否继续增加。在Cisco IOS XR CLI中登录到路由器并运行此命令以清除接口计数器。
# clear counter interface
例如:
# clear counter interface Te0/0/0/26
清除后,使用show interfaces <interface>和show controllers <interface> stats再次监视接口,以查看CRC错误是否仍在递增。
步骤2.检查配置不匹配(MTU)
虽然CRC错误比物理问题更少见,但MTU不匹配有时会导致帧截断和随后的CRC错误。
验证MTU设置:
检查本地路由器和所连接对等设备的接口上配置的MTU。
在输出中查找MTU <value>字节。
命令输出示例:
RP/0/RP0/CPU0:N540X-12Z16G-SYS-D#show interfaces Te0/0/0/26
Mon Jul 21 19:50:25.842 WIB
TenGigE0/0/0/26 is up, line protocol is up
Interface state transitions: 39
Dampening enabled: penalty 0, not suppressed
half-life: 1 reuse: 750
suppress: 2000 max-suppress-time: 4
restart-penalty: 0
Hardware is TenGigE, address is xxx.xxx.xxx (bia xxx.xxx.xxx)
Description: 10G:
Internet address is Unknown
MTU 9212 bytes, BW 10000000 Kbit (Max: 10000000 Kbit)
reliability 255/255, txload 0/255, rxload 6/255
Encapsulation ARPA,
Full-duplex, 10000Mb/s, 10GBASE-LR, link type is force-up
output flow control is off, input flow control is off
Carrier delay (up) is 2000 msec, Carrier delay (down) is 100 msec
loopback not set,
Last link flapped 1w4d
Last input 00:00:00, output 00:00:00
Last clearing of "show interface" counters 01:35:40
30 second input rate 249013000 bits/sec, 27739 packets/sec
30 second output rate 34886000 bits/sec, 11563 packets/sec
152403495 packets input, 172646518724 bytes, 0 total input drops
0 drops for unrecognized upper-level protocol
Received 0 broadcast packets, 84723 multicast packets
13 runts, 0 giants, 0 throttles, 0 parity
3731 input errors, 3718 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
66477366 packets output, 24050248792 bytes, 0 total output drops
Output 0 broadcast packets, 77461 multicast packets
0 output errors, 0 underruns, 0 applique, 0 resets
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
操作:确保链路两端的MTU设置一致。如有必要,请进行调整以匹配。
步骤3.排除物理层故障(布线和收发器)
物理层故障是CRC错误最常见的原因。
- 检查并更换物理介质:
- 目视检查电缆(光纤、铜缆、DAC)是否有损坏、弯折或锐弯。
- 确保电缆牢固地固定在路由器接口和连接的设备上。
- 操作:使用已知良好的电缆替换电缆。如果错误停止,则原电缆有故障。
- 检查光纤功率级别(适用于光纤接口):
- 低光功率或过高的光功率可能导致信号衰减和CRC错误。
- 使用show controllers <interface> all命令检查收发器的光功率值(Tx功率和Rx功率)。
命令输出示例:
RP/0/RP0/CPU0:N540X-12Z16G-SYS-D# show controller Te0/0/0/26 all
Mon Jul 21 19:50:32.643 WIB
Operational data for interface TenGigE0/0/0/26:
State:
Administrative state: enabled
Operational state: Up
LED state: Green On
Phy:
Media type: R fiber over 1310nm optics
Optics:
Vendor: CISCO-ACCELINK
Part number: RTXM228-401-C88
Serial number: ACW26040HE6
Wavelength: 1310 nm
Digital Optical Monitoring:
Transceiver Temp: 39.000 C
Transceiver Voltage: 3.265 V
Alarms key: (H) Alarm high, (h) Warning high
(L) Alarm low, (l) Warning low
Wavelength Tx Power Rx Power Laser Bias
Lane (nm) (dBm) (mW) (dBm) (mW) (mA)
-- ----- ------ ------ ------ ------ ------
0 n/a -2.5 0.5603 -17.2 0.0192l 35.250
DOM alarms:
Receive Power: Warning low
Alarm Alarm Warning Warning Alarm
Thresholds High High Low Low
------- ------- ------- -------
Transceiver Temp (C): 75.000 70.000 0.000 -5.000
Transceiver Voltage (V): 3.630 3.465 3.135 2.970
Laser Bias (mA): 75.000 70.000 18.000 15.000
Transmit Power (mW): 2.239 1.122 0.151 0.060
Transmit Power (dBm): 3.500 0.500 -8.202 -12.204
Receive Power (mW): 2.239 1.122 0.036 0.015
Receive Power (dBm): 3.500 0.500 -14.413 -18.386
Alarms:
Current:
No alarms
Statistics:
FEC:
Corrected Codeword Count: 0
Uncorrected Codeword Count: 0
- 将Tx Power和Rx Power值与Warning low/high和Alarm low/high阈值进行比较。如果值在正常工作范围之外(如输出中的“警告低”或“警报低/高”所示),请解决光路问题(例如,清洁连接器、更换光纤跳线、检查衰减是否过大)。
如果光纤功率级别可以接受,或者您怀疑收发器本身有故障,请尝试用已知良好的收发器(SFP、SFP+、QSFP等)更换收发器。
步骤4.排除硬件故障(端口或线卡)
如果排除物理介质和收发器,问题肯定出在路由器的硬件上。
此测试通过绕过外部电缆和收发器,在端口内部循环回流量来检查接口的内部电路。
步骤4.1.实施内部环回:
# clear counter interface
# conf t
# interface
# loopback internal
# commit
步骤4.2.检验CRC错误:
- 使用show interfaces Te0/0/0/26监控接口的CRC错误。
- 如果CRC错误数增加,则表明问题出在外部光纤模块或外部光路径(例如光纤、配线面板、远程设备)上。 继续执行步骤4。(外部环回)或重点关注外部网络组件。
- 如果CRC错误继续增加,则强烈表明该端口或线路卡的路由器内部电路存在问题。在这种情况下,您必须继续更换线卡或路由器本身。
步骤4.3.测试完成后删除内部环回
# conf t
# interface <interface-id>
# no loopback internal
# commit
外部环回测试(硬环路):
此测试使用物理环回连接器将信号环回端口的物理连接器,包括收发器。这有助于隔离问题是与收发器有关,还是与端口的内部处理有关。
步骤4.4.使用环回连接器
这有助于将传输(Tx)物理连接到接口物理端口上的接收(Rx)路径。
步骤4.5.使用外部环回工具包
您还可以使用此功能在接口的物理端口上物理连接传输(Tx)和接收(Rx)路径,并在命令行界面中应用外部环回:
# clear counter interface
# conf t
# interface Te0/0/0/26
# loopback external
# commit
使用外部环回敏感识别导致CRC的硬件。如果CRC错误停止,则问题很可能出在上游(例如,远程设备、电缆)。 如果它们继续,则收发器或端口硬件是可疑的。
步骤4.6.测试完成后删除外部环回
同时移除环回连接器/工具包。
# conf t
# interface Te0/0/0/26
# no loopback external
# commit
- 将接口移至其他端口/线卡:
- 如果可能,请尝试将电缆和收发器移至同一线卡上的不同端口。如果错误仍然存在,则线卡本身可能存在故障。
- 如果错误停止,则原始端口可能存在缺陷。
- 如果错误持续存在于同一线卡上的多个端口上,请尝试移动到其他线卡(如果可用)。 这有助于确定问题出在特定的端口、线卡上,还是出在机箱上。
步骤5.检查已知问题和错误
在继续进行硬件更换之前,建议检查是否存在任何已知软件或硬件错误。
- Cisco Bug Search Tool(思科漏洞搜索工具):搜索您的平台、接口类型和软件版本的Cisco Bug Search Tool(BST)。
- 思科支持文档:查看思科现场通知、版本说明和已知警告。
如果找到匹配的Bug,请执行建议的解决方法或升级路径。
步骤6.硬件更换
如果之前的所有故障排除步骤(包括排除任何已知软件错误)都已用尽,并且问题仍然存在,则表明硬件(光纤、收发器、线卡或机箱)可能存在故障。
根据情况向思科技术支持中心(TAC)提出针对光纤或线卡的退货授权(RMA)的申请。
通过系统地执行这些故障排除步骤,您可以有效地诊断和解决Cisco IOS XR平台上的接口CRC错误。