本文档说明在入站或出站方向上将服务质量 (QoS) 功能应用于运行 Cisco IOS® 软件的路由器上的接口时,执行这些功能的顺序。QoS 策略是使用模块化 QoS 命令行界面 (MQC) 配置的。本文档还将讨论 IP 报头标记(如 DSCP 和 IP Precedence)以及路由器对 QoS 策略的各个组件进行评估的顺序。
本文读者应该有以下知识:
基本 QoS 方法
本文档“配置”部分中的示例输出是在运行 Cisco IOS 软件版本 12.2 的 Cisco 7513 系列平台上捕获的。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
分类就是定义流量类的过程,这些流量类将流量归类为数据流的多个类别组。分类定义了需要由 QoS 策略处理的每个流量类的“匹配条件”。更具体地讲,分类定义在应用服务策略对数据包进行检查时所用的“流量过滤器”。
分布式平台和非分布式平台都将数据包匹配到策略映射中的一个类。匹配过程在第一个匹配类处终止。如果一个策略映射内有两个类与同一个 IP Precedence 或 IP 地址范围匹配,则数据包始终属于第一个匹配类。因此,策略映射内的类顺序十分重要。
这种分类方法称为“常见分类”,具有三个优点:
准确记帐并避免在采用“常见分类”之前出现的双重记帐问题。
降低访问控制列表 (ACL) 对 CPU 的影响,因为按类检查 ACL,而不是按功能进行检查。
由于进行缓存,数据包报头的查找更加快速。
使用 service-policy 命令附加输入或输出策略映射时,将自动启用常见分类。
此表说明常见分类的操作顺序。如果分类是在 QoS 功能中发生的,则了解此表的内容十分重要。在入站路径上,数据包是在交换之前分类的。在出站路径上,数据包是在交换之后分类的。
入站 | 出站 |
---|---|
|
|
注意: 入站 Network-Based Application Recognition (NBAR) 发生在 ACL 之后和基于策略的路由之前。
在功能顺序和重新标记的值使用方面进行了重要更改。这些更改包括移动了输入 CAR、输入 MAC 和 IP precedence 记帐功能以使其在 MQC 输出分类之前发生:
输入速率限制(或 CAR)应用于进程交换路径之后且目的地为路由器的数据包。以前,只能对使用 CEF 并通过路由器进行交换的数据包进行速率限制。
由输入 CAR 或 QPPB 设置的新 IP precedence 值可用于选择 ATM VC 捆绑中的虚拟电路 (VC)。
由输入 CAR 或 QPPB 设置的 IP Precedence、Differentiated Service Code Point (DSCP) 和 QoS 组值可用于 MQC 输出数据包分类。
QoS 的一个常见应用是对数据包进行重新标记,然后应用一个操作,该操作会考虑同一接口或同一路由器上已重新标记的值。可以使用常见分类配置标记和其他 QoS 操作。
可以使用以下 QoS 功能重新标记数据包:
带有基于类的标记的 set 命令
带有基于类的策略的 police 命令
CAR
此表指明 QoS 操作是否在服务策略中考虑重新标记的值。
策略位置 | 由出站策略操作使用的值 |
---|---|
在同一策略中标记并应用 QoS 操作。 | QoS 操作使用已进行常见分类的数据包的原始值。该数据包在传输时将携带新值,下一个路由器使用该新值。 |
通过入站策略进行标记,并通过出站策略应用 QoS 操作。 | 在按照出站策略对流量进行分类时,QoS 操作使用新值或重新标记的值。 |
在出站路径上,常见分类发生在应用任何 QoS 功能之前。这种方法的结果是,应用于出站策略上的任何 QoS 功能都作用于原始优先级值。如果需要基于同一路由器上已重新标记的值来执行操作,则必须对传入接口上的数据包进行标记,并在传出接口上基于这个新优先级应用其他 QoS 操作。
本部分中的配置使用以下网路图:
注意: Multilayer Switch Feature Card (MSFC) 充当主机。
此示例说明操作顺序如何影响数据包标记。
独立标记和整形策略配置 |
---|
class-map match-all In_Mark match any policy-map In_Bound class In_Mark set ip precedence 5 !--- Use Private address below: interface FastEthernet4/0/0 ip address 10.20.3.2 255.255.255.0 ip route-cache distributed service-policy input In_Bound !--- Apply the input policy for class-based marking. class-map match-all Out_Shaper match ip precedence 5 ! policy Map Outbound_Shaper class Out_Shaper shape average 64000 256 256 !--- Use Private address below: interface Serial2/0/0 ip address 172.16.20.1 255.255.255.252 ip route-cache distributed service-policy output Outbound_Shaper !--- Apply the output policy for class-based shaping. |
完成以下步骤以确认标记和整形策略:
针对 172.16.20.2 目标地址使用 ping 命令。该 ping 命令匹配名为“In_Mark”的类映射的条件。
msfc#ping 172.16.20.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 40.1.44.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/9/12 ms
使用 show policy-map interface fast 4/0/0 命令可查看基于输入类的标记策略的匹配计数器。分类机制在 IP 数据包上成功匹配,并将 IP Precedence 值重新标记为 5。
7513#show policy-map interface fast 4/0/0 FastEthernet4/0/0 Service-policy input: In_Bound Class-map: In_Mark (match-all) 5 packets, 570 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any QoS Set ip precedence 5 Packets marked 5 Class-map: class-default (match-any) 0 packets, 0 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: any
使用 show policy-map interface serial 2/0/0 命令可查看基于出站类的整形策略的匹配计数器。分类机制在数据包报头中重新标记的 IP Precedence 值 5 上成功匹配,并将数据包排队至正确的类。
7513#show policy-map interface serial 2/0/0 Serial2/0/0 Service-policy output: Outbound_Shaper Class-map: Out_Shaper(match-all) 5 packets, 520 bytes 5 minute offered rate 0 BPS, drop rate 0 BPSMatch: ip precedence 5 queue size 0, queue limit 16 packets output 5, packet drops 0 tail/random drops 0, no buffer drops 0, other drops 0 Shape: cir 64000, Bc 256, Be 256 output bytes 520, shape rate 0 BPS Class-map: class-default (match-any) 0 packets, 0 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: any (1327)
当我们配置一个将整形和标记同时应用于流量的某个类时(如本例所示),可以看到所发生的情况。
单一标记和整形策略配置 |
---|
class-map match-all prec5 match any ! policy-map shape_five class prec5 set ip precedence 5 shape average 64000 256 256 int serial1/0/0 service-policy out shape_five |
show policy-map interface serial 2/0/0 命令的输出显示,路由器对 5 个 ping 数据包进行了重新标记,并将这些数据包排队至 class-default 类。此路由器上的 QoS 分类机制没有在 IP precedence 字段中考虑重新标记的值。
7513#show policy-map interface serial 2/0/0 Serial2/0/0 Service-policy output: shape_five Class-map: prec5 (match-all) 0 packets, 0 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: any queue size 0, queue limit 16 packets output 0, packet drops 0 tail/random drops 0, no buffer drops 0, other drops 0 QoS Set ip precedence 5 Packets marked 5 Shape: cir 64000, BC 256, Be 256 output bytes 0, shape rate 0 BPS Class-map: class-default (match-any) 5 packets, 520 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: any