简介
本文档介绍了如何在 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)决策。
RFC并不规定实施PHB的方式;这是供应商的责任。Cisco 实施了排队技术,可将其 PHB 建立在数据包 IP 报头中的 IP 优先级或 DSCP 值的基础上。根据 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)
-
延迟、吞吐量和可靠性—3位(T2到T0)
-
CU(当前未使用)-两位(CU1-CU0)
DiffServ 字段
DS5 |
DS4 |
DS3 |
DS2 |
DS1 |
DS0 |
ECN |
ECN |
-
DSCP - 6位(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转发操作。每个节点根据自身配置方式实施各自的响应。
确保转发
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 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
标记
可在网络边缘将DSCP设置为所需要的值,从而方便核心设备对数据包进行分类(如数据包分类部分所述)并提供相应的服务级别。基于类的数据包标记可用于设置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
与 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 兼容的 WRED 部分。
Cisco IOS 软件 12.2 版本系列中的已知问题
只有注册的思科客户端才能访问Bug工具和信息。
可使用漏洞搜索工具搜索这些Bug。
-
思科漏洞ID CSCdt63295(仅限注册用户)—如果在Cisco IOS软件版本12.2.2T中,不能在拨号对等体上使用新的DSCP标记命令设置ToS字节(设置为0),则数据包无法标记,并且可以通过ToS设置为0来保留。
-
思科漏洞ID CSCdt74738 —从Cisco IOS软件版本12.2(3.6)及更高版本开始,必须支持Cisco 7200路由器和低端平台上的set ip dscp命令。
相关信息