1. 课程导入与资源规划全景
在数据中心、园区核心和运营商边缘设备中,Broadcom 交换芯片(如 Trident、Tomahawk、Jericho 系列)承担着高密度端口转发与精细化流量控制的双重职责。QoS(服务质量)与 ACL(访问控制列表)是两类最常被同时使用的硬件能力:前者决定“谁先走、走多快、丢不丢”,后者决定“谁能走、走哪去、是否计数”。二者共享同一套芯片资源池,规划不当会直接导致业务策略无法下发、表项溢出或转发性能下降。本课程的目标,是让读者建立从业务需求到芯片资源映射的完整方法论,而不是停留在“会敲命令”的层面。
核心术语与它们在芯片中的位置
理解资源规划,首先要明确几个关键对象在流水线中的角色。TC(Traffic Class,流量类别)是报文进入芯片后被赋予的优先级标签,通常由入端口信任模式(trust L2/L3/DSCP)或 ACL 重标记决定,取值范围一般为 0~7。队列(Queue)是 TC 在出端口上的物理承载,每个端口通常有 8 个单播队列,部分芯片还支持组播队列和 CPU 队列。调度器(Scheduler)负责在队列之间分配带宽,常见形态包括 SP(严格优先级)、WRR(加权轮询)和 DWRR(差额加权轮询),并可组合成层次化调度(H-QoS)。TCAM(Ternary Content Addressable Memory)是 ACL 的匹配引擎,支持掩码匹配,容量以表项数(entry)计量,是芯片中最稀缺的资源之一。策略器(Policer)对流量做令牌桶限速,分为单桶单速率和双桶双速率,作用于入向或出向。计数器(Counter)用于统计匹配次数和字节数,ACL 和策略器都可绑定计数器,但计数器数量同样有限。
这些对象并非孤立存在,而是通过芯片流水线串联:报文入端口 → 解析与信任 → ACL/TCAM 匹配 → 重标记 TC → 入向策略器 → 队列缓存 → 调度器 → 出端口。资源规划的本质,就是在这条链路上为每一类业务预留足够的表项、队列和带宽,并保证它们之间不互相挤占。
从业务需求到芯片资源的映射框架
实际项目中,业务方给出的往往是“视频会议优先于文件下载”“访客网络限速 100M”“禁止访问某网段”这类自然语言需求。规划的第一步是将其翻译为芯片可执行的参数:优先级需求对应 TC 和队列映射,限速需求对应策略器速率与突发值,过滤需求对应 ACL 表项和匹配字段。第二步是评估资源总量:例如某 Trident 芯片单管 ACL 可用 TCAM 表项约 2000 条,若业务需要 1500 条过滤规则加 800 条重标记规则,就必须考虑分片(slice)分配或规则合并。第三步是验证与迭代:通过计数器观察命中情况,通过队列丢包统计判断带宽是否足够,再回头调整映射关系。
下面这张图展示了从业务需求到芯片资源的整体映射关系,以及各资源对象在流水线中的位置。它不替代正文,而是帮助读者在脑中建立一张“资源地图”。
资源规划的三个关键判断
第一,TCAM 是硬约束。ACL 规则不是“想加就加”,每条规则占用一个 TCAM 表项,且不同匹配字段组合可能消耗不同数量的物理表项。规划时必须先统计规则总数,再对照芯片规格书中的 TCAM 容量,预留 20% 余量应对后续变更。第二,队列和调度器决定转发行为。如果业务需要 8 个以上优先级,就要考虑使用组播队列或 CPU 队列,或者通过策略器在入向做更细粒度的区分。第三,计数器是“可观测性”的基础。没有计数器,限速是否生效、ACL 是否命中都无从判断。规划时应为每条关键 ACL 和每个策略器绑定计数器,并记录其索引,便于后续通过 CLI 或 SDK 读取。
一个简化的教学示例
假设某接入交换机有 48 个千兆端口,业务需求为:视频会议(VLAN 10)优先转发,访客网络(VLAN 20)限速 100M,禁止访问 10.0.0.0/8 网段。规划过程如下:视频会议映射到 TC 5,使用队列 5,调度器采用 SP 保证优先;访客网络映射到 TC 1,使用队列 1,入向策略器设置 CIR=100M、CBS=12KB;禁止访问规则写入 ACL,匹配目的 IP 10.0.0.0/8,动作为丢弃,并绑定计数器。TCAM 消耗 1 条,策略器消耗 1 个实例,计数器消耗 1 个。若芯片 TCAM 容量为 2000 条,当前已用 300 条,则剩余 1699 条,余量充足。这个示例中的参数均为教学假设,实际部署需根据芯片型号和 SDK 版本调整。