简介
本文档介绍在Cisco IOS®/Cisco IOS XE中确定意外重新加载的原因并将它们上传到TAC案例所需的文件。
先决条件
要求
- 本文档适用于运行Cisco IOS/Cisco IOS XE软件的Cisco路由器和交换机。
- 为了收集本文档中描述的文件,设备必须运行且稳定。
- 要通过传输协议提取文件,需要一台服务器(已安装文件传输应用/服务)并具有L3可达性。
- 需要通过SSH/Telnet通过控制台或远程方式连接到设备。
- 不讨论SDWAN部署。
注意:在意外重新加载事件中,某些文件可能不会根据重新加载和平台的性质生成。
显示技术支持文件
show tech-support命令输出包括有关设备当前状态(内存和CPU使用率、日志、配置等)的一般信息,以及有关创建的文件的信息(与意外重新加载事件发生的时间相关)。
在意外重新启动的情况下,要检查的要点包括:
- 设备上安装的当前Cisco IOS/Cisco IOS XE版本。
- 包含端口、卡和模块详细信息的系统配置。
- 存在其他文件,以便在文件系统中提供根本原因分析。
可以通过两种不同方式捕获show tech-support输出:记录终端会话或在存储中创建文件并将其从设备转发出去:
记录终端会话
在Putty中,导航到Session > Logging,并在Session logging选项卡内选择,选择All session output选项,如下图所示。
默认情况下,该文件使用putty.log名称存储在Putty文件夹中。可使用Browse按钮更改文件夹和文件名称。
完成配置后,必须通过控制台、Telnet或SSH将Putty会话连接到设备。
在设备会话中,建议在权限模式下设置terminal length 0命令,然后使用show tech-support命令(不建议使用SYSTEMIC命令)。
# terminal length 0
# show tech-support
注意:此命令的执行可能需要几秒钟。不要中断执行。
在存储中创建文件
可以在设备上创建show tech-support文件,并将其存储在文件系统存储(内部或外部)的其中之一中。命令语法在所有设备中均保持不变,但所使用的文件系统可以更改。文件也可以直接在外部服务器上创建,本节显示本地文件系统的语法。
要在闪存中创建文件,需要使用命令show tech-support | redirect flash:Showtech.txt,处于特权模式:
# show tech-support | redirect flash:Showtech.txt
生成文本文件时,终端无法使用几秒钟。完成创建后,您可以使用show [file system]:命令验证文件创建是否正确;由于文件是纯文本文件,因此可以使用more命令在设备上显示内容。
# show flash:
# more flash:Showtech.txt
创建文件后,可使用选择的传输协议(FTP/TFTP/SCP)将其解压到外部存储并共享进行分析。
Crashinfo文件
crashinfo文件是文本文件,其中包括有助于确定崩溃原因的调试详细信息。内容因平台而异。通常,它在编码模式下具有崩溃前的日志记录缓冲区以及崩溃前处理器运行的功能。在Cisco IOS平台中,这是崩溃后文件系统中最常见的文件。在Cisco IOS XE平台中,此文件仅在IOSd进程发生崩溃时生成;如果任何其他进程发生故障,则设备不会创建crashinfo文件。
Crashinfo文件可以在基于平台的flash、bootflash、硬盘或crashinfo storage下找到。在冗余控制平面平台中,可以在主用和/或备用管理引擎中找到crashfile。
此文件的内容是有限的,因为它仅在意外重新启动之前拍摄DRAM内存和进程的内存区域。在某些情况下,可能需要其他文件/输出来确定重新启动的根本原因。
核心文件
在Cisco IOS XE平台中,当进程或服务因运行时错误而终止执行(并导致意外重新启动)时,会创建一个核心文件。此文件包含有关重新加载事件的上下文信息。
在Cisco IOS XE平台中,当意外重启由软件驱动时,默认情况下会生成该重启。核心文件可以在任何Linux进程(包括IOSd进程)下创建。
核心文件是压缩文件,包含触发崩溃的特定进程所使用的正在执行的所有内存的信息。此文件需要特殊的工具进行解码,因此,为了保持其一致性,需要提取文件而不做任何更改。解压缩文件或提取信息作为文本(例如,使用more命令)将不允许支持团队解码内容。
核心转储文件通常存储在core文件夹中,在bootflash或硬盘内部。
下一个示例显示了corefile如何显示在bootflash文件系统的core文件夹中:
------------------ show bootflash: all ------------------
9 10628763 Jul 14 2021 09:58:49 +00:00 /bootflash/core/Router_216_Router_RP_0_ucode_pkt_PPE0_3129_1626256707.core.gz
10 10626597 Jul 23 2021 13:35:26 +00:00 /bootflash/core/Router_216_Router_RP_0_ucode_pkt_PPE0_2671_1627047304.core.gz
注意:要使TAC成功分析核心文件,需要提取文件而不进行任何修改或更改。
要验证从设备解压此文件的方式,请导航到解压文件部分。
跟踪日志
tracelog是Cisco IOS XE中每个进程的内部日志。默认情况下,会创建tracelogs目录,并定期覆盖其内容。可以在bootflash或硬盘中找到此文件夹。
可以安全地删除该文件夹,但不建议这样做,因为在发生意外重新加载事件时它可以提供其他信息。
要提取文件夹的内容,最简单的方法是创建一个包含所有tracelogs文件的压缩文件。在平台上,您可以使用以下命令:
对于Cisco IOS XE路由器:
# request platform software trace slot rp active archive target bootflash:TAC_tracelogs
对于Cisco IOS XE交换机和无线控制器:
# request platform software trace archive target bootflash:TAC_tracelogs
Tracelog是需要其他工具进行解码的编码文件,因此需要在创建压缩文件时提取压缩文件。
要检查从设备解压此文件的方式,请导航至解压文件部分。
系统报告
系统报告是在发生意外重新加载时收集软件执行中可用大部分信息的压缩文件。系统报告包含tracelogs、crashinfo和core文件。此文件是在思科IOS XE交换机和无线控制器上发生意外重新加载时创建的。
此文件位于bootlfash或harddisk的主目录中。
它始终包含重新引导前生成的tracelog。在意外重新加载的情况下,它包含事件的崩溃文件和核心文件。
此文件是压缩文件,文件夹可以解压缩,但它需要额外的工具来解码信息。
要检查从设备解压此文件的方式,请导航到解压文件部分。
内核核心
内核核心由Linux内核创建,而不是由Cisco IOS XE进程创建。当设备由于内核故障而重新加载时,通常会创建完整的内核核心(压缩文件)和内核核心(纯文本)文件的摘要。
可以检查导致意外重启的进程,但始终建议向Cisco TAC提供文件,以便提供重新加载原因的完整分析。
内核核心文件位于bootflash或硬盘的主目录中。
如何提取文件
本节介绍将所需文件从Cisco IOS/Cisco IOS XE平台传输到外部存储客户端所需的基本配置。
预期可从设备访问服务器。如有必要,请确认没有防火墙或配置阻止从设备到服务器的流量。
本部分不推荐使用任何特定的服务器应用程序。
TFTP
要通过TFTP传输文件,需要设置到TFTP服务器应用程序的可达性。无需其他配置。
默认情况下,某些设备通过管理接口使ip tftp source interface配置处于活动状态。如果无法通过管理接口访问服务器,请运行命令以删除此配置:
(config)# no ip tftp source interface
完成到达服务器的配置后,为了传输文件,您可以运行以下命令:
#copy
:<file> tftp:
Address or name of remote host []? X.X.X.X
Destination filename [<file>]?
FTP
要通过FTP传输文件,需要设置对FTP服务器应用程序的可访问性。需要从设备和FTP服务器应用程序配置FTP用户名和密码。要在设备上设置凭证,请运行以下命令:
(config)#ip ftp username username
(config)#ip ftp password password
或者,您可以使用以下命令在设备上配置FTP源接口:
(config)# ip ftp source interface interface
完成到达服务器的配置后,为了传输文件,您可以运行以下命令:
#copy
:<file> ftp:
Address or name of remote host []? X.X.X.X
Destination filename [<file>]?
SCP
要通过SCP传输文件,需要设置到SCP服务器应用程序的可达性。必须在设备上配置本地用户名和密码(开始传输需要凭据)和SCP服务器应用。此外,还需要在设备上配置SSH。要确认配置了SSH服务,请运行以下命令:
#show running-config | section ssh
ip ssh version 2
ip ssh server algorithm encryption 3des-cbc aes128-ctr aes192-ctr aes256-ctr
ip ssh client algorithm encryption 3des-cbc aes128-ctr aes192-ctr aes256-ctr
transport input ssh
transport input ssh
要在设备上设置凭证,请运行以下命令:
(config)#username USER password PASSWORD
注意:如果TACACS或其他服务用于SSH用户身份验证,那么在SCP服务器也包含用户信息时,可以使用这些凭证。
完成配置后,为了传输文件,您可以运行以下命令:
#copy
:<file> scp:
Address or name of remote host []? X.X.X.X
Destination filename [<file>]?
USB
通过USB闪存传输文件不需要访问网络中的任何外部服务器,但需要实际接触设备。
所有具有Cisco IOS/Cisco IOS XE的物理设备都具有可用作外部存储的USB端口。
要确认已识别USB闪存驱动器,请运行show file systems 命令:
#show file systems
File Systems:
Size(b) Free(b) Type Flags Prefixes
- - opaque rw system:
- - opaque rw tmpsys:
* 11575476224 10111098880 disk rw bootflash: flash:
2006351872 1896345600 disk ro webui:
- - opaque rw null:
- - opaque ro tar:
- - network rw tftp:
33554432 33527716 nvram rw nvram:
- - opaque wo syslog:
- - network rw rcp:
- - network rw pram:
- - network rw http:
- - network rw ftp:
- - network rw scp:
- - network rw sftp
- - network rw https:
- - network ro cns:
2006351872 1896345600 disk rw usbflash0:
注意:Cisco IOS/Cisco IOS XE设备支持官方的Cisco USB闪存驱动器。对于任何第三方USB闪存,支持有限。
一旦设备在正确的插槽(usbflash0或usbflash1)中识别USB闪存,并且有足够的可用空间,请使用以下命令传输文件:
#copy
:<file> usbflashX:
Destination filename [<file>]?
故障排除
本节介绍在将文件传输到外部方法时(从Cisco IOS或Cisco IOS XE设备)可以发现和使用的一些常见错误和解决方法。
确认打开的端口
如果设备在确认可到达服务器后显示连接被拒绝错误,则验证设备端的端口是否可用(没有阻止流量的ACL条目)以及服务器端的端口是否也可用可能很有用(对于最后部分,可使用具有所需端口的telnet命令)。
根据使用的协议,运行以下命令:
TFTP
#telnet X.X.X.X 69
FTP
#telnet X.X.X.X 21
SCP
#telnet X.X.X.X 22
注意:以前的端口是每个协议的默认端口,可以更改这些端口。
如果命令不提供成功的打开端口,确认可能丢弃流量的任何错误配置(从服务器端或路径中的任何防火墙)非常有用。
USB格式
大多数Cisco IOS和Cisco IOS XE设备无法识别第三方USB。
Cisco IOS路由器和交换机无法识别大于4GB的USB。Cisco IOS XE平台可识别大小大于4GB的USB。
如果是第三方USB,则可以使用FAT32或FAT16格式进行测试。即使对于兼容的USB内存驱动器,也不能识别任何其他格式。
转接中断
对于跳数众多的服务器,文件传输可能会中断并需要重新开始传输。
在此场景中,在vty线路上使用此配置可能非常有用:
(config)#line vty 0 4
(config-line)#exec-timeout 0 0
先前的配置可确保传输会话不会被丢弃,即使控制数据包在路径中丢弃或数据包花费太长时间而无法确认。
传输完成后,建议从vty线路中删除此配置。
始终建议尽可能将文件服务器放在设备附近。
中间TFTP服务器。
思科设备可用作无法直接传输到本地文件服务器的临时TFTP服务器。
在设备上(使用需要提取的文件),您可以运行以下命令:
(config)#tftp-server
:<file>
从配置为客户端的设备中,您可以运行TFTP部分显示的命令。