2. Catalyst硬件架构与故障关联
在 Catalyst 交换机上排查复杂故障时,如果只停留在接口状态、MAC 表和路由表层面,往往会漏掉真正的根因。很多“时通时断”“大流量丢包”“CPU 高但流量不大”的问题,根源在硬件转发路径、控制平面与数据平面的分工,以及背板和缓存的工作机制上。理解这些硬件结构,才能把现象和硬件位置对应起来,快速缩小排查范围。
一、ASIC 转发路径:数据平面真正干活的地方
Catalyst 交换机的转发决策不是由 CPU 完成的,而是由交换 ASIC(专用集成电路)在硬件中完成。以典型的盒式 Catalyst 9000 系列为例,数据包进入某个端口后,大致经历以下硬件路径:
- PHY/MAC 层:完成电信号或光信号的收发、编码解码、链路协商。
- 入向 ASIC 端口逻辑:解析以太网帧头,提取 VLAN、目的 MAC、源 MAC 等字段。
- 查表与转发决策:ASIC 内部使用 TCAM 完成 ACL、QoS 分类匹配,使用哈希表完成 MAC 表、路由表(FIB)查找。
- 缓存与队列:根据 QoS 策略把帧放入对应出向队列,等待调度。
- 出向 ASIC 与端口:完成重写(如 VLAN tag 操作)、TTL 递减、校验和更新,再从物理端口发出。
关键点是:这条路径完全由硬件流水线完成,CPU 不参与逐包转发。因此当出现“转发异常但 CPU 不高”时,问题通常落在 ASIC 表项、TCAM 资源、缓存或端口硬件上,而不是控制平面。反过来,如果 CPU 占用异常升高,则要怀疑是否有大量报文被“上送 CPU”(punt),例如 ARP 泛洪、TTL 超时、ACL 命中 log、控制协议报文过多等。
二、控制平面与数据平面分离
Catalyst 的架构可以理解为两个平面:
- 控制平面(Control Plane):由 CPU 和运行 IOS-XE 的软件栈组成,负责运行 STP、OSPF、EIGRP、BGP、HSRP、ARP、DHCP Snooping 等协议,生成 MAC 表、路由表、ACL 等“软件表项”。
- 数据平面(Data Plane):由 ASIC 和硬件表项组成,负责按已下发的表项高速转发报文。
两者之间通过内部通道同步:控制平面计算出结果后,把表项下发到 ASIC;ASIC 在转发过程中遇到“自己处理不了”的报文(如目的 MAC 未知、需要协议处理、TTL 到期),就通过 punt path 上送 CPU。CPU 处理后再决定是否下发新表项或直接回应。
这种分离带来一个典型故障模式:控制平面正常但数据平面异常。例如路由表里有正确条目,但 ASIC 的 FIB 没有同步成功,表现为“路由存在但 ping 不通”。排查时要同时看软件表和硬件表,常用命令包括:
show platform software fed switch active ip route
show platform software fed switch active mac address
show platform software fed switch active acl
show platform hardware fed switch active fwd-asic resource tcam utilization
如果软件表有而硬件表缺失,说明下发通道或 ASIC 资源出现问题,需要进一步查看 FED(Forwarding Engine Driver)日志和 ASIC 资源占用。
三、背板与缓存机制
在模块化 Catalyst(如 9400、9600 系列)中,业务板卡通过背板与 Supervisor 引擎通信。背板提供的是内部高速交换通道,其带宽是有限的。如果某块板卡的流量超过背板通道能力,就会出现拥塞丢包,而端口本身可能显示 up、无错包。
缓存机制则决定了突发流量能否被吸收。Catalyst 的 ASIC 通常采用共享缓存 + 每端口/每队列阈值的结构:
- 共享缓存池:所有端口共享的总缓存,用于吸收突发。
- 入向/出向队列:每个端口有多个队列,配合 QoS 调度。
- 阈值与丢弃:当某队列超过阈值,或共享池被占满,ASIC 会丢弃报文,通常表现为输出丢弃(output drops)或 WRED 丢弃。
因此,看到接口 output drops 持续增长时,不要只怀疑线缆或光模块,要结合 show interfaces、show queueing interface、show platform hardware fed switch active qos queue stats interface 判断是微突发、队列阈值过低,还是背板/上行链路拥塞。
四、常见硬件告警与故障定位方法
Catalyst 的硬件告警通常通过以下几种方式暴露:
- Syslog 与 %PLATFORM 消息:如 ASIC 错误、TCAM 满、电源/风扇异常、模块离线。
- show environment:温度、电压、风扇、电源状态。
- show platform:各板卡、ASIC、端口 ASIC 的健康状态。
- show platform software fed switch active ...:FED 层表项、资源、计数器。
- show interfaces counters errors:CRC、input errors、output drops 等。
定位时建议按“先分层、再定位、后验证”的思路:先判断是控制平面问题还是数据平面问题;再根据告警类型定位到具体 ASIC、板卡、端口或资源;最后通过替换、隔离、计数器对比来验证。例如 TCAM 满会导致新 ACL 无法下发,表现为部分策略不生效,此时应检查 TCAM 利用率并优化 ACL 条目。
把硬件架构和故障现象对应起来,是 Catalyst 复杂网络诊断的基本功。ASIC 转发路径决定了数据平面能做什么、不能做什么;控制平面与数据平面的分离决定了问题该往哪个方向查;背板和缓存决定了拥塞类故障的边界;而告警和计数器则是把硬件状态翻译成可判断依据的入口。掌握这四层关系,后续的排障和优化才有稳定的落脚点。