在Cisco IOS中應用QoS策略限制P2P流量

如果要對橋接的(第2層)流量也起作用,則需要啓用橋接微流策略mls qos bridged。例如,計算需要在以太網上維持1 Mbps速率所需的最小突發速率值。速率定義爲1 Mbps,而最大的以太網數據包爲1518 字節,這樣公式變爲:

一、識別流量:

可以用acl和nbar技術綜合定義數據流。Acl定義可以採用下述參數:源IP地址、目的IP地址、第4層協議(如UDP)、源端口號碼以及目的端口號碼等。與一套已定義參數相匹配的數據包都被視爲屬於相同的流,NBAR技術可以識別應用層流;
建立ACL用來識別p2p應用端口或者服務器ip地址,可根據實際情況配置,例如:
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
同時應用pdlm包
ip nbar pdlm bittorrent.pdlm
ip nbar pdlm eDonkey.pdlm
二、建立策略
具體實施時,需要先配置一個用戶定製的Policing,該Policing應該包括以下三個參數:平均速率、最大突發量和超過限制時所進行的處理。爲提供更靈活的帶寬限制,Policing又分爲兩種:Microflow和Aggregate。MicroflowPolicing可以提供對單一流使用帶寬限制,而AggregatePolicing則可以對所有流總使用帶寬進行限制。
將定製的Policing放到一個訪問控制列表中,並定義到一個端口或一個VLAN上,即可以實現對用戶的帶寬管理。如果同時應用集合和微流策略器,則QoS就會總是執行策略器所制定的最嚴重的行爲。例如,如果一個策略器要求丟棄數據包,而另外一個策略器則指示數據包降級,那麼數據包將會被丟棄。默認狀態下,微流策略器僅對被路由的(第3層)流量起作用。如果要對橋接的(第2層)流量也起作用,則需要啓用橋接微流策略mls qos bridged。
Catalyst 6000中的策略可以根據“漏桶”概念來實施:與入局流量數據包對應的令牌都被置入一個桶中(每個令牌代表1位,從而大數據包比小數據包對應更多的令牌)。在正常時間間隔內,一定數量的令牌數將從桶中取出並被髮送。如果桶中沒有更多空間容納輸入的數據包,則數據包被視爲超出配置文件範圍而被丟棄或者根據配置的策略操作實行降級處理。
計算參數
多種參數控制令牌桶的行爲:
Rate 定義每個時間間隔內將有多少令牌取出。低於速率的所有流量都被視爲是符合配置要求的。
Interval 定義令牌隔多長時間從桶內取出一次。間隔固定在0.00025秒,從而令牌每秒鐘將從桶中取出4000次。時間間隔不能更改。
Burst 定義在任何一個時刻桶內能夠容納的最大令牌數。爲了維持規定的流量速率,突發速率的大小不應該低於速率與時間間隔的乘積。另外一種考慮就是最大尺寸的數據包也必須能夠置入桶內。
可以用以下公式來確定突發速率參數:
突發速率=(速率(bps)*0.00025(秒/時間間隔))或(最大數據包大小(位)), 取兩者中較大的值。
例如,計算需要在以太網上維持1 Mbps速率所需的最小突發速率值。速率定義爲1 Mbps,而最大的以太網數據包爲1518 字節,這樣公式變爲:
突發速率=(1,000,000bps*0.00025)或(1518字節* 8位/字節)=250 或 12144
兩者中較大的值爲12144,我們可將其折算爲13 Kbps。 注: 在Cisco IOS中,策略速率以bps定義。此外,突發速率在Cisco IOS中以字節來定義。
注: 由於受硬件策略粒度的影響,實際速率和突發速率都應該折算爲最接近的支持值。確認突發速率值不低於最大的數據包尺寸,否則所有大於最大突發速率尺寸的數據包都將被丟棄。
例如,如果用戶想在Cisco IOS中將突發速率設置爲1518,則它將會被折算爲1000字節,從而所有大於1000字節的幀都將被丟棄。解決方案是將突發速率配置爲2000。
         在定義突發速率時,需要考慮一些協議(如TCP)會針對丟包而採用流控制機制。例如,TCP將把每個要丟失的數據包的窗口縮小一半,相應地,當對某個速率進行策略時,有效的鏈路使用率就會低於配置的速率。您可以增加突發速率從而實現更高的利用率。對這些流量來說,比較簡單易行的方式就是將突發速率的大小增加一倍(在我們的例子中可以從13 Kbits增加到26 Kbits),監控性能,然後根據需要進行調整。

mls qos
!--- 激活 QoS
mls qos flow-policing
class-map match-any bit
match protocol bittorrent
match protocol eDonkey
match access-group edonkey
match … !-用戶根據實際情況定義
policy-map p2p
class bit
police flow 100000 2000 conform-action transmit exceed-action drop
!--- 定義微流管理器,限制每個p2p應用流爲100 Kbps的微流量
police 20000000 13000 26000 conform-action transmit exceed-action drop
!--- 定義聚合管理器,以便限制所有p2p應用流爲20Mbps聚合流量
三、在接口上應用策略(設備可能僅支持input方向)

interface gigabitEthernet0/2
service-policy input p2p
service-policy output p2p
如果實施基於VLAN的QoS配置,需要在二層接口配置mls qos vlan-based
四、驗證策略實施情況
sh mls qos
sh mls qos ip gigabitEthernet 0/2
sh mls ip detail #進行微流策略統計
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平臺,可用IOS版本12.1以上。  
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章