複製鏈接
請複製以下鏈接發送給好友

CBWFQ

鎖定
CBWFQ是基於類別的加權公平隊列。
CBWFQ(通常使用ACL)定義數據流類別,並將注入寬帶和隊列限制等參數應用於這些類別。
外文名
CBWFQ
全    稱
class-based weighted fair queuing

CBWFQ類別定義

CBWFQ 基於類別的加權公平隊列。
CBWFQ(通常使用ACL)定義數據流類別,並將注入寬帶和隊列限制等參數應用於這些類別。
基於類的加權公平隊列(class-based weighted fair queuing)是網絡中的一個隊列配置方案,其允許通信基於標準分類,例如訪問控制列表,輸入界面名,協議和服務質量(QoS)標誌。CBWFQ擴展了加權公平隊列(weighted fair queuing)功能的標準來提供自定義通信類型支持。
一、顧名思義Class-Based首先要定義一個Class;
Example:(config)#class-map [match-all | match-any] myclass
match-all 指名條件必須全部滿足,才可以執行,此為Default值;match-any表示匹配任何一個條件就可以執行。class-map的名字不要超過64個字符,同時要滿足Cisco 命名字符要求。
接下來輸入匹配條件
1、匹配另一個CLass-map
Example:(class-map)#match class-map comclass
match 為匹配關鍵字,class- map comclass
為另一個Class-Map,一個Class-map可以調用另外一個Class-map可以實現複雜的匹配條件。
2、匹配一種協議類型:
Example:(class-map)#match protocol myprotocol
protocol是協議關鍵字,其協議類型源於NBAR(Network-Based Application Recognition),可以從Cisco網站下載PDLM (Packet Description Language Module,分組描述語言模塊)文件,裝到Flash中,增加協議類型。其中類型包括 EGP,ICMP,EIGRP,DNS,HTTP,Telnet等上百種具體協議。
3、可以匹配訪問列表
Example:(class-map)#match access-group [number | name myname],可以匹配基於號碼的list和基於Name的Access list,大家都很熟了,不多説了。
4、匹配CoS (class of Servie)
(Exampleclass-map)#match cos mycos1 mycos2..
匹配分組標識CoS值,最多可以連續匹配四個值,Cos取值範圍0(低)->7(高)。
5、匹配IP優先級(IP Precedence)
Example:(class-map)#match ip precedence myprecedence1 myprecedence2..
類似COS,最多4個值,取值範圍0-7。
6、匹配DSCP值(Differentiated Services Code Point)DSCP採用IP分組的服務類型字節(TOS)。
(Exampleclass-map)#match ip dscp mydscp1 mydscp2...
dscp取值範圍0-63,最多連續匹配8個dscp值。
7、匹配實時協議RTP(Real-Time Protocol)(一般語音或視頻)
Example:(class-map)#match ip rip start-port port-range
起始端口為2000-65535,範圍從0到16383,用來匹配UDP端口。
8、匹配入接口(為什麼只有入接口?猜測看)
Example:(class-map)#match input-interface type number
不説了,一看就懂。
9、匹配目的MAC:
Example:(class-map)#match destination-address mac mymacaddress
同上。
10、還有一些不常用的,就不提了,感興趣的朋友可以看看相關資料。

CBWFQ使用

二、類別定義好了,就看如何使用了:
1、定義策略映像:(globle)#policy-map my-policymap
簡單。
2、指定一種或多種流量類型(最多64個類型):(pmap)#class myclass
注意在Policy-map配置模式下,別和Class-Map混淆了。
3、使用Default類型,缺省情況下思科早為你準備好了一個Default class,適用於任何你沒有定義的其他類型,名字叫class-default ,要記住,打?是看不到的。
Example:(pmap)#class class-default
類型都指定了,我們總該做點什麼吧?該用SET命令了。
4、設置FR的FRDE(Frame Relay Discard Eligibiltiy),12.2(2)T 以上才有呢。
Example:(pmap-class)#set fr-de
注意當前配置模式,此命令沒有參數。
5、SET COS
Example:(pmap-class)#set cos cos
6、SET IP Precedence
Example:(pmap-class)#set ip precedence myprecedence
7、SET IP DSCP Example:(pmap-class)#set ip dscp mydscp
説了老半天,下面才是我們想要的。
8、給類型分配帶寬:
Example:(pmap-class)#bandwidth { mybandwidth | percent mypercent}
mybandwidth 指定具體帶寬,如果知道接口總帶寬就可以使用; percent關鍵字指定接口可用帶寬百分比,0-100取值,默認情況下接口可用最大帶寬為物理帶寬的75%(其餘25%留給系統自己用),所以percent 值是75%的percent,而不是物理帶寬的percent,我們可以使用max-reserved-bandwidth precent
更改最大可用帶寬,注意了,不用隨意更改!!!,如果你只定義了你喜歡的流量而沒有指定default-class,或者給default-class 很小的帶寬,你就慘了,有可能連路由學不到,而且還不知道什麼原因。該帶寬是按照WFQ算法進行,不一定完全符合,下面介紹一個完全符合的。
9、將LLQ用於嚴格的優先級類型:
Example:(pmap-class)#priority { mybandwidth | percent mypercent} mybandwidth 完全符合,類似PQ算法,主要適用於低延遲的語音,要仔細規劃好才使用,免得出錯。
10、使用流量管理來控制流量速率
Example:(pmap-class)#police bps burst-normal burst-max conform-action action exceed-action action [violate-action action]
這條命令稍微複雜些,bps 指定平均流量速率(bit/s),burst-normal burst-max 分別是流量能突發超出平均值和過度超出平均值,都以字節為單位;我們可以根據流量速率和管理閥值之間的關係,制定相應的措施。如果流量符合bps速率或者升高但低於正常的突發burst -normal,會採取conform-action;如果流量升高到介於burst-normal和 burst-max之間,則採取exceed- action;最後,如果流量超過burst-max值,如果指定了violate-action,則會採取相應措施,如果沒有指定,則burst- max對流量沒有任何影響。action可以是drop, set-qos-transmit, set-dscp-transmit,就不一一説明了。
11、還有一些其他參數,使用較少就不介紹了。

CBWFQ應用

三、最後,將policy-map 應用到接口上。
(interface)#service-policy {input | output} mypolicymap
分為出和入兩個方向,該接口就可以乖乖的執行你的策略了。
以上對Qos中的一點技術做了大概説明,如果能靈活掌握,以後如果再遇到類似“衝擊波”病毒,對網絡性能造成影響,就可以擺平了。
QoS技術博大精深,可以應用的地方很多,幾乎出現在思科全系列產品上,但是會用的人太少,隨着網絡應用愈來愈複雜,QoS越來越有用武之地了,感興趣的朋友可以參考《Administering Cisco QOS in IP Network》,四位CCIE的力作,syngress出版,獲得過大獎。

CBWFQ補充信息

補充:查看流量:
最好用流量分析儀,不過很貴,下面介紹幾款窮人的“分析儀”
1、用擴展訪問列表做log記錄,最好先清一些buffer和logging,此方法有侷限性,只有對協議類型或者地址熟悉的情況下使用。
2、IP accounting,先定義閥值,免得累壞了你的路由器,在關鍵接口啓用,入或出方向都可以,用show ip accounting 看看,裏面的東東比較詳細,自己看好了。
3、Netflow, 啓用CEF的路由器可以定製想要觀察的FLow,不過對MEM要求較高,要仔細看清楚了再用,其輸出內容非常豐富。
4、還有幾款複雜的,不太實用,就不介紹了。