3. 流量分类与标记
QoS要保障业务,第一步不是排队,而是“认出谁是谁”。如果设备无法区分语音、视频、ERP和普通下载流量,后续的队列调度、拥塞避免和限速都无从下手。流量分类(Classification)解决“识别”问题,流量标记(Marking)解决“把识别结果写进报文”的问题。分类是看,标记是写;看准了再写,后续每一跳才能按同一套优先级快速处理。
在企业网中,分类与标记通常分两层完成:边缘接入层做精细识别与首次标记,核心汇聚层信任已有标记并直接按标记调度。边缘设备离终端最近,能看到源IP、端口、应用特征,具备精细分类条件;核心设备流量大,不宜逐包深度识别,应信任边缘写入的DSCP/CoS。这就是“边缘复杂、核心简单”的QoS设计原则。
四种识别与标记手段的定位
ACL分类基于五元组(源/目的IP、协议、源/目的端口)匹配,配置直观、性能高,适合识别服务器网段、固定端口业务。例如用扩展ACL匹配“10.10.20.0/24访问10.10.30.10的TCP 1521端口”,即可识别Oracle数据库流量。但ACL无法识别动态端口和加密流量,对P2P、随机端口应用无能为力。
NBAR分类(Network-Based Application Recognition)通过深度包检测识别应用层特征,能识别HTTP、HTTPS、DNS、VoIP信令、甚至具体应用。NBAR2支持超过1000种应用签名,还可通过自定义协议属性匹配URL、Host等字段。它适合识别动态端口和加密流量,但消耗CPU资源,应部署在边缘且只对需要精细识别的流量启用。
DSCP标记位于IP报文头的ToS字段(现称DS字段),占6比特,取值0~63,是三层标记,可跨路由跳端到端保留。常用取值:EF(46)用于语音承载,AF41(34)用于交互视频,AF31(26)用于关键业务,AF21(18)用于事务数据,CS1(8)用于批量下载,默认BE(0)。DSCP是端到端QoS的核心标记。
CoS标记位于二层802.1Q标签的PCP字段,占3比特,取值0~7,仅在同一VLAN/二层域内有效。CoS适合接入交换机到汇聚交换机之间使用,跨三层后需映射为DSCP。典型映射:CoS 5→DSCP EF,CoS 4→AF41,CoS 3→AF31,CoS 0→BE。
分类与标记的配置实现
以Cisco IOS为例,边缘路由器上完成“语音EF、视频AF41、ERP AF31、Web AF21、P2P CS1、其余BE”的分类标记。核心思路是用class-map定义匹配条件,用policy-map绑定标记动作,再应用到接口。
! 1. 定义ACL识别ERP数据库流量
ip access-list extended ACL_ERP
permit tcp 10.10.20.0 0.0.0.255 10.10.30.10 0.0.0.0 eq 1521
! 2. 定义class-map匹配各类流量
class-map match-any CM_VOICE
match protocol rtp audio
class-map match-any CM_VIDEO
match protocol h323
class-map match-any CM_ERP
match access-group name ACL_ERP
class-map match-any CM_WEB
match protocol http
match protocol secure-http
class-map match-any CM_P2P
match protocol bittorrent
! 3. 定义policy-map执行标记
policy-map PM_EDGE_MARK
class CM_VOICE
set dscp ef
class CM_VIDEO
set dscp af41
class CM_ERP
set dscp af31
class CM_WEB
set dscp af21
class CM_P2P
set dscp cs1
class class-default
set dscp default
! 4. 应用到入接口
interface GigabitEthernet0/0
service-policy input PM_EDGE_MARK
配置完成后,用show policy-map interface GigabitEthernet0/0 input查看各class的匹配包数和标记结果。若CM_VOICE匹配数为0,说明NBAR未识别到RTP,需检查ip nbar protocol-discovery是否启用;若CM_ERP匹配数异常高,需检查ACL是否过宽。核心层设备则配置mls qos trust dscp或qos trust dscp,直接信任边缘标记。
标记信任边界的确定
标记信任边界(Trust Boundary)是分类标记设计的关键决策点。信任边界应设在“可控设备接入的第一台交换机或路由器”上。例如IP电话直接接入交换机,交换机可信任电话的CoS/DSCP;但PC接入的端口不应信任,因为用户可自行修改DSCP值,应将其重置为BE或按ACL重新标记。典型做法:电话端口mls qos trust cos,PC端口mls qos trust dscp改为no mls qos trust并配合策略重置。
常见问题与判断依据
实际部署中,分类标记最常见的三个问题是:标记被覆盖、NBAR识别不准、CoS到DSCP映射缺失。标记被覆盖通常发生在核心设备未配置trust,设备将DSCP重置为0;判断方法是分别在边缘出接口和核心入接口抓包对比DSCP值。NBAR识别不准多因应用使用非标准端口或加密,需更新NBAR签名库或改用ACL+端口匹配。CoS到DSCP映射缺失发生在二层交换机上联口未配置mls qos map cos-dscp,导致CoS 5进入三层后变为DSCP 0,语音质量下降。
验证分类标记是否生效,可按以下顺序检查:第一步,在边缘入接口用show policy-map interface确认各class匹配计数增长;第二步,在边缘出接口抓包确认DSCP字段已写入预期值;第三步,在核心入接口抓包确认DSCP未被重置;第四步,在核心出接口用show queueing interface确认各队列有对应流量入队。四步都通过,说明分类标记链路完整。
| 业务类型 | 识别手段 | DSCP标记 | CoS映射 | 队列策略 |
|---|---|---|---|---|
| 语音承载 | NBAR: RTP | EF (46) | CoS 5 | PQ/LLQ 优先 |
| 交互视频 | NBAR: H.323 | AF41 (34) | CoS 4 | CBWFQ 保证带宽 |
| ERP数据库 | ACL: TCP 1521 | AF31 (26) | CoS 3 | CBWFQ 保证带宽 |
| Web/邮件 | NBAR: HTTP/SMTP | AF21 (18) | CoS 2 | CBWFQ 常规 |
| P2P下载 | NBAR: BitTorrent | CS1 (8) | CoS 1 | 限速/低优先级 |
| 默认流量 | class-default | BE (0) | CoS 0 | 尽力而为 |
这张表可直接作为企业QoS分类标记的基线模板。实际项目中,应根据业务重要性和带宽预算调整DSCP取值和队列带宽比例,但“语音EF、视频AF41、关键业务AF31、普通数据AF21、下载CS1、默认BE”这一映射关系是业界通用基线,建议保持一致以便跨设备、跨厂商互通。