目 录
HQoS(Hierarchical Quality of Service,层次化QoS)是一种通过多级队列调度机制,解决DS(Differentiated Services,区分服务)模型下多用户多业务带宽保证的技术。
传统的QoS(Quality of Service,服务质量)通过对业务流分类,并通过针对业务流指定不同的处理策略,从而实现对业务的区分对待,保证业务传输的要求,如带宽要求、时延要求等;然而现有的用户接入网络比较复杂,特别是用户接入网络中存在大量不支持复杂QoS的接入设备(如二层设备、各种转换器等),虽然用户接入网的出口设备能够对传输业务进行QoS质量保证,但是无法实现针对用户、用户组/群等更为细致的质量保证。
不同于以往的单层QoS主要针对业务进行保证服务,HQoS可以将网络中的数据流按照用户业务+用户+楼道+居民区的多层面QoS质量服务,单个用户多业务流之间的可以实现QoS质量服务,在此基础上还可以实现某个用户组内多个用户之间的QoS质量服务,同样多个用户组之间也可以实现QoS质量保证,HQoS技术可以实现按照业务层次划分实现对应分层的QoS质量保证,可以实现数据聚合设备QoS技术的作用精度,提高整网用户服务质量。
复杂流分类是指采用复杂的规则,如综合链路层、网络层、传输层信息(例如源MAC地址、目的MAC地址、源IP 地址、目的IP地址、用户组号、协议类型或应用程序的TCP/UDP端口号等)对报文进行精细的分类。通常在DiffServ域的边界设备上对流量进行复杂流分类。
根据业务对服务质量的不同要求,将业务分为8种类型。报文进入系统时先进行分类标记,并在整个转发路径上根据报文的优先级进行有区别地对待。优先级从高到低取值为:CS7、CS6、EF、AF4、AF3、AF2、AF1和BE。业务优先级定义如下表所示。
表1-1 业务优先级描述
编码 |
服务级别 |
描述 |
7 |
CS7 |
用于带内控制消息,具有最高优先级 |
6 |
CS6 |
用于控制面的协议报文,比如路由协议报文、BFD报文 |
5 |
EF |
Expedited Forwarding,用于对延迟、抖动和丢包率有严格要求的业务,比如VoIP/TDM |
4 |
AF4 |
Assured Forwarding,这类业务在没有超过最大允许带宽时能够确保转发,一旦超出最大允许带宽,将根据丢弃优先级进行丢弃。具体又分为4类,每一类分配不同的带宽 |
3 |
AF3 |
|
2 |
AF2 |
|
1 |
AF1 |
|
0 |
BE |
Best Effort,用于对时延、抖动和丢包不敏感的业务,比如Web、FTP等Internet业务 |
RFC2697/RFC2698定义了业务着色机制,定义Green、Yellow、Red三色机制,实现业务内部针对流量控制的三色机制。系统内部实现根据服务策略不同可以对业务进行着色,以区别丢包策略。
l 复杂流分类中需要针对各种业务流自定义是分类规则,包括基于IPv4、IPv6、VLAN不同网络特征的分类规则。
l 简单流分类中的分类规则仅针对网络中优先级进行流分类,如IP网络中的DSCP、802.1P网络中的CoS。
l 复杂流分类中需要定义针对各种流的行为,包括标记HQoS用户属性、优先级重标记、服务质量标记(优先级和报文着色)。
l 简单流分类中流行为规则仅支持服务质量标记和优先级标记。
l 复杂流分类中使用流策略将流分类规则和流行为规则对应起来,一个流策略可以关联多个流分类和流行为之间的对应关系,以实现针对不同业务流不同的操作。
l 简单流分类的策略由上行和下行的流分类映射表组成,上行流分类映射表实现优先级和服务质量之间的映射,下行流分类映射表实现服务质量到优先级之际的映射。
注意
● 简单流分类支持业务优先级与服务等级、丢弃优先级之间相互映射,进而可以实现跨域设备的优先级携带、映射功能。
● 复杂流分类优先级标记仅支持流分类和流行为是同种网络的策略。
根据队列调度算法,8个类队列可分为几组:
l PQ(Priority Queue,优先级队列)
PQ之间采用SP(Strict-Priority,严格优先级)调度算法。当队列调度报文时,先从高优先级的队列调度报文,可对不同业务数据提供绝对的优先级保证。对时延敏感的应用,例如VoIP的延时可以得到保证。对优先业务的报文带宽占用可以绝对优先。
l WFQ(Weighted Fair Queue,加权公平队列)
WFQ按权重进行调度,为每个队列配置权重比,采用带权公平调度算法。
l LPQ(Low Priority Queue,低优先级队列)
LPQ之间的调度方式与PQ队列一样,也采用SP调度。不同在于拥塞时PQ可以抢占WFQ的带宽,而LPQ不可以抢占WFQ的带宽。在PQ和WFQ队列调度结束后,如果还有剩余带宽则分配给LPQ。
RFC2474:Definition of the Differentiated Services Field (DS Field) in the IPv4 and Pv6 Headers
RFC2597:Assured Forwarding PHB
RFC2598:Expedited Forwarding PHB
RFC2697:A Single Rate Three Color Marker
RFC2698:A Two Rate Three Color Marker
(1)
配置简单流分类
(2)
配置复杂流分类
(3)
配置基于类的HQoS
简单流分类是指采用简单的规则,如只根据IP报文的IP优先级或DSCP值、VLAN报文的802.1p值对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量。通常,在DiffServ域的核心设备上仅需进行简单流分类。
复杂流分类配置任务如下:
(2) 应用流策略规则
简单流分类需要先定义DiffServ域,并针对DiffServ域指定流策略。
l 通过该配置可以指定区分服务域,区分服务域支持IP DSCP、802.1p Cos与服务等级、丢弃优先级之间的相互映射,一个区分服务域中维护这六种映射关系,包括:
8021p-inbound
8021p-outbound
ip-dscp-inbound
ip-dscp-outbound
l 当创建创建一个区分服务域之后,默认按照default的映射策略进行初始化,默认的映射策略请参见如下表格:
表1-2 默认(default)DSCP与QoS服务类型之间映射
DSCP |
Service |
Color |
DSCP |
Service |
Color |
00 |
BE |
Green |
32 |
AF4 |
Green |
01 |
BE |
Green |
33 |
BE |
Green |
02 |
BE |
Green |
34 |
AF4 |
Green |
03 |
BE |
Green |
35 |
BE |
Green |
04 |
BE |
Green |
36 |
AF4 |
Yellow |
05 |
BE |
Green |
37 |
BE |
Green |
06 |
BE |
Green |
38 |
AF4 |
Red |
07 |
BE |
Green |
39 |
BE |
Green |
08 |
AF1 |
Green |
40 |
EF |
Green |
09 |
BE |
Green |
41 |
BE |
Green |
10 |
AF1 |
Green |
42 |
BE |
Green |
11 |
BE |
Green |
43 |
BE |
Green |
12 |
AF1 |
Yellow |
44 |
BE |
Green |
13 |
BE |
Green |
45 |
BE |
Green |
14 |
AF1 |
Red |
46 |
EF |
Green |
15 |
BE |
Green |
47 |
BE |
Green |
16 |
AF2 |
Green |
48 |
CS6 |
Green |
17 |
BE |
Green |
49 |
BE |
Green |
18 |
AF2 |
Green |
50 |
BE |
Green |
19 |
BE |
Green |
51 |
BE |
Green |
20 |
AF2 |
Yellow |
52 |
BE |
Green |
21 |
BE |
Green |
53 |
BE |
Green |
22 |
AF2 |
Red |
54 |
BE |
Green |
23 |
BE |
Green |
55 |
BE |
Green |
24 |
AF3 |
Green |
56 |
CS7 |
Green |
25 |
BE |
Green |
57 |
BE |
Green |
26 |
AF3 |
Green |
58 |
BE |
Green |
27 |
BE |
Green |
59 |
BE |
Green |
28 |
AF3 |
Yellow |
60 |
BE |
Green |
29 |
BE |
Green |
61 |
BE |
Green |
30 |
AF3 |
Red |
62 |
BE |
Green |
31 |
BE |
Green |
63 |
BE |
Green |
表1-3 默认(default)QoS服务类型与DSCP之间映射
Service |
Color |
DSCP |
BE |
Green、Yellow、Red |
0 |
AF1 |
Green |
10 |
AF1 |
Yellow |
12 |
AF1 |
Red |
14 |
AF2 |
Green |
18 |
AF2 |
Yellow |
20 |
AF2 |
Red |
22 |
AF3 |
Green |
26 |
AF3 |
Yellow |
28 |
AF3 |
Red |
30 |
AF4 |
Green |
34 |
AF4 |
Yellow |
36 |
AF4 |
Red |
38 |
EF |
Green、Yellow、Red |
46 |
CS6 |
Green、Yellow、Red |
48 |
CS7 |
Green、Yellow、Red |
56 |
表1-4 默认(default)Cos与QoS服务类型之间映射
Cos |
Service |
Color |
00 |
BE |
Green |
01 |
BE |
Green |
02 |
AF2 |
Green |
03 |
AF2 |
Green |
04 |
AF4 |
Green |
05 |
AF4 |
Green |
06 |
CS6 |
Green |
07 |
CS7 |
Green |
表1-5 默认(default)QoS服务类型与Cos之间映射
Service |
Color |
Cos |
BE |
Green、Yellow、Red |
0 |
AF1 |
Green、Yellow、Red |
1 |
AF2 |
Green、Yellow、Red |
2 |
AF3 |
Green、Yellow、Red |
3 |
AF4 |
Green、Yellow、Red |
4 |
EF |
Green、Yellow、Red |
5 |
CS6 |
Green、Yellow、Red |
6 |
CS7 |
Green、Yellow、Red |
7 |
(1) 入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 创建DiffServ域,并进入DiffServ域配置模式。
diffserv domain { diffserv-domain-name | default }
缺省情况下,未配置任何DiffServ域。
(4) 配置IP流定义策略。
上行方向IP流基于DSCP的流分类策略。
ip-dscp-inbound dscp-value phb service-class-value color
缺省情况下,IP上行流分类默认策略请参见表1-2。
下行方向IP流基于DSCP的流分类策略。
ip-dscp-outbound service-class-value color map dscp-value
缺省情况下,IP上行流分类默认策略请参见表1-3。
(5) 配置802.1P流定义策略。
上行方向IP流基于DSCP的流分类策略。
8021p-inbound cos-value phb service-class-value color
缺省情况下,802.1P上行流分类默认策略请参见表1-4。
下行方向IP流基于DSCP的流分类策略。
8021p-outbound service-class-value color map cos-value
缺省情况下,802.1P上行流分类默认策略请参见表1-5。
(6) 退出DiffServ域配置模式。
exit
接口应用流分类策略。
无
(1) 入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
(4) 在接口上应用简单流分类策略。
trust upstream { diffserv-domain-name | default }
(5) 开启802.1p简单流分类支持。
trust 8021p
(6) 退出接口配置模式。
exit
采用一定的规则识别符合某类特征的报文,定义多个流与流行为的绑定关系形成流策略,将流策略应用在接口上进行流分类与处理。
复杂流分类配置任务如下:
(1)
配置流分类规则
(2)
配置流行为规则
(3)
配置流策略规则
(4)
应用流策略规则
配置流分类规则是为了区分不同用户的流量,从而可以对不同的用户提供区分服务。
l 每条流分类规则里面可以有多条匹配规则,这些匹配规则之间的关系由规则类型来决定。
l 如果规则类型是“and”,则报文必须匹配所有规则。
l 如果规则类型是“or”,则报文可以匹配任意一条规则。
l 如果没有指定规则类型,则规则之间是“or”的关系。
l 如果未指定匹配规则,则默认不匹配。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 创建流分类,并进入traffic-classifier配置模式。
traffic classifier classifier-name [ and | or ]
缺省情况下,未配置任何流分类表。
(4) 为流分类表配置分类规则。请至少选择其中一项进行配置。
匹配IPv4报文的ACL。
if-match acl { acl-number | acl-name }
匹配IPv4任意报文。
if-match any
匹配802.1P报文CoS值。
if-match cos cos-value
匹配IPv4报文的DSCP值。
if-match dscp dscp-value
匹配IPv4报文的Precedence值。
if-match ip-precedence precedence-value
匹配IPv6报文的ACL。
if-match ipv6 acl acl-name
匹配IPv6任意报文。
if-match ipv6 any
匹配IPv6报文的DSCP值。
if-match ipv6 dscp dscp-value
匹配以太报文的VLAN ID值。
if-match vlan vlan-id
缺省情况下,流分类表未配置任何分类匹配规则。
(5) 退出traffic-classifier配置模式。
exit
流行为规则决定了分类后的流量调度参数。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3)
创建流行为,并进入traffic behavior配置模式。
traffic behavior behavior-name
缺省情况下,未配置任何流行为。
(4) 为流行为创建规则。请至少选择其中一项进行配置。
配置用户队列的承诺速率。
cir cir-value [ pir pir-value ]
缺省情况下,用户队列承诺速率为0,此时对该用户队列进行断流限速,该用户队列流量转发不通。
对不同优先级的报文进行着色。
service-class service-class-value color { green | yellow | red }
缺省情况下,未配置报文着色机制。
对不同扩展队列的报文进行着色。
extend-queue queue-num color { green | yellow | red }
缺省情况下,扩展队列的报文未配置着色机制。
配置报文的优先级字段的值。
remark { cos cos-value | dscp dscp-value | ip-precedence ip-precedence-value | ipv6 dscp ipv6-dscp-value }
缺省情况下,未重新配置报文的优先级字段的值。
exit
流策略规则把流分类和流行为关联起来,使得分类后的流量按用户配置进行调度。
为流分类指定流行为规则,并设定优先级。Precedence值越小优先级越高。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 创建流策略,并进入traffic policy配置模式。
traffic
policy policy-name
缺省情况下,未配置任何流策略。
(4) 为流分类指定采用的流行为。
classifier classifier-name behavior behavior-name [ precedence precedence-value ]
缺省情况下,系统不为任何流分类指定流行为。
(5) 退出traffic policy配置模式。
exit
在接口上应用流策略,使流策略生效。
l 在接口上应用流策略,需要指定layer参数,默认仅三层策略生效。
l 指定linklayer选项时只针对802.1P二层报文生效。
l 指定all-layer选项时同时针对三层报文和二层报文生效。
l 流策略指定linklayer或all-layer时只能针对主接口配置,配置之后主接口及其关联所有子接口同时生效。以上两个参数不支持子接口配置该命令。
l ATM主接口和ATM子接口只支持三层的流策略,不提供linklayer和all-layer选项。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
(4) 在接口上应用流策略。
traffic-policy policy-name { inbound | outbound } [ linklayer | all-layer ]
缺省情况下,接口上未配置任何流策略。
配置基于类的HQoS。
配置基于类的HQoS前,请确认已配置复杂流分类。
基于类的HQoS配置任务如下:
(1) (可选)配置类队列WRED模板
(2)
配置类队列模板
(3)
应用类队列模板
通过配置WRED模板,用户可以设置三种颜色报文拥塞避免的参数,包括高低门限和丢弃概率。
l 当队列中的报文小于低门限时,报文不会被丢弃。
l 当队列中的报文大于低门限并小于高门限时,按概率丢弃报文。
l 当队列中的报文大于高门限时,直接丢弃报文。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3)
创建WRED模板,并进入WRED配置模式。
wred wred-name
缺省情况下,未配置任何WRED模板。
(4)
配置三种颜色报文的拥塞避免相关的阀值参数。
color { green
| yellow | red } low-limit low-limit-percent
high-limit high-limit-percent discard-percent discard-percent-value
(5) 退出WRED配置模式。
exit
通过配置类队列模板,用户可以配置8种优先级队列的队列调度方式(PQ,WFQ和LPQ),流量整形值和WRED参数。
l 优先级为EF、CS6和CS7的队列为PQ调度。
l 优先级为BE、AF1、AF2、AF3和AF4的队列为WFQ调度。
l 默认不进行流量整形。
l 默认丢弃策略是尾部丢弃。
l 可以配置多个类队列模板,并应用到不同的接口。
l 类队列只能作用在出方向。
l 如果配置过多的端口队列,就需要调整各种优先级队列的队列深度。每端口队列缺省最大缓存8*100=800,当查看端口队列统计,队列满而且没有丢包统计时,就需要调整端口队列模板各队列深度参数。需要根据业务带宽,按平均512字节,缓存50ms计算,如4M的子接口,队列深度4096K/8 *(50/1000)/(512)= 50。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3)
创建类队列模板,并进入类队列配置模式。
port-queue port-queue-name
缺省情况下,未配置任何类队列模板。
(4)
配置优先级队列的调度参数。
queue {service-class-value { pq [ bandwidth { bandwidth-value | percent percent-value } ] | wfq bandwidth {bandwidth-value | percent percent-value } | lpq [ bandwidth { bandwidth-value | percent percent-value } ] } | extend-queue queue-num wfq bandwidth { bandwidth-value | percent-value } } [ shaping shaping-value ] [ wred wred-name ] [ depth depth-value ]
(5) 退出类队列配置模式。
exit
在接口上应用类队列模板。
应用到接口的类队列只对出方向的流量进行调度。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type
interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
(4) 在接口上应用类队列。
port-queue port-queue-name [ shaping shaping-value ]
缺省情况下,接口上未应用任何类队列。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过执行clear命令来清除各类信息。
注意
在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。
表1-6 HQoS监视与维护
作用 |
命令 |
清除接口类队列统计信息 |
clear
port-queue statistics interface interface-type interface-number |
查看流分类规则配置信息 |
show traffic
classifier [ classifier-name ] |
查看流行为规则配置信息 |
show traffic
behavior [ behavior-name ] |
查看流策略规则配置信息 |
show traffic
policy [ policy-name ] |
show wred [ wred-name ] |
|
查看类队列模板配置信息 |
show
port-queue [ port-queue-name ] |
查看接口的类队列统计信息 |
show
port-queue statistics [ interface interface-type interface-number ] |