可以用acl和nbar技術(shù)綜合定義數(shù)據(jù)流。Acl定義可以采用下述參數(shù):源IP地址、目的IP地址、第4層協(xié)議(如UDP)、源端口號(hào)碼以及目的端口號(hào)碼等。與一套已定義參數(shù)相匹配的數(shù)據(jù)包都被視為屬于相同的流,NBAR技術(shù)可以識(shí)別應(yīng)用層流;
建立ACL用來(lái)識(shí)別p2p應(yīng)用端口或者服務(wù)器ip地址,可根據(jù)實(shí)際情況配置,例如:
ip access-list extended edonkey
permit tcp any any range 4661 4662
permit tcp any any range 4242 4243
permit udp any any eq 4665
同時(shí)應(yīng)用pdlm包
ip nbar pdlm bittorrent.pdlm
ip nbar pdlm eDonkey.pdlm
二、建立策略:
具體實(shí)施時(shí),需要先配置一個(gè)用戶(hù)定制的Policing,該P(yáng)olicing應(yīng)該包括以下三個(gè)參數(shù):平均速率、最大突發(fā)量和超過(guò)限制時(shí)所進(jìn)行的處理。為提供更靈活的帶寬限制,Policing又分為兩種:Microflow和Aggregate。MicroflowPolicing可以提供對(duì)單一流使用帶寬限制,而AggregatePolicing則可以對(duì)所有流總使用帶寬進(jìn)行限制。
將定制的Policing放到一個(gè)訪問(wèn)控制列表中,并定義到一個(gè)端口或一個(gè)VLAN上,即可以實(shí)現(xiàn)對(duì)用戶(hù)的帶寬管理。如果同時(shí)應(yīng)用集合和微流策略器,則QoS就會(huì)總是執(zhí)行策略器所制定的最嚴(yán)重的行為。例如,如果一個(gè)策略器要求丟棄數(shù)據(jù)包,而另外一個(gè)策略器則指示數(shù)據(jù)包降級(jí),那么數(shù)據(jù)包將會(huì)被丟棄。默認(rèn)狀態(tài)下,微流策略器僅對(duì)被路由的(第3層)流量起作用。如果要對(duì)橋接的(第2層)流量也起作用,則需要啟用橋接微流策略mls qos bridged。
Catalyst 6000中的策略可以根據(jù)“漏桶”概念來(lái)實(shí)施:與入局流量數(shù)據(jù)包對(duì)應(yīng)的令牌都被置入一個(gè)桶中(每個(gè)令牌代表1位,從而大數(shù)據(jù)包比小數(shù)據(jù)包對(duì)應(yīng)更多的令牌)。在正常時(shí)間間隔內(nèi),一定數(shù)量的令牌數(shù)將從桶中取出并被發(fā)送。如果桶中沒(méi)有更多空間容納輸入的數(shù)據(jù)包,則數(shù)據(jù)包被視為超出配置文件范圍而被丟棄或者根據(jù)配置的策略操作實(shí)行降級(jí)處理。
計(jì)算參數(shù)
多種參數(shù)控制令牌桶的行為:
?Rate 定義每個(gè)時(shí)間間隔內(nèi)將有多少令牌取出。低于速率的所有流量都被視為是符合配置要求的。
?Interval 定義令牌隔多長(zhǎng)時(shí)間從桶內(nèi)取出一次。間隔固定在0.00025秒,從而令牌每秒鐘將從桶中取出4000次。時(shí)間間隔不能更改。
?Burst 定義在任何一個(gè)時(shí)刻桶內(nèi)能夠容納的最大令牌數(shù)。為了維持規(guī)定的流量速率,突發(fā)速率的大小不應(yīng)該低于速率與時(shí)間間隔的乘積。另外一種考慮就是最大尺寸的數(shù)據(jù)包也必須能夠置入桶內(nèi)。
可以用以下公式來(lái)確定突發(fā)速率參數(shù):
突發(fā)速率=(速率(bps)*0.00025(秒/時(shí)間間隔))或(最大數(shù)據(jù)包大小(位)), 取兩者中較大的值。
例如,計(jì)算需要在以太網(wǎng)上維持1 Mbps速率所需的最小突發(fā)速率值。速率定義為1 Mbps,而最大的以太網(wǎng)數(shù)據(jù)包為1518 字節(jié),這樣公式變?yōu)椋?/P>
突發(fā)速率=(1,000,000bps*0.00025)或(1518字節(jié)* 8位/字節(jié))=250 或 12144
兩者中較大的值為12144,我們可將其折算為13 Kbps。 注: 在Cisco IOS中,策略速率以bps定義。此外,突發(fā)速率在Cisco IOS中以字節(jié)來(lái)定義。
注: 由于受硬件策略粒度的影響,實(shí)際速率和突發(fā)速率都應(yīng)該折算為最接近的支持值。確認(rèn)突發(fā)速率值不低于最大的數(shù)據(jù)包尺寸,否則所有大于最大突發(fā)速率尺寸的數(shù)據(jù)包都將被丟棄。
例如,如果用戶(hù)想在Cisco IOS中將突發(fā)速率設(shè)置為1518,則它將會(huì)被折算為1000字節(jié),從而所有大于1000字節(jié)的幀都將被丟棄。解決方案是將突發(fā)速率配置為2000。
在定義突發(fā)速率時(shí),需要考慮一些協(xié)議(如TCP)會(huì)針對(duì)丟包而采用流控制機(jī)制。例如,TCP將把每個(gè)要丟失的數(shù)據(jù)包的窗口縮小一半,相應(yīng)地,當(dāng)對(duì)某個(gè)速率進(jìn)行策略時(shí),有效的鏈路使用率就會(huì)低于配置的速率。您可以增加突發(fā)速率從而實(shí)現(xiàn)更高的利用率。對(duì)這些流量來(lái)說(shuō),比較簡(jiǎn)單易行的方式就是將突發(fā)速率的大小增加一倍(在我們的例子中可以從13 Kbits增加到26 Kbits),監(jiān)控性能,然后根據(jù)需要進(jìn)行調(diào)整。
mls qos
!--- 激活 QoS
mls qos flow-policing
class-map match-any bit
match protocol bittorrent
match protocol eDonkey
match access-group edonkey
match … !-用戶(hù)根據(jù)實(shí)際情況定義
policy-map p2p
class bit
police flow 100000 2000 conform-action transmit exceed-action drop
!--- 定義微流管理器,限制每個(gè)p2p應(yīng)用流為100 Kbps的微流量
police 20000000 13000 26000 conform-action transmit exceed-action drop
!--- 定義聚合管理器,以便限制所有p2p應(yīng)用流為20Mbps聚合流量
三、在接口上應(yīng)用策略(設(shè)備可能僅支持input方向)
interface gigabitEthernet0/2
service-policy input p2p
service-policy output p2p
如果實(shí)施基于VLAN的QoS配置,需要在二層接口配置mls qos vlan-based
四、驗(yàn)證策略實(shí)施情況
sh mls qos
sh mls qos ip gigabitEthernet 0/2
sh mls ip detail #進(jìn)行微流策略統(tǒng)計(jì)
sh int g0/2 rate-limit
show policy-map interface g0/2
show ip nbar unclassified-port-stats
show ip nbar protocol stats byte-count
show ip nbar port-map | include custom
注:以上配置適用于cisco6509sup720平臺(tái),可用IOS版本12.1以上。