Cisco IOS / IOS-XE 路由器各类故障的数据收集速查
简介
本文列出 IOS 与 IOS-XE 路由器上常见的路由和平台类问题,以及对应需要收集的数据、debug 和 show 命令。在向技术支持中心(TAC)提交服务请求(SR)时一并提供这些信息,可以加快问题解决。
前提条件
要求
Cisco 建议您了解以下内容:
- IOS 与 IOS-XE 路由器经典路由功能的基础知识
- 能够通过命令行界面(CLI)访问或现场操作 IOS 与 IOS-XE 路由器
使用的组件
本文信息基于以下平台:
- ASR1000
- ISR4000
- ISR1000
- CSR1000v
- 经典 IOS 平台(ISR G1/G2)
需要提供的基础信息
- 问题从何时开始?
- 记录首次发现问题的日期和时间。
- 问题由什么触发?
- 记录问题出现前最近做过的变更。
- 记录可能触发问题的具体操作或事件。
- 问题出现的频率如何?
- 是否只出现过一次?
- 如果不是,多久出现一次?
- 是否与其他网络事件或操作同时发生?
- 影响多少用户 / 对业务有何影响?
- 您已做过哪些排查(请说明步骤)?
- 相关设备的拓扑是怎样的?
路由器与 IOS-XE 架构
以下是 IOS 与 IOS-XE 路由器上常见的问题,以及除 "Show Tech" 之外针对每类问题还应收集的输出。
这些输出有助于在问题发生期间收集到相关数据;对于非持续性问题尤其重要,因为等 TAC 介入时问题可能已经消失。
IOS-XE 意外重启
问题描述:设备出现意外重启或崩溃。除“需要提供的基础信息”外,还需要以下内容:
- 收集 "show tech”
- 检查 Bootflash / Harddisk,收集已生成的 crash 或 core 文件:
Router#show bootflash: | in crash Router#show bootflash: | in core
- 将 tracelog 归档到 bootflash 后收集。Trace 文件用于保存跟踪数据,收集可能需要几分钟。
Router#request platform software trace rotate all Router#request platform software trace slot rp active archive target bootflash:
- 问题发生期间的外部 Syslog 数据。
也可以收集崩溃后在 bootflash 中自动生成的 System-report Bundle(16.11.x 及以后版本)。System report 包会以 tar 文件形式收集更多信息,包括:
- Tracelog
- Maroon 统计
- Core / Crash 文件
- RP / cyan 日志
注意:16.11 及以后版本进一步增强了可服务性,设备发生崩溃后会自动收集 "system-report" 包。
Router#sh bootflash: | in sys
12 45 Oct 20 2020 05:08:05.0000000000 +00:00 /bootflash/core/system-report_20201020-050805-UTC.tar.gz <<<<
IOS-XE 启动失败
问题描述:设备中某个组件启动失败,有时 RP(Route Processor)会陷入启动循环,导致无法登录设备。
- 如能登录设备,收集 "show tech"
- 连接 Console,收集 "Console logs"(Console 日志)。
- 提供 LED 状态信息。
注意:无法登录设备时,这一点尤其重要
- 如能到现场,尝试重新插拔模块(如 RP、ESP 或 SIP/SPA)并收集 Console 日志。
- 如果启动失败的是 RP 以外的其他模块,登录设备并用以下命令尝试软 OIR,然后收集 "show logging"
Router#hw-module slot <slot-num> reload Router#hw-module subslot <slot-num/subslot num> reload
IOS-XE 软件版本选择
问题描述:需要升级设备的 IOS,需要协助选择版本。
- 此时可登录 CCO 页面,查看对应平台的推荐版本(带星标)。
- 如需 IOS-XE 路由器的版本建议,也可以参考以下链接:
- 如需协助从 3.x 升级到 16.x 版本,可参考以下链接:
IOS-XE 内存泄漏
问题描述:设备出现内存相关问题,有时特定组件会报内存利用率过高的错误。本节汇总了排查内存泄漏或监控 IOS-XE 路由器内存时最常用的命令。
IOS-XE 内存使用的一般说明见:
随着近期可服务性的改进,16.9.x 及以后版本可以收集 "Show Tech Memory"。
- 如能登录设备,收集 "Show tech"。
- show platform software status control-processor brief
- show platform software process list rp active sort memory
- show platform software process memory rp active all sort
- show platform software process slot rp active monitor cycles 2
- show platform software process list fp active summary
- show platform software process slot fp active monitor cycles 2
- show platform hardware qfp active infrastructure exmem statistics
- show platform hardware qfp active infrastructure exmem statistics user
- show platform hardware qfp active tcam resource-manager usage
- show platform hardware qfp active classification feature tcam-usage
- show platform hardware qfp active classification class-group-manager class-group all
16.2 及以后版本新增了以下可收集的命令:
- show platform resources
- show memory platform
- show process memory platform sorted
- show process cpu platform monitor cycles 2
- show process memory platform sorted location fp active
注意:使用 'cycles 2' 是因为第一组数值不准确
IOS-XE ISSU 升级
问题描述:ISSU 是将系统从一个版本完整或部分升级到另一个版本,转发平面中断最小(丢包最少)、控制平面不中断。本节提供 ISSU 升级的进一步帮助:
IOS-XE 设备的许可证
问题描述:设备许可证有问题,常见如“许可证无法安装”、许可证文件未显示为 Permanent 等。本节给出排查许可证问题所需的最少输出:
- show tech-support Licenses
注意:该命令是在较新版本中随可服务性改进引入的(ASR1K:16.9.x;ISR4K:16.12.x)。
- show license all
- show license version
- show license summary
- show license status
- show license usage
- show license udi
路由协议问题
以下是 IOS 与 IOS-XE 路由器上常见的问题,以及除 "Show Tech" 之外针对每类问题还应收集的输出。
这些输出有助于在问题发生期间收集到相关数据;对于非持续性问题尤其重要,因为等 TAC 介入时问题可能已经消失。
BGP/EIGRP/OSPF/Static-Routing
问题描述:路由协议排查主要取决于问题类型,重点是按“需要提供的基础信息”尽可能多地提供数据。除此和 "Show tech" 外,还可收集以下协议相关输出:
| BGP | Show tech-support bgp |
| EIGRP | Show ip eigrp events Show ip eigrp interfaces Show ip eigrp neighbors Show ip eigrp topology Show ip eigrp traffic |
| OSPF | Show tech-support ospf |
| 静态路由 | Show tech-support |
注意:"show tech bgp" 只在部分较新版本中提供,如果当前 IOS 不支持该命令,请按 "需要提供的基础信息" 尽可能多地提供信息
对于一些常见场景,也可以按以下流程进行 BGP 排查:
EIGRP 邻居震荡问题:
问题描述:EIGRP 最常见的问题之一是邻居震荡。可以借助 EEM 脚本在问题出现时准确收集输出和 debug:
路由器上的 NAT / PAT(网络 / 端口地址转换)
在 IOS-XE 平台上,NAT 配置由 IOS NAT 子系统接收处理,再经 Forwarding Manager(FMAN)和 Client 组件下发到 QFP。NAT 会话的建立和管理以及报文头和负载的转换都只在 QFP 上完成,IOS-XE 路由器不会为 NAT 转换把报文上送(punt)。QFP 也会生成状态信息回送给 IOS,如 ipalias、静态路由和 WLAN 会话信息。
问题描述:设备出现 NAT / PAT 相关问题,例如 NAT 不触发、看不到转换条目、内外网之间流量不通等。由于数据报文由硬件转发,IOS-XE 上的 NAT / PAT 问题有时比较棘手。本节汇总了排查 IOS-XE 路由器 NAT 问题最常用的命令。
- show tech-support nat
注意:该输出是最近随可服务性改进在 16.9.x 及以后版本中引入的。
与平台无关的 show 命令
- show ip nat statistics
- show ip nat translation
也可以对 "show ip nat translation" 加过滤条件,例如:
- show ip nat translation udp total
- show ip nat translation inside
- show ip aliases
与平台相关的 show 命令
- show platform hardware qfp active statistics drop | exc _0 <<< 检查是否有 NAT 相关丢包
- show platform hardware qfp active feature nat datapath map
- show platform hardware qfp active feature nat datapath port
- show platform hardware qfp active feature nat datapath pool
- show platform hardware qfp active feature nat datapath stat
- show platform hardware qfp active feature nat datapath base
- show platform hardware qfp active infrastructure exmem statistics user
- show platform hardware qfp active infrastructure exmem stat
- show platform hardware qfp active feature nat datapath gatein
- show platform hardware qfp active feature nat datapath gateout
iWAN
iWAN 是一套复杂的方案,排查起来更复杂。iWAN 涉及 DMVPN、IPsec、传输(MPLS / INET)、PfR、EIGRP SAF 等多个组件,各种 iWAN 问题可能与其中一个或多个组件有关。iWAN 网络中的设备不是 "Master Controller"(MC)就是 "Border Router"(BR),排查 iWAN 问题需要同时从这两类路由器收集信息。
问题描述:如遇到以下任一 iWAN 问题,请在相应设备上收集下列命令输出。
- Site-Prefix / service-route 分发不正确
- EIGRP SAF 对等关系无法建立
- 流量通道(Traffic channel)未创建
- 频繁出现 TCA 日志
- 流量无法从某条传输链路通过
需要收集的命令如下。
MC - Master Controller(主控制器)
- show tech-support
- show domain IWAN master discovered-sites
- show domain IWAN master site-capability
- show domain IWAN master status
- show domain IWAN master site-prefix
- show domain IWAN master policy
- show domain IWAN master peering
- show domain IWAN master traffic-classes summary
- show platform hardware qfp active feature pfrv3 datapath global
- show eigrp service-family ipv4 neighbors
- show eigrp service-family ipv4 subscriptions detail
- show eigrp service-family ipv4 topology
- show eigrp service-family ipv4 traffic
- show derived-config | sec router eigrp
BR - Border Router(边界路由器)
- show tech-support
- show domain IWAN border site-capability
- show domain IWAN master site-capability
- show domain IWAN border parent-route
- show domain IWAN border channels dscp default
- show domain IWAN border channels
- show domain IWAN border traffic-classes summary
- show domain IWAN master status
- show domain IWAN master policy
- show domain IWAN border peering
- show domain IWAN border status
- show domain IWAN border pmi
- show performance monitor cache monitor
- show platform hardware qfp active feature pfrv3 datapath global
- show eigrp service-family ipv4 neighbors
- show eigrp service-family ipv4 subscriptions detail
- show eigrp service-family ipv4 topology
- show eigrp service-family ipv4 traffic
- show derived-config | sec router eigrp
其他错误日志
以下是 IOS 与 IOS-XE 路由器上常见的日志,以及除 "Show Tech" 之外针对每类日志还应收集的输出。
这些输出有助于在问题发生期间收集到相关数据;对于非持续性问题尤其重要,因为等 TAC 介入时问题可能已经消失。
与 %FMFP-3-OBJ_DWNLD_TO_DP_STUCK 相关的错误
- 从日志消息中取出对象 ID:
示例:
%FMFP-3-OBJ_DWNLD_TO_DP_STUCK: R0/0: fman_fp_image: AOM download of obj[20] type[215] pending-issue Req-create Issued-noneSSLMGR: Secondary Init to Data Plane is stuck for more than 1800 seconds
- 本例中的对象 ID 为 obj[20],即使用 20
- 将以下命令中的 '<object_id>' 替换为第 2 步得到的数字后收集:
- show platform software object-manager f0 object <object_id>
- show platform software object-manager f0 object <object_id> parents
- show platform software object-manager f0 object <object_id> children
- show platform software object-manager f0 object <object_id> downlinks
- 收集以下不需要对象 ID 的命令:
- show platform software object-manager f0 statistics
- show platform software object-manager f0 pending-issue-update
- show platform software object-manager f0 pending-ack-update
- show platform software object-manager f0 object-type-count
- show platform software object-manager f0 error-object
- show platform software object-manager f0 resolve-object
- show platform software object-manager f0 stale-object
- show platform software object-manager f0 paused-object-type