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 硬件转发路径与故障关联 控制平面 (CPU / IOS-XE) STP / OSPF / BGP / ARP 生成 MAC / 路由 / ACL 表 处理上送 CPU 的报文 数据平面 (ASIC 硬件) TCAM / MAC 表 / FIB 查表 QoS 分类 / 队列调度 重写 / 转发 / 丢弃 表项下发 (FED) Punt 上送 CPU ASIC 硬件转发流水线 PHY / MAC 信号收发 入向解析 VLAN / MAC 查表决策 TCAM / FIB 缓存队列 共享池 / 阈值 出向重写 TTL / 校验和 端口 背板与缓存机制 • 背板内部高速通道,带宽有限 • 共享缓存池 + 每队列阈值 • 超阈值 → 丢弃 / WRED 常见硬件告警与定位 • %PLATFORM / TCAM 满 / ASIC 错误 • show environment / show platform • FED 表项对比 + 计数器验证
排查提示:当遇到“路由/ MAC 表正常但转发不通”时,优先对比软件表与 FED 硬件表;当遇到“端口无错包但丢包”时,优先查看队列统计与背板/上行带宽;当遇到“CPU 高”时,优先确认是否有大量报文被 punt 上送。

把硬件架构和故障现象对应起来,是 Catalyst 复杂网络诊断的基本功。ASIC 转发路径决定了数据平面能做什么、不能做什么;控制平面与数据平面的分离决定了问题该往哪个方向查;背板和缓存决定了拥塞类故障的边界;而告警和计数器则是把硬件状态翻译成可判断依据的入口。掌握这四层关系,后续的排障和优化才有稳定的落脚点。