简介
本文档介绍了如何在 Cisco 路由器上的服务质量 (QoS) 配置中设置差分服务代码点 (DSCP) 值.
先决条件
要求
您必须熟悉IP报头和Cisco IOS® CLI中的字段。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
规则
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
背景信息
差分服务 (DiffServ) 是一种新的模式,在这种模式中,由中间系统基于服务类型 (ToS) 字段依照相对优先级处理流量。在RFC 2474和RFC 2475中定义,DiffServ标准取代原始规范,以定义RFC 791中描述的数据包优先级。DiffServ在重新分配IP数据包的位以将其标记为优先级时,会增加可定义的优先级的数量。
DiffServ架构定义了DiffServ(DS)字段,该字段取代IPv4中的ToS字段以制定有关数据包分类和流量的每跳行为(PHB)决策 conditioning
函数,例如 metering
, marking
, shaping
,和 policing
.
RFC不规定实施PHB的方式;这是供应商的责任。思科实施 queuing
可以根据数据包IP报头中的IP优先级或DSCP值来建立其PHB的技术。根据 DSCP 或 IP 优先级,可将流量置于特定的服务类别。以相同方法处理同一服务类别的数据包。
差分服务代码点
DiffServ 字段的 6 个最高有效位称为 DSCP。DiffServ字段架构中没有定义DiffServ字段中的最后两个当前未使用(CU)位;这些位现在用作显式拥塞通知(ECN)位。网络边缘的路由器将数据包进行分类,并使用 DiffServ 网络中的 IP 优先级或 DSCP 值对其进行标记。网络核心中支持 DiffServ 的其他网络设备使用 IP 报头中的 DSCP 值为数据包选择 PHB 行为,并提供相应的 QoS 处理。
本部分的图表展示了 RFC 791 中定义的 ToS 字节和 DiffServ 字段之间的比较结果。
ToS 字节
P2 |
P1 |
P0 |
T2 |
T1 |
T0 |
CU1 |
CU0 |
-
IP优先级 — 三位(P2到P0)
-
延迟、吞吐量和可靠性 — 三位(T2到T0)
-
CU(当前未使用) — 两位(CU1-CU0)
DiffServ 字段
DS5 |
DS4 |
DS3 |
DS2 |
DS1 |
DS0 |
ECN |
ECN |
-
DSCP — 六位(DS5-DS0)
-
ECN — 两位
使用值标记数据包的标准化 DiffServ 字段,这样数据包就可以在每个网络节点处接收特定的转发处理或 PHB。
默认 DSCP 为 000 000。类别选择器 DSCP 是与 IP 优先级向后兼容的值。当您在IP优先级和DSCP之间进行转换时,请匹配三个最重要的位。换言之:
IP Prec 5 (101) maps to IP DSCP 101 000
ToS 字节
DiffServ 字段
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转发操作。每个节点根据自身配置方式实施各自的响应。
有保证 Forwarding
RFC 2597定义了 forwarding
(AF)PHB并将其描述为提供商DS域提供不同级别的 forwarding
对从客户端DS域收到的IP数据包的保证。有保证的 Forwarding
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 |
加速 Forwarding
RFC 2598定义了加速转发(EF)PHB:“EF PHB可用于通过DS(Diffserv)域构建低丢失、低延迟、低抖动、有保证的带宽、端到端服务。此类服务对终端的影响类似于点对点连接或“虚拟租用线路”。 此服务也称为高级服务。建议将代码点 101110 用于 EF PHB,对应的 DSCP 值为 46。
此外,需要配置特定于供应商的机制以实施这些 PHB。有关 EF PHB 的详细信息,请参阅 RFC 2598。
使用DSCP字段
使用 DSCP 字段的方式有三种:
-
分类器 - 根据数据包报头的部分内容选择数据包,并根据 DSCP 值定义的服务特征应用 PHB。
-
标记器 - 根据流量配置文件设置 DSCP 字段。
-
Metering
— 使用整形器或滴管功能检查流量量变曲线的符合性。
如果有流量在加权公平队列(WFQ)、加权随机早期检测(WRED)或加权轮询(WRR)中排队,Cisco IOS软件会考虑ToS字段的优先级位。配置了策略路由、优先级排队 (PQ)、自定义排队 (CQ) 或基于类的加权公平排队 (CBWFQ) 时,将不考虑优先级位。有关详细信息,请参阅基于类的加权公平队列(CBWFQ)。
数据包分类
数据包分类涉及使用流量描述符对特定组内的数据包进行分类,并使网络中管理的QoS可以访问数据包。使用数据包分类时,可以将网络流量划分为多个优先级或服务类别(CoS)。
可在模块化 QoS CLI 中使用访问列表 (ACL) 或 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
Marking
可在网络边缘将 DSCP 设置为所需要的值,从而方便核心设备对数据包进行分类(如数据包分类部分所述)并提供相应的服务级别。 基于类的数据包 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
使用承诺访问速率或基于类的策略
承诺访问速率和基于类 Policing
是流量调节机制,用于调节流量以符合商定的服务参数。这些机制以及DSCP可用于提供不同的服务级别,这些服务级别在流量适当修改DSCP值时不会且确实符合流量,如本节所示。
请参阅 Configuring
Traffic 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
与 DSCP 兼容的 WRED
接口开始拥塞时,加权随机早期检测 (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 Compliant WRED部分。
Cisco IOS 软件 12.2 版本系列中的已知问题
只有注册的思科客户端才能访问Bug工具和信息。
您可以使用漏洞搜索工具搜索这些Bug。
-
Cisco Bug ID CSCdt63295 — 如果不能使用新的DSCP设置ToS字节 marking
Cisco IOS软件版本12.2.2T中拨号对等体(设置为0)上的命令,则无法标记数据包,并且它们可以保留在ToS设置为0的情况下。
-
Cisco Bug ID CSCdt74738 — 从Cisco IOS软件版本12.2(3.6)及更高版本开始,必须在Cisco 7200路由器和低端平台上为组播数据包提供set ip dscp命令支持。
相关信息