本文档说明如何对Cisco 12000系列互联网路由器的交换矩阵ping超时和故障进行故障排除。以下错误消息指示此类故障:
%GRP-3-FABRIC_UNI: Unicast send timed out (3)
和
%GRP-3-COREDUMP: Core dump incident on slot 3, error: Fabric ping failure (seq:29192)
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档没有任何特定的前提条件。
本文档中的信息基于下面的硬件版本。
Cisco 12000 系列互联网路由器
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
Cisco 12000系列互联网路由器中的GRP和线卡(LC)通过交叉开关交换矩阵连接,该交换矩阵为大多数卡间通信提供高速物理路径。在GRP和线卡之间通过交换机交换矩阵传递的消息中,包括路由和接收的实际数据包、转发信息、流量统计信息以及大多数管理和控制信息。因此,对GRP来说,确保这个路径在正常运转是很重要的。
交换矩阵ping是在GRP和交换矩阵之间运行的四个应用之一。处理器间通信(IPC)、网络数据包和代码下载是其他。矩阵 ping利用MBUS ping线卡的减缓矩阵接口从而提供部分错误检测算法和keep-alive机制。
在GRP的Cisco Cell Segmentation and Reassembly (CSAR)矩阵接口驱动程序处理在交换矩阵和GRP之间将被发送和接受的消息。这包括交换矩阵ping。矩阵PING是由软件生成的,每六秒从主GRP被发送到每个线路卡。每当线卡收到来自GRP的ping请求时,LC都会向GRP发回应答。如果GRP不收到给五个连续矩阵PING (30秒总时间)的任何回复,通过维护总线(MBUS)宣称线卡失败和重置它。
多数时间,线路卡只是太繁忙以至于不能回答从GRP的矩阵PING请求。这些矩阵ping失败也许由有故障的矩阵卡或IOS软件Bug造成。矩阵ping失败的所有可能的原因在下面故障排除部分被列出。
矩阵ping超时,当千兆路由处理器(GRP)发现ping请求在T ofab队列被滞留(入交换矩阵) Cisc o Cell Segmentation and Reassembly(CSAR) applic ation-spec ific integrated c irc uit (ASIC)。 在通过交换矩阵把包发到线卡前,此ASIC对切信息包负责到Cisco信元。
当线卡或辅助GRP无法响应来自主GRP的交换矩阵ping请求时,交换矩阵ping失败。此类故障是需要调查的问题症状。
如背景部分所述,GRP每六秒向线卡发送一次交换矩阵ping,线卡必须做出响应。当GRP无法收到对五个连续交换矩阵ping的应答时,它通过维护总线(MBUS)发送请求消息来重置线卡,并报告软件强制崩溃,如show context slot {#}命令的输出所示。
从控制台日志或show log命令中,在交换矩阵ping失败消息之前,您可能会收到以下错误消息:
%GRP-3-FABRIC_UNI: Unicast send timed out (3) %GRP-3-FABRIC_UNI: Unicast send timed out (3) %GRP-3-FABRIC_UNI: Unicast send timed out (3)
那里第(3)表示主GRP设法发送矩阵PING的线卡插槽。
此消息表明信息包在CSAR ASIC的Tofab队列被滞留在主GRP。如果在2个CSAR缓冲区的任何一个中延迟超过100毫秒,缓冲区被冲满,并且超时消息生成。
如果GRP传送其矩阵PING请求信息,但是线卡不应答或者线卡答案,或者交换矩阵有故障造成信息丢失,您在矩阵PING失效消息之前将看不到此消息。因此,如果您收到错误消息“%GRP-3-FABRIC_UNI”,这意味着在100或200毫秒内,某些内容无法传输到交换矩阵上的插槽。可能是因为,由于%GRP-3-FABRIC_UNI,您无法将keep-alive发送到LC,在本例中,在30秒后,您最终出现交换矩阵ping失败。但是,在没有“%GRP-3-FABRIC_UNI”的情况下,可能会发生交换矩阵ping故障,反之亦然。
主GRP可以检测线卡或备GRP存在的问题并实时执行core dump。GRP会通过MBUS发出信息给线卡并要求线卡CPU crash,从而生成core dump。
%LCINFO-3-CRASH: Line card in slot 3 crashed %GRP-3-COREDUMP: Core dump incident on slot 3, error: Fabric ping failure (seq:29192)
如果使用exception crashinfo和相关命令配置了核心转储,线卡将创建核心转储(有关配置核心转储的GSR特定信息,请参阅在GSR线卡上配置核心转储)。 show context slot {#}命令输出中的限定字符串指示了重新加载的原因。在交换矩阵ping失败时,原因始终是“软件强制崩溃”。
CRASH INFO: Slot 1, Index 1, Crash at 00:42:45 KST Mon Mar 12 2001 VERSION: GS Software (GLC1-LC-M), Version 12.0(18)ST, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) TAC Support: http://www.cisco.com/tac Compiled Thu 09-Aug-01 22:06 by nmasa Card Type: 2 Ports OC3 Channelized to DS1/E1 , S/N CAT00400500 System exception: sig=23, code=0x24, ! --- SIG=23 indicates a software-forced crash. context=0x41303B04 System restarted by a Software forced crash STACK TRACE: -Traceback= 400C3970 400C1F90 40815D5C 407D3144 400C7488
线卡崩溃后,它会发送初始消息通知主GRP。然后,GRP会等待线卡通过MBUS发送有关崩溃的其他信息。从线卡获得第一条消息后的几毫秒内GRP会收到完整的dump core。极少数情况后续crash信息没有到达GRP,GRP最多等待10秒,随后GRP会打出错误信息并且通知其他软件组件线卡已经崩溃。
在正常路由器操作期间,主GRP会持续ping线卡,线卡会做出响应。任何ping失败都是应调查的另一个问题的症状。这些问题包括:
注意:如果故障可以重现,在GRP上配置no service auto-reset。此命令阻止矩阵ping失败引起的线卡重启,您可以通过attach<slot>命令登录线卡获取相关show命令排除故障。
最有可能的原因是某个进程长时间阻止了中断造成连续5个矩阵ping没有响应的IOS Bug。尝试升级到您系列中的最新Cisco IOS软件版本,以避免已解决的问题。有关升级帮助,请参阅思科下载软件区。
线卡可能长时间施加反应,因此调度器阻止线卡从交换矩阵接受信息。此症状表明接口拥塞存在问题。使用以下命令确认这些症状:
show controller frfab queue命令。查看是否有non-IPC队列缓冲区不足或已耗尽。
show controllers csar queue命令。查找“最大长度”的非零值和“最大长度”等于“长度”值,如以下输出示例所示:
router#show controllers csar queue 1190 Free Q Slot Length Max Length 0 0 7 1 0 2 2 70 70 ! -- CSAR queue for slot 2 is building and reaching max length. 3 0 2 4 0 3 5 0 0 ...
CSAR为目的线卡最多缓冲50个包。在50个数据包之后,仅交换矩阵ping数据包排队。如果queue limit增加队列长度到70,CSAR停止将矩阵Ping在内的所有包加入队列。GRP和所有线卡都有64k CSAR分段缓冲区,可在其中存储消息。如果这些缓冲区繁忙,路由器将使用软件保持队列来存储消息。它还设置计时器,以确保交换矩阵ping消息不会在此队列中停留太长时间。
线卡CPU利用率高--通常在大规模路由表更新或者链路抖动导致BGP会话重置后引发的大量CEF表重新计算。在软件中交换数据流量的时候CPU也可能会高。这主要发生在引擎0线卡上,其中大多数功能都在软件中实施。如果出现这种情况,您可以检查线卡的配置并删除可能影响引擎0 LC上CPU的功能。高CPU利用率也可能是由于Bug。如果路由器上运行的Cisco IOS软件版本不支持以前的命令,则使用execute-on slot <slot#> show proc cpu 命令或execute-on slot <slot#> show tech命令确定CPU利用率。请考虑升级到培训中的最新Cisco IOS软件版本,以解决已知问题。
线卡IPC缓冲区耗尽此缓冲区用于GRP和线卡交换控制信息。请参阅排除CEF相关错误消息故障中的故障排除步骤。如果故障排除指出IPC问题,请确保Cisco 12000系列互联网路由器运行的Cisco IOS软件版本至少为12.0(18)S。此版本为IPC缓存引入了更大的默认大小5000,以增强其稳定性和可扩展性。
线卡上的硬件问题。请注意,不到10%的交换矩阵ping故障是由硬件问题引起的。在联系思科TAC以请求更换硬件之前,请尝试以下步骤:
查找在交换矩阵ping失败之前打印的IPC超时消息。另请参阅下面的IPC部分。
重新安装线卡。
为路由器重新通电。
如果您没有对路由器的物理访问权限,请执行hw-module slot <slot #> reload命令以手动重新加载线卡。
Cisco 12000系列互联网路由器的核心是交换矩阵电路,它为线卡和GRP提供同步千兆位速度互连。交换矩阵电路包含两种类型的卡:
时钟和调度程序卡(CSC)
交换矩阵卡(SFC)
如果其中一个卡发生故障,ping消息将无法再通过交换矩阵。在这种情况下,您还应看到指向故障交换矩阵的其他消息,例如:
%FABRIC-3-CRC: Switch card 18
使用show controllers fia命令确定您的CSC或SFC是否有问题。使用execute-on all show controllers fia命令捕获所有线卡的输出。将GRP的输出与线卡的输出进行比较,以确定是否需要更换有故障的交换矩阵卡。
以下输出示例指出插槽18中sfc0出现问题。首先尝试重新拔插此卡,然后在crc16错误计数器继续增加时请求更换。
Router#show controllers fia Fabric configuration: Full bandwidth redundant Master Scheduler: Slot 17 From Fabric FIA Errors ----------------------- redund FIFO parity 0 redund overflow 0 cell drops 1 crc32 lkup parity 0 cell parity 0 crc32 0 Switch cards present 0x001F Slots 16 17 18 19 20 Switch cards monitered 0x001F Slots 16 17 18 19 20 Slot: 16 17 18 19 20 Name: csc0 csc1 sfc0 sfc1 sfc2 -------- -------- -------- -------- -------- Los 0 0 0 0 0 state Off Off Off Off Off crc16 0 0 4334 0 0 ! --- Check the CRCs under SFC0 (slot 18) To Fabric FIA Errors ----------------------- sca not pres 0 req error 0 uni FIFO overflow 0 grant parity 0 multi req 0 uni FIFO undrflow 0 cntrl parity 0 uni req 0 crc32 lkup parity 0 multi FIFO 0 empty DST req 0 handshake error 0 cell parity 0
在某些交换矩阵ping失败报告中,路由器在失败前报告循环冗余校验(CRC)错误消息。在GRP上使用show controllers fia命令和在线卡上使用execute-on all show controllers fia,检查交换矩阵卡上的CRC。如果CRC仅在GRP上增加(不在任何线卡增加),则说明GRP有故障。首先尝试重新拔插GRP,如果CRC错误继续增加,请求更换。
在Cisco IOS软件版本12.0S的不同版本中,GRP和线卡之间运行的进程间通信(IPC)软件已解决问题。在这种情况下,您应在日志中看到一些与IPC相关的错误消息以及交换矩阵ping超时消息。设法运行最新的Cisco IOS软件版本以解决与IPC有关的已知问题。另请参阅Cisco下载软件区域,以获得选择版本的帮助。
如果show log命令的输出显示与CEF转发信息库(FIB)相关的消息,请参阅排除与CEF相关的错误消息故障,该消息类似于以下命令:
%FIB-3-FIBDISABLE: Fatal error, slot 2: IPC failure
使用以下debug和show命令对Cisco 12000系列互联网路由器上的交换矩阵ping超时/故障消息进行故障排除:
debug fabric events — 打印GRP检测到的所有错误。此调试仅在错误情况下生成少量信息。
debug fabric ping — 打印GRP在交换矩阵ping过程中检测到的任何错误。此调试仅在错误情况下生成少量信息。
捕获每个重置线卡的以下命令。用适当的插槽编号替换X。
execute-on slot X debug fabric events — 打印线卡在其ping响应中检测到的错误。此命令仅在错误情况下生成极少的消息。
exec slot X debug fabric ping — 当线卡收到交换矩阵ping时,打印一条消息。此调试每秒为启用该调试的每个线卡生成一行输出。
线卡崩溃后,从GRP控制台捕获以下命令:
show context all detail
show fabric
show controllers fia
show controllers csar queue
execute-on all show controllers fia
show tech
show log
还捕获以下有关线卡状态的命令:
execute-on slot <slot#> show proc CPU
execute-on slot <slot#> show controller tofab queue
execute-on slot <slot#> show controller tofab stat
execute-on slot <slot#> show controller frfab queue
execute-on slot <slot#> show controller frfab stat
execute-on slot <slot#> show ipc stat
execute-on slot <slot#> show ipc queue
execute-on slot <slot#> show stack
execute-on slot <slot#> show tech
如果在完成所有故障排除步骤后仍然遇到问题,请收集上述所有必需信息,并致电您的Cisco TAC代表进行进一步故障排除。
以下是一些有用的show命令的输出:
router#show controllers csar From Fabric Error Stats ------------------------ 0 out of order, 0 unexpected first 0 unexpected last, 0 unknown rx type, 0 corrupted pak, 0 parity 0 first/last, 0 sequence, 0 cell avail, 0 reassembly, To Fabric Stats ------------------------ Slot Tx Pkts TX Th Pkts Rx Pkts Rx Th Pkts To Fab timeout 0 580278 490214 281061 1336470 0 1 18854 66592 18390 945419 0 2 6 50824 0 896290 0 3 0 0 0 0 0 4 0 51909 0 895430 0 5 0 0 0 0 0 6 0 35113 0 880247 0 7 0 52690 0 52690 0 8 0 0 0 0 0 9 0 0 0 0 0 10 0 0 0 0 0 11 0 0 0 0 0 12 0 0 0 0 0 13 0 0 0 0 0 14 0 0 0 0 0 15 0 0 0 0 0 0 too big, 1 Buf0 free, 1 Buf1 free 0 Copy fail Fabric access Error Stats -------------------------- 0 parity errors, 0 bad access size, 0 invalid address 0 queue full parity, 0 flushed buffer router#show controllers fia Fabric configuration: Full bandwidth, nonredundant fabric Master Scheduler: Slot 16 From Fabric FIA Errors ----------------------- redund fifo parity 0 redund overflow 0 cell drops 0 crc32 lkup parity 0 cell parity 0 crc32 0 Switch cards present 0x001D Slots 16 18 19 20 Switch cards monitored 0x001D Slots 16 18 19 20 Slot: 16 17 18 19 20 Name: csc0 csc1 sfc0 sfc1 sfc2 -------- -------- -------- -------- -------- los 0 0 0 0 0 state Off Off Off Off Off crc16 0 254 0 0 0 ! --- Check the CRC error here. In this case CSC1 in slot 17. To Fabric FIA Errors ----------------------- sca not pres 0 req error 0 uni FIFO overflow 0 grant parity 0 multi req 0 uni FIFO undrflow 0 cntrl parity 0 uni req 0 crc32 lkup parity 0 multi FIFO 0 empty dst req 0 handshake error 0 cell parity 0
有关show controllers fia命令的更多详细信息,请参阅如何读取Show Controller fia命令的输出。
router#show fabric Dest ToFab FrFab Bad Seq Unexpected Slot Pkts Pkts Pkts ---------------------------------------------------- Slot0 26327 26327 0 0 Slot1 26325 26325 0 0 Slot2 26321 26321 0 0 Slot4 26315 26315 0 0 Slot6 26311 26311 0 0 Slot7 26334 26334 0 0 multicast timeout 0 failed pak 0 Current fabric timeout is 6000 fabric send fails 58
如果在执行上述故障排除步骤后仍需要帮助,并希望通过Cisco TAC创建服务请求,请在您的案例中附加以下信息,以排除Cisco 12000系列互联网路由器上的交换矩阵ping问题: |
---|
注意:在收集上述信息之前,如果可能,请不要手动重新加载或重新通电路由器,因为这可能导致确定问题根本原因所需的重要信息丢失。 |
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
15-Jan-2008 |
初始版本 |