简介
本文档介绍并概述了用于排除Catalyst 9800故障的所有Cisco IOS® XE特性和功能。
先决条件
要求
- 无线LAN控制器(WLC)的基本知识。
- 使用WLC所涉及的使用案例流的基本知识。
使用的组件
本文档涵盖9800-CL、9800-L、9800-40和9800-80控制器。它主要基于17.3 Cisco IOS® XE版本。
背景信息
在9800 WLC上运行的Cisco IOS® XE基本上由带有Cisco IOS®的Linux内核(binOS)和所有作为守护程序实施的无线进程组成。
所有进程守护程序都可以捆绑在通用术语“控制平面”(CP)下,并负责接入点的控制和调配(CAPWAP)、移动性、无线电资源管理(RRM)。以9800 WLC为目标或来自9800 WLC的欺诈管理、网络移动服务协议(NMSP)。
数据平面(DP)是指在9800 WLC上转发数据的组件。
在9800(9800-40、9800-80、9800-CL、9800-SW、9800-L)的所有迭代中,控制平面仍然相当常见。
但是,数据平面因9800-40和9800-80而异,它们使用与ASR1k类似的硬件量子流处理器(QFP)复合体,而9800-CL和9800-L使用思科数据包处理器(CPP)的软件实现。
9800-SW仅利用Catalyst 9k系列交换机上的Doppler芯片组进行数据转发。
9800 WLC内的数据包流
当数据包从物理端口进入9800 WLC时,如果确定它是控制流量,则将其转发到相应的控制平面进程。
对于AP加入,这是来自AP的所有capwap和dtls交换。在客户端加入时,这将是从客户端发出的所有流量,直到客户端进入RUN状态才会遵循PUNT路径。
当各种守护程序处理传入流量时,产生的源自9800 WLC的返回流量(capwap响应、dot11、dot1x、dcp响应)将返回到数据平面,从物理端口发出。
在处理AP加入、客户端加入、移动交换时,需要编程数据平面,以便其能够处理数据流量转发。
当多个组件在图像所示的编程路径上顺序编程时,会发生这种情况。
Cisco IOS® XE提供了一个通用工具集,从数据包进入9800 WLC的那一刻起,直至处理的流量离开机箱为止,一直跟踪数据包。
下一节介绍这些工具以及用于从命令行界面(CLI)调用这些工具的命令。
控制平面跟踪
本部分介绍可用于查看控制平面在从DP传送用于9800 WLC的数据包之后或从9800 WLC将响应数据包注入到DP以发出物理接口之前所执行的处理的命令和工具
系统日志
9800 WLC生成的日志是验证系统总体运行状况的第一种方法。
任何违反系统资源(如CPU、内存和缓冲区)的预定义阈值的事件都会报告到日志中。
此外,任何子系统生成的任何错误都会写入日志。要查看日志,请导航到故障排除>系统日志
或运行CLI命令:
# show logging
此输出显示常规日志以及一些无线特定日志。但是,与传统Cisco IOS®相反,通常没有无线调试进入此日志记录输出。
注意:如果WLC9800配置为将这些日志重定向到外部系统日志服务器,则还需要检查外部系统日志服务器上的日志。
永远在线跟踪
WLC9800上的每个控制平面进程都不断以Notice的日志级别记录到其自己的专用缓冲区。这称为永远在线跟踪。
这是一项独特的功能,允许您获取已发生故障时的情景数据,而无需重新生成故障条件。
例如,如果您熟悉AireOS,则对于任何客户端连接故障排除,您需要启用调试并重现客户端连接问题状态以确定根本原因。
通过永远在线跟踪,您可以查看已捕获的跟踪并识别其是否是常见的根本原因。 根据生成的日志量,我们可以回溯几个小时到几天。
现在,虽然跟踪是按单个进程记录的,但也可以针对特定的相关情景(如客户端mac或AP mac或AP ip地址)整体查看它们。要执行此操作,请运行命令
# show logging profile wireless filter mac to-file bootflash:
默认情况下,此命令仅返回10分钟来生成和解码日志。您可以选择与一起追溯到更久以前:
# show logging profile wireless start last
[minutes|hours|days] filter mac to-file bootflash:
要查看每进程日志,请运行命令
# show logging process to-file bootflash:
注:这些CLI上有多个过滤选项,包括模块、日志记录级别、开始时间戳等。要查看和探索这些选项,请运行命令
# show logging profile wireless ?
# show logging process ?
故障时跟踪
要快速了解常见故障情况,可使用故障跟踪功能。这样可以分析系统在给定时间点的所有跟踪以匹配预定义的故障条件,并显示摘要视图和统计信息。
要获取摘要视图,请运行命令
# show logging profile wireless trace-on-failure summary
要查看预定义的故障条件以及对应这些条件的统计信息,请运行命令
# show wireless stats trace-on-failure
一旦知道故障,要收集特定于故障情景的跟踪信息,请运行命令
# show logging profile wireless filter uuid to-file bootflash:tof-FILENAME.txt
这些可在终端会话中查看,也可使用命令导出以进行离线分析
# more bootflash:tof-FILENAME.txt
OR
# copy bootflash:tof-FILENAME.txt { tftp: | ftp: | scp: | https: } tof-FILENAME.txt
条件调试和RadioActive跟踪
条件调试允许为相关条件的特定功能启用调试级别日志记录。
RadioActive跟踪通过添加功能来在进程、线程之间有条件地打印所关注条件的调试信息,进一步推动了它的发展。
这意味着,底层架构完全抽象化。
注意:在16.12上,实施辐射跟踪仅用于排除AP与AP无线和以太网MAC地址的加入故障、客户端与客户端MAC地址的加入故障,以及移动对等IP和CMX连接与CMX ip地址相关的移动性问题。
注意:MAC地址与IP地址作为条件提供不同的输出,因为不同的进程了解同一网络实体(AP、客户端或移动对等体)的不同标识符。
以客户端连接为例,进行故障排除,对客户端MAC运行条件调试,以获得控制平面的端到端视图。
通过Web UI进行放射性跟踪
转到故障排除页面菜单,然后选择放射跟踪
单击Add并输入要排除故障的客户端或AP MAC地址。 从16.12开始,只能通过GUI添加mac地址。您可以通过CLI添加IP地址。
您可以添加多个要跟踪的mac地址。如果已做好开始放射性跟踪的准备,请单击开始。
启动后,调试日志记录会写入磁盘,记录与跟踪的mac地址相关的任何控制平面处理。
重现要排除的问题时,单击Stop。
对于已调试的每个mac地址,您可以通过点击Generate,生成一个日志文件,整理与该mac地址相关的所有日志。
选择希望经过整理的日志文件回溯多长时间,然后点击应用到设备。
现在,您可以通过点击文件名旁边的小图标来下载文件。此文件存在于控制器的Bootflash驱动器中,也可以通过CLI从包装盒中复制。
通过CLI进行放射性跟踪
要启用条件调试,请运行命令
# debug wireless {mac | ip} {aaaa.bbbb.cccc | x.x.x.x } {monitor-time} {N seconds}
要查看当前启用的条件,请运行命令
# show debugging
这些调试不会在终端会话上打印任何输出,但会将调试输出文件存储到闪存中,供以后检索和分析。文件保存时采用命名约定ra_trace_*
例如,对于mac地址aaaa.bbbb.cccc,生成的文件名是ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log
一个优点是相同的命令可用于排除AP加入问题(输入AP无线电MAC和以太网MAC)、客户端连接问题(输入客户端MAC)、移动隧道问题(输入对等IP)、客户端漫游问题(输入客户端MAC)。
换句话说,您不必记住多个命令,如debug capwap、debug client、debug mobility等。
注意:debug wireless还允许指向FTP服务器,并运行更详细的日志记录(带有关键字internal)。我们目前不推荐这些解决方案,因为有些问题正在解决。
要调试终端会话上的输出文件,请运行命令
# more bootflash:ra_trace_MAC_*.log
要将调试输出重定向到外部服务器以进行脱机分析,请运行命令
# copy bootflash:ra_trace_MAC_*.log ftp://username:password@FTPSERVERIP/path/RATRACE_FILENAME.txt
对于相同的调试日志级别,有一个更详细的视图。要查看此详细视图,请运行命令
# show logging profile wireless internal filter mac to-file
要禁用特定情景的调试,或在配置的或默认监控时间启用之前禁用调试,请运行命令。
# no debug wireless mac <aaaa.bbbb.cccc>
注意:条件调试启用调试级别日志记录,这反过来会增加生成的日志量。保持此运行可减少从查看日志的时间延迟。因此,建议在故障排除会话结束时始终禁用调试。
要禁用所有调试,请运行以下命令
# clear platform condition all
# undebug all
每进程非条件调试
对于使用案例和流程(未针对放射性跟踪实施),您可以获得调试级别跟踪。要在特定进程上设置调试级别,请使用命令
# set platform software trace <PROCESS_NAME> wireless chassis active R0 { module_name | all-modules }
要验证各种模块的跟踪级别,请运行命令
# show platform software trace level <PROCESS_NAME> chassis active R0
要查看收集的跟踪,请运行命令
# show logging process to-file
数据平面数据包跟踪
当数据包首次进入9800 WLC时,会在数据平面进行一些处理,以确定流量是控制平面还是数据平面。
Packet-Trace(数据包跟踪)功能提供在数据平面执行的此Cisco IOS® XE处理的详细视图,以及决定是传送、转发、丢弃还是使用数据包。
WLC 9800上的此功能与ASR!k上的实现完全相同。
9800 WLC上的Packet Tracer提供与ASR1K相同的三个检测级别。
- 统计信息 — 提供进出网络处理器的数据包计数
- 摘要-
- 收集此信息是为了满足特定条件且数量有限的数据包。
- 摘要输出指示入口和出口接口、数据平面做出的查找决策,并跟踪转发、丢弃和插入数据包(如果有)。
- 此输出提供数据平面处理的简明视图
- 路径数据 — 提供DP数据包处理的最详细视图。它针对有限数量的数据包而收集,包括条件调试ID,可用于将DP数据包与控制平面调试、时间戳以及特定于功能的路径跟踪数据相关联。此详细视图具有两个可选功能
- 通过数据包复制,您可以在数据包的不同层(第2层、第3层和第4层)复制入口和出口数据包
- 功能调用阵列(FIA)是由数据平面在数据包上执行的功能的顺序列表。这些功能源自WLC 9800的默认和用户启用的配置
有关功能和子选项的详细说明,请参阅Cisco IOS XE数据路径数据包跟踪功能
对于AP加入、客户端连接等无线工作流程,双向跟踪上行链路
注意:数据平面Packet Tracer仅解析外部CAPWAP报头。因此,无线客户端mac等条件不会产生有用的输出。
步骤1:定义关注条件。
# debug platform condition { interface | mac | ingress | egress | both | ipv4 | ipv6 | mpls | match }
警告:命令debug platform condition feature和debug platform condition mac aaaa.bbbb.cccc均用于控制平面数据包跟踪,并且不返回任何数据平面数据包跟踪。
第二步:要查看当前启用的条件,请运行命令
# show platform conditions
第三步:为有限数量的数据包启用Packet Tracer。此数据包编号定义为16 - 8192范围内的2的幂。默认情况下,系统会捕获摘要数据和功能数据。或者,如果使用summary-only子选项,则可选择仅获取摘要视图。您还有可用于获取fia trace、定义以字节为单位的数据包大小、trace punt、inject或drop数据包的子选项,等等。
# debug platform packet-tracer packet <packet-number> {fia-trace}
步骤4.(可选)您可以在跟踪数据包时复制并转储这些数据包
# debug platform packet-trace copy packet both size 2048 { l2 | l3 | l4 }
第五步:启用条件调试。
# debug platform condition start
第六步:要查看数据包跟踪是否正在收集任何输出,请验证统计信息
# show platform packet-trace statistics
步骤 7.要查看packet-trace的输出,请运行命令
# show platform packet-tracer summary
步骤8.(可选)您可以导出数据包转储以供思科TAC进行离线分析
# show platform packet-trace packet all | redirect { bootflash: | tftp: | ftp: } pactrac.txt
嵌入式数据包捕获
嵌入式数据包捕获(EPC)是一种数据包捕获工具,可用于查看发往、来自和通过Catalyst 9800 WLC的数据包。可以导出这些捕获以便使用Wireshark进行离线分析。
有关此功能的更多详细信息,请参阅EPC配置指南
与AireOS相比,9800 WLC无需依赖上行链路交换机上的数据包捕获和流量镜像功能,而是允许在设备上进行pcap捕获。
在9800上,可以从命令行界面(CLI)和图形用户界面(GUI)设置此捕获。
要通过GUI进行配置,请导航到故障排除>数据包捕获> +添加
步骤1:定义数据包捕获的名称。最多允许8个字符。
第二步:定义过滤器(如果有)
第三步:如果要查看被传送至系统CPU并被重新注入数据平面的流量,请选中监控控制流量的复选框
第四步:定义缓冲区大小。最多允许100 MB
第五步:根据需要,按允许范围1 - 1000000秒的持续时间或允许范围1 - 100000个数据包的数据包数量定义限制
第六步:从左列中的接口列表中选择接口,然后选择箭头将其移动到右列
步骤 7.保存并应用到设备
步骤 8要开始捕获,请选择开始
步骤 9您可以让捕获运行到定义的限制。要手动停止捕获,请选择停止。
步骤 10停止后,可使用Export按钮进行点击,其中包括通过https或TFTP服务器、FTP服务器、本地系统硬盘或闪存在本地桌面上下载捕获文件(.pcap)的选项。
注意:CLI提供了更精细的选项,例如Limit by。GUI足以捕获常见使用案例的数据包。
要通过CLI进行配置,请执行以下操作:
创建监控器捕获:
monitor capture uplink interface <uplink_of_the_9800> both
关联过滤器。可以内联指定过滤器,也可以引用ACL或类映射。
在本示例中,ACL用于匹配9800的两个ip地址与另一个WLC 5520之间的流量。移动性故障排除的典型场景:
conf t
ip access-list extended mobilitywlcs
permit ip host <5520_ip_address> host <9800_ip_address>
permit ip host <9800_ip_address> host <5520_ip_address>
end
monitor capture uplink access-list mobilitywlcs
如果希望捕获在循环缓冲区中运行,则会留出一些时间来发现问题,然后停止捕获并保存它。
例如,如果将其设置为50MB缓冲区。在9800上最多需要50 MB的磁盘和非常大的磁盘来捕获几分钟数据,希望您能发现问题的发生。
monitor capture uplink buffer circular size 50
开始捕获。您可以从GUI或CLI访问它:
monitor capture uplink start
捕获现在处于活动状态。
允许它收集必要的数据。
停止捕获。您可以通过GUI或CLI执行此操作:
monitor capture uplink stop
可以从GUI >故障排除>数据包捕获>导出检索捕获。
或从CLI上传到服务器。通过ftp的示例:
monitor capture uplink export ftp://x.x.x.x/MobilityCAP.pcap
收集完必要的数据后,请删除捕获:
no monitor capture uplink
警报LED和关键平台警报
所有9800设备(9800-L、9800-40和9800-80)的前面板上都有一个ALM LED。如果LED变为红色,则意味着平台上有一个严重警报。
您可以使用show facility-alarm status命令验证导致LED变为红色的警报
WLC#show facility-alarm status
System Totals Critical: 2 Major: 0 Minor: 0
Source Time Severity Description [Index]
------ ------ -------- -------------------
TenGigabitEthernet0/1/0 Jul 26 2019 15:14:04 CRITICAL Physical Port Link Down [1]
TenGigabitEthernet0/1/1 Jul 26 2019 15:14:04 CRITICAL Physical Port Link Down [1]