Cisco QoS配置說明(CBWFQ/LLQ/PQ/CQ/WFQ)

來源:本站原創 CISCO 超過863 views圍觀 0條評論

Cisco QoS配置說明(CBWFQ/LLQ/PQ/CQ/WFQ)QOS-CBWFQ

CBWFQ 基于類別的加權公平排隊,通常使用ACL定義數據流類別,并將注入寬帶和隊列限制等參數應用于這些類別.
CBWFQ特點:
1)能夠給不同的類保障一定的帶寬
2)對傳統的WFQ作了擴展支持用戶自己定義流量的分類:
3)隊列的個數和類別是一一對應,給每個class 保留帶寬
CBWFQ與WFQ的區別:
WFQ: 用戶無法控制分類,由HASH算法自己決定
CBWFQ:讓用戶對流量自己來分類
WFQ 對正常流量 處理沒問題,但是對語音流量顯得”太公平”(語音要求低延遲)
CBWFQ:考慮到公平特性,并沒有考慮到語音的應用
CBWFQ Configuration:
CBWFQ(config)#
CBWFQ(config)#class-map match-any CBWFQ1
CBWFQ(config-cmap)#match dscp 6
CBWFQ(config-cmap)#match protocol http //兩個條件,滿足其中一個就可以匹配CBWFQ1//
CBWFQ(config-cmap)#exit
CBWFQ(config)#
CBWFQ(config)#class-map match-all CBWFQ2
CBWFQ(config-cmap)#match precedence 3
CBWFQ(config-cmap)#match protocol telnet //兩個條件必須全部滿足才能匹配CBWFQ2//
CBWFQ(config-cmap)#exit
CBWFQ(config)#
CBWFQ(config)#policy-map CBWFQ
CBWFQ(config-pmap)#class CBWFQ1 //調用class-map CBWFQ1//
CBWFQ(config-pmap-c)#bandwidth 60
CBWFQ(config-pmap)#
CBWFQ(config-pmap)#class CBWFQ2
CBWFQ(config-pmap-c)#bandwidth 30
CBWFQ(config)#
CBWFQ(config)#int s0/0
CBWFQ(config-if)#service-policy output CBWFQ   //CBWFQ只能在出方向上調用//
CBWFQ#
查看:
CBWFQ#
CBWFQ#show class-map
Class Map match-any class-default (id 0)
Match any
Class Map match-any CBWFQ1 (id 1)
Match dscp 6
Match protocol http
Class Map match-all CBWFQ2 (id 2)
Match precedence 3
CBWFQ#
CBWFQ#
CBWFQ#show policy-map
Policy Map CBWFQ
Class CBWFQ1
Bandwidth 60 (kbps) Max Threshold 64 (packets)
Class CBWFQ2
Bandwidth 30 (kbps) Max Threshold 64 (packets)
CBWFQ#
CBWFQ#
CBWFQ(config)#
CBWFQ(config)#policy-map CBWFQ
CBWFQ(config-pmap)#class CBWFQ1
CBWFQ(config-pmap-c)#queue-limit 30 // 定義每個隊能存放的報文數量,超過后丟包方式:Tail drop//
CBWFQ#
CBWFQ#
CBWFQ#show policy-map
Policy Map CBWFQ
Class CBWFQ1
Bandwidth 60 (kbps) Max Threshold 30 (packets)
Class CBWFQ2
Bandwidth 30 (kbps) Max Threshold 64 (packets)
CBWFQ#
配置實例:
一家公司需求;HTTP流量保障256Kbps帶寬,FTP流量保證512Kbps帶寬,禁止BT流量.
CBWFQ(config)#
CBWFQ(config)#class-map class_HTTP   //定義一個匹配HTTP的類//
CBWFQ(config-cmap)#match protocol http
CBWFQ(config)#
CBWFQ(config)#class-map class_FTP
CBWFQ(config-cmap)#match protocol ftp
CBWFQ(config)#
CBWFQ(config)#class-map class_BT
CBWFQ(config-cmap)#match protocol bittorrent
CBWFQ(config)#
CBWFQ(config)#policy-map CBWFQ   //定義策略,調用類class//
CBWFQ(config-pmap)#class class_HTTP
CBWFQ(config-pmap-c)#bandwidth 256
CBWFQ(config-pmap)#
CBWFQ(config-pmap)#class class_FTP
CBWFQ(config-pmap-c)#bandwidth 512
CBWFQ(config-pmap)#
CBWFQ(config-pmap)#class class_BT
CBWFQ(config-pmap-c)#drop
CBWFQ(config-pmap)#
CBWFQ(config-pmap)#class class-default
CBWFQ(config-pmap-c)#fair-queue  //網絡中剩下的流量除了HTTP,FTP之使用WFQ放到fair-queue中了//
CBWFQ(config)#
CBWFQ#
CBWFQ(config)#int s0/0
CBWFQ(config-if)#service-policy output CBWFQ
CBWFQ(config)#
QOS-WFQ
Weighted Fair Queue,加權公平隊列。WFQ將分組按照不同的業務流、不同的IP優先級,自動按照HASH算法,劃分成不同的隊列,在保證高優先級業務的同時,按照配置權重,將帶寬公平地分給低優先級別的業務。Quidway路由器在每個接口上最大支持4096個隊列,在此范圍之內,網絡治理員可以配置隊列的數目和相應權值。WFQ的優點是對所有應用都能比較公平地提供服務質量,對于要求較高的業務可以通過設置權重保障優先級,能智能劃分隊列和調度,配置相對簡單,對網絡治理員要求相對較低;缺點是由于相對公平,對于QOS要求極高的應用,不能象PQ那樣絕對保證,策略計算復雜,比較消耗路由器處理能力。它適用于應用較復雜,并且應用相對公平的網絡,如Internet網。WFQ的思想:
i,為每個流創建一個專用的隊列,避免隊列的饑餓,延遲,抖動 等
ii,在所有流間公平,正確地分配帶寬
iii,WFQ使用 [IP優先級] 作為分配帶寬的權重 在CISCO路由器上,接口小于E1的鏈路會默認啟用WFQ.
注:在WFQ中,weight的計算方式為4096/(IP優先級+1)或者32384r/(IP優先級+1)
因此在show queue中看到的weight值越大,表示權重越低。

WFQ優點

1.配置簡單(不用手工分類)

2.保證所有的流都有一定的帶寬

3.丟棄野蠻流量

4.大多數平臺上都支持

5.支持所有IOS版本(11.0以上)

WFQ缺點

1.每個子隊列都繼承了FIFO的缺點

2.多個不同的流可能會被分入同一個隊列(流的數量超過了配置的隊列數)

3.不支持手工分類

4.不能提供固定帶寬保證

5.因為使用了復雜的分類和調度機制,對系統資源有一定的限制

配置命令:
route(config-if):fair-queue cdt dynamic-queues reservable-queues
動態隊列個數  保留隊列個數

reservable-queues:
保留隊列個數:針對RSVP流,可以保留一定的隊列,缺省是0,范圍0~1000
dynamic-queues:
動態隊列個數: 缺省是256,流確實很多,可以調大,最大4096
cdt:
每個隊自己的長度
一個數據排到第一個隊中,cdt=64,如果該隊的報文己達到64,新的報文丟包!
每個隊中排的報文數量是有限的
所有隊列加起來,上限:

router(config-if)#hold-queue max-limit out 缺省1000
一個報文是否在WFQ中排到隊列中的二個因素:
1)–本隊列是否己滿
2)–所有隊列是否超出隊列上限   —-超出報文丟棄

WFQ Configuration:

WFQ(config)#
WFQ(config)#int s0/1
WFQ(config-if)#fair-queue //表面接口啟用WFQ,CISCO路由器小于E1會默認啟用//

WFQ(config-if)#fair-queue 128 1024 100 //設置CDT為128,動態隊列數量為1024個,保留隊列個數100//

WFQ(config-if)#hold-queue 1200 out //所有隊列加起來CDT上限是1200//
WFQ(config-if)#

查看:

WFQ#
WFQ#show int s0/1
Serial0/1 is up, line protocol is up
Queueing strategy: weighted fair
Output queue: 0/1200/64/0 (size/max total/threshold/drops)
Conversations   0/1/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 1158 kilobits/sec
5 minute input rate 3000 bits/sec, 3 packets/sec
5 minute output rate 3000 bits/sec, 3 packets/sec
1001 packets input, 97009 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
1004 packets output, 96674 bytes, 0 underruns
0 output errors, 0 collisions, 3 interface resets
0 output buffer failures, 0 output buffers swapped out
3 carrier transitions     DCD=up   DSR=up   DTR=up   RTS=up   CTS=up

WFQ#

QOS-CQ

Customized Queue 用戶定制隊列

CQ使用了17個子隊列(其中0子隊列是PQ隊列,優先級很高,留給系統使用),CQ使用WRR(Round-Robin)機制。首先談談RR機制,RR在處理完一個隊列的一個數據包之后,會接著處理另一個隊列的一個數據包,一直下去,最后又從第一個隊列開始輪流處理每個隊列中的數據包,RR中的每個隊列的優先級都是一樣的。RR的改進版是WRR(WeightedRound-Robin),WRR允許用戶為每個隊列分配一個權值,根據這個權值,每個隊列都能獲得一定的接口帶寬。在CQ中,權值就是一次輪循中可以轉發的字節數。

前面說到了0隊列是PQ隊列,實際上可以把其他隊列也設置成PQ隊列:

可以通過以下命令來設置:

queue-list list-number lowest-custom queue-number

比如命令queue-list 1 lowest-custom 3,說明0,1,2都是優先級隊列,3以及3以上編號的隊列都是定制隊列。

CQ configuration:

r2(config)#
r2(config)#access-list 101 permit ip any any precedence 5
r2(config)#

r2(config)#queue-list 16 protocol ip 1 list 101 //把ACL101定義的數據流映射到子隊列1中//
r2(config)#queue-list 16 queue 1 limit 40 //設置子隊列1的隊列深度為40個數據包//
r2(config)#queue-list 16 lowest-custom 2  //設置queue 0,1為優先級隊列PQ,其余的為CQ//

r2(config)#queue-list 16 interface s0/0 2 //把s0/0接口進入的流量映射到子隊列2中//
r2(config)#queue-list 16 queue 2 byte-count 3000 //設置子隊列2在一個輪循內可以傳輸3000字節數據包

r2(config)#queue-list 16 protocol ip 3 //把所有IP流量映射到子隊列3中//
r2(config)#queue-list 16 queue 3 byte-count 5000

r2(config)#queue-list 16 default 4 //其它所有流量映射到子隊列4中//
r2(config)#

r2(config)#
r2(config)#int s0/1

r2(config-if)#custom-queue-list 16 //應用CQ到接口s0/1上//
r2(config)#

QOS-PQ

PQ使用了4個子隊列,優先級分別是high,medium,normal,low。PQ會先服務高優先級的子隊列,若高優先級子隊列里沒有數據后,再服務中等優先級子隊列,依次類推。如果PQ正在服務中等優先級子隊列,但是高優先級里又來了數據包,則PQ會中斷中等優先級子隊列的服務,轉而服務高優先級子隊列。每一個子隊列都有一個最大隊列深度(queue-size),如果達到了最大隊列深度,則進行尾丟棄。

PQ優點

1.對高優先級的數據流提供了低延遲的轉發

2.大多數平臺上都支持該隊列機制

3.支持所有的IOS版本(10.0以上)

PQ缺點

1.對單一子隊列而言,會繼承FIFO隊列的所有缺點

2.對低優先級的數據流而言,可能會被“餓死”,因為只有高優先級隊列里有數據,PQ就不會服務低優先級隊列

3.需要在每一跳上都手工的配置分類

PQ Configuration:

PQ(config)#

PQ(config)#priority-list 1 protocol ip high list 101 //把Acl101定義的數據映射到high優先級隊列//
PQ(config)#priority-list 1 interface s0/0 medium  //把來自s0/1口的流量映射到Medium優先級隊列//
PQ(config)#priority-list 1 default normal //所有其它流量映射到Normal優先級隊列//

PQ(config)#priority-list 1 queue-limit 20 30 40 50 //分別設置高,中,普通,低優先級隊列長度//
PQ(config)#
PQ(config)#int s0/1

PQ(config-if)#priority-group 1 //把PQ映射到接口s0/1上//

PQ(config)#

查看:

PQ#
PQ#show queueing int s0/1
Interface Serial0/1 queueing strategy: priority

Output queue utilization (queue/count)
high/13 medium/0 normal/2056 low/0
PQ#

PQ#

PQ#show queueing priority
Current DLCI priority queue configuration:
Current priority queue configuration:

List Queue   Args
1    high protocol ip       list 101
1    medium interface Serial0/0
1    medium limit 30
1    normal limit 40
1    low limit 50
PQ#

QOS-LLQ
Low Latency Queueing(低延遲隊列LLQ)
i、特點
在CBWFQ中添加一個優先級隊列用于實時的流量。
* 高優先級隊列得到如下保障:
a)低延遲的報文轉發
b)帶寬
注:在擁塞發生時,高優先級的流量同時受到管制—即它們占用的帶寬不能超過它們所保障的帶寬。
* 低優先級隊列使用CBWFQ。
ii、配置LLQ
priority 帶寬值—-為一個類分配固定的帶寬值確保快速轉發;若擁塞時,超過該帶寬的流量將被丟棄。(若沒有擁塞,將不會使用管制)
LLQ基本可以滿足企業中融合的網絡應用
支持語音對網絡的低延遲,抖動小,保障帶寬
對其它流量提供公平處理
LLQ= CBWFQ+PQ
LLQ configuration:
LLQ(config)#
LLQ(config)#class-map VOIP
LLQ(config-cmap)#match ip precedence 5
LLQ(config)#
LLQ(config)#class-map cbwfq1
LLQ(config-cmap)#match ip precedence 3 4
LLQ(config)#
LLQ(config)#class-map cbwfq2
LLQ(config-cmap)#match ip precedence 1 2
LLQ(config)#
LLQ(config)#policy-map LLQ
LLQ(config-pmap)#class VOIP
LLQ(config-pmap-c)#priority percent 10 //針對VOIP類流量使用PQ,這路流量在任何情況下都優先發送
LLQ(config-pmap-c)#                   同時最大帶寬可以為接口帶寬的10%//
LLQ(config-pmap)#class cbwfq1
LLQ(config-pmap-c)#bandwidth percent 30
LLQ(config-pmap-c)#
LLQ(config-pmap)#class cbwfq2
LLQ(config-pmap-c)#bandwidth percent 20 //CBWFQ方式進行調度,分別保障30%和20%接口帶寬//
LLQ(config-pmap-c)#
LLQ(config-pmap)#class class-default
LLQ(config-pmap-c)#fair-queue    //剩下其它隊列采用缺省的WFQ調度//
LLQ(config-pmap-c)#
LLQ(config)#
LLQ(config)#int s0/0
LLQ(config-if)#service-policy output LLQ
LLQ(config)#

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=312轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏 个人商推app怎么赚钱 七彩娱乐苹果 重庆时时彩计划群 北京赛车7码计划 2005年七星彩开奖记录 云南快乐10分前三组走势图 开家厨房用具赚钱吗 湖北十一选五开奖公告 极速快乐十分计划 可以用模拟器运行赚钱软件吗 时时彩稳赚的倍投方案 云南快乐十分20选8技巧 永利com官方网站 国标麻将与大众麻将的区别 亿乐彩苹果 如何开面馆赚钱吗