3. 流量分类与标记实战
在上一节中我们已经明确:QoS治理的第一步不是排队,而是“把流量认出来”。如果分类和标记做错了,后面的调度、整形、拥塞控制都会建立在错误的前提上。本节聚焦Spectrum以太网交换机上的报文分类与标记方法,重点讲清ACL、DSCP、PCP、MPLS EXP四类分类依据的适用位置、字段含义,以及它们在Spectrum上的配置任务如何落地。
一、先理解分类与标记的分工
分类(Classification)是“判断一个报文属于哪个业务流”,标记(Marking)是“把判断结果写入报文的某个字段”,让后续节点无需重复深度解析即可直接信任该字段。Spectrum支持基于ACL的灵活分类,也支持对DSCP、PCP、MPLS EXP等字段的信任与重写。实际部署中,通常遵循“边缘分类标记、核心信任标记”的原则:接入侧交换机负责识别并写入DSCP或PCP,汇聚和核心侧交换机则信任这些标记,直接按标记查表转发。
需要特别注意的是,不同字段的作用域不同:DSCP位于IP头部,端到端可见;PCP位于VLAN Tag,仅在同一二层广播域内有效;MPLS EXP位于MPLS标签中,只在MPLS域内传递。因此,选择哪种标记方式,取决于流量经过的网络层次和需要保持QoS语义的范围。
二、ACL分类:Spectrum上最灵活的分类手段
Spectrum的ACL不是传统意义上只做 permit/deny 的过滤表,而是可以绑定到接口或VLAN上,对匹配的报文执行 set 动作。一个典型的ACL规则包含匹配条件和动作两部分。匹配条件可以组合二层到四层字段,动作则可以是 set dscp、set cos、set mpls-exp、copy 或 police 等。
下面是一个教学示例,假设我们要把来自 10.10.20.0/24 网段、访问 TCP 443 端口的流量标记为 AF31(DSCP 26),把 VoIP 信令(SIP,UDP 5060)标记为 CS3(DSCP 24)。在Spectrum的CLI中,配置思路如下:
# 创建ACL并定义分类规则
switch(config)# acl ipv4 QOS_CLASSIFY
switch(config-acl-ipv4)# 10 permit tcp 10.10.20.0/24 any eq 443 set dscp af31
switch(config-acl-ipv4)# 20 permit udp any any eq 5060 set dscp cs3
switch(config-acl-ipv4)# 30 permit ip any any
# 将ACL绑定到接口入方向
switch(config)# interface ethernet 1/1
switch(config-if)# acl ipv4 QOS_CLASSIFY in
这里的关键点是:ACL的匹配顺序是从上到下,一旦命中就执行动作并停止继续匹配,因此规则顺序直接影响分类结果。第30条 permit ip any any 是兜底规则,保证未匹配流量不被丢弃,同时保持默认标记。实际部署中,建议把最精确的规则放在前面,宽泛规则放在后面。
三、DSCP信任与重写
如果接入交换机已经完成了DSCP标记,汇聚和核心Spectrum交换机就不需要重复分类,只需配置 trust dscp,让设备直接读取IP头中的DSCP值并映射到内部流量类别(TC)。Spectrum支持将DSCP值映射到8个TC队列,映射关系可以通过 qos map dscp-to-tc 命令自定义。
# 信任DSCP并自定义映射
switch(config)# qos map dscp-to-tc MY_MAP
switch(config-dscp-tc)# 46 to 7
switch(config-dscp-tc)# 26 to 4
switch(config-dscp-tc)# 24 to 3
switch(config-dscp-tc)# 0 to 0
switch(config)# interface ethernet 1/2
switch(config-if)# qos trust dscp
switch(config-if)# qos map dscp-to-tc MY_MAP
需要强调的是,trust dscp 意味着设备完全信任入口报文的DSCP值。如果边缘设备没有正确标记,或者存在恶意用户伪造DSCP,核心设备就会把低优先级流量错误地送入高优先级队列。因此,trust 通常只配置在可信的上游接口上,面向用户侧的接口应先通过ACL重写DSCP,再信任。
四、PCP与MPLS EXP的处理要点
PCP位于VLAN Tag的3个bit中,取值0~7。Spectrum在二层转发时可以直接信任PCP,也可以根据ACL匹配结果重写PCP。对于纯二层园区网络,PCP是最轻量的标记方式;但一旦报文经过三层路由,VLAN Tag通常会被剥离,PCP语义随之丢失,此时必须依赖DSCP。
MPLS EXP的处理略有不同。在MPLS域入口,Spectrum可以根据IP DSCP映射生成EXP值;在MPLS域内部,设备信任EXP并据此调度;在MPLS域出口,EXP需要重新映射回DSCP,供后续IP域使用。这个“DSCP→EXP→DSCP”的映射链是MPLS QoS部署中最容易出错的环节,建议在规划阶段就固定映射表,并在两端设备上保持一致。
五、配置任务检查清单
在Spectrum上完成分类与标记配置后,建议按以下清单逐项核对,避免出现“配了但没生效”的情况:
- ACL规则是否按精确到宽泛的顺序排列,兜底规则是否存在;
- ACL是否已正确绑定到接口的入方向(in),而非出方向;
- trust dscp 是否只配置在可信接口上,用户侧接口是否已做重写;
- DSCP-to-TC映射表是否覆盖了所有实际使用的DSCP值;
- MPLS场景下,DSCP与EXP的双向映射是否在两端一致;
- PCP标记是否只在二层域内使用,跨三层时是否已切换为DSCP。
完成上述配置后,可以通过 show qos map、show acl 以及接口计数器观察匹配情况。例如,在接口上发送已知DSCP的测试流,查看对应TC队列的计数是否增长,即可验证分类和映射是否按预期工作。如果计数不增长,优先检查ACL绑定方向、规则顺序和trust配置是否冲突。
分类与标记是QoS治理的入口环节,它决定了后续所有队列调度和拥塞控制的作用对象。把ACL、DSCP、PCP、MPLS EXP四类手段用对位置、用对顺序,才能让Spectrum的QoS能力真正服务于业务优先级,而不是停留在配置表面。