本文档介绍了如何在 Cisco 路由器上的服务质量 (QoS) 配置中设置差分服务代码点 (DSCP) 值.
您必须熟悉IP报头和Cisco IOS® CLI中的字段。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
差分服务(DiffServ)是网络节点根据差分服务(DS)字段应用差分每跳处理的架构。在RFC 2474和RFC 2475中定义,DiffServ标准取代原始规范,以定义RFC 791中描述的数据包优先级。RFC 2474将IPv4服务类型(ToS)二进制八位数重新定义为DS字段,并将其最重要的六个位分配给差分服务代码点(DSCP)。
DiffServ架构定义DiffServ(DS)字段,该字段取代IPv4中的ToS字段,以制定有关数据包分类和流量调节功能(如计量、标记、整形和管制)的每跳行为(PHB)决策。
RFC 未规定 PHB 的实施方法;这是供应商的职责。Cisco 实施了排队技术,可将其 PHB 建立在数据包 IP 报头中的 IP 优先级或 DSCP 值的基础上。根据 DSCP 或 IP 优先级,可将流量置于特定的服务类别。以相同方法处理同一服务类别的数据包。
注意:本文档中提及的一些方法和技术,包括承诺接入速率(CAR)、优先级队列(PQ)、自定义队列(CQ)、基于接口的加权公平队列(WFQ)、帧中继QoS和基于IP优先级的分类,在当前Cisco平台上被认为是传统方法。保留此内容以提供基本DSCP概念和历史实施情景。
对于当前部署,请查看模块化QoS CLI(MQC)、基于类的策略、基于类的加权公平队列(CBWFQ)、低延迟队列(LLQ)和基于DSCP的WRED。验证目标平台和软件版本的配置指南中的功能可用性和命令语法。
DS字段的六个最高有效位构成DSCP。RFC 2474最初将两个最低有效位指定为当前未使用(CU),而RFC 3168将这些位定义为显式拥塞通知(ECN)字段。网络边缘的路由器将数据包进行分类,并使用 DiffServ 网络中的 IP 优先级或 DSCP 值对其进行标记。网络核心中支持 DiffServ 的其他网络设备使用 IP 报头中的 DSCP 值为数据包选择 PHB 行为,并提供相应的 QoS 处理。
本部分的图表展示了 RFC 791 中定义的 ToS 字节和 DiffServ 字段之间的比较结果。
ToS 字节
| P2 |
P1 |
P0 |
T2 |
T1 |
T0 |
CU1 |
CU0 |
延迟、吞吐量和可靠性 — 三位(T2到T0)
CU(当前未使用) — 两位(CU1-CU0)
DiffServ 字段
| DS5 | DS4 | DS3 | DS2 | DS1 | DS0 | ECN | ECN |
|---|
ECN — 两位
数据包的标准化DiffServ字段标有值,因此数据包在每个网络节点处接收特定转发处理或PHB。
默认DSCP为000 000,类选择器DSCP是与IP优先级向后兼容的值。当您在IP优先级和DSCP之间进行转换时,请匹配三个最重要的位。换言之:
IP Prec 5 (101) maps to IP DSCP 101 000
ToS 字节
| 1 | 0 | 1 | T2 | T1 | T0 | CU2 | CU0 |
DiffServ 字段
| 1 | 0 | 1 | 0 | 0 | 0 | ECN | ECN |
|---|
DiffServ标准使用相同的优先级位(最高有效位 — DS5、DS4和DS3)进行优先级设置,但进一步澄清了定义,通过使用DSCP中的后三位,该定义提供了更精细的粒度。DiffServ 对优先级(仍由 DSCP 的 3 个最高有效位定义)进行重命名,并将其重新组织到下列类别中(本文档较为详细地说明了这些级别):
| 优先级 | 描述 |
|---|---|
| 7 |
保持不变(链路层和路由协议保持活动) |
| 6 |
保持不变(用于 IP 路由协议) |
| 5 |
快速转发 (EF) |
| 4 |
4 类 |
| 3 |
3 类 |
| 2 |
2 类 |
| 1 |
1 类 |
| 0 |
尽力 |
使用此系统,设备将首先根据类别划分流量的优先级。然后,它会区分同类流量并排定其优先级,并考虑丢弃概率。
DiffServ标准没有规定低、中、高丢弃概率的精确定义。并非所有设备都能识别 DiffServ(DS2 和 DS1)设置;即使识别出这些设置,它们也未必会在每个网络节点触发相同的 PHB 转发操作。每个节点根据自身配置方式实施各自的响应。
RFC 2597定义了保证转发(AF)PHB,并将其描述为提供商DS域为从客户端DS域接收的IP数据包提供不同级别的转发保证的一种方法。确保转发 PHB 保证提供可达到某个 AF 类别且具有一定大小的带宽,并在可能的情况下实现额外的带宽。有 AF1x 到 AF4x 这四个 AF 类别。每个类别中有三个丢弃概率。根据给定的网络策略,可以根据所需的吞吐量、延迟、抖动、丢失或访问网络服务的优先级为PHB选择数据包。
1 类到 4 类称为 AF 类别。下表说明了指定具有概率的AF类的DSCP代码。DS5、DS4 和 DS3 位定义了类别;DS2 和 DS1 位指定了丢弃概率;DS0 位始终为零。
| 丢弃 | 1 类 | 2 类 | 3 类 | 4 类 |
|---|---|---|---|---|
| 低 |
001010 AF11 DSCP 10 |
010010 AF21 DSCP 18 |
011010 AF31 DSCP 26 |
100010 AF41 DSCP 34 |
| 中 |
001100 AF12 DSCP 12 |
010100 AF 22 DSCP 20 |
011100 AF32 DSCP 28 |
100100 AF42 DSCP 36 |
| 高 |
001110 AF13 DSCP 14 |
010110 AF23 DSCP 22 |
011110 AF33 DSCP 30 |
100110 AF43 DSCP 38 |
RFC 3246替代RFC 2598,定义加速转发(EF)PHB。EF PHB可用于通过DS(Diffserv)域构建低丢失、低延迟、低抖动、有保证的带宽端到端服务。此服务对终端显示为点对点连接或虚拟租用线路。此服务也称为高级服务。推荐的EF代码点是二进制101110,对应于DSCP 46。
同样,必须配置特定于供应商的机制才能实施这些PHB。有关EF PHB的详细信息,请参阅RFC 3246。
使用 DSCP 字段的方式有三种:
分类器:根据数据包报头某些部分的内容选择数据包,并根据DSCP值定义的服务特性应用PHB。
标记:根据流量量变曲线设置DSCP字段。
Metering:使用整形器或滴管功能检查流量量变曲线的符合性。
如果有流量在加权公平队列(WFQ)、加权随机早期检测(WRED)或加权轮询(WRR)中排队,Cisco IOS软件会考虑ToS字段的优先级位。 配置了策略路由、优先级排队 (PQ)、自定义排队 (CQ) 或基于类的加权公平排队 (CBWFQ) 时,将不考虑优先级位。有关详细信息,请参阅基于类的加权公平队列(CBWFQ)
数据包分类涉及使用流量描述符对特定组内的数据包进行分类,并使网络中管理的QoS可以访问数据包。使用数据包分类时,可以将网络流量划分为多个优先级或服务类别(CoS)。
您可以使用访问控制列表(ACL)或在模块化QoS CLI中运行match命令以匹配DSCP值。Cisco IOS软件版本12.1(5)T引入了在match命令中选择DSCP值的功能。
Router1(config)#access-list 101 permit ip any any ? dscp Match packets with given dscp value fragments Check non-initial fragments log Log matches against this entry log-input Log matches against this entry, including input interface precedence Match packets with given precedence value time-range Specify a time-range tos Match packets with given TOS value
当您在class map命令中指定IP dscp值时,您有:
Router(config)#class-map match-all VOIP 1751-uut1(config-cmap)#match ip dscp ? <0-63> Differentiated services codepoint value af11 Match packets with AF11 dscp (001010) af12 Match packets with AF12 dscp (001100) af13 Match packets with AF13 dscp (001110) af21 Match packets with AF21 dscp (010010) af22 Match packets with AF22 dscp (010100) af23 Match packets with AF23 dscp (010110) af31 Match packets with AF31 dscp (011010) af32 Match packets with AF32 dscp (011100) af33 Match packets with AF33 dscp (011110) af41 Match packets with AF41 dscp (100010) af42 Match packets with AF42 dscp (100100) af43 Match packets with AF43 dscp (100110) cs1 Match packets with CS1(precedence 1) dscp (001000) cs2 Match packets with CS2(precedence 2) dscp (010000) cs3 Match packets with CS3(precedence 3) dscp (011000) cs4 Match packets with CS4(precedence 4) dscp (100000) cs5 Match packets with CS5(precedence 5) dscp (101000) cs6 Match packets with CS6(precedence 6) dscp (110000) cs7 Match packets with CS7(precedence 7) dscp (111000) default Match packets with default dscp (000000) ef Match packets with EF dscp (101110) Router1(config-cmap)#match ip dscp af31
可以在网络边缘将DSCP设置为所需的值,以允许核心设备按Packet Classification部分所示对数据包进行分类并提供适当的服务级别。Class-Based Packet Marking可用于设置DSCP值:
policy-map pack-multimedia-5M
!--- Creates a policy map named pack-multimedia-5M.
class management
!--- Specifies the policy to be created for the !--- traffic classified by class management.
bandwidth 50
set ip dscp 8
!--- Sets the DSCP value of the packets matching !--- class management to 8.
class C1
priority 1248
set ip dscp 40
class voice-signalling
bandwidth 120
set ip dscp 24
承诺接入速率和基于类的策略都是一种流量调控机制,用于对数据流进行调控,使其符合协定的服务参数。这些机制以及DSCP可用于提供不同的服务级别,这些服务级别在流量适当修改DSCP值时不会且确实符合流量,如本节所示。
有关详细信息 Configuring,请Policing 参阅流量和比较基于类的策略和承诺访问速率。
interface Serial1/0.1 point-to-point bandwidth 5000 ip address 192.168.126.134 255.255.255.252 rate-limit output access-group 150 8000 1500 2000 conform-action set-dscp-transmit 10 exceed-action set-dscp-transmit 20 !--- For traffic matching access list 150, sets the DSCP value of conforming traffic !--– to 10 and that of non-conforming traffic to 20. rate-limit output access-group 152 8000 1500 2000 conform-action set-dscp-transmit 15 exceed-action set-dscp-transmit 25 rate-limit output access-group 154 8000 1500 2000 conform-action set-dscp-transmit 18 exceed-action set-dscp-transmit 28 frame-relay interface-dlci 17 class shaper-multimedia-5M
接口开始拥塞时,加权随机早期检测 (WRED) 会有选择性地丢弃优先级较低的数据流。WRED 可为不同的 CoS 提供差分性能特征。此差分服务可以基于DSCP:
class C2
bandwidth 1750
random-detect dscp-based
!--- Enable dscp-based WRED as drop policy.
random-detect exponential-weighting-constant 7
!--- Specifies the exponential weight factor for the !--- average queue size calculation for the queue.
random-detect dscp 16 48 145 10
!--- Specifies the minimum and maximum queue thresholds !--- for each DSCP value.
random-detect dscp 32 145 435 10
有关详细信息,请参阅拥塞避免概述中与 DiffServ 兼容的 WRED 部分。
| 版本 | 发布日期 | 备注 |
|---|---|---|
5.0 |
03-Sep-2026
|
更新拼写/语法,插入水平线以分隔可读性部分,修复CCW错误。 |
4.0 |
08-Sep-2025
|
更新的SEO和格式。 |
3.0 |
05-Sep-2024
|
标题过长,并且出于某种原因,CCW没有标记它。纠正了怪异的间距/格式。 |
2.0 |
24-Aug-2022
|
首次公开发布 |
1.0 |
27-Nov-2001
|
初始版本 |