服务质量 (QoS) : QoS 数据包标记

使用 DSCP 实施服务质量策略

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 23 日) | 反馈


目录


简介

本文档介绍了如何在 Cisco 路由器上的服务质量 (QoS) 配置中设置差分服务代码点 (DSCP) 值,并总结了 DSCP 和 IP 优先级之间的关系。

先决条件

要求

您应该熟悉IP报头和Cisco IOS �的字段CLI

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。

背景理论

差分服务 (DiffServ) 是一种新的模式,在这种模式中,由中间系统基于服务类型 (ToS) 字段依照相对优先级处理流量。DiffServ 标准在 RFC 2474 RFC 2475 中有所定义,它取代了 RFC 791 中介绍的用于定义数据包优先级的原规范。leavingcisco.com leavingcisco.com leavingcisco.com DiffServ 通过重新分配优先级标记 IP 数据包的位,增加了可定义的优先级别数量。

DiffServ 体系结构定义了 DiffServ (DS) 字段,它取代 IPv4 中的 ToS 字段作出有关数据包分类和流量调节功能(如计量、标记、整形和策略)的每跳行为 (PHB) 决策。

RFC 未规定 PHB 的实施方法;这是供应商的职责。Cisco 实施了排队技术,可将其 PHB 建立在数据包 IP 报头中的 IP 优先级或 DSCP 值的基础上。根据 DSCP 或 IP 优先级,可将流量置于特定的服务类别。以相同方法处理同一服务类别的数据包。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

差分服务代码点

DiffServ 字段的 6 个最高有效位称为 DSCP。DiffServ 字段体系结构中未定义 DiffServ 字段的最后 2 个当前未使用 (CU) 位。这些位现在用作显式拥塞通告 (ECN) 位。网络边缘的路由器将数据包进行分类,并使用 DiffServ 网络中的 IP 优先级或 DSCP 值对其进行标记。网络核心中支持 DiffServ 的其他网络设备使用 IP 报头中的 DSCP 值为数据包选择 PHB 行为,并提供相应的 QoS 处理。

本部分的图表展示了 RFC 791 中定义的 ToS 字节和 DiffServ 字段之间的比较结果。leavingcisco.com

ToS 字节

P2 P1 P0 T2 T1 T0 CU1 CU0

  • IP 优先级 - 3 位(P2 到 P0)

  • 延迟、吞吐量和可靠性 - 3 位(T2 到 T0)

  • CU(当前未使用)- 2 位(CU1 到 CU0)

DiffServ 字段

DS5 DS4 DS3 DS2 DS1 DS0 ECN ECN

  • DSCP - 6 位(DS5 到 DS0)

  • ECN - 2 位

使用值标记数据包的标准化 DiffServ 字段,这样数据包就可以在每个网络节点处接收特定的转发处理或 PHB。

默认 DSCP 为 000 000。类别选择器 DSCP 是与 IP 优先级向后兼容的值。在 IP 优先级和 DSCP 之间转换时,匹配 3 个最高有效位。换言之:

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 中接下来的 3 位提供更精细的粒度。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 数据包提供不同级别的转发保证时所采取的一种方式。leavingcisco.com 确保转发 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 2598leavingcisco.com 定义了紧急转发(EF) PHB :“EF PHB 可用于通过 DS (DiffServ) 域构建低损耗、低延时和低抖动的确保带宽端到端服务。此类服务对端点表现为类似于一种点对点连接或‘虚拟租用专线’。此类服务也被描述为高级服务。”建议将代码点 101110 用于 EF PHB,对应的 DSCP 值为 46。

此外,需要配置特定于供应商的机制以实施这些 PHB。有关 EF PHB 的详细信息,请参阅 RFC 2598leavingcisco.com

使用 DSCP 字段

使用 DSCP 字段的方式有三种:

  • 分类器 - 根据数据包报头的部分内容选择数据包,并根据 DSCP 值定义的服务特征应用 PHB。

  • 标记器 - 根据流量配置文件设置 DSCP 字段。

  • 计量 - 使用整形器或丢弃器功能根据流量配置文件检查符合性。

如果有流量以加权公平排队 (WFQ)加权随机早期检测 (WRED)加权轮询法 (WRR) 排队,Cisco IOS 软件将考虑 ToS 字段的优先级位。配置了策略路由优先级排队 (PQ)、自定义排队 (CQ) 或基于类的加权公平排队 (CBWFQ) 时,将不考虑优先级位。

数据包分类

数据包分类涉及使用流量描述符在特定组内对数据包进行分类,使数据包可接受网络中的 QoS 处理。使用数据包分类可对网络流量进行分区,划分到多个优先级或一个服务类别 (CoS) 中。

可在模块化 QoS CLI 中使用访问列表 (ACL) 或 match 命令匹配 DSCP 值。有关如何使用 ACL 的详细信息,请参阅 Cisco 7200/7500 的服务质量。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 值实现,如本部分内容所述。

有关详细信息,请参阅配置流量控制比较基于类的策略和承诺接入速率

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 工具包仅限注册用户)获取:

  • CSCdt63295仅限注册用户)- Cisco IOS 软件版本 12.2.2T 中,如果在拨号对等体(设置为 0)上未能使用新的 DSCP 标记命令设置 ToS 字节,则不会标记数据包,这些数据包将保持 ToS 设置为 0。

  • CSCdt74738仅限注册用户)- Cisco IOS 软件版本 12.2(3.6) 和更高版本应支持在多播数据包的 Cisco 7200 路由器和低端平台上使用 set ip dscp 命令。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 10103