1、CBWFQ(Class-BasedWeighted Fair Queuing)
WFQ是非常模糊的一个队列机制,对流量的条件带宽控制不好掌握。
CBWFQ使得用户自己去定义不同的队列,可以通过acl,入接口,优先级,DSCP值等等去分类,并且可以允许给每类分配拥塞时的最小保证带宽,明确了分类明确了带宽保证。注意,CBWFQ的默认调度方法是FIFO,可以配置为FQ和早期丢弃。默认丢弃机制为尾丢弃。
CBWFQ通过使用bandwidth参数实现在发生拥塞的情况下有最小带宽的保证。
CBWFQ特点:
a,bandwith 敲入参数是当拥塞的情况下有最小的带宽保证。
b,当没有发生拥塞时此类可以超出最小带宽保证(原因是没有拥塞就不会有软件队列,没有软件队列CBWFQ没有效果)。意义在于在任何情况下都有最小带宽的保证。
c,当发生拥塞时出口带宽有多余的情况下各个类的class会按着最小带宽保证的比例来占用多余带宽。
默认接口的可用的带宽为总参考带宽的75%(这个数值和IOS版本也有关系,有的可高达99%),如果CBWFQ策略超出了75%的带宽,可以采用下面方法去修改最大保留可用的带宽;
max-reserved-bandwidth 100如果你想用到100%,必须打上这一命令。比如3600上当超过了75%的带宽后就必须敲入此命令进行调控,但是在7200上面及时超过了75%的带宽不去用此命令调控也是没有问题的。
2、LLQ(LowLatency Queuing)在WFQ的基础上增加了一个优先队列=CBWFQ+PQ
CBWFQ虽然能够为各种类别的流量提供带宽的保证,但却不能提供低延迟的传输保证,为此LLQ解决保证对延时敏感的数据流优先传输。比如VOICE流量。
低延时队列,可以优先传送低延时队列里的数据,一般为语音流量。可以保证此流量的低延时通过保证此数据流量的最小带宽。在LLQ队列里总是优先传送PQ队列的数据流,当PQ队列的数据流量传送完毕后再依次传送其他数据。
默认可以将任何数据流放入LLQ队列保证优先的传送,但是一般情况下只将语音这些对延迟特别敏感的数据流放入此队列中。
配置通过priority参数实现,和bandwidth配置一致。
3、LLQ典型实验(CBWFQ+PQ)--CCIE考试的一道题目
题目要求:
一部分数据流量已经做了如下的优先级的标记;
1.Control IPprecedence 6 to 7
2.Voice IPprecedence 5
3.Video IPprecedence 4
4.BusinessIP precedence 3
5.InternetIP precedence 0
配置R1路由器的interfaceS1/0口共享可用带宽并且要满足以下需求;
1.使用MQC的方法并且使用的class-map的名字是上面题目给出,并且大小写敏感。
2.所有的class-map使用match-all这个选项
3.所有class-map只能使用"match ip precedence"这样的准则
4.voice流量要优先所有其他流量,使用LLQ的方式但是不能超过可用带宽的20%
5.control的流量是可用带宽2000Kbps中的100Kbps。
6.VIDEO的流量也许不能超过可用带宽的30%
7.business的流量也许不能超过可用带宽的30%
8.internet流量的带宽使用剩余的带宽,但是不能超过。
class-map match-allBusiness
match ip precedence3
class-map match-allInternet
match ip precedence0
class-map match-allControl
match ip precedence 67
class-map match-allVideo
match ip precedence4
class-map match-allVoice
match ip precedence5
!
policy-mapqos
class Voice
priority percent 20 ----PQ 优先级队列,最小带宽保证,最小时延保证。
classControl
bandwidth percent 5-----CBWFQ普通CBWFQ队列,最小带宽保证。
class Video
bandwidth percent30
classBusiness
bandwidth percent30
classInternet
policecir percent 15---CBPOLICE(流量限制)
R1(config)#interfaceS1/0
R1(config-if)bandwidth 2000
R1(config-if)max-reserved-bandwidth 100 --超过可用带宽,修改最大可用带宽
R1(config-if)service-policy output qos
查看策略;
R1#sho policy-map interfaces1/0
Serial1/0
Service-policy output:qos
Class-map: Voice(match-all)
0 packets, 0bytes
5 minute offered rate 0 bps,drop rate 0 bps
Match: ip precedence 5
Queueing
Strict Priority ---优先级队列的标识
Output Queue: Conversation264
Bandwidth 20 (%)
Bandwidth 400 (kbps) Burst10000 (Bytes)
(pkts matched/bytes matched)0/0
(total drops/bytes drops)0/0
Class-map: Control(match-all)
0 packets, 0bytes
5 minute offered rate 0 bps,drop rate 0 bps
Match: ip precedence 6 7
Queueing
Output Queue: Conversation265
Bandwidth 5 (%)
Bandwidth 100 (kbps)MaxThreshold 64 (packets)
(pkts matched/bytes matched)0/0
(depth/total drops/no-bufferdrops) 0/0/0
Class-map: Video(match-all)
0 packets, 0bytes
5 minute offered rate 0 bps,drop rate 0 bps
Match: ip precedence 4
Queueing
Output Queue: Conversation266
Bandwidth 30 (%)
Bandwidth 600 (kbps)MaxThreshold 64 (packets)
(pkts matched/bytes matched)0/0
(depth/total drops/no-bufferdrops) 0/0/0
Class-map: Business(match-all)
0 packets, 0bytes
5 minute offered rate 0 bps,drop rate 0 bps
Match: ip precedence 3
Queueing
Output Queue: Conversation267
Bandwidth 30 (%)
Bandwidth 600 (kbps)MaxThreshold 64 (packets)
(pkts matched/bytes matched)0/0
(depth/total drops/no-bufferdrops) 0/0/0
Class-map: Internet(match-all)
1 packets, 24bytes
5 minute offered rate 0 bps,drop rate 0 bps
Match: ip precedence 0
police:
cir 15 %
cir 300000 bps, bc 9375bytes
conformed 0 packets, 0bytes; actions:
transmit
exceeded 0 packets, 0 bytes;actions:
drop
conformed 0 bps, exceed 0bps
Class-map: class-default(match-any)
0 packets, 0bytes
5 minute offered rate 0 bps,drop rate 0 bps
Match:any