1. 程式人生 > >QoS專題-第4期-QoS實現之限速

QoS專題-第4期-QoS實現之限速

配置結果 borde 一個 測試儀 命令 方法 服務 而不是 operator

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 //標記語音報文DSCP46

[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 //標記視頻報文DSCP30

[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 //標記數據報文DSCP14

[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實現之限速