• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

10-ACL和QOS配置指导

目录

02-QoS配置

本章节下载 02-QoS配置  (903.75 KB)

02-QoS配置

目  录

1 QoS简介

1.1 概述

1.2 QoS服务模型简介

1.2.1 Best-Effort服务模型

1.2.2 IntServ服务模型

1.2.3 DiffServ服务模型

1.3 QoS技术综述

1.3.1 QoS技术在网络中的位置

1.3.2 QoS技术在设备中的处理顺序

2 QoS配置方式

2.1 配置方式介绍

2.1.1 非QoS策略配置方式

2.1.2 QoS策略配置方式

2.2 QoS策略配置方式的步骤

2.2.1 定义类

2.2.2 定义流行为

2.2.3 定义策略

2.2.4 应用策略

2.2.5 配置接口流速统计时间

2.2.6 开启对业务模块处理后的报文执行出方向QoS功能

2.2.7 QoS策略显示和维护

3 流量监管、流量整形和限速

3.1 流量监管、流量整形和限速简介

3.1.1 流量评估与令牌桶

3.1.2 流量监管

3.1.3 流量整形

3.1.4 限速

3.2 配置流量监管

3.2.1 QoS策略配置方式

3.2.2 非QoS策略配置方式

3.3 配置流量整形

3.3.1 QoS策略配置方式

3.3.2 非QoS策略配置方式

3.4 配置限速

3.4.1 配置接口限速

3.5 流量监管、流量整形和限速显示和维护

3.6 流量监管与流量整形典型配置举例

3.6.1 流量监管与流量整形典型配置举例

3.6.2 IP限速典型配置举例

4 拥塞管理

4.1 拥塞管理简介

4.1.1 拥塞的产生、影响和对策

4.1.2 拥塞管理策略

4.1.3 拥塞管理技术的对比

4.2 配置先进先出队列的长度

4.3 配置优先队列

4.3.1 优先队列配置过程

4.3.2 优先队列配置举例

4.4 配置定制队列

4.5 配置加权公平队列

4.6 配置队列调度策略

4.7 配置基于类的队列

4.7.1 配置概述

4.7.2 定义类

4.7.3 定义流行为

4.7.4 定义策略

4.7.5 应用策略

4.7.6 配置接口最大可用带宽

4.7.7 配置最大预留带宽占可用带宽的百分比

4.7.8 基于类的队列典型配置举例

4.8 配置RTP优先队列

4.9 配置报文信息预提取功能

4.10 拥塞管理的显示和维护

5 拥塞避免

5.1 拥塞避免简介

5.1.1 传统的丢包策略

5.1.2 RED与WRED

5.1.3 WRED和队列机制的关系

5.2 WRED配置说明

5.3 配置WRED

5.3.1 配置过程

5.3.2 配置举例

5.4 WRED显示和维护

6 流量过滤

6.1 流量过滤简介

6.2 配置流量过滤

6.3 流量过滤配置举例

6.3.1 流量过滤配置举例

7 重标记

7.1 重标记简介

7.2 配置重标记

7.3 重标记配置举例

7.3.1 重标记配置举例

8 附录

8.1 附录 A 缩略语表

8.2 附录 B 各种优先级介绍

8.2.1 IP优先级和DSCP优先级

8.2.2 802.1p优先级

8.2.3 802.11e优先级

8.2.4 EXP优先级

 


1 QoS简介

1.1  概述

QoS即服务质量。对于网络业务,影响服务质量的因素包括传输的带宽、传送的时延、数据的丢包率等。在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。

网络资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量的要求。服务质量是相对网络业务而言的,在保证某类业务的服务质量的同时,可能就是在损害其它业务的服务质量。例如,在网络总带宽固定的情况下,如果某类业务占用的带宽越多,那么其他业务能使用的带宽就越少,可能会影响其他业务的使用。因此,网络管理者需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。

下面从QoS服务模型出发,对目前使用最多、最成熟的一些QoS技术逐一进行描述。在特定的环境下合理地使用这些技术,可以有效地提高服务质量。

1.2  QoS服务模型简介

通常QoS提供以下三种服务模型:

·     Best-Effort service(尽力而为服务模型)

·     Integrated service(综合服务模型,简称IntServ)

·     Differentiated service(区分服务模型,简称DiffServ)

1.2.1  Best-Effort服务模型

Best-Effort是一个单一的服务模型,也是最简单的服务模型。对Best-Effort服务模型,网络尽最大的可能性来发送报文。但对时延、可靠性等性能不提供任何保证。

Best-Effort服务模型是网络的缺省服务模型,通过FIFO队列来实现。它适用于绝大多数网络应用,如FTP、E-Mail等。

1.2.2  IntServ服务模型

IntServ是一个综合服务模型,它可以满足多种QoS需求。该模型使用RSVP协议,RSVP运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗资源过多。这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的服务质量区分。RSVP的相关内容请参见“MPLS配置指导”中的“MPLS TE”。

但是,IntServ模型对设备的要求很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。IntServ模型可扩展性很差,难以在Internet核心网络实施。

1.2.3  DiffServ服务模型

DiffServ是一个多服务模型,它可以满足不同的QoS需求。与IntServ不同,它不需要通知网络为每个业务预留资源。区分服务实现简单,扩展性较好。

本文提到的技术都是基于DiffServ服务模型。

1.3  QoS技术综述

QoS技术包括流分类、流量监管、流量整形、限速、拥塞管理、拥塞避免等。下面对常用的技术进行简单地介绍。

1.3.1  QoS技术在网络中的位置

图1-1 常用QoS技术在网络中的位置

 

图1-1所示,流分类、流量监管、流量整形、拥塞管理和拥塞避免主要完成如下功能:

·     流分类:采用一定的规则识别符合某类特征的报文,它是对网络业务进行区分服务的前提和基础。

·     流量监管:对进入或流出设备的特定流量进行监管,以保护网络资源不受损害。可以作用在接口入方向和出方向。

·     流量整形:一种主动调整流的输出速率的流量控制措施,用来使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃,通常作用在接口出方向。

·     拥塞管理:当拥塞发生时制定一个资源的调度策略,决定报文转发的处理次序,通常作用在接口出方向。

·     拥塞避免:监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整队列长度来解除网络的过载,通常作用在接口出方向。

1.3.2  QoS技术在设备中的处理顺序

图1-2 各QoS技术在同一网络设备中的处理顺序

 

图1-2简要描述了各种QoS技术在网络设备中的处理顺序。

(1)     首先通过流分类对各种业务进行识别和区分,它是后续各种动作的基础;

(2)     通过各种动作对特定的业务进行处理。这些动作需要和流分类关联起来才有意义。具体采取何种动作,与所处的阶段以及网络当前的负载状况有关。例如,当报文进入网络时进行流量监管;流出节点之前进行流量整形;拥塞时对队列进行拥塞管理;拥塞加剧时采取拥塞避免措施等。

 


2 QoS配置方式

2.1  配置方式介绍

QoS的配置方式分为QoS策略配置方式和非QoS策略配置方式两种。

有些QoS功能只能使用其中一种方式来配置,有些使用两种方式都可以进行配置。在实际应用中,两种配置方式也可以结合起来使用。

2.1.1  非QoS策略配置方式

非QoS策略配置方式是指不通过QoS策略来进行配置。例如,限速功能可以通过直接在接口上配置来实现。

2.1.2  QoS策略配置方式

QoS策略配置方式是指通过配置QoS策略来实现QoS功能。

QoS策略包含了三个要素:类、流行为、策略。用户可以通过QoS策略将指定的类和流行为绑定起来,灵活地进行QoS配置。

1. 类

类的要素包括:类的名称和类的规则。

用户可以通过命令定义一系列的规则来对报文进行分类。

2. 流行为

流行为用来定义针对报文所做的QoS动作。

流行为的要素包括:流行为的名称和流行为中定义的动作。

用户可以通过命令在一个流行为中定义多个动作。

3. 策略

策略用来将指定的类和流行为绑定起来,对符合分类条件的报文执行流行为中定义的动作。

策略的要素包括:策略名称、绑定在一起的类和流行为的名称。

用户可以在一个策略中定义多个类与流行为的绑定关系。

2.2  QoS策略配置方式的步骤

图2-1所示:

图2-1 QoS策略配置方式的步骤

 

2.2.1  定义类

定义类首先要创建一个类名称,然后在此类视图下配置其匹配规则。

表2-1 定义类

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

 

2.2.2  定义流行为

定义流行为首先需要创建一个流行为名称,然后可以在此流行为视图下根据需要配置相应的流行为。每个流行为由一组QoS动作组成。

表2-2 定义流行为

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置流行为的动作

流行为就是对应符合流分类的报文做出相应的QoS动作,例如流量监管、流量过滤、重标记等,具体情况请参见本文相关章节

缺省情况下,没有配置流行为的动作

 

2.2.3  定义策略

1. 配置父策略

在策略视图下为类指定对应的流行为。以某种匹配规则将流区分为不同的类,再结合不同的流行为就能很灵活的实现各种QoS功能。

表2-3 定义策略

操作

命令

说明

进入系统视图

system-view

-

定义一个策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

为类指定流行为

classifier classifier-name behavior behavior-name]

缺省情况下,没有为类指定流行为

 

2. 配置子策略

提示

·     如果子策略中配置了CBQ,那么父策略中必须配置GTS,并且配置的父策略GTS带宽必须大于等于子策略CBQ带宽,否则配置失败。

·     嵌套策略时,如果父策略的GTS配置采用百分比形式,则子策略CBQ带宽配置必须采用百分比形式,不允许采用绝对值形式;如果父策略的GTS配置采用绝对值形式,则子策略CBQ带宽配置既可以采用百分比形式,也可以采用绝对值形式。

·     子策略中不允许配置GTS。

 

通过在流行为视图下应用子策略,可以实现策略嵌套功能。即由traffic classifier命令定义的某一类流量,除了执行父策略中定义的行为外,还由子策略再次对该类流量进行分类,并执行子策略中定义的行为。

表2-4 配置子策略

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

退回系统视图

quit

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置子策略

traffic-policy policy-name

缺省情况下,没有配置嵌套策略

退出流行为视图

quit

-

定义一个策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

在策略中为类指定采用的流行为

classifier classifier-name behavior behavior-name

缺省情况下,没有为类指定流行为

 

2.2.4  应用策略

QoS策略支持以下应用方式:

·     基于接口应用QoS策略:QoS策略对通过接口接收或发送的流量生效。

·     基于全局应用QoS策略:QoS策略对所有流量生效。

·     基于控制平面应用QoS策略:QoS策略对通过控制平面接收的流量生效。

·     基于上线用户应用QoS策略:QoS策略对通过上线用户接收或发送的流量生效。

QoS策略应用后,用户仍然可以修改QoS策略中的流分类规则和流行为,以及二者的对应关系。当流分类规则中匹配的是ACL时,允许删除或修改该ACL(包括向该ACL中添加、删除和修改规则)。

1. 基于接口应用QoS策略

一个策略可以应用于多个接口。接口的每个方向(出和入两个方向)只能应用一个策略。

如果QoS策略应用在接口的出方向,则QoS策略对本地协议报文不起作用。本地协议报文是设备内部发起的某些报文,它是维持设备正常运行的重要协议报文。为了确保这些报文能够被不受影响的发送出去,即便在接口的出方向应用了QoS策略,本地协议报文也不会受到QoS策略的限制,从而降低了因配置QoS而误将这些报文丢弃或进行其他处理的风险。一些常见的本地协议报文如下:链路维护报文、IS-IS、OSPF、RIP、BGP、LDP、RSVP、SSH等。

表2-5 在接口上应用策略

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

在接口上应用QoS策略

qos apply policy policy-name { inbound | outbound }

缺省情况下,没有在接口上应用QoS策略

 

2. 基于全局应用QoS策略

提示

当某个单板资源不足导致全局应用QoS策略失败时,用户可以执行undo qos apply policy global命令进行手工删除。

 

基于全局应用QoS策略可以方便对设备上的所有流量进行管理。

表2-6 基于全局应用QoS策略

操作

命令

说明

进入系统视图

system-view

-

全局应用QoS策略

qos apply policy policy-name global { inbound | outbound }

缺省情况下,没有在全局应用QoS策略

 

3. 基于控制平面应用QoS策略

提示

当资源不足导致控制平面应用QoS策略失败时,用户可以执行undo qos apply policy命令进行手工删除。

 

设备上存在数据平面和控制平面:

·     数据平面(Data Plane):是指对报文进行收发、交换的处理单元,它的主要工作是转发报文。在设备上,与之相对应的核心物理实体就是各种专用转发芯片,它们有极高的处理速度和很强的数据吞吐能力。

·     控制平面(Control Plane):是指运行大部分路由交换协议进程的处理单元,它的主要工作是进行协议报文的解析和协议的计算。在设备上,与之相对应的核心物理实体就是CPU,它具备灵活的报文处理能力,但数据吞吐能力有限。

数据平面接收到无法识别或处理的报文会送到控制平面进行进一步处理。如果上送控制平面的报文速率超过了控制平面的处理能力,那么上送控制平面的报文会得不到正确转发或及时处理,从而影响协议的正常运行。

为了解决此问题,用户可以把QoS策略应用在控制平面上,通过对上送控制平面的报文进行过滤、限速等QoS处理,达到保护控制平面正常报文的收发、维护控制平面正常处理状态的目的。

缺省情况下,设备会在控制平面上应用预定义的QoS策略,并默认生效。预定义的QoS策略中通过协议类型或者协议组类型来标识各种上送控制平面的报文类型,用户也可以在流分类视图下通过if-match命令引用这些协议类型或者协议组类型来进行报文分类,然后根据需要为这些报文重新配置流行为。系统预定义的QoS策略信息可以通过display qos policy control-plane pre-defined命令查看。

表2-7 应用控制平面策略

操作

命令

说明

进入系统视图

system-view

-

进入控制平面视图(独立运行模式)

control-plane

-

进入控制平面视图(IRF模式)

control-plane slot slot-number

-

在控制平面上应用QoS策略

qos apply policy policy-name inbound

缺省情况下,没有在控制平面上应用QoS策略

 

4. 基于上线用户应用QoS策略

一个策略可以应用于多个上线用户。上线用户的每个方向(发送和接收两个方向)只能应用一个策略,如果用户想修改某方向上应用的策略,必须先取消原先的配置,然后再配置新的策略。

表2-8 基于上线用户应用QoS策略

操作

命令

说明

进入系统视图

system-view

-

进入User Profile视图

user-profile profile-name

进入User Profile视图后,下面的配置只有在下发驱动成功后才生效

在User Profile下应用QoS策略

qos apply policy policy-name { inbound | outbound }

inbound是对设备接收的上线用户流量(即上线用户发送的流量)应用策略;outbound是对设备的上线用户流量(即上线用户接收的流量)应用策略

 

2.2.5  配置接口流速统计时间

提示

 

我们可以统计经过QoS策略流分类后每类报文的发送和丢弃速率。假设流速统计时间为t(t默认为5分钟),则系统将统计最近t时间内每类报文发送和丢弃的平均速率,且每t/5分钟刷新一次统计速率。流速统计的结果可以通过命令display qos policy interface查看。

表2-9 配置接口流速统计时间

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口流速统计时间

qos flow-interval interval

缺省情况下,接口流速统计时间为5分钟

 

2.2.6  开启对业务模块处理后的报文执行出方向QoS功能

配置接口QoS功能后,接口优先执行QoS流分类,然后交由具体的业务模块进行处理,最后执行QoS动作,但对于像NAT业务模块处理后的报文,QoS动作只能作用于NAT前QoS分类的报文。如果希望对业务模块处理后的报文执行QoS流分类和QoS动作,则需要开启本功能。

表2-10 开启对业务模块处理后的报文执行出方向QoS功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

开启对业务模块处理后的报文执行出方向QoS功能

qos post-classify outbound

缺省情况下,设备仅对业务模块处理前的报文执行QoS

目前本功能仅对NAT处理后的报文生效,如果对NAT转换后的报文执行出方向QoS,则必须配置本命令

 

2.2.7  QoS策略显示和维护

在任意视图下执行display命令可以显示QoS策略的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除QoS策略的统计信息。

表2-11 QoS策略显示和维护

操作

命令

显示类的配置信息(独立运行模式)

display traffic classifier { system-defined | user-defined } [ classifier-name ]

显示类的配置信息(IRF模式)

display traffic classifier { system-defined | user-defined } [ classifier-name ] [ slot slot-number ]

显示流行为的配置信息(独立运行模式)

display traffic behavior { system-defined | user-defined } [ behavior-name ]

显示流行为的配置信息(IRF模式)

display traffic behavior { system-defined | user-defined } [ behavior-name ] [ slot slot-number ]

显示QoS策略的配置信息(独立运行模式)

display qos policy { system-defined | user-defined } [ policy-name [ classifier classifier-name ] ]

显示QoS策略的配置信息(IRF模式)

display qos policy { system-defined | user-defined } [ policy-name [ classifier classifier-name ] ] [ slot slot-number ]

显示接口上QoS策略的配置信息和运行情况(独立运行模式)

display qos policy interface [ interface-type interface-number ] [ inbound | outbound ]

显示接口上QoS策略的配置信息和运行情况(IRF模式)

display qos policy interface [ interface-type interface-number ] [ slot slot-number ] [ inbound | outbound ]

显示用户上线后User Profile下应用的QoS策略的信息和运行情况(独立运行模式)

display qos policy user-profile [ name profile-name ] [ user-id user-id ] [ inbound | outbound ]

显示用户上线后User Profile下应用的QoS策略的信息和运行情况(IRF模式)

display qos policy user-profile [ name profile-name ] [ user-id user-id ] [ slot slot-number ] [ inbound | outbound ]

显示基于全局应用QoS策略的信息(独立运行模式)

display qos policy global [ inbound | outbound ]

显示基于全局应用QoS策略的信息(IRF模式)

display qos policy global [ slot slot-number ] [ inbound | outbound ]

显示基于控制平面应用QoS策略的信息(独立运行模式)

display qos policy control-plane

显示基于控制平面应用QoS策略的信息(IRF模式)

display qos policy control-plane slot slot-number

显示系统预定义的控制平面应用QoS策略的信息(独立运行模式)

display qos policy control-plane pre-defined

显示系统预定义的控制平面应用QoS策略的信息(IRF模式)

display qos policy control-plane pre-defined [ slot slot-number ]

清除全局应用QoS策略的统计信息

reset qos policy global [ inbound | outbound ]

清除控制平面应用QoS策略的统计信息(独立运行模式)

reset qos policy control-plane

清除控制平面应用QoS策略的统计信息(IRF模式)

reset qos policy control-plane slot slot-number

 


3 流量监管、流量整形和限速

3.1  流量监管、流量整形和限速简介

如果不限制用户发送的流量,那么大量用户不断突发的数据只会使网络更拥挤。为了使有限的网络资源能够更好地发挥效用,更好地为更多的用户服务,必须对用户的流量加以限制。比如限制每个时间间隔某个流只能得到承诺分配给它的那部分资源,防止由于过分突发所引发的网络拥塞。

流量监管、流量整形和限速可以实现流量的速率限制功能,而要实现此功能就必须对通过设备的流量进行度量。一般采用令牌桶(Token Bucket)对流量进行度量。

3.1.1  流量评估与令牌桶

1. 令牌桶的特点

令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。

2. 用令牌桶评估流量

在用令牌桶评估流量规格时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合这个规格,否则称为不符合或超标。

评估流量时令牌桶的参数包括:

·     平均速率:向桶中放置令牌的速率,即允许的流的平均速度。通常配置为CIR。

·     突发尺寸:令牌桶的容量,即每次突发所允许的最大的流量尺寸。通常配置为CBS,突发尺寸必须大于最大报文长度。

每到达一个报文就进行一次评估。每次评估,如果桶中有足够的令牌可供使用,则说明流量控制在允许的范围内,此时要从桶中取走满足报文的转发的令牌;否则说明已经耗费太多令牌,流量超标了。

3. 复杂评估

为了评估更复杂的情况,实施更灵活的调控策略,可以配置两个令牌桶(分别称为C桶和E桶)。以流量监管为例,分为单速率单桶双色算法、单速率双桶三色算法和双速率双桶三色算法。

(1)     单速率单桶双色算法

·     CIR:表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;

·     CBS:表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。

每次评估时,依据下面的情况,可以分别实施不同的流控策略:

·     如果C桶有足够的令牌,报文被标记为green,即绿色报文;

·     如果C桶令牌不足,报文被标记为red,即红色报文。

(2)     单速率双桶三色算法

·     CIR:表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;

·     CBS:表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;

·     EBS:表示E桶的容量的增量,即E桶瞬间能够通过的超出突发流量,取值不为0。E桶的容量等于CBS与EBS的和。

每次评估时,依据下面的情况,可以分别实施不同的流控策略:

·     如果C桶有足够的令牌,报文被标记为green,即绿色报文;

·     如果C桶令牌不足,但E桶有足够的令牌,报文被标记为yellow,即黄色报文;

·     如果C桶和E桶都没有足够的令牌,报文被标记为red,即红色报文。

(3)     双速率双桶三色算法

·     CIR:表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;

·     CBS:表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;

·     PIR:表示向E桶中投放令牌的速率,即E桶允许传输或转发报文的最大速率;

·     EBS:表示E桶的容量,即E桶瞬间能够通过的超出突发流量。

每次评估时,依据下面的情况,可以分别实施不同的流控策略:

·     如果C桶有足够的令牌,报文被标记为green,即绿色报文;

·     如果C桶令牌不足,但E桶有足够的令牌,报文被标记为yellow,即黄色报文;

·     如果C桶和E桶都没有足够的令牌,报文被标记为red,即红色报文。

3.1.2  流量监管

说明

 

流量监管就是对流量进行控制,通过监督进入网络的流量速率,对超出部分的流量进行“惩罚”,使进入的流量被限制在一个合理的范围之内,以保护网络资源和运营商的利益。例如可以限制HTTP报文不能占用超过50%的网络带宽。如果发现某个连接的流量超标,流量监管可以选择丢弃报文,或重新配置报文的优先级。

图3-1 TP示意图

 

流量监管广泛的用于监管进入Internet服务提供商ISP的网络流量。流量监管还包括对所监管流量的流分类服务,并依据不同的评估结果,实施预先设定好的监管动作。这些动作可以是:

·     转发:比如对评估结果为“符合”的报文继续转发。

·     丢弃:比如对评估结果为“不符合”的报文进行丢弃。

·     改变优先级并转发:比如对评估结果为“符合”的报文,将其优先级进行重标记后再进行转发。

·     改变优先级并进入下一级监管:比如对评估结果为“符合”的报文,将其优先级进行重标记后再进入下一级的监管。

·     进入下一级的监管:流量监管可以进行分级,每级关注和监管更具体的目标。

3.1.3  流量整形

说明

 

流量整形是一种主动调整流量输出速率的措施。一个典型应用是基于下游网络节点的流量监管指标来控制本地流量的输出。

流量整形与流量监管的主要区别在于:

·     流量整形对流量监管中需要丢弃的报文进行缓存——通常是将它们放入缓冲区或队列内,如图3-2所示。当令牌桶有足够的令牌时,再均匀的向外发送这些被缓存的报文。

·     流量整形可能会增加延迟,而流量监管几乎不引入额外的延迟。

图3-2 流量整形示意图

 

例如,在图3-3所示的应用中,设备Router A向Router B发送报文。Router B要对Router A发送来的报文进行流量监管,对超出规格的流量直接丢弃。

图3-3 流量整形的应用

 

为了减少报文的无谓丢失,可以在Router A的出口对报文进行流量整形处理。将超出流量整形特性的报文缓存在Router A中。当可以继续发送下一批报文时,流量整形再从缓冲队列中取出报文进行发送。这样,发向Router B的报文将都符合Router B的流量规定。

3.1.4  限速

说明

 

利用限速可以在一个接口上限制发送报文(包括紧急报文)的总速率。

限速也是采用令牌桶进行流量控制。假如在设备的某个接口上配置了限速,所有经由该接口发送的报文首先要经过限速的令牌桶进行处理。如果令牌桶中有足够的令牌,则报文可以发送;否则,报文将进入QoS队列进行拥塞管理。这样,就可以对该接口的报文流量进行控制。

图3-4 限速处理过程示意图

 

 

由于采用了令牌桶控制流量,当令牌桶中存有令牌时,可以允许报文的突发性传输;当令牌桶中没有令牌时,报文必须等到桶中生成了新的令牌后才可以继续发送。这就限制了报文的流量不能大于令牌生成的速度,达到了限制流量,同时允许突发流量通过的目的。

与流量监管相比,限速能够限制所有报文。当用户只要求对所有报文限速时,使用限速比较简单。

3.2  配置流量监管

流量监管的配置有两种方式:QoS策略配置方式和非QoS策略配置方式。

如果接口上同时采用了QoS策略配置方式和非QoS策略配置方式配置了流量监管,那么只有前者会生效。

3.2.1  QoS策略配置方式

表3-1 配置流量监管(QoS策略配置方式)

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

退回系统视图

quit

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置流量监管动作

car cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

car cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ green action | red action | yellow action ] *

缺省情况下,没有配置流量监管动作

退回系统视图

quit

-

定义一个策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

在策略中为类指定采用的流行为

classifier classifier-name behavior behavior-name

缺省情况下,没有为类指定流行为

退回系统视图

quit

-

应用QoS策略

基于接口

2.2.4  1. 基于接口应用QoS策略

三者选其一

缺省情况下,没有应用QoS策略

基于全局

2.2.4  2. 基于全局应用QoS策略

基于控制平面

2.2.4  3. 基于控制平面应用QoS策略

 

3.2.2  非QoS策略配置方式

1. 基于CAR列表的流量监管配置

表3-2 基于CAR列表的流量监管配置

操作

命令

说明

进入系统视图

system-view

-

配置CAR列表

qos carl carl-index { dscp dscp-list | mac mac-address | mpls-exp mpls-exp-value | precedence precedence-value | { destination-ip-address | source-ip-address } { range start-ip-address to end-ip-address | subnet ip-address mask-length } [ per-address [ shared-bandwidth ] ] }

缺省情况下,没有配置CAR列表

进入接口视图

interface interface-type interface-number

-

在接口应用基于CAR列表的CAR策略

qos car { inbound | outbound } carl carl-index cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

qos car { inbound | outbound } carl carl-index cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ green action | red action | yellow action ] *

缺省情况下,接口上没有配置CAR

 

2. 基于ACL的流量监管配置

表3-3 基于ACL的流量监管配置

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

在接口应用基于ACL规则的CAR策略

qos car { inbound | outbound } acl [ ipv6 ] acl-number cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

qos car { inbound | outbound } acl [ ipv6 ] acl-number cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ green action | red action | yellow action ] *

缺省情况下,接口上没有配置CAR

 

3. 适配所有流的流量监管配置

表3-4 适配所有流的流量监管配置

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

在接口应用CAR策略

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ green action | red action | yellow action ] *

缺省情况下,接口上没有配置CAR

 

4. 基于上线用户的流量监管配置

使用User Profile之后,可以基于用户进行流量监管,只要用户上线,认证服务器会自动下发相应的User Profile(配置了CAR策略),当用户下线,系统会自动取消相应的配置,不需要再进行手工调整。

表3-5 基于上线用户的流量监管配置

操作

命令

说明

进入系统视图

system-view

-

进入User Profile视图

user-profile profile-name

进入User Profile视图后,下面进行的配置只有在用户成功上线后才生效

User Profile下应用CAR策略

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ]

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size pir peak-information-rate [ ebs excess-burst-size ]

数据流量符合承诺速率时,允许数据包通过;数据流量不符合承诺速率时,丢弃数据包

 

5. 基于家庭用户的流量监管配置

使用Session Group Profile之后,可以基于用户进行流量监管,只要用户上线,认证服务器会自动下发相应的Session Group Profile(配置了CAR策略),当用户下线,系统会自动取消相应的配置,不需要再进行手工调整。目前只支持出方向。

表3-6 基于家庭用户的流量监管配置

操作

命令

说明

进入系统视图

system-view

-

进入Session Group Profile

视图

user-profile profile-name type session-group

进入Session Group Profile视图后,下面进行的配置只有在用户成功上线后才生效

Session Group Profile下应用CAR策略

qos car outbound any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ]

qos car outbound any cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate  [ ebs excess-burst-size ]

数据流量符合承诺速率时,允许数据包通过;数据流量不符合承诺速率时,丢弃数据包

 

3.3  配置流量整形

3.3.1  QoS策略配置方式

表3-7 配置流量整形(QoS策略配置方式)

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

退回系统视图

quit

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置流量整形动作

gts cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ queue-length queue-length ]

gts percent cir cir-percent [ cbs cbs-time [ ebs ebs-time ] ] [ queue-length queue-length ]

缺省情况下,没有配置流量整形动作

退回系统视图

quit

-

定义一个策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

在策略中为类指定采用的流行为

classifier classifier-name behavior behavior-name

缺省情况下,没有为类指定流行为

退回系统视图

quit

-

应用QoS策略

基于接口

2.2.4  1. 基于接口应用QoS策略

二者选其一

缺省情况下,没有应用QoS策略

基于控制平面

2.2.4  3. 基于控制平面应用QoS策略

 

3.3.2  非QoS策略配置方式

非QoS策略流量整形配置分为以下几种:

·     基于ACL的流量整形配置:为匹配某一ACL的流设置整形参数,使用不同的ACL可以为不同的流设置流量整形参数。

·     适配所有流的流量整形配置:为所有的流设置流量整形参数。

1. 基于ACL的流量整形配置

表3-8 基于ACL的流量整形配置

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

在接口配置流量整形

qos gts acl [ ipv6 ] acl-number cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ queue-length queue-length ]

缺省情况下,接口上没有配置流量整形

 

2. 适配所有流的流量整形配置

表3-9 适配所有流的流量整形配置

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

在接口配置流量整形

qos gts any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ queue-length queue-length ]

缺省情况下,接口上没有配置流量整形

 

3.4  配置限速

3.4.1  配置接口限速

配置接口限速就是限制接口向外发送数据的速率。

表3-10 配置接口限速

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口限速

qos lr outbound cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ]

缺省情况下,接口上没有配置接口限速

 

3.5  流量监管、流量整形和限速显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后流量监管、流量整形和接口限速的运行情况,通过查看显示信息验证配置的效果。

表3-11 流量监管、流量整形和限速显示和维护

操作

命令

显示接口的流量监管配置情况和统计信息

display qos car interface [ interface-type interface-number ]

显示CAR列表(独立运行模式)

display qos carl [ carl-index ]

显示CAR列表(IRF模式)

display qos carl [ carl-index ] [ slot slot-number ]

显示流量监管的相关配置信息

display traffic behavior user-defined [ behavior-name ]

显示接口的流量整形配置情况和统计信息

display qos gts interface [ interface-type interface-number ]

显示限速配置情况和统计信息

display qos lr interface [ interface-type interface-number ]

 

3.6  流量监管与流量整形典型配置举例

3.6.1  流量监管与流量整形典型配置举例

1. 配置需求

·     设备Router A通过接口GigabitEthernet1/0/3和设备Router B的接口GigabitEthernet1/0/1互连

·     Server、Host A、Host B可经由Router A和Router B访问Internet

·     Server、Host A与Router A的GigabitEthernet1/0/1接口在同一网段

·     Host B与Router A的GigabitEthernet1/0/2接口在同一网段

要求在设备Router A上对接口GigabitEthernet1/0/1接收到的源自Server和Host A的报文流分别实施流量控制如下:

·     来自Server的报文流量约束为54kbps,流量小于54kbps时可以正常发送,流量超过54kbps时则将违规报文的优先级设置为0后进行发送;

·     来自Host A的报文流量约束为8kbps,流量小于8kbps时可以正常发送,流量超过8kbps时则丢弃违规报文;

对设备Router B的GigabitEthernet1/0/1和GigabitEthernet1/0/2接口收发报文有如下要求:

·     Router B的GigabitEthernet1/0/1接口接收报文的总流量限制为500kbps,如果超过流量限制则将违规报文丢弃;

·     经由Router B的GigabitEthernet1/0/2接口进入Internet的报文流量限制为1000kbps,如果超过流量限制则将违规报文丢弃。

2. 组网图

图3-5 流量监管、流量整形配置组网图

 

3. 配置步骤

(1)     配置设备Router A

# 在GigabitEthernet1/0/3接口上对发送的报文进行流量整形(对超过500kbps的报文流进行整形),以降低在Router B接口GigabitEthernet1/0/1处的丢包率。

<RouterA> system-view

[RouterA] interface gigabitethernet 1/0/3

[RouterA-GigabitEthernet1/0/3] qos gts any cir 500

[RouterA-GigabitEthernet1/0/3] quit

# 配置ACL规则列表,分别匹配来源于Server和Host A的报文流。

[RouterA] acl basic 2001

[RouterA-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0

[RouterA-acl-ipv4-basic-2001] quit

[RouterA] acl basic 2002

[RouterA-acl-ipv4-basic-2002] rule permit source 1.1.1.2 0

[RouterA-acl-ipv4-basic-2002] quit

# 在GigabitEthernet1/0/1接口上对接收到的不同报文流进行相应流量控制。

[RouterA] interface gigabitethernet 1/0/1

[RouterA-GigabitEthernet1/0/1] qos car inbound acl 2001 cir 54 cbs 4000 ebs 0 green pass red remark-prec-pass 0

[RouterA-GigabitEthernet1/0/1] qos car inbound acl 2002 cir 8 cbs 1875 ebs 0 green pass red discard

[RouterA-GigabitEthernet1/0/1] quit

(2)     配置设备Router B

# 在GigabitEthernet1/0/1接口上对接收的报文进行流量控制,报文流量不能超过500kbps,如果超过流量限制则将违规报文丢弃。

<RouterB> system-view

[RouterB] interface gigabitethernet 1/0/1

[RouterB-GigabitEthernet1/0/1] qos car inbound any cir 500 cbs 32000 ebs 0 green pass red discard

[RouterB-GigabitEthernet1/0/1] quit

# 在GigabitEthernet1/0/2接口上对发送的报文进行流量控制,报文流量不能超过1Mbps,如果超过流量限制则将违规报文丢弃。

[RouterB] interface gigabitethernet 1/0/2

[RouterB-GigabitEthernet1/0/2] qos car outbound any cir 1000 cbs 65000 ebs 0 green pass red discard

3.6.2  IP限速典型配置举例

1. 配置需求

要求在设备Router上对接口GigabitEthernet1/0/2接收到的报文流进行限速:对HostA~HostZ(源地址属于IP地址段2.1.1.1~2.1.1.100)进行IP限速,逐IP地址流量限速5kbps,网段内各IP地址的流量共享剩余带宽。

2. 组网图

图3-6 IP限速配置组网图

 

3. 配置步骤

# 在接口GigabitEthernet1/0/2上对源地址属于IP地址段2.1.1.1~2.1.1.100内所有PC进行限速,网段内各IP地址的流量共享剩余带宽。

<Router> system-view

[Router] qos carl 1 source-ip-address range 2.1.1.1 to 2.1.1.100 per-address shared-bandwidth

[Router] interface gigabitethernet 1/0/2

[Router-GigabitEthernet1/0/2] qos car inbound carl 1 cir 500 cbs 1875 ebs 0 green pass red discard

[Router-GigabitEthernet1/0/2] quit

 


4 拥塞管理

4.1  拥塞管理简介

4.1.1  拥塞的产生、影响和对策

所谓拥塞,是指当前供给资源相对于正常转发处理需要资源的不足,从而导致服务质量下降的一种现象。

在复杂的Internet分组交换环境下,拥塞极为常见。以图4-1中的两种情况为例:

图4-1 流量拥塞示意图

 

拥塞有可能会引发一系列的负面影响:

l     拥塞增加了报文传输的延迟和抖动,可能会引起报文重传,从而导致更多的拥塞产生。

l     拥塞使网络的有效吞吐率降低,造成网络资源的利用率降低。

l     拥塞加剧会耗费大量的网络资源(特别是存储资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃。

在分组交换以及多用户业务并存的复杂环境下,拥塞又是不可避免的,因此必须采用适当的方法来解决拥塞。

拥塞管理的中心内容就是当拥塞发生时如何制定一个资源的调度策略,以决定报文转发的处理次序。

4.1.2  拥塞管理策略

对于拥塞管理,一般采用队列技术,使用一个队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。每种队列算法都是用以解决特定的网络流量问题,并对带宽资源的分配、延迟、抖动等有着十分重要的影响。

拥塞管理的处理包括队列的创建、报文的分类、将报文送入不同的队列、队列调度等。

下面介绍几种常用的队列。

1. FIFO队列

图4-2 先入先出队列示意图

 

图4-2所示,FIFO按照时间到达的先后决定分组的转发次序,先进的先出,后进的后出,不需要进行流分类和队列调度,FIFO关心的只是队列的长度,队列的长度对延迟和丢包率的影响。用户的业务流在某个设备能够获得的资源取决于分组的到达时机及当时的负载情况。Best-Effort报文转发方式采用的就是FIFO的排队策略。

如果设备的每个端口只有一个基于FIFO的输入或输出队列,那么恶性的应用可能会占用所有的网络资源,严重影响关键业务数据的传送。所以还需要配置一些其他的队列调度机制与FIFO配合对流量进行调度和拥塞控制。

每个队列内部报文的发送次序缺省是FIFO

2. PQ队列

图4-3 PQ队列示意图

 

 

PQ队列是针对关键业务应用设计的。关键业务有一个重要的特点,即在拥塞发生时要求优先获得服务以减小响应的延迟。PQ可以根据网络协议(比如IP、IPX)、数据流入接口、报文长度、源地址/目的地址等灵活地为数据流指定优先次序。如图4-3所示,PQ的4个队列分别为高优先队列(top)、中优先队列(middle)、正常优先队列(normal)和低优先队列(bottom)。所有报文将被分成4类,并按所属类别进入4个队列中的一个。缺省情况下,数据流进入normal队列。每个队列内部又遵循FIFO原则。

在队列调度时,PQ严格按照优先级从高到低的次序,优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。这样,将关键业务的分组放入较高优先级的队列,将非关键业务的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。

PQ的缺点是:拥塞发生时,如果较高优先级队列中长时间有分组存在,那么低优先级队列中的报文将一直得不到服务。

3. CQ队列

图4-4 CQ队列示意图

 

CQ队列包含16个队列,1到16号队列是用户队列,如图4-4所示。用户可以配置流分类的规则,指定16个队列占用接口带宽的比例关系。

在队列调度时,采用轮询的方式按照预先配置的轮询字节数依次从1到16号用户队列中取出一定数量的分组发送出去。这样,就可以使不同业务的分组获得不同的带宽,既可以保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。每个队列所占的带宽比例为:该队列的轮询字节数/所有队列的轮询字节数之和。缺省情况下,数据流进入1号队列。

CQ队列的另一个优点是:可根据业务的繁忙程度分配带宽,适用于对带宽有特殊需求的应用。虽然16个用户队列的调度是轮询进行的,但对每个队列不是固定地分配服务时间片——如果某个队列为空,那么马上换到下一个队列调度。因此,当没有某些类别的报文时,CQ调度机制能自动增加现存类别的报文可占的带宽。

4. WFQ队列

图4-5 WFQ队列示意图

 

在介绍加权公平队列前,先要理解FQ队列。FQ队列是为了公平地分享网络资源,尽可能使所有流的延迟和抖动达到最优而推出的。它照顾了各方面的利益,主要表现在:

·     不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。

·     短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,应当顾及短报文的利益,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。

FQ相比,WFQ在计算报文调度次序时增加了优先权方面的考虑。从统计上,WFQ使高优先权的报文获得优先调度的机会多于低优先权的报文。WFQ能够按流的“会话”信息(协议类型、源和目的TCP或UDP端口号、源和目的IP地址、ToS域中的优先级位等)自动进行流分类,并且尽可能多地提供队列,以将每个流均匀地放入不同队列中,从而在总体上均衡各个流的延迟。在出队的时候,WFQ按流的优先级来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。

例如:接口中当前共有5个流,它们的优先级分别为0、1、2、3、4,则带宽总配额为所有(流的优先级+1)的和,即1+2+3+4+5=15。

每个流所占带宽比例为:(自己的优先级数+1)/(所有(流的优先级+1)的和)。即每个流可得的带宽分别为:1/15,2/15,3/15,4/15,5/15。

由于WFQ在拥塞发生时能均衡各个流的延迟和抖动,所以WFQ在一些特殊场合得到了有效的应用。比如在使用RSVP协议的保证型业务中,通常就是采用WFQ作为调度策略;在流量整形中,也采用WFQ调度缓存的报文。

5. CBQ队列

图4-6 基于类的队列示意图

 

CBQ是对WFQ功能的扩展,为用户提供了定义类的支持。在网络拥塞时,CBQ根据用户定义的类规则对报文进行匹配,并使其进入相应的队列,在入队列之前必须进行拥塞避免机制和带宽限制的检查。在报文出队列时,加权公平调度每个类对应的队列中的报文。

CBQ包括以下队列:

l     紧急队列:CBQ提供一个紧急队列,紧急报文入该队列,该队列采用FIFO调度,没有带宽限制。

l     SP:即严格优先级队列。SP队列是针对关键业务类型应用设计的。关键业务有一个重要的特点,即在拥塞发生时要求优先获得服务以减小响应的延迟。通过引入SP队列,CBQ可以提供不受带宽检查限制的严格优先服务。最多支持64个SP队列。

l     LLQ:即EF队列。如果CBQ加权公平对待所有类的队列,实时业务报文(包括语音与视频业务,对延迟比较敏感)就可能得不到及时发送。为此引入一个EF队列,为实时业务报文提供严格优先发送服务。LLQ将严格优先队列机制与CBQ结合起来使用,用户在定义类时可以指定其享受严格优先服务,这样的类称作优先类。所有优先类的报文将进入同一个优先队列,在入队列之前需对各类报文进行带宽限制的检查。报文出队列时,将首先发送优先队列中的报文,直到发送完后才发送其他类对应的队列的报文。为了不让其他队列中的报文延迟时间过长,在使用LLQ时将会为每个优先类指定可用最大带宽,该带宽值用于拥塞发生时监管流量。如果拥塞未发生,优先类允许使用超过分配的带宽。如果拥塞发生,优先类超过分配带宽的数据包将被丢弃。最多支持64个EF队列。

l     BQ:即AF队列。为AF业务提供严格、精确的带宽保证,并且保证各类AF业务之间按一定的比例关系进行队列调度。最多支持64个AF队列。

l     缺省队列:一个WFQ队列,用来支撑BE业务,使用接口剩余带宽进行发送。

系统在为报文匹配规则时,规则如下:

l     先匹配优先类,然后再匹配其他类;

l     对多个优先类,按照配置顺序逐一匹配;

l     对其他类,也是按照配置顺序逐一匹配;

l     对类中多个规则,按照配置顺序逐一匹配。

6. RTP优先队列

RTP优先队列是一种保证实时业务(包括语音与视频业务)服务质量的简单的队列技术。其原理就是将承载语音或视频的RTP报文送入高优先级队列,使其得到优先发送,保证时延和抖动降低为最低限度,从而保证了语音或视频这种对时延敏感业务的服务质量。

图4-7 RTP优先队列示意图

 

图4-7所示,RTP优先队列将RTP报文送入一个具有较高优先级的队列。RTP报文是端口号在一定范围内为偶数的UDP报文,端口号的范围可以配置。RTP优先队列可以同其他队列(包括FIFO、PQ、CQ和WFQ)结合使用,而它的优先级是最高的。

说明

RTP和CBQ互斥,不能结合使用。CBQ可以通过LLQ来保证实时业务数据的转发。

 

4.1.3  拥塞管理技术的对比

设备上提供了以上拥塞管理技术,突破了传统IP设备的单一FIFO拥塞管理策略,提供了强大的QoS能力,使得IP设备可以满足不同业务所要求的不同服务质量的要求。为了用户更好地利用拥塞管理技术,现对各种队列技术做一比较。

表4-1 拥塞管理技术对比

类型

队列数

优点

缺点

FIFO

1

·     不需要配置,易于使用

·     处理简单,延迟小

·     所有的报文均进入一个“先进先出”的队列,发送报文所占用的带宽、延迟时间、丢失的概率均由报文到达队列的先后顺序决定

·     对不匹配的数据源(即没有流控机制的流,如UDP报文发送)无约束力,不匹配的数据源会造成匹配的数据源(如TCP报文发送)带宽受损失

·     对时间敏感的实时应用(如VoIP)的延迟得不到保证

PQ

4

可对优先级高的业务提供绝对的优先,对时间敏感的实时应用(如VoIP)的延迟可以得到保证

·     需配置,处理速度慢

·     如果较高优先级队列中总有报文存在,那么低优先级队列中的报文将一致得不到服务

CQ

16

·     可对不同业务的报文按带宽比例分配带宽

·     当没有某些类别的报文时,能自动增加现存类别的报文可占的带宽

需配置,处理速度慢

WFQ

可配置

·     配置容易

·     可以保护配合(交互)的数据源(如TCP报文发送)的带宽

·     可以减小抖动

·     可以减小数据量小的交互式应用的延迟

·     可以为不同优先级的流分配不同的带宽

·     当流的数目减少时,能自动增加现存流可占的带宽

处理速度比FIFO要慢

CBQ

可配置

·     可以对数据根据灵活、多样的分类规则进行划分,分别为EF(加速转发)、AF(确保转发)、BE(尽力转发)业务提供不同的队列调度机制

·     可以为AF业务提供严格、精确的带宽保证,并且保证各类AF业务之间根据权值按一定的比例关系进行队列调度

·     可以为EF业务提供绝对优先的队列调度,确保实时数据的时延满足要求;同时通过对高优先级数据流量的限制,克服了PQ的低优先级队列可能得不到服务的弊病

·     对于尽力转发的缺省类数据,提供WFQ队列调度

系统开销比较大

RTP

1

·     保证了实时业务优先处理

·     在入队前进行流量监管的处理,避免出现其他队列得不到处理的情况

适用范围较窄,一般仅适用于对时延敏感的业务(如语音和视频业务)

 

说明

 

4.2  配置先进先出队列的长度

FIFO是接口缺省使用的队列调度机制,可以通过配置命令改变其队列长度。

若是子接口,则接口需要使能LR功能以保证队列功能生效。

 

表4-2 配置先进先出队列的长度

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置先进先出队列的长度

qos fifo queue-length queue-length

缺省情况下,FIFO队列的长度为75

如果流量突发较大,可以通过增加队列长度的方法来改善队列调度的准确率

 

4.3  配置优先队列

可以给一个优先列表定义多条规则,然后把该组规则应用在某接口上。在进行流分类时,数据流按照配置顺序进行匹配,如果匹配上某规则,则进入相应的队列,匹配结束;如果分组不与任何规则匹配,则进入缺省队列。

4.3.1  优先队列配置过程

将一组优先列表应用到接口上。对于同一个接口,若优先队列的应用命令的重复使用,则最新的配置生效。

表4-3 优先队列配置过程

操作

命令

说明

进入系统视图

system-view

-

配置优先列表

qos pql pql-index protocol { ip | ipv6 } [ queue-key key-value ] queue { bottom | middle | normal | top }

或者

qos pql pql-index inbound-interface interface-type interface-number queue { bottom | middle | normal | top }

或者

qos pql pql-index local-precedence local-precedence-list queue { bottom | middle | normal | top }

或者

qos pql pql-index protocol mpls exp exp-list queue { bottom | middle | normal | top }

可以根据需要选择优先列表的配置命令

(可选)配置缺省队列

qos pql pql-index default-queue { bottom | middle | normal | top }

本配置用来指明不匹配规则的数据包的入队队列

缺省情况下,缺省队列为normal

(可选)配置队列长度

qos pql pql-index queue { bottom | middle | normal | top } queue-length queue-length

缺省情况下,高优先队列的缺省长度值为20,中优先队列的缺省长度值为40,正常优先队列的缺省长度值为60,低优先队列的缺省长度值为80

进入接口视图

interface interface-type interface-number

-

应用优先列表

qos pq pql pql-index

缺省情况下,接口不使用PQ,而使用FIFO

 

说明

如指定接口为Virtual-Template接口,将显示继承该Virtual-Template接口的所有Virtual-Access接口下的QoS PQ的信息,Virtual-Template本身无QoS信息显示。

若是Tunnel接口、子接口、三层聚合接口,或是封装了PPPoE协议的VT、Dialer接口,则接口需要使能LR功能以保证队列生效。

 

4.3.2  优先队列配置举例

1. 配置需求

如图所示,Server和Host A通过Router A向Host B发送数据(其中Server发送关键业务数据,Host A发送非关键业务数据)时,由于Router A入接口GigabitEthernet1/0/1的速率大于出接口GigabitEthernet1/0/2的速率,在GigabitEthernet1/0/2接口处可能发生拥塞,导致丢包。要求在网络拥塞时保证Server发送的关键业务数据得到优先处理。

2. 组网图

图4-8 优先队列配置组网图

 

3. 配置步骤

# 配置ACL规则列表,分别匹配来源于Server和Host A的报文。

[RouterA] acl basic 2001

[RouterA-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0

[RouterA] acl basic 2002

[RouterA-acl-ipv4-basic-2002] rule permit source 1.1.1.2 0

# 配置优先队列规则组,使得网络拥塞发生时,源自Server的报文能够进入PQ的top队列缓存,源自Host A的报文能够进入bottom队列缓存,并且设定top队列的最大队列长度为50、bottom队列的最大队列长度为100。

[RouterA] qos pql 1 protocol ip acl 2001 queue top

[RouterA] qos pql 1 protocol ip acl 2002 queue bottom

[RouterA] qos pql 1 queue top queue-length 50

[RouterA] qos pql 1 queue bottom queue-length 100

# 在接口GigabitEthernet1/0/2上启用优先队列规则组1。

[RouterA] interface gigabitethernet 1/0/2

[RouterA-GigabitEthernet1/0/2] qos pq pql 1

4.4  配置定制队列

定制列表共可分为16个组(1~16),每个组指明了什么样的分组进入什么样的队列、各队列的长度和每次轮询各队列所能连续发送的字节数等信息。在一个接口上只能应用一个组。

表4-4 定制队列配置过程

操作

命令

说明

进入系统视图

system-view

-

配置定制列表

qos cql cql-index protocol { ip | ipv6 } [ queue-key key-value ] queue queue-id  

或者

qos cql cql-index inbound-interface interface-type interface-number queue queue-id

或者

qos cql cql-index local-precedence local-precedence-list queue queue-id

或者

qos cql cql-index protocol mpls exp exp-list queue queue-id

可以根据需要选择定制列表的配置命令

(可选)配置缺省队列

qos cql cql-index default-queue queue-id

本配置指明不匹配规则的数据包的入队队列。

缺省情况下,缺省队列号为1

(可选)配置队列长度

qos cql cql-index queue queue-id queue-length queue-length

缺省情况下,队列长度值是20

(可选)配置各队列每次轮询所发送数据包的字节数

qos cql cql-index queue queue-id serving byte-count

缺省情况下,发送数据包的字节数为1500

进入接口视图

interface interface-type interface-number

-

应用定制列表

qos cq cql cql-index

缺省情况下,接口不使用CQ,而使用FIFO

 

说明

如指定接口为Virtual-Template接口,将显示继承该Virtual-Template接口的所有Virtual-Access接口下的QoS CQ的信息,Virtual-Template本身无QoS信息显示。

若是Tunnel接口、子接口、三层聚合接口,或是封装了PPPoE协议的VT、Dialer接口,则接口需要使能LR功能以保证队列功能生效。

 

4.5  配置加权公平队列

提示

若是Tunnel接口、子接口、三层聚合接口,或是封装了PPPoE协议的VT、Dialer接口,则接口需要使能LR功能以保证队列生效。

 

当接口没有使用WFQ策略时,使用qos wfq命令可以使接口使用WFQ策略,同时指定WFQ的参数。如果接口已经使用了WFQ策略,使用qos wfq命令可以修改WFQ的参数。

表4-5 加权公平队列配置过程

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置加权队列

qos wfq [ dscp | precedence ] [ queue-length max-queue-length | queue-number total-queue-number ] *

缺省情况下,接口上没有配置WFQ队列

 

4.6  配置队列调度策略

队列调度策略配置方式是在一个策略中配置各个队列的调度参数,最后通过在Session Group Profile上应用该策略来实现拥塞管理功能。

配置队列调度策略时,用户首先要创建一个队列调度策略,然后进入队列调度策略视图进行队列调度参数的相关配置,最后将队列调度策略应用到Session Group Profile

表4-6 配置队列调度策略

操作

命令

说明

进入系统视图

system-view

-

创建队列调度策略,并进入相应的队列调度策略视图

qos qmprofile profile-name

缺省情况下,不存在用户自定义的队列调度策略

配置队列调度参数

queue queue-id sp [ service-type service-type-value ]

对于刚创建的队列调度策略,各队列使用严格优先级调度。

退回系统视图

quit

-

进入Session Group Profile视图

user-profile profile-name type session-group

进入Session Group Profile视图后,下面进行的配置只有在用户成功上线后才生效

应用队列调度策略

qos apply qmprofile profile-name

每个Session Group Profile只能应用一个队列调度策略

 

4.7  配置基于类的队列

4.7.1  配置概述

基于类的队列CBQ的配置步骤如下:

(1)     定义类

(2)     定义流行为

(3)     定义策略

(4)     在接口视图下应用QoS策略

为方便用户使用,系统预定义了一些类、流行为以及策略,具体如下。

2. 系统预定的类

系统预定义了一些类,并为这些类定义了通用的规则,用户定义策略时可直接使用这些类,这些类包括:

(1)     缺省类

default-class:匹配的是缺省数据流。

(2)     基于DSCP的预定义类

ef、af1、af2、af3、af4:分别匹配IP DSCP值ef、af1、af2、af3、af4

(3)     基于IP优先级的预定义类

ip-prec0,ip-prec1,…ip-prec7:分别匹配IP优先级0,1,…7

(4)     基于MPLS EXP的预定义类

mpls-exp0,mpls-exp1,…mpls-exp7:分别匹配MPLS EXP值0,1,…7

3. 系统预定义的流行为

系统预定义了一些流行为,并为这些流行为定义了QoS特性:

l     ef:定义了一个特性为入EF队列,占用带宽为接口可用带宽的20%

l     af:定义了一个特性为入AF队列,占用带宽为接口可用带宽的20%

l     be:不定义任何特性

l     be-flow-based:定义了一个特性为入WFQ队列,其中WFQ默认有256条队列

4. 系统预定义的策略

系统预定义了一个策略,为该策略指定了使用的预定义类,并为这些类指定预定义的动作。该策略名为default,具有缺省的CBQ动作。

default策略的具体规则如下:

l     预定义类ef,采用预定义流行为ef

l     预定义类af1~af4,采用预定义流行为af

l     default-class类,采用预定义流行为be

4.7.2  定义类

定义类首先要创建一个类名称,然后在此类视图下配置其匹配规则。

表4-7 定义类

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

 

4.7.3  定义流行为

定义流行为首先需要创建一个流行为名称,然后在此流行为视图下配置其特性。

1. 配置AF队列,并配置最小可保证带宽

l     该行为只能应用在接口的出方向。

l     在同一流行为视图下queue af不能与queue ef命令同时使用。

l     在同一流行为视图下queue af不能与queue sp命令同时使用。

l     在同一策略下各个类需用同一单位配置queue af,或者用bandwidth,或者用百分比,或者用剩余百分比进行配置。

l     在同一策略下各个类需用同一单位配置queue efqueue af,或者用bandwidth,或者用百分比进行配置。当AF使用剩余百分比配置的时候,EF可以使用绝对值或百分比进行配置。

 

表4-8 配置AF队列,并配置最小可保证带宽

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置AF队列,并配置最小可保证带宽

queue af bandwidth { bandwidth | pct percentage | remaining-pct remaining-percentage }

缺省情况下,没有配置类采用AF队列

 

2. 配置EF队列,并配置最大带宽

l     在同一流行为视图下queue ef不能与queue afqueue-length命令同时使用。

l     在同一流行为视图下queue ef不能与queue sp命令同时使用。

l     缺省类不能与包含EF队列的行为关联。

l     在同一策略下各个类需用同一单位配置queue af,或者用bandwidth,或者用百分比,或者用剩余百分比进行配置。

l     在同一策略下各个类需用同一单位配置queue efqueue af,或者用bandwidth,或者用百分比进行配置。当AF使用剩余百分比配置的时候,EF可以使用绝对值或百分比进行配置。

 

表4-9 配置EF队列,并配置最大带宽

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置EF队列,并配置最大带宽

queue ef bandwidth { bandwidth [ cbs burst ] | pct percentage [ cbs-ratio ratio] }

缺省情况下,没有配置类采用EF队列

 

3. 配置SP队列

提示

l     在同一流行为视图下queue sp不能与queue ef命令同时使用。

l     在同一流行为视图下queue sp不能与queue afqueue-length命令同时使用。

l     缺省类不能与包含SP队列的行为关联。

 

表4-10 配置SP队列

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置SP队列

queue sp

缺省情况下,没有配置类采用SP队列

 

4. 配置采用公平队列

 

表4-11 配置采用公平队列

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置采用公平队列

queue wfq [ queue-number total-queue-number ]

缺省情况下,没有为缺省类配置采用公平队列

 

5. 配置最大队列长度

最大队列长度命令必须在配置了queue afqueue wfq后使用;执行undo queue afundo queue wfq命令,则queue-length也同时被取消。

 

配置最大队列长度,丢弃方式为尾丢弃。

表4-12 配置最大队列长度

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置最大队列长度

queue-length queue-length

缺省情况下,丢弃方式为尾部丢弃方式,队列长度为64

如果流量突发较大,可以通过增加队列长度的方法来改善队列调度的准确率

 

6. 配置丢弃方式为随机丢弃方式

提示

l     在同一流行为视图下wred不能与queue-length命令同时使用。

l     必须在配置了queue afqueue wfq后使用。

l     删除WRED时将删除在该随机丢弃下的其他配置。

 

表4-13 配置丢弃方式为随机丢弃方式

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置丢弃方式为随机丢弃方式

wred [ dscp | ip-precedence ]

缺省情况下,没有配置WRED动作

 

7. 配置WRED计算平均队列长度的指数

提示

必须在配置了queue afqueue wfq,并已用wred使能了WRED丢弃方式后才可以进行配置。

 

表4-14 配置WRED计算平均队列长度的指数

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置WRED计算平均队列长度的指数

wred weighting-constant exponent

缺省情况下,WRED计算平均队列长度的指数为9

 

8. 配置WRED各DSCP的下限、上限和丢弃概率分母

提示

l     进行本配置前需已用wred dscp使能了基于DSCP的WRED丢弃方式。

l     取消WRED配置,wred dscp配置同时被取消。

l     取消queue afqueue wfq配置,丢弃参数的配置同时被取消。

 

表4-15 配置WRED各DSCP的下限、上限和丢弃概率分母

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置WRED各DSCP的下限、上限和丢弃概率分母

wred dscp dscp-value low-limit low-limit high-limit high-limit [ discard-probability discard-prob ]

缺省情况下,下限缺省值为10,上限缺省值为30,丢弃概率缺省值为10

 

9. 配置WRED各IP优先级的下限、上限和丢弃概率分母

提示

l     进行本配置前需已用wred ip-precedence使能了基于IP优先级的WRED丢弃方式。

l     取消WRED配置,wred ip-precedence配置同时被取消。

l     取消queue afqueue wfq配置,丢弃参数的配置同时被取消。

 

表4-16 配置WRED各IP优先级的下限、上限和丢弃概率分母

操作

命令

说明

进入系统视图

system-view

-

定义一个流行为并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置WRED各优先级的下限、上限和丢弃概率分母

wred ip-precedence precedence low-limit low-limit high-limit high-limit [ discard-probability discard-prob ]

缺省情况下,下限缺省值为10,上限缺省值为30,丢弃概率缺省值为10

 

4.7.4  定义策略

表4-17 在策略中为类指定流行为

操作

命令

说明

进入系统视图

system-view

-

定义策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

在策略中为类指定采用的流行为

classifier classifier-name behavior behavior-name

缺省情况下,没有为类指定流行为

 

4.7.5  应用策略

qos apply policy命令将一个策略映射到具体的接口。一个策略映射可以在多个接口上得到应用。

表4-18 将接口与所设置的策略相关联

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

 

在接口上应用关联的策略

qos apply policy policy-name { inbound | outbound }

缺省情况下,没有在接口上应用QoS策略

 

策略在接口视图下应用的规格如下:

·     普通接口,可以应用配置了各种特性(包括remark、car、queue af、queue ef、queue wfq等)的策略。

·     配置了队列(queue ef、queue af、queue sp、queue wfq)特性的策略,不能作为入方向策略应用在入接口上。

·     若是子接口,则接口需要使能LR功能以保证CBQ队列功能生效。

4.7.6  配置接口最大可用带宽

 

最大可用带宽指CBQ中报文入队列带宽检查时使用的最大接口带宽,并非指接口的实际带宽。

表4-19 配置接口最大可用带宽

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口最大可用带宽

bandwidth bandwidth-value

具体情况请参见接口分册命令参考中的介绍

 

在未配置各种接口的最大可用带宽的条件下,计算CBQ时实际使用的基准带宽如下:

·     对于物理接口,其取值为接口实际的速率;

·     对于逻辑接口(如Tunnel接口、三层聚合接口),取值为0kbps。

4.7.7  配置最大预留带宽占可用带宽的百分比

为队列分配带宽时,考虑到部分带宽用于控制协议报文、二层帧头等,通常配置的最大预留带宽不大于可用带宽的80%。

建议慎重使用该命令修改最大预留带宽。如果配置的最大预留带宽过大,发送的报文加上链路层的帧头有可能大于接口最大可用带宽,导致接口无法满足需求,建议使用缺省最大预留带宽。

表4-20 配置最大预留带宽占可用带宽的百分比

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置最大预留带宽占可用带宽的百分比

qos reserved-bandwidth pct percent

最大预留带宽占可用带宽的百分比为80

 

4.7.8  基于类的队列典型配置举例

1. 组网需求

在下面的组网图中,从Router C发出的数据流经过Router A和Router B到达Router D,需求如下:

l     Router C发出的数据流根据IP报文的DSCP域分为3类,要求配置QoS策略,对于DSCP域为AF11和AF21的流进行确保转发(AF),最小带宽为5%;

l     对于DSCP域为EF的流进行加速转发(EF),最大带宽为30%。

在进行配置之前,应保证:

l     Router C发出的流能够通过Router A和Router B可达Router D。

l     报文的DSCP域在进入Router A之前已经设置完毕。

2. 组网图

图4-9 基于类的队列配置组网图

 

3. 配置步骤

Router A上的配置如下。

# 定义三个类,分别匹配DSCP域为AF11、AF21和EF的IP报文。

<RouterA> system-view

[RouterA] traffic classifier af11_class

[RouterA-classifier-af11_class] if-match dscp af11

[RouterA-classifier-af11_class] quit

[RouterA]traffic classifier af21_class

[RouterA-classifier-af21_class] if-match dscp af21

[RouterA-classifier-af21_class] quit

[RouterA] traffic classifier ef_class

[RouterA-classifier-ef_class] if-match dscp ef

[RouterA-classifier-ef_class] quit

# 定义流行为,配置AF,并分配最小可用带宽。

[RouterA] traffic behavior af11_behav

[RouterA-behavior-af11_behav] queue af bandwidth pct 5

[RouterA-behavior-af11_behav] quit

[RouterA] traffic behavior af21_behav

[RouterA-behavior-af21_behav] queue af bandwidth pct 5

[RouterA-behavior-af21_behav] quit

# 定义流行为,配置EF,并分配最大可用带宽(对于EF流,将同时保证带宽和时延)。

[RouterA] traffic behavior ef_behav

[RouterA-behavior-ef_behav] queue ef bandwidth pct 30

[RouterA-behavior-ef_behav] quit

# 定义QoS策略,将已配置的流行为指定给不同的类。

[RouterA] qos policy dscp

[RouterA-qospolicy-dscp] classifier af11_class behavior af11_behav

[RouterA-qospolicy-dscp] classifier af21_class behavior af21_behav

[RouterA-qospolicy-dscp] classifier ef_class behavior ef_behav

[RouterA-qospolicy-dscp] quit

# 将已定义的QoS策略应用在Router A的GigabitEthernet1/0/1出方向。

[RouterA] interface gigabitethernet 1/0/1

[RouterA-GigabitEthernet1/0/1] ip address 1.1.1.1 255.255.255.0

[RouterA-GigabitEthernet1/0/1] qos apply policy dscp outbound

配置完成后,当发生拥塞时,可以观察到EF流以较高的优先级转发。

4.8  配置RTP优先队列

表4-21 RTP队列配置过程

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

应用RTP队列

qos rtpq start-port first-rtp-port-number end-port last-rtp-port-number bandwidth bandwidth [ cbs cbs ]

缺省情况下,接口上没有启动RTP队列特性

 

说明

若是Tunnel接口、子接口、三层聚合接口,或是封装了PPPoE协议的VT、Dialer接口,则接口需要使能LR功能以保证队列功能生效。

 

4.9  配置报文信息预提取功能

对于Tunnel接口,如果到达对应接口的IP数据报文已经进行了处理,比如,Tunnel接口进行了GRE封装,此时QoS处理的是GRE封装后的IP数据报文,QoS无法识别出原始报文的IP数据,无法基于原始报文信息对报文进行分类。

使能报文信息预提取功能后,系统在逻辑接口获取原始报文的IP数据,并在普通接口应用此IP数据,可以基于原始报文信息进行分类,从而进行各种QoS处理。

表4-22 报文信息预提取功能配置过程

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface tunnel number [ mode { advpn { gre | udp } [ ipv6 ] | ds-lite-aftr | evi | gre [ ipv6 ] | ipv4-ipv4 | ipv6 | ipv6-ipv4 [ 6to4 | auto-tunnel | isatap ] | mpls-te | nve | vxlan } ]

-

使能报文信息预提取功能

qos pre-classify

缺省情况下,报文信息预提取功能处于关闭状态

 

说明

Tunnel接口的具体内容请参见“三层技术-IP业务配置指导”中的“隧道”。

 

4.10  拥塞管理的显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示拥塞管理各种队列的运行情况,通过查看显示信息验证配置的效果。

表4-23 拥塞管理的显示和维护

操作

命令

显示接口上所有队列配置情况和统计信息

display qos queue interface [ interface-type interface-number ] ]

显示接口上先进先出队列配置信息和运行情况

display qos queue fifo interface [ interface-type interface-number ]

显示接口优先级队列配置信息和运行情况

display qos queue pq interface [ interface-type interface-number ]

显示优先列表的内容

display qos pql [ pql-index]

显示接口定制队列配置信息和运行情况

display qos queue cq interface [ interface-type interface-number ]

显示定制列表的内容

display qos cql [ cql-index ]

显示接口上加权公平队列的配置统计信息

display qos queue wfq interface [ interface-type interface-number]

显示接口实时传输协议队列配置信息和运行情况

display qos queue rtpq interface [ interface-type interface-number ]

显示设备配置的类信息

display traffic classifier { system-defined | user-defined } [ classifier-name ]

显示设备配置的流行为信息

display traffic behavior { system-defined | user-defined } [ behavior-name ]

显示指定策略中指定类及与类关联的流行为的配置信息

display qos policy { system-defined | user-defined } [ policy-name [ classifier classifier-name ] ]

显示接口上策略的配置信息和运行情况(独立运行模式)

display qos policy interface [ interface-type interface-number ] [ inbound | outbound ]

显示接口上策略的配置信息和运行情况(IRF模式)

display qos policy interface [ interface-type interface-number ] [ slot slot-number ] [ inbound | outbound ]

显示接口上基于类的队列配置信息和运行情况

 display qos queue cbq interface [ interface-type interface-number ]

 


5 拥塞避免

5.1  拥塞避免简介

过度的拥塞会对网络资源造成极大危害,必须采取某种措施加以解除。拥塞避免是一种流量控制机制,它通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞产生或有加剧的趋势时主动丢弃报文,通过调整网络的流量来避免网络过载。

设备在丢弃报文时,需要与源端的流量控制动作(比如TCP流量控制)相配合,调整网络的流量到一个合理的负载状态。丢包策略和源端的流量控制相结合,可以使网络的吞吐量和利用效率最大化,并且使报文丢弃和延迟最小化。

5.1.1  传统的丢包策略

传统的丢包策略采用尾部丢弃(Tail-Drop)的方法。当队列的长度达到最大值后,所有新到来的报文都将被丢弃。

这种丢弃策略会引发TCP全局同步现象:当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入拥塞避免和慢启动状态以降低并调整流量,而后又会在某个时间同时出现流量高峰。如此反复,使网络流量忽大忽小,网络不停震荡。

5.1.2  RED与WRED

为避免TCP全局同步现象,可使用RED或WRED。

RED和WRED通过随机丢弃报文避免了TCP的全局同步现象,使得当某个TCP连接的报文被丢弃、开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。

在RED类算法中,为每个队列都设定上限和下限,对队列中的报文进行如下处理:

·     当队列的长度小于下限时,不丢弃报文;

·     当队列的长度超过上限时,丢弃所有到来的报文;

·     当队列的长度在上限和下限之间时,开始随机丢弃到来的报文。队列越长,丢弃概率越高,但有一个最大丢弃概率。

直接采用队列的长度和上限、下限比较并进行丢弃,将会对突发性的数据流造成不公正的待遇,不利于数据流的传输。WRED采用平均队列和设置的队列上限、下限比较来确定丢弃的概率。

队列平均长度既反映了队列的变化趋势,又对队列长度的突发变化不敏感,避免了对突发性数据流的不公正待遇。

当队列机制采用WFQ时,可以为不同优先级的报文设定计算队列平均长度时的指数、上限、下限、丢弃概率,从而对不同优先级的报文提供不同的丢弃特性。

当队列机制采用FIFO、PQ、CQ时,可以为每个队列设定计算队列平均长度时的指数、上限、下限、丢弃概率,为不同类别的报文提供不同的丢弃特性。

5.1.3  WRED和队列机制的关系

WRED和队列机制的关系如下图所示。

图5-1 WRED和队列机制关系示意图

 

当WRED和WFQ配合使用时,可以实现基于流的WRED。在进行分类的时候,不同的流有自己的队列,对于流量小的流,由于其队列长度总是比较小,所以丢弃的概率将比较小。而流量大的流将会有较大的队列长度,从而丢弃较多的报文,保护了流量较小的流的利益。

5.2  WRED配置说明

目前,WRED仅支持接口配置方式。在进行WRED配置时,需要事先确定如下参数:

·     队列上限和下限:当队列平均长度小于下限时,不丢弃报文。当队列平均长度在上限和下限之间时,设备随机丢弃报文,队列越长,丢弃概率越高。当队列平均长度超过上限时,丢弃所有到来的报文。

·     丢弃优先级:在进行报文丢弃时参考的参数,0对应绿色报文、1对应黄色报文、2对应红色报文,红色报文将被优先丢弃。

·     计算平均队列长度的指数:指数越大,计算平均队列长度时对队列的实时变化越不敏感。计算队列平均长度的公式为:平均队列长度=(以前的平均队列长度×(1-1/2n))+(当前队列长度×(1/2n))。其中n表示指数。

·     计算丢弃概率的分母:在计算丢弃概率的公式中作为分母。取值越大,计算出的丢弃概率越小。

5.3  配置WRED

5.3.1  配置过程

提示

配置qos wred enable命令前需要先在接口上应用WFQ队列。

 

表5-1 配置WRED配置过程

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

使能WRED

qos wred [ dscp | ip-precedence ] enable

缺省情况下,队列丢弃方法为尾丢弃

(可选)配置计算平均队列长度的指数

qos wred weighting-constant exponent

缺省情况下,WRED计算平均队列长度的指数为9

(可选)配置各优先级对应的参数

qos wred { ip-precedence ip-precedence | dscp dscp-value } low-limit low-limit high-limit high-limit discard-probability discard-prob

缺省情况下,下限缺省值为10,上限缺省值为30,丢弃概率缺省值为10

 

5.3.2  配置举例

1. 组网需求

·     在接口GigabitEthernet1/0/1上配置基于IP优先级的WRED。

·     配置IP优先级为3的报文的队列下限为20、上限为40、丢弃概率分母为15。

·     配置计算平均队列长度的指数为6。

2. 配置步骤

# 进入系统视图。

<Sysname> system-view

# 进入接口视图。

[Sysname] interface gigabitethernet 1/0/1

# 使能基于IP优先级的WRED。

[Sysname-GigabitEthernet1/0/1] qos wred ip-precedence enable

# 配置优先级为3的报文的队列下限为20,上限为40,丢弃概率分母为15。

[Sysname-GigabitEthernet1/0/1] qos wred ip-precedence 3 low-limit 20 high-limit 40 discard-probability 15

# 配置计算平均队列长度的指数为6。

[Sysname-GigabitEthernet1/0/1] qos wred weighting-constant 6

5.4  WRED显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后WRED的运行情况,通过查看显示信息验证配置的效果。

表5-2 WRED显示和维护

操作

命令

显示接口的WRED配置情况和统计信息

display qos wred interface [ interface-type interface-number ] ]

 

 


6 流量过滤

6.1  流量过滤简介

流量过滤是指对符合流分类的流进行过滤的动作。

例如,可以根据网络的实际情况禁止从某个源IP地址发送的报文通过。

6.2  配置流量过滤

表6-1 配置流量过滤

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

退回系统视图

quit

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

配置流量过滤动作

filter { deny | permit }

缺省情况下,没有配置流量统计动作

如果配置了filter deny命令,那么同时配置地其他流行为,则filter deny生效,而其它流行为不生效

退回系统视图

quit

-

定义一个策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

在策略中为类指定采用的流行为

classifier classifier-name behavior behavior-name

缺省情况下,没有为类指定流行为

退回系统视图

quit

-

应用QoS策略

基于接口

2.2.4  1. 基于接口应用QoS策略

三者选其一

缺省情况下,没有应用QoS策略

基于全局

2.2.4  2. 基于全局应用QoS策略

基于控制平面

2.2.4  3. 基于控制平面应用QoS策略

(可选)显示流量过滤的相关配置信息

display traffic behavior user-defined [ behavior-name ]

display命令可以在任意视图下执行

 

6.3  流量过滤配置举例

6.3.1  流量过滤配置举例

1. 组网需求

Host通过接口GigabitEthernet1/0/1接入设备Device。

配置流量过滤功能,对接口GigabitEthernet1/0/1接收的源端口号不等于21的TCP报文进行丢弃。

2. 组网图

图6-1 流量过滤配置组网图

 

3. 配置步骤

# 定义高级ACL 3000,匹配源端口号不等于21的数据流。

<Device> system-view

[Device] acl advanced 3000

[Device-acl-ipv4-adv-3000] rule 0 permit tcp source-port neq 21

[Device-acl-ipv4-adv-3000] quit

# 定义类classifier_1,匹配高级ACL 3000。

[Device] traffic classifier classifier_1

[Device-classifier-classifier_1] if-match acl 3000

[Device-classifier-classifier_1] quit

# 定义流行为behavior_1,动作为流量过滤(deny),对数据包进行丢弃。

[Device] traffic behavior behavior_1

[Device-behavior-behavior_1] filter deny

[Device-behavior-behavior_1] quit

# 定义策略policy,为类classifier_1指定流行为behavior_1。

[Device] qos policy policy

[Device-qospolicy-policy] classifier classifier_1 behavior behavior_1

[Device-qospolicy-policy] quit

# 将策略policy应用到端口GigabitEthernet1/0/1的入方向上。

[Device] interface gigabitethernet 1/0/1

[Device-GigabitEthernet1/0/1] qos apply policy policy inbound

 


7 重标记

7.1  重标记简介

重标记是将报文的优先级或者标志位进行设置,重新定义报文的优先级等。例如,对于IP报文来说,可以利用重标记对IP报文中的IP优先级或DSCP值进行重新设置,控制IP报文的转发。

重标记动作的配置,可以通过与类关联,将原来报文的优先级或标志位重新进行标记。

7.2  配置重标记

表7-1 配置重标记

操作

命令

说明

进入系统视图

system-view

-

定义一个类,并进入类视图

traffic classifier classifier-name [ operator { and | or } ]

缺省情况下,没有定义类

定义匹配数据包的规则

if-match [ not ] match-criteria

缺省情况下,没有定义匹配数据包的规则

具体规则请参见QoS命令参考中的命令if-match的介绍

退回系统视图

quit

-

定义一个流行为,并进入流行为视图

traffic behavior behavior-name

缺省情况下,没有定义流行为

重新标记报文的动作

重新标记报文的802.1p优先级

remark dot1p dot1p-value

六者选其一

缺省情况下,没有配置重新标记报文的动作

命令remark drop-precedence仅应用在入方向

重新标记报文的丢弃优先级

remark drop-precedence drop-precedence-value

重新标记报文的DSCP

remark dscp dscp-value

重新标记报文的IP优先级

remark ip-precedence ip-precedence-value

重新标记报文的本地优先级

remark local-precedence local-precedence-value

重新标记报文的QoS本地ID值

remark qos-local-id local-id-value

退回系统视图

quit

-

定义一个策略,并进入策略视图

qos policy policy-name

缺省情况下,没有定义策略

在策略中为类指定采用的流行为

classifier classifier-name behavior behavior-name

缺省情况下,没有为类指定流行为

退回系统视图

quit

-

应用QoS策略

基于接口

2.2.4  1. 基于接口应用QoS策略

三者选其一

缺省情况下,没有应用QoS策略

基于全局

2.2.4  2. 基于全局应用QoS策略

基于控制平面

2.2.4  3. 基于控制平面应用QoS策略

(可选)显示重标记的相关配置信息

display traffic behavior user-defined [ behavior-name ]

display命令可以在任意视图下执行

 

7.3  重标记配置举例

7.3.1  重标记配置举例

1. 组网需求

公司企业网通过Device实现互连。网络环境描述如下:

·     Host A和Host B通过端口GigabitEthernet1/0/1接入Device;

·     数据库服务器、邮件服务器和文件服务器通过端口GigabitEthernet1/0/2接入Device。

通过配置重标记功能,Device上实现如下需求:

·     优先处理Host A和Host B访问数据库服务器的报文;

·     其次处理Host A和Host B访问邮件服务器的报文;

·     最后处理Host A和Host B访问文件服务器的报文。

2. 组网图

图7-1 重标记配置组网图

 

3. 配置步骤

# 定义高级ACL 3000,对目的IP地址为192.168.0.1的报文进行分类。

<Device> system-view

[Device] acl advanced 3000

[Device-acl-ipv4-adv-3000] rule permit ip destination 192.168.0.1 0

[Device-acl-ipv4-adv-3000] quit

# 定义高级ACL 3001,对目的IP地址为192.168.0.2的报文进行分类。

[Device] acl advanced 3001

[Device-acl-ipv4-adv-3001] rule permit ip destination 192.168.0.2 0

[Device-acl-ipv4-adv-3001] quit

# 定义高级ACL 3002,对目的IP地址为192.168.0.3的报文进行分类。

[Device] acl advanced 3002

[Device-acl-ipv4-adv-3002] rule permit ip destination 192.168.0.3 0

[Device-acl-ipv4-adv-3002] quit

# 定义类classifier_dbserver,匹配高级ACL 3000。

[Device] traffic classifier classifier_dbserver

[Device-classifier-classifier_dbserver] if-match acl 3000

[Device-classifier-classifier_dbserver] quit

# 定义类classifier_mserver,匹配高级ACL 3001

[Device] traffic classifier classifier_mserver

[Device-classifier-classifier_mserver] if-match acl 3001

[Device-classifier-classifier_mserver] quit

# 定义类classifier_fserver,匹配高级ACL 3002

[Device] traffic classifier classifier_fserver

[Device-classifier-classifier_fserver] if-match acl 3002

[Device-classifier-classifier_fserver] quit

# 定义流行为behavior_dbserver,动作为重标记报文的本地优先级为4

[Device] traffic behavior behavior_dbserver

[Device-behavior-behavior_dbserver] remark local-precedence 4

[Device-behavior-behavior_dbserver] quit

# 定义流行为behavior_mserver,动作为重标记报文的本地优先级为3。

[Device] traffic behavior behavior_mserver

[Device-behavior-behavior_mserver] remark local-precedence 3

[Device-behavior-behavior_mserver] quit

# 定义流行为behavior_fserver,动作为重标记报文的本地优先级为2。

[Device] traffic behavior behavior_fserver

[Device-behavior-behavior_fserver] remark local-precedence 2

[Device-behavior-behavior_fserver] quit

# 定义策略policy_server,为类指定流行为。

[Device] qos policy policy_server

[Device-qospolicy-policy_server] classifier classifier_dbserver behavior behavior_dbserver

[Device-qospolicy-policy_server] classifier classifier_mserver behavior behavior_mserver

[Device-qospolicy-policy_server] classifier classifier_fserver behavior behavior_fserver

[Device-qospolicy-policy_server] quit

# 将策略policy_server应用到端口GigabitEthernet1/0/1上。

[Device] interface gigabitethernet 1/0/1

[Device-GigabitEthernet1/0/1] qos apply policy policy_server inbound

[Device-GigabitEthernet1/0/1] quit

 


8 附录

8.1  附录 A 缩略语表

表8-1 附录 A 缩略语表

缩略语

英文全名

中文解释

AF

Assured Forwarding

确保转发

BE

Best Effort

尽力转发

BQ

Bandwidth Queuing

带宽队列

CAR

Committed Access Rate

承诺访问速率

CBQ

Class Based Queuing

基于类的队列

CBS

Committed Burst Size

承诺突发尺寸

CBWFQ

Class Based Weighted Fair Queuing

基于类的加权公平队列

CE

Customer Edge

用户边缘设备

CIR

Committed Information Rate

承诺信息速率

CQ

Custom Queuing

定制队列

DAR

Deeper Application Recognition

深度应用识别

DCBX

Data Center Bridging Exchange Protocol

数据中心桥能力交换协议

DiffServ

Differentiated Service

区分服务

DoS

Denial of Service

拒绝服务

DSCP

Differentiated Services Code Point

区分服务编码点

EACL

Enhanced ACL

增强型ACL

EBS

Excess Burst Size

超出突发尺寸

ECN

Explicit Congestion Notification

显示拥塞通知

EF

Expedited Forwarding

加速转发

FEC

Forwarding Equivalance Class

转发等价类

FIFO

First in First out

先入先出

FQ

Fair Queuing

公平队列

GMB

Guaranteed Minimum Bandwidth

最小带宽保证队列

GTS

Generic Traffic Shaping

通用流量整形

IntServ

Integrated Service

综合服务

ISP

Internet Service Provider

互联网服务提供商

LFI

Link Fragmentation and Interleaving

链路分片与交叉

LLQ

Low Latency Queuing

低时延队列

LR

Line Rate

限速

LSP

Label Switched Path

标签交换路径

MPLS

Multiprotocol Label Switching

多协议标签交换

P2P

Peer-to-Peer

对等

PE

Provider Edge

服务提供商网络边缘

PHB

Per-hop Behavior

单中继段行为

PIR

Peak Information Rate

峰值信息速率

PQ

Priority Queuing

优先队列

PW

Pseudowire

伪线

QoS

Quality of Service

服务质量

QPPB

QoS Policy Propagation Through the Border Gateway Protocol

通过BGP传播QoS策略

RED

Random Early Detection

随机早期检测

RSVP

Resource Reservation Protocol

资源预留协议

RTP

Real-time Transport Protocol

实时传输协议

SLA

Service Level Agreement

服务水平协议

SP

Strict Priority

严格优先级队列

TE

Traffic Engineering

流量工程

ToS

Type of Service

服务类型

TP

Traffic Policing

流量监管

TS

Traffic Shaping

流量整形

VoIP

Voice over IP

在IP网络上传送语音

VPN

Virtual Private Network

虚拟专用网络

VSI

Virtual Station Interface

虚拟服务器接口

WFQ

Weighted Fair Queuing

加权公平队列

WRED

Weighted Random Early Detection

加权随机早期检测

WRR

Weighted Round Robin

加权轮询队列

 

8.2  附录 B 各种优先级介绍

8.2.1  IP优先级和DSCP优先级

图8-1 ToS和DS域

 

图8-1所示,IP报文头的ToS字段有8个bit,其中前3个bit表示的就是IP优先级,取值范围为0~7。RFC 2474中,重新定义了IP报文头部的ToS域,称之为DS(Differentiated Services,差分服务)域,其中DSCP优先级用该域的前6位(0~5位)表示,取值范围为0~63,后2位(6、7位)是保留位。

表8-2 IP优先级说明

IP优先级(十进制)

IP优先级(二进制)

关键字

0

000

routine

1

001

priority

2

010

immediate

3

011

flash

4

100

flash-override

5

101

critical

6

110

internet

7

111

network

 

表8-3 DSCP优先级说明

DSCP优先级(十进制)

DSCP优先级(二进制)

关键字

46

101110

ef

10

001010

af11

12

001100

af12

14

001110

af13

18

010010

af21

20

010100

af22

22

010110

af23

26

011010

af31

28

011100

af32

30

011110

af33

34

100010

af41

36

100100

af42

38

100110

af43

8

001000

cs1

16

010000

cs2

24

011000

cs3

32

100000

cs4

40

101000

cs5

48

110000

cs6

56

111000

cs7

0

000000

be(default)

 

8.2.2  802.1p优先级

802.1p优先级位于二层报文头部,适用于不需要分析三层报头,而需要在二层环境下保证QoS的场合。

图8-2 带有802.1Q标签头的以太网帧

 

图8-2所示,4个字节的802.1Q标签头包含了2个字节的TPID(Tag Protocol Identifier,标签协议标识符)和2个字节的TCI(Tag Control Information,标签控制信息),TPID取值为0x8100,图8-3显示了802.1Q标签头的详细内容,Priority字段就是802.1p优先级。之所以称此优先级为802.1p优先级,是因为有关这些优先级的应用是在802.1p规范中被详细定义的。

图8-3 802.1Q标签头

 

表8-4 802.1p优先级说明

802.1p优先级(十进制)

802.1p优先级(二进制)

关键字

0

000

best-effort

1

001

background

2

010

spare

3

011

excellent-effort

4

100

controlled-load

5

101

video

6

110

voice

7

111

network-management

 

8.2.3  802.11e优先级

为了在无线网络中提供QoS服务,802.11e标准被提出。802.11e是802.11协议的MAC层增强协议,和802.11相比,在802.11e的MAC帧头中,增加了2个字节的QoS Control域,其中优先级位为3bit。802.11e优先级取值范围为0~7。

图8-4 802.11e的帧结构

 

8.2.4  EXP优先级

EXP优先级位于MPLS标签内,用于标记MPLS QoS。

图8-5 MPLS标签的封装结构

 

图8-5中,Exp字段就是EXP优先级,长度为3比特,取值范围为0~7。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们