QoS專題-第4期-QoS實現之限速
QoS實現之限速
通過前面幾篇介紹,大家都知道了MQC是實現QoS的技術,優先級映射是實現QoS的前提條件。讀完之後也許無法直觀感覺到QoS是如何提升網絡服務質量。今天小編給大家介紹限速,通過實驗,可以直觀地感受到QoS如何提升服務質量。
1 什麽是限速
有人會問了,既然是限制我的上網速度,怎麽說是提高服務質量呢。舉個例子,如果一個人使用BT瘋狂下載視頻,導致網絡擁塞,嚴重影響了其他人的上網質量,所以在某些場景下不得不限速。限速的目的是防止有人惡意占用帶寬,在保證用戶正常業務前提下,保證整個網絡不發生擁塞,提升整個網絡的服務質量。
其實大家對限速的概念都不陌生,尤其是開車的同學,估計不少人因超速被懲罰過。流量限速也比較類似,將進/出交換機的流量的速率限制在約定的範圍之內。如果不超速皆大歡喜,如果超過限定速率,則對超出部分報文進行懲罰。
l 沒有超速,獎勵綠卡,可暢通無阻(直接轉發)。
l 稍微超速,黃牌警告(報文緩存)。
l 過分超速,紅牌罰下,禁止通行(超過的報文丟棄)。
常用的流量限速有兩種技術:
l 流量監管:流量監管簡單粗暴,如果流量超速,則對超出部分的流量進行“懲罰”,直接丟棄。流量監管一般用於入方向,就像高速路,只有在入口限制進入高速公路車輛的數量,才能保證高速公路不變成“龜速公路”。
l 流量整形:和流量監管相比,流量整形要溫柔得多,流量整形是用於限制某個或某些隊列的輸出速率,超速的報文不是直接丟棄,而是暫時存在緩存裏,等空閑了還是會輸出,只有緩存滿了之後才會丟棄。這樣使流量輸出比較平穩,從而解決下遊設備的擁塞問題,所以流量整形一般用於出方向
也有人把接口限速作為流量限速的一種技術,在小編看來,接口限速是流量監管、流量整形的一種特殊情況,我們在後邊做詳細介紹。
2 如何實現限速
既然要限速,那首先要解決測量速度的問題,就像汽車限速,如果沒有測速雷達等手段測試汽車速度,那限速就沒有任何意義。那交換機如何判斷流量是否超速呢?答案是“使用令牌桶”。令牌桶有三種測速方法,對應三種機制:單速單桶、單速雙桶、雙速雙桶。令牌桶原理不是本文介紹的重點,如需了解令牌桶原理詳細信息,請參見華為論壇“CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看這裏!—-揭秘令牌桶”。
下面簡單介紹一下三種令牌桶的應用場景。
l 單速單桶:以CIR速率向C桶投放令牌。報文來了之後,從C桶取令牌,如果令牌夠了,則進行轉發,如果令牌不夠,則直接丟棄。一般用於優先級較低的業務(如企業外網HTTP流量)限速,對於超過額度的流量直接丟棄保證其他業務,不考慮突發。
l 單速雙桶:以CIR速率向兩個桶投放令牌。先投放小桶C桶,小桶滿了再投放大桶E桶。報文來了之後,先使用小桶中的令牌,小桶中令牌數量不夠,則放回去,再使用大桶中的令牌。對於超過C桶,而又沒有超過E桶的報文標記為***,采用BE方式或者等網絡空閑後進行轉發。和單桶相比,單速雙桶允許突發流量,主要用於較為重要而又不太緊急的業務,比如企業郵件數據,可避免郵件發送失敗。
l 雙速雙桶:以CIR速率向C桶投放令牌,以PIR速率向P桶投放令牌。報文進來之後,會同時取兩個桶的令牌,C桶令牌夠用則標記為綠色直接轉發,如果連P桶的令牌都不夠用,則標記為紅色直接丟棄,介於C桶和P桶之間,則標記為***。和單速雙桶的區別就是向兩個桶投放令牌的速率不同,我們一般設置PIR>CIR,P桶投放令牌的速率更快,所以更能長時間撐住突發流量。
使用令牌桶的總體原則:如果不考慮突發流量,使用單速單桶;如果要考慮突發流量,使用單速雙桶;如果考慮可能會有長時間的流量突發,使用雙速雙桶。
3 限速參數設置有講究
在令牌桶算法中,CIR的值越大,即令牌產生的速率越大,報文可以獲取的令牌就越多,流向網絡的流量也就越大。因此,CIR的值是控制流入網絡中流量多少的關鍵。CBS也是一個重要參數,CBS的值越大,C桶中可以積累令牌的數目也越多,允許通過的報文尺寸就越大。
由於設備進行的是逐包轉發,CBS的值不應該小於當前網絡上允許傳輸的報文的最大長度。
例如,在單速單桶模式下,假設要把流量限定在10Mbit/s,而CBS值太小(如設置成1000byte)。如果某個時間段內流量的報文,每個報文大小都大於1000byte,那麽這些報文全都被丟棄。這段時間內,沒有報文被轉發,報文的轉發速率為0,導致網絡資源被浪費,業務也出現異常。
那是不是CBS的值越大就越好呢?顯然不是。CBS值太大,會失去限速的意義。例如,假設要把流量限定在10Mbit/s,CBS設置成7200Mbyte。某個時刻,令牌桶中的令牌已滿,如果接下來1小時內流量的報文,其報文長度不一,但共計7200Mbyte,這些報文都能獲得令牌並被轉發,那麽這段時間內的報文速率為16Mbit/s(7200M * 8 / 3600)而不是10Mbit/s,即沒有實現限速。
同理,對於雙速雙桶模式,PIR和PBS的值也應設置在合理範圍內。
4 限速的應用
常用的流量限速技術有流量監管、流量整形。如圖1所示,流量監管和流量整形在網絡中的應用如圖1所示。
華為交換機只支持單速單桶和雙速雙桶。
圖1 限速應用場景
5 基於流分類(MQC)的流量監管
前面我們已經介紹過,流量監管一般用於入方向。下面舉個例子,詳細介紹如何在入方向配置基於MQC的流量監管。如圖2所示,企業的語音業務對應的VLAN ID為120,視頻業務對應的VLAN ID為110,數據業務對應的VLAN ID為100。各種業務對服務質量的要求,如表1所示。
表1 各種業務對服務質量要求
流量類型 |
CIR(kbps) |
PIR(kbps) |
說明 |
語音 | 8000 | 15000 | 語音業務對實時性要求比較高,設置大帶寬的同時,將DSCP優先級標記為46,保證後續設備優先轉發。 |
視頻 | 10000 | 20000 | 視頻業務需要大帶寬,對實時性要求沒語音那麽敏感,可以配置大帶寬,將DSCP優先級標記為30。 |
數據 | 4000 | 4000 | 數據業務對於報文丟包和實時性要求都不高,CIR和PIR設置一樣,相當於使用單速單桶進行限速,將DSCP優先級標記為14。 |
圖2 流量監管組網圖
設備互通配置這裏不做詳細介紹,下面主要介紹限速的相關配置。
1. 配置流分類,設備根據報文VLAN進行分類。
[Switch] traffic classifier c1 operator and
[Switch-classifier-c1] if-match vlan-id 120
[Switch-classifier-c1] quit
[Switch] traffic classifier c2 operator and
[Switch-classifier-c2] if-match vlan-id 110
[Switch-classifier-c2] quit
[Switch] traffic classifier c3 operator and
[Switch-classifier-c3] if-match vlan-id 100
[Switch-classifier-c3] quit
2. 創建流行為,配置流量監管參數,並標記優先級
[Switch] traffic behavior b1
[Switch-behavior-b1] car cir 8000 pir 15000 //配置語音業務限速帶寬
[Switch-behavior-b1] remark dscp 46 //標記語音報文DSCP為46
[Switch-behavior-b1] statistic enable //用於驗證配置結果
[Switch-behavior-b1] quit
[Switch] traffic behavior b2
[Switch-behavior-b2] car cir 10000 pir 20000 //配置視頻業務限速帶寬
[Switch-behavior-b2] remark dscp 30 //標記視頻報文DSCP為30
[Switch-behavior-b2] statistic enable
[Switch-behavior-b2] quit
[Switch] traffic behavior b3
[Switch-behavior-b3] car cir 4000 //配置數據業務限速帶寬
[Switch-behavior-b3] remark dscp 14 //標記數據報文DSCP為14
[Switch-behavior-b3] statistic enable
[Switch-behavior-b3] quit
3. 配置流策略,並在接口GE0/0/20入方向應用。
[Switch] traffic policy p1
[Switch-trafficpolicy-p1] classifier c1 behavior b1
[Switch-trafficpolicy-p1] classifier c2 behavior b2
[Switch-trafficpolicy-p1] classifier c3 behavior b3
[Switch-trafficpolicy-p1] quit
[Switch] interface gigabitethernet 0/0/20
[Switch-GigabitEthernet0/0/20] traffic-policy p1 inbound
[Switch-GigabitEthernet0/0/20] quit
4. 使用測試儀驗證配置結果
驗證數據業務限速情況:
對於數據報文CIR和PIR設置的值一樣,其實現效果等同於單速單桶。對數據報文的限速為4000Kbps,4000kbps=4096000bit/s,設置報文速率為4096000bit/s,通過測試儀發送到GE0/0/20接口。
在交換機上查看報文統計信息,可以看到丟棄報文為0,不超過4000kbps,所有報文通過。
在測試器上設置報文速率為5000kbps=5120000bit/s,並發送報文到GE0/0/20。使用reset traffic policy statistics all清空統計報文,重新查看報文統計信息,可以看到入方向報文超過4000Kbps,設備開始丟棄報文。
驗證視頻業務限速結果:
視頻業務配置的雙速雙桶,CIR為10000Kbps,PIR為20000Kbps。
速率小於CIR和大於PIR的情況我們不再驗證,結果可以想到,速率小於CIR,所有報文允許通過,速率大於PIR就會有報文丟棄。
主要驗證速率介於CIR和PIR之間會是什麽效果,我們先查看下配置,如下圖所示,配置信息顯示,對於標記為***的報文流(即其速率大於CIR而小於等於PIR),默認是允許通過的。也就是說,設備將按照配置的PIR值進行限速。
我們用測試儀發送15000Kbps(15360000bps)的報文驗證一下,可以發現丟包數為0,說明設備按照PIR進行限速。
6 流量整形
下面我們再介紹一下如何配置流量整形。如圖3所示,我們會將根據報文的優先級和重要性映射到不同的隊列,針對不同隊列分別進行整形,要求如下:
l 語音保證帶寬(CIR)為3000kbit/s,峰值帶寬(PIR)為5000kbit/s。
l 視頻保證帶寬(CIR)為5000kbit/s,峰值帶寬(PIR)為8000kbit/s。
l 數據保證帶寬(CIR)為2000kbit/s,峰值帶寬(PIR)為3000kbit/s。
圖3 流量整形組網圖
配置步驟如下:
1. 在設備上將不同優先級報文映射到不同隊列,將802.1p優先級6、5、2分別映射為PHB行為CS7、EF、AF2。
[Switch] diffserv domain ds1
[Switch-dsdomain-ds1] 8021p-inbound 6 phb cs7
[Switch-dsdomain-ds1] 8021p-inbound 5 phb ef
[Switch-dsdomain-ds1] 8021p-inbound 2 phb af2
[Switch-dsdomain-ds1] quit
2. 在接口配置針對不同隊列的流量整形。
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] trust upstream ds1
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] qos queue 7 shaping cir 3000 pir 5000
[Switch-GigabitEthernet2/0/1] qos queue 5 shaping cir 5000 pir 8000
[Switch-GigabitEthernet2/0/1] qos queue 2 shaping cir 2000 pir 3000
[Switch-GigabitEthernet2/0/1] quit
驗證方式和流量監管比較類似,這裏不再做詳細介紹。
7 接口限速
接口限速是對一個接口上全部報文進行限速,當不需要區分報文類型,而要限制通過接口全部流量的速率時,可以使用接口限速功能簡化配置。
接口限速可以用在出方向,也可以用在入方向。
l 入方向接口限速是流量監管的一種特殊情況,不需要對報文進行分類的流量監管就是接口限速,配置方法如下:
框式交換機 | 1. 配置CAR參數:qos car car-name cir cir-value [ cbs cbs-value [ pbs pbs-value ] | pirpir-value [cbs cbs-value pbs pbs-value ] ]
2. 進入接口視圖:interface interface-type interface-number 3. 在接口下應用CAR模板:car inbound car-name |
盒式交換機 | 1. 進入接口視圖:interface interface-type interface-number
2. 配置入方向的接口限速:qos lr inbound cir cir-value [ cbs cbs-value ]。 |
l 出方向接口限速是流量整形的一種特殊情況,不是針對單個隊列進行整形,而是針對所有的隊列進行整形,如果每個隊列報文優先級無差異,可以針對接口配置流量整形。配置方法如下:
框式交換機 | 1. 進入接口視圖:執行命令interface interface-type interface-number。
2. 配置出方向接口限速:qos lr cir cir-value [ cbs cbs-value ] [ outbound ] |
盒式交換機 | 1. 進入接口視圖:interface interface-type interface-number
2. 配置入方向的接口限速:qos lr outbound cir cir-value [ cbs cbs-value ] |
QoS專題-第4期-QoS實現之限速