安全 : Cisco PIX 500 系列安全设备

PIX/ASA 7.x 及更高版本:带宽管理(速率限制)使用QoS策略

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


目录


简介

服务质量 (QoS) 是一种网络功能,它允许您为某些类型的 Internet 流量指定优先级。随着 Internet 用户将其接入点从调制解调器升级到高速宽带连接(如 DSL 和电缆),单个用户在任意给定时间占用大部分(如果非全部)可用带宽的可能性不断变大,这将导致其他用户无法使用足够的带宽。为了防止任意一个用户或站点到站点连接占用的带宽超过其公平的带宽份额,QoS 提供了一种管制功能,它规定任一用户可以使用的最大带宽。

QoS 指的是在底层技术所提供的带宽有限的情况下,网络通过使用各种技术为选定的网络流量提供更好的服务以实现最佳整体服务的能力。

安全设备中 QoS 的主要目标是对选定的网络流量(包括单个数据流或 VPN 隧道数据流)提供速率限制,以确保所有流量都获得公平的有限带宽份额。可以使用多种方式定义数据流。在安全设备中,QoS 可以应用于源 IP 地址和目标 IP 地址、源端口号和目标端口号,以及 IP 报头的服务类型 (ToS) 字节的组合。

对于终端在 PIX/ASA 安全设备上的 VPN 隧道,要在该隧道中配置 IP 语音 (VoIP) 流量的 QoS,请参阅 PIX/ASA 7.x:VPN 隧道中的 VoIP 流量的 QoS 配置示例

注意: QoS 在子接口上不受支持,它仅在主接口自身上受支持。在一个接口自身上配置 QoS 后,所有子接口都会受该 QoS 影响。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于运行版本 7.x 及更高版本的 PIX 安全设备。

注意: PIX 515型号仅支持QoS和以后。这些型号支持思科PIX防火墙软件版本7.x。PIX 501和506个型号不支持QoS。

注意: 思科PIX防火墙软件版本7.x和以上仅支持QoS。

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

相关产品

此配置也可用于运行版本 7.x 及更高版本的自适应安全设备 (ASA)。

规则

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

QoS 概念

QoS 是一种流量管理策略,它允许您根据网络流量类型以及分配给该流量的优先级,为任务关键型数据和正常数据分配网络资源。简而言之,QoS 可确保优先级流量畅通,并提供默认流量速率限制(管制)功能。

例如,对于使用 Internet 基础架构作为传输机制在不同地理位置之间进行办公室间通信来说,视频和 VoIP 正越来越重要。防火墙对确保网络安全很重要,因为防火墙可以控制访问,包括检查 VoIP 协议。QoS 是提供清晰流畅的语音和视频通信的关键,但它仍为通过设备的所有其他流量提供基本级别的服务。

要使语音和视频以安全可靠的电话质量方式通过 IP 网络,必须在网络中的所有位置启用 QoS。实施 QoS 后,您可以:

  • 借助类似技术将所有数据、语音和视频网络流量压缩到单个骨干网中,从而简化网络操作

  • 启用有助于在各自的市场空间区分企业并提高生产率的新网络应用程序,如集成的呼叫中心应用程序和基于视频的培训。

  • 通过控制哪些流量接收哪些资源来控制资源的使用。例如,可以确保最重要且时间紧急的流量接收所需的网络资源(可用的带宽和最小延迟),并确保其他使用链路的应用程序在不妨碍任务关键型流量的情况下获得公平的服务份额。

QoS 对通过每个个人用户隧道和每个站点到站点隧道传输的流量提供最大速率控制或管制。在此版本中,没有最小带宽保证。

通过配置不与 LAN 到 LAN 隧道关联但其流量最终通过该隧道的类映射,安全设备可以管制该 LAN 到 LAN 隧道内的个人用户流量。

这样,当 LAN 到 LAN 隧道之前的流量通过该隧道时,可以专门管制该流量,并可以再次管制该流量以使其速率不超过适用于该隧道的总速率。为了实现 QoS,安全设备允许每个接口使用两种类型的流量队列:低延迟队列 (LLQ) 和默认队列。只有默认流量的速率受限制。

由于 QoS 可能消耗大量资源,而这可能会降低安全设备的性能,因此默认情况下 QoS 被禁用。

注意: 您必须考虑在不断变化的网络环境中,QoS 不是一次性部署活动。它是网络设计的持续必要部分。

QoS 实施

通常,在提供 QoS 策略时,需要执行以下步骤:

  1. 指定流量类。

  2. 将操作与每种流量类关联以制定策略。

  3. 激活策略。

指定分类策略(定义流量类)与指定对分类结果进行操作的策略是分开的。

流量类是指可通过其数据包内容识别的一组流量。例如,端口值为 23 的 TCP 流量可分类为 Telnet 流量类。

操作是所采取的用来保护信息或资源的特定活动。在这种情况下,操作是指执行 QoS 功能。操作通常与特定流量类关联。

为安全设备配置传统的 QoS 策略包括以下步骤:

  1. 定义流量类(class-map 命令)。

  2. 将策略和操作与每种流量类关联(policy-map 命令)。

  3. 将策略附加到逻辑或物理接口(service-policy 命令)。

class-map 命令

class-map 命令用于定义表示一种流量类的已命名对象,该流量类所指定的数据包符合确定数据包属于此类的标准。该命令的基本格式如下:

class-map class-map-name-1


	match match-criteria-1


class-map class-map-name-n


	match match-criteria-n

policy-map 命令

policy-map 命令用于定义表示一组策略的已命名对象,该组策略要应用于一组流量类。管制流量类使其不超过某个最大速率就是这种策略的一个示例。该命令的基本格式如下:

policy-map policy-map-name
	class class-map-name-1
		policy-1
		policy-n
	class class-map-name-n
		policy-m
		policy-m+1

service-policy 命令

service-policy 命令用于将策略映射及其关联的策略附加到已命名的目标接口。

该命令还可以指示是将策略应用于从目标接口传出的数据包还是传入目标接口的数据包。例如,本示例显示应用了输出策略(应用于退出接口的数据包):

hostname(config)#service-policy policy-map-name interface outside

此外,如果要区分优先级流量和尽力流量,则在传输已确定优先级的流量的每个已命名物理接口上,必须定义低延迟队列(priority-queue 命令)。

本示例启用具有默认队列限制和传输环路限制的默认优先级队列

priority-queue name-interface

注意: policy-map-name 下面与 QoS 相关的策略仅适用于已命名接口的出站流量,不适用于其入站流量。

识别 QoS 流量

class-map 命令对与 QoS 操作关联的一组流量进行分类。您可以使用各种类型的匹配标准来对流量进行分类。match 命令针对类映射识别流量类中包括的流量。这些命令可以包括不同的标准来定义 class-map 中包括的流量。在使用模块化策略框架配置安全功能的过程中,可以使用 class-map 全局配置命令定义流量类。在类映射配置模式下,您可以使用 match 命令定义要包括在类中的流量。

将流量类应用于接口后,会将该接口上收到的数据包与类映射中的 match 语句所定义的标准进行比较。如果数据包符合指定的标准,则数据包将包括在该流量类中,并且会对其执行与该流量类关联的所有操作。不符合任何流量类中的任何标准的数据包将分配给默认流量类。

访问列表就是这样一种标准。例如,按照以下顺序,class-map 命令使用名为 tcp_traffic 的访问列表对所有不通过隧道传输的 TCP 流量进行分类:

hostname(config)#access-list tcp_traffic permit tcp any any
hostname(config)#class-map tcp_traffic
hostname(config-cmap)#match access-list tcp_traffic

针对类映射匹配数据包时,结果为匹配或不匹配。

本示例中使用了其他更具体的匹配标准,以便对与安全相关的特定隧道组的流量进行分类。这些特定匹配标准规定,要求将匹配隧道组(在本示例中指先前定义的 Tunnel-Group-1)作为第一个匹配特征,以便对特定隧道的流量进行分类。本示例还允许一个附加匹配行对流量进行分类(IP 差分服务代码点和加速转发)。

hostname(config)#class-map TG1-voice
hostname(config-cmap)#match tunnel-group Tunnel-Group-1
hostname(config-cmap)#match dscp ef

在本示例中,class-map 命令根据流量类型对通过隧道传输的流量和不通过隧道传输的流量进行分类:

注意: 由于空间限制,此输出中的一些命令分两行显示。

hostname(config)#access-list tunneled extended permit 
ip 10.10.34.0 255.255.255.0 20.20.10.0 255.255.255.0
hostname(config)#access-list non-tunneled extended permit tcp any any
hostname(config)#tunnel-group tunnel-grp1 type IPSec_L2L

hostname(config)#class-map browse
hostname(config-cmap)#description "This class-map matches all 
non-tunneled tcp traffic."
hostname(config-cmap)#match access-list non-tunneled

hostname(config-cmap)#class-map TG1-voice
hostname(config-cmap)#description "This class-map matches all dscp ef 
traffic for tunnel-grp 1."
hostname(config-cmap)#match dscp ef
hostname(config-cmap)#match tunnel-group tunnel-grp1

hostname(config-cmap)#class-map TG1-BestEffort
hostname(config-cmap)#description "This class-map matches all best-effort 
traffic for tunnel-grp1."
hostname(config-cmap)#match tunnel-group tunnel-grp1
hostname(config-cmap)#match flow ip destination-address

本示例显示了一种管制隧道中的数据流的方法,其前提是已分类的流量未指定为隧道,但穿过隧道。在本示例中,192.168.10.10 是远程隧道的专用端上的主机地址,而“host-over-l2l”是访问列表的名称。创建名为“host-specific”的类映射时,您可以在 LAN 到 LAN 连接管制隧道之前管制 host-specific 类。在本示例中,先限制 host-specific 流量的速率,然后再限制隧道的速率:

hostname(config)#access-list host-over-l2l extended permit ip any host 192.168.10.10
hostname(config)#class-map host-specific
hostname(config-cmap)#match access-list host-over-l2l

下表总结了与 QoS 相关的可用 match 命令标准。有关所有 match 命令及其语法的完整列表,请参阅 Cisco 安全设备命令参考

pixasa7x-traffic-mgt-1.gif

除了用户定义的类外,还存在一个名为 class-default 的系统定义的类。此 class-default 表示所有不匹配任何用户定义的类的数据包,以便可以为这些数据包定义策略。

定义 QoS 策略映射

policy-map 命令配置各种策略,如安全策略或 QoS 策略。策略是指 class 命令所指定的流量类与一个或多个操作的关联。本部分专门介绍如何使用 policy-map 命令为一种或多种数据包类定义 QoS 策略。

当您输入 policy-map 命令时,您就进入了策略映射模式,提示符将更改以指示这一点。在此模式下,您可以输入 class 和 description 命令。一个 policy-map 命令可以指定多个策略。策略映射的最大数目为 64。

输入 policy-map 命令后,您可以输入 class 命令以指定数据包流量的分类。class 命令为给定类映射中指定的流量类配置 QoS 策略。流量类是指可通过其数据包内容识别的一组流量。例如,端口值为 23 的 TCP 流量可分类为 Telnet 流量类。class 命令按其先前命名和构造的类映射标识以及其后紧跟的关联操作来区分。

安全设备按类映射在策略映射配置中的输入顺序评估类映射。它将数据包分类到与该数据包匹配的第一个类映射

注意: 执行策略映射中不同类型的操作的顺序与这些操作出现在本文档的命令说明中的顺序无关。

注意: priority 命令为延迟敏感的流量(如语音)提供低延迟队列。此命令选择所有与关联的类(上一个示例中的 TG1-voice)匹配的数据包,然后将这些数据包发送到低延迟队列进行优先级处理。

应用速率限制

每个用户的带宽限制流量 (BLT) 流可以参与最大带宽限制。也就是说,严格进行管制,将个人用户的默认流量的速率限制为某个最大速率。这样可防止任何个人用户的 BLT 占用任何其他用户的带宽。但是,在优先级队列中,LLQ 流量已被标记并且按向下顺序进行处理。不会对此流量进行限速。管制是一种确保任何流量都不超过您配置的最大速率(位/秒)的方法。这确保任何数据流都不会占用全部资源。可以使用 police 命令指定最大速率(此数据流的速率限制)。此值的范围为 8000-2000000000,它指定允许的最大速率(位/秒)。您还可以指定对符合速率限制以及超过速率限制的流量要执行的操作(丢弃或传输)。

注意: 您可以指定丢弃操作,但它不起作用。总是会执行传输操作,但超过速率时除外。即使在超过速率的情况下,执行的操作也是将流量调节到允许的最大速度。

police 命令还可以配置允许的最大单次突发流量。范围在 1000-512000000 的突发值指定在调节到符合要求的速率值之前,持续的突发中允许的最大瞬时字节数。

注意: 仅在输出方向应用管制。

注意: 不能同时启用优先级和管制。对于具有现有 VPN Client/LAN 到 LAN 的接口或者已建立不通过隧道传输的流量的接口,如果在该接口应用或撤消服务策略,则不会对流量流应用或撤消 QoS 策略。要对这种连接应用或撤消 QoS 策略,必须清除(断开)连接,然后重新建立连接。

注意: 在默认类映射 class-default 中指定了管制时,如果没有为 LAN 到 LAN VPN 的隧道组定义 police 命令,则 class-default 的管制值将应用于 LAN 到 LAN VPN 聚合数据流。也就是说,class-default 的管制值决不会应用于加密前已存在的 LAN 到 LAN VPN 中的单个数据流。

本示例基于上一部分中开发的配置。与上一个示例中一样,有两个名为 tcp_traffic 和 TG1-voice 的已命名类映射。增加的第三个类映射为定义通过隧道传输和不通过隧道传输的 QoS 策略提供了基础,该类映射为通过隧道传输和不通过隧道传输的流量创建一个简单的 QoS 策略、将属于类 TG1-voice 的数据包分配给低延迟队列,并对 tcp_traffic 和 TG1-best-effort 数据流设置速率限制。

hostname(config)#class-map TG1-best-effort
hostname(config-cmap)#match tunnel-group Tunnel-Group-1
hostname(config-cmap)#match flow ip destination-address

注意: “尽力”不能保证可靠的数据包传输,因为它没有使用完善的确认系统。但是,它会尽力将数据包传输到目的地。

在本示例中,类 tcp_traffic 的流量的最大速率为 56,000 位/秒,最大突发大小为 10,500 字节/秒。对于类 TC1-BestEffort,最大速率为 200,000 位/秒,最大突发大小为 37,500 字节/秒。类 TC1-voice 的流量的最大速率和突发速率不受管制,因为该类不属于优先级类:

hostname(config)#policy-map qos
hostname(config-pmap)#class tcp_traffic
hostname(config-pmap-c)#police output 56000 10500

hostname(config-pmap-c)#class TG1-voice
hostname(config-pmap-c)#priority

hostname(config-pmap-c)#class TG1-best-effort
hostname(config-pmap-c)#police output 200000 37500

hostname(config-pmap-c)#class class-default
hostname(config-pmap-c)#police output 1000000 37500

注意: 您最多可以有 256 个策略映射,且一个策略映射中最多包含 256 个类。所有策略映射中类的最大数目为 256。任何一个类映射都只能与一个 match 语句关联,但隧道类除外。对于隧道类,允许与另一个 match tunnel-group 语句关联。

激活服务策略

service-policy 命令可以全局激活所有接口上的 policy-map 命令,也可以只激活目标接口上的 policy-map 命令。接口可以是虚拟 (VLAN) 接口或物理接口。只允许有一个全局策略映射。如果指定关键字 interface 和接口名,则策略映射仅适用于该接口。接口策略映射继承全局策略映射的规则。对于与全局策略映射重叠的规则,将应用接口策略规则。任何时候一次只能对一个接口应用一个接口策略映射

通常,可以对使用 nameif 命令定义的任何接口应用 service-policy 命令。

使用上一部分中的 policy-map 示例,以下 service-policy 命令对外部接口上的流量激活在上一部分中定义的策略映射“qos”:

hostname(config)#service-policy qos interface outside

应用低延迟队列

安全设备允许两种流量类:一种称为低延迟队列 (LLQ),它适用于具有较高优先级且对延迟非常敏感的流量(如语音和视频);另一种称为尽力队列,默认情况下所有其他流量都采用尽力队列。这两种队列内置于系统中。安全设备能够识别出 QoS 优先级流量并强制实施相应的 QoS 策略。

由于队列的大小有限制,因此它们可能会被填满并溢出。当队列已满时,任何其他的数据包都不能进入该队列,这些数据包将被丢弃。这就是尾部丢弃。为了避免队列被填满,可以使用 queue-limit 命令增大队列缓冲区的大小。

您可以配置低延迟(优先级)队列,以便微调允许进入传输队列的数据包的最大数目(使用 tx-ring-limit 命令),并调整优先级队列的深度(使用 queue-limit 命令)。这样,您就可以控制优先级排队的延迟和稳健性。

注意: queue-limit 和 tx-ring-limit 命令的值范围的上限是在运行时动态确定的。为了查看此限制,回车帮助在line命令。此上限主要是由支持队列所需的内存和设备上的可用内存确定的。queue-limit 的值范围为 0-2048 个数据包。tx-ring-limit 的值范围为 3-128 个数据包(对于 PIX 平台)或 3-256 个数据包(对于 ASA 平台)。

配置优先级排队

在 Class 模式下使用 priority 命令时,您可以识别高优先级流量。此命令指示安全设备将类映射所选择的流量标记为高优先级。

要进行优先级排队,必须为传输高优先级流量的已命名物理接口创建一个优先级队列。要在接口上启用优先级队列,请在全局配置模式下使用 priority-queue 命令。可以对使用 nameif 命令定义的每个物理接口应用一个 priority-queue 命令。所有其他流量都将尽力传输。

通常,可以对使用 nameif 命令定义的任何物理接口应用 priority-queue 命令。不能对 VLAN 接口应用 priority-queue 命令。如果类映射为优先级配置,并且物理接口没有为priority-queue配置, theERROR :中集集团xyz有‘优先权’设置,不用‘priority-queue’在所有接口错误错误消息能被看到,当配置优先级队列时。priority-queue 命令将进入优先级队列模式,如提示符所示。在该模式下,您可以配置允许进入传输队列的数据包的最大数目和优先级队列的大小。

注意: 不能同时启用优先级排队和管制。也就是说,只能管制具有正常优先级的数据包。不能管制具有高优先级的数据包。

调整优先级队列的大小

您指定的优先级队列的大小将影响低延迟队列和尽力队列。queue-limit 命令指定在优先级队列丢弃数据之前可以加入优先级队列的数据包的最大数目。此限制的范围必须为 0-2048 个数据包。

减少队列延迟

使用 tx-ring-limit 命令,您可以配置在任何给定时间允许排队加入以太网传输驱动器环路的数据包的最大数目(深度)。这允许微调传输队列以减少延迟并通过传输驱动器提供更好的性能。对于 PIX 平台,此限制的范围必须为 3-128 个数据包;对于 ASA 平台,此限制的范围必须为 3-256 个数据包。

默认 queue-limit 是指定接口在 500 ms 时间间隔内可以传输的 256 字节数据包的平均数目,其上限为 2048 个数据包。在网络节点中停留时间超过 500 ms 的数据包可能会在端到端应用程序中触发超时。每个网络节点都可以丢弃这种数据包。

默认 tx-ring-limit 是指定接口在 10 ms 时间间隔内可以传输的 1550 字节数据包的最大数目。这样可保证基于硬件的传输环路对高优先级数据包产生的额外延迟不会超过 10 ms。

本示例在外部接口(GigabitEthernet0/1 接口)上建立一个具有默认 queue-limit 和 tx-ring-limit 的优先级队列。

hostname(config)#priority-queue outside

本示例在外部接口(GigabitEthernet0/1 接口)上建立一个优先级队列,并将 queue-limit 设置为 2048 个数据包,将 tx-ring-limit 设置为 256 个数据包:

hostname(config)#priority-queue outside

hostname(config-priority-queue)#queue-limit 2048

hostname(config-priority-queue)#tx-ring-limit 256

启用优先级排队后,安全设备先清空较高优先级队列中的所有数据包,然后再传输较低优先级队列中的数据包。

配置 QoS

本过程说明如何配置实现 QoS 管制(速率限制)或优先级排队的流量类、策略映射和服务策略。此外,对于优先级排队,本过程还包括在接口上启用优先级队列所需执行的步骤。

实现 QoS 所需的流量类、策略映射和服务策略的数目随您的网络要求而异。请分析您的网络并确定要配置的安全设备上需要的流量类、策略映射和服务策略的数目,然后使用本过程进行 QoS 部署(如果适用)。

要配置 QoS 管制和优先级队列,请完成以下步骤:

  1. 确定要管制或要标记以进行优先级排队的流量。有关识别 QoS 流量的详细讨论,请参阅本文档的识别 QoS 流量部分。

  2. 创建一个类映射或者修改现有类映射,以识别要管制或要标识为优先级流量的流量。使用 class-map 命令:

    hostname(config)#class-map class_map_name
    
    hostname(config-cmap)#

    对于此 class-map 命令,class_map_name 是流量类的名称。当您输入 class-map 命令时,CLI 将进入类映射配置模式。

  3. 使用 match 命令识别在步骤 1 中确定的流量。有关识别 QoS 流量的详细讨论,请参阅本文档的识别 QoS 流量部分。

    如果需要识别两个或更多个非连续的端口,请使用 access-list extended 命令创建一个访问列表、添加 ACE 以匹配每个接口,然后使用 match access-list 命令。

    以下命令说明如何使用访问列表来识别多个 TCP 端口:

    hostname(config)#access-list acl-name any any tcp eq port_number_1
    
    hostname(config)#access-list acl-name any any tcp eq port_number_2
    
    hostname(config)#class-map class_map_name
    
    hostname(config-cmap)#match access-list acl-name
    

    如果需要识别单个端口,请使用 match port 命令:

    hostname(config-cmap)#match port {tcp | udp} eq port_number
    

    对于此 match port 命令,eq port_number 是流量的目标端口,您要配置安全设备来管制或标记该流量以便进行优先级排队。如果需要标识一定范围的连续端口,请使用带有 range 关键字的 match port 命令,如下例所示:

    
    !--- This command is wrapped to a second line due to spatial reasons:
    
    hostname(config-cmap)#match port {tcp | udp} {eq port | range begin_port_number 
    end_port_number
    

    对于此 match port 命令,begin_port_number 是该端口范围中的最小端口,而 end_port_number 是最大端口:

  4. 创建一个策略映射或者修改现有策略映射,然后使用它对步骤 2 中识别中的流量应用管制或优先级排队。有关 QoS 策略映射的详细信息,请参阅此文档的定义 QoS 策略映射部分。

    按下例所示使用 policy-map 命令:

    hostname(config-cmap)#policy-map policy_map_name
    
    hostname(config-pmap)# 

    对于此 policy-map 命令,policy_map_name 是策略映射的名称。CLI 将进入策略映射配置模式,并且提示符会相应地更改。

  5. 指定步骤 2 中创建的用于识别要管制或要标记以进行优先级排队的类映射。要实现此操作,请使用 class 命令:

    hostname(config-pmap)#class class_map_name
    
    hostname(config-pmap-c)# 
  6. 配置类的操作。您可以将流量类标记为优先级流量,或者为流量类指定速率限制。执行以下操作之一:

    • 如果要将类映射所选择的流量标记为优先级流量,请输入 priority 命令:

      hostname(config-pmap-c)#priority
      

      注意: 不会自动对标记为优先级流量的流量进行优先级排队。要启用优先级排队,必须完成步骤 8,该步骤启用优先级队列。

      有关优先级排队的详细信息,请参阅本文档的应用低延迟队列部分和《Cisco 安全设备命令参考》中的 priority 命令页。

    • 如果要安全设备管制类映射所选择的流量,请输入 police 命令。

      
      !--- This command is wrapped to a second line due to spatial reasons:
      
      hostname(config-pmap-c)#police [output] conform-rate [conform-burst] 
      [conform-action [drop | transmit] [exceed-action {drop | transmit}]]
      

      有关如何使用 police 命令的详细信息,请参阅本文档的应用速率限制部分和《Cisco 安全设备命令参考》中的 police 命令页。

  7. 使用 service-policy 命令全局应用策略映射或者对特定接口应用策略映射:

    注意: 由于空间限制,此命令分两行显示。

    hostname(config-pmap-c)#service-policy policy_map_name 
    [global | interface interface_ID]
    
    hostname(config)#

    对于此 service-policy 命令,policy_map_name 是在步骤 4 中配置的策略映射。如果要对所有接口上的流量应用策略映射,请使用 global 选项。如果要对特定接口上的流量应用策略映射,请使用 interface interface_ID 选项,其中 interface_ID 是使用 nameif 命令分配给接口的名称。

    此时,安全设备将按指定的那样开始管制流量并标记流量以进行优先级排队。

  8. 如果在步骤 6 中输入了 priority 命令,则必须先在接口上启用优先级队列,然后安全设备才会执行优先级排队。

    对于希望安全设备在其上执行优先级排队的每个接口,请完成以下步骤:

    1. 输入 priority-queue 命令:

      hostname(config)#priority-queue interface
      
      hostname(config-priority-queue)#

      对于此 priority-queue 命令,interface 是分配给要启用其优先级队列的物理接口的名称。VLAN 接口不支持优先级排队。CLI 将进入优先级队列配置模式,并且提示符会相应地更改。

    2. 可选)如果要指定可以排队的优先级数据包的非默认最大数目,请输入 queue-limit 命令,如下例所示:

      hostname(config-priority-queue)#queue-limit number-of-packets
      

      默认队列大小为 2048 个数据包。

    3. 可选)如果要指定允许加入传输队列的数据包的非默认最大数目,请输入 tx-ring-limit 命令,如下例所示:

      hostname(config-priority-queue)#tx-ring-limit number-of-packets
      

      默认传输队列大小为 128 个数据包。

      在启用了优先级队列的接口上,安全设备将开始执行优先级排队。

本示例为先前配置的名为“tunnel-grp1”的隧道组中的高优先级(语音)流量和尽力流量创建类映射。QoS 策略映射包括适用于尽力流量类和默认流量类的 police 命令,以及适用于语音类的 priority 命令。然后,将服务策略应用于外部接口,并启用该外部接口的优先级队列。

配置 QoS 管制和优先级排队
hostname(config)#class-map TG1-voice


!--- This command is wrapped to a second line due to spatial reasons:

hostname(config-cmap)#description "This class-map matches all dscp ef 
traffic for tunnel-grp 1"

hostname(config-cmap)#match dscp ef

hostname(config-cmap)#match tunnel-group tunnel-grp1


hostname(config-cmap)#class-map TG1-BestEffort


!--- This command is wrapped to a second line due to spatial reasons:

hostname(config-cmap)#description "This class-map matches all best-effort 
traffic for tunnel-grp1"

hostname(config-cmap)#match tunnel-group tunnel-grp1

hostname(config-cmap)#match flow ip destination-address


hostname(config-cmap)#policy-map qos

hostname(config-pmap)#class TG1-voice

hostname(config-pmap-c)#priority

hostname(config-pmap-c)#class TG1-best-effort

hostname(config-pmap-c)#police output 200000 37500

hostname(config-pmap-c)#class class-default

hostname(config-pmap-c)#police output 1000000 37500


hostname(config-pmap-c)#service-policy qos interface outside

hostname(config)#priority-queue outside

hostname(config-priority-queue)#queue-limit 2048

hostname(config-priority-queue)#tx-ring-limit 256



!

验证 QoS 配置

此部分包括以下主题:

验证 QoS 服务策略配置

要验证当前所有服务策略(包括实现 QoS 策略映射的服务策略),请在特权 EXEC 模式下使用 show service-policy 命令。通过使用 police 或 priority 关键字,您可以将输出限制为包括 police 或 priority 命令的策略。

注意: 这是用来查看优先级和管制统计信息的相同命令。

本示例显示带有 police 关键字的 show service-policy 命令的输出:

hostname#show service-policy police


Global policy:

	Service-policy: global_fw_policy


Interface outside:

	Service-policy: qos

		Class-map: browse

			police Interface outside:

				cir 56000 bps, bc 10500 bytes

				conformed 10065 packets, 12621510 bytes; actions: transmit

				exceeded 499 packets, 625146 bytes; actions: drop

				conformed 5600 bps, exceed 5016 bps

		Class-map: cmap2

			police Interface outside:

				cir 200000 bps, bc 37500 bytes

				conformed 17179 packets, 20614800 bytes; actions: transmit

				exceeded 617 packets, 770718 bytes; actions: drop

				conformed 198785 bps, exceed 2303 bps

本示例显示带有 priority 关键字的 show service-policy 命令的输出:

hostname#show service-policy priority

Global policy:

	Service-policy: global_fw_policy

Interface outside:

	Service-policy: qos

		Class-map: TG1-voice

			Priority:

				Interface outside: aggregate drop 0, aggregate transmit 9383

验证 QoS 策略映射配置

要验证所有策略映射(包括那些包含 police 和 priority 命令的策略映射),请在特权 EXEC 模式下使用 show running-config policy-map 命令。

hostname#show running-config policy-map

对于先前的示例,此命令的输出类似于以下示例:

hostname#show running-config policy-map

!

policy-map test

 class class-default

policy-map inbound_policy

 class ftp-port

  inspect ftp strict inbound_ftp

policy-map qos

 class browse

  police 56000 10500

 class TG1-voice

  priority

 class TG1-BestEffort

  police 200000 37500

验证接口的优先级队列配置

要显示接口的优先级队列配置,请在全局配置模式下输入 show running-config priority-queue 命令。本示例显示名为 test 的接口的优先级队列配置:

hostname(config)#show running-config priority-queue test

priority-queue test

  queue-limit   2048

  tx-ring-limit 256

hostname(config)#

验证 QoS 统计信息

此部分包括以下主题:

验证 QoS 管制统计信息

要验证流量管制的 QoS 统计信息,请在特权 EXEC 模式下使用带有 police 关键字的 show service-policy 命令:

hostname#show service-policy police

注意: 这是用来查看包括 police 关键字的策略配置的相同命令。

例如,以下命令显示包括 police 命令的服务策略和相关统计信息:

hostname#show service-policy police


Global policy:

	Service-policy: global_fw_policy


Interface outside:

	Service-policy: qos

		Class-map: browse

			police Interface outside:

				cir 56000 bps, bc 10500 bytes

				conformed 10065 packets, 12621510 bytes; actions: transmit

				exceeded 499 packets, 625146 bytes; actions: drop

				conformed 5600 bps, exceed 5016 bps

		Class-map: cmap2

			police Interface outside:

				cir 200000 bps, bc 37500 bytes

				conformed 17179 packets, 20614800 bytes; actions: transmit

				exceeded 617 packets, 770718 bytes; actions: drop

				conformed 198785 bps, exceed 2303 bps

验证 QoS 优先级统计信息

要验证实施 priority 命令的服务策略的统计信息,请在特权 EXEC 模式下使用带有 priority 关键字的 show service-policy 命令:

hostname#show service-policy priority

注意: 这是用来查看包括 priority 关键字的策略配置的相同命令。

例如,以下命令显示包括 priority 命令的服务策略和相关统计信息:

hostname#show service-policy priority

Global policy:

	Service-policy: global_fw_policy

Interface outside:

	Service-policy: qos

		Class-map: TG1-voice

			Priority:

				Interface outside: aggregate drop 0, aggregate transmit 9383

注意: “Aggregate drop”表示此接口中的聚合丢弃。“Aggregate transmit”表示通过此接口传输的数据包的总数。

验证 QoS 优先级队列统计信息

要显示接口的优先级队列统计信息,请在特权 EXEC 模式下使用 show priority-queue statistics 命令。结果将显示尽力 (BE) 队列和低延迟队列 (LLQ) 的统计信息。本示例显示如何对名为 test 的接口使用 show priority-queue statistics 命令以及命令的输出:

hostname#show priority-queue statistics test


Priority-Queue Statistics interface test


Queue Type        = BE

!--- "Packets Dropped" denotes the overall number 
!--- of packets that have been dropped in this queue. 


Packets Dropped   = 0

!--- "Packets Transmit" denotes the overall number 
!--- of packets that have been transmitted in this queue. 


Packets Transmit  = 0

!--- "Packets Enqueued" denotes the overall number 
!--- of packets that have been queued in this queue. 

Packets Enqueued  = 0

!--- "Current Q Length" denotes the current depth of this queue. 


Current Q Length  = 0

!--- "Max Q Length" denotes the maximum depth that ever 
!--- occurred in this queue. 

Max Q Length      = 0


Queue Type        = LLQ

Packets Dropped   = 0

Packets Transmit  = 0

Packets Enqueued  = 0

Current Q Length  = 0

Max Q Length      = 0

hostname#

清楚服务策略统计信息

为了清除服务策略统计信息,请使用service-policy命令的结算在特权EXEC模式:

hostname# clear service-policy [global | interface intf ]

默认情况下,此命令清除所有已启用服务策略的所有统计信息。

此示例显示语法清楚service-policy命令

hostname# clear service-policy outside_security_map interface outside

相关的思科支持社区讨论

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


相关信息


Document ID: 91790