在QoS技術中,流量監管、流量整形和接口限速功能可有效地控制帶寬流量,那麼,為何要控制帶寬流量呢?以什麼方法標記、計算帶寬流量呢?它們是如何實現帶寬流量地控制呢?本期文章,讓我們一起學習、總結。
一句話便可總結:即,有限的資源,需要合理控制、分配,讓各方都可接受。
例如,大學寢室4位同學共用一個百兆無線路由器訪問外網資源,即該路由器承載帶寬資源是有限的。當其中1位同學通過迅雷等軟件高速下載文件而占用大量帶寬時,其它3位同學訪問外網資源的速度自然受限,當然他們也就無法接受。為瞭使他們公平、有效地使用有限的帶寬資源,既要在該路由器上控制每個同學的訪問帶寬流量。
總之,控制帶寬流量的目的:是防止用戶惡意占用有限的帶寬資源,保證各用戶均能占用合理的帶寬資源,解決網絡發生擁塞的問題,從而提升網絡的服務質量。
就像公路限速,管理員隻有獲取公路測速雷達測試、記錄車輛的速度,才能采取相應的控制方式。同理,控制帶寬流量,就要解決標記、計算帶寬流量的問題。而解決該問題的方案一般采用令牌桶(Token Bucket)對流量進行度量。
令牌桶可以看作是一個存放一定數量令牌的容器。系統按設定的速度向桶中放置令牌,當桶中令牌滿時,多出的令牌溢出,桶中令牌不再增加。在使用令牌桶對流量規格進行評估時,是以令牌桶中的令牌數量是否足夠滿足報文的轉發為依據的。如果桶中存在足夠的令牌可以用來轉發報文,稱流量遵守或符合約定值,否則稱為不符合或超標。
關於令牌桶處理報文的方式,RFC中定義瞭以下標記算法:
RFC2697定義單速率三色標記(single rate three color marker,srTCM,或稱為單速雙桶算法)算法,主要關註報文尺寸的突發。
RFC2698定義雙速率三色標記(two rate three color marker,trTCM,或稱為雙速雙桶算法)算法,主要關註報文速率的突發。
為方便描述將兩個令牌桶稱為C桶和E桶。單速雙桶有3個參數:CIR、CBS和EBS。
•CIR(Committed Information Rate):承諾信息速率,表示向C桶中投放令牌的速率,即C桶允許傳輸或轉發報文的平均速率;
•CBS(Committed Burst Size):承諾突發尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發流量,承諾突發尺寸必須大於網絡傳輸的最大報文長度;
•EBS(Excess Burst Size):超額突發尺寸,表示E桶的容量,即E桶瞬間能夠通過的超出突發流量。E桶的容量等於CBS與EBS的和。
單速雙桶模式允許流量突發,當用戶的流量速率小於配置的CIR時,報文被標記為綠色;當用戶的突發流量大於配置的CBS而小於EBS時,報文被標記為黃色;當用戶的突發流量大於配置的EBS時,報文被標記為紅色。
單速雙桶算法中的EBS設置為0,此時E桶的令牌數始終為0,相當於隻使用瞭一個令牌桶,這種情況稱為單速單桶。單速單桶有2個參數CIR和CBS。
單速單桶模式不允許流量突發,當用戶的流量速率小於配置的CIR時,報文被標記為綠色;當用戶的流量大於CIR時直接被標記為紅色。
為方便描述將兩個令牌桶稱為P桶和C桶。雙速雙桶有4個參數CIR、CBS、PIR和PBS。
PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允許傳輸或轉發報文的峰值速率,PIR大於等於CIR;
PBS(Peak Burst Size):峰值突發尺寸,表示P桶的容量,即P桶瞬間能夠通過的峰值突發流量。
雙速雙桶模式允許流量速率突發,當用戶的流量速率小於配置的CIR時,報文被標記為綠色;當用戶的流量大於CIR而小於PIR時,報文被標記為黃色;當用戶的流量大於PIR時,報文被標記為紅色。
流量監管是對流量進行控制,通過監督進入網絡的流量速率,對超出部分的流量進行“懲罰”,使進入的流量被限制在一個合理的范圍之內,以保護網絡資源和運營商的利益。流量監管一般用於入方向,就像高速路,隻有在入口限制進入高速公路車輛的數量,才能保證高速公路不變成“龜速公路”。
如上圖所示,流量監管由三部分組成:
Meter:通過令牌桶機制對網絡流量進行度量,向Marker輸出度量結果。
Marker:根據Meter的度量結果對報文進行染色,報文會被染成green、yellow、red三種顏色。
Action:根據Marker對報文的染色結果,對報文進行一些動作,動作包括:
pass:對測量結果為“符合”的報文繼續轉發。
remark + pass:對測量結果為“不符合”的報文修改其內部優先級後再轉發。
discard:對測量結果為“不符合”的報文進行丟棄。
經過流量監管,如果某流量速率超過標準,超出標準部分的報文其測量結果為“不符合”,此時設備可以選擇降低報文優先級再進行轉發或者直接丟棄。缺省情況下,green、yellow進行轉發,red報文丟棄。
利用MQC工具,在創建流行為中配置流量監管。
例如,在華為交換機創建流行為並配置4Mbps流量監管。
[HuaWei_S5720-36C-EI-AC]traffic behavior 4M
[HuaWei_S5720-36C-EI-AC-behavior-4M]car cir 4096
#僅輸入命令“car cir 4096”,默認采用“雙速雙桶”算法。cbs缺省是cir的125倍。缺省情況下,green、yellow進行轉發,red報文丟棄。
[HuaWei_S5720-36C-EI-AC-behavior-4M]dis this
traffic behavior 4M
car cir 4096 pir 4096 cbs 512000 pbs 512000 green pass yellow pass red discard
return
[HuaWei_S5720-36C-EI-AC-behavior-4M]
#標記red的報文進行重標記優先級為0轉發
[HuaWei_S5720-36C-EI-AC-behavior-4M]car cir 4096 pir 4096 cbs 512000 pbs 512000 share red ?
discard Discard packet
pass Pass packet
[HuaWei_S5720-36C-EI-AC-behavior-4M]car cir 4096 pir 4096 cbs 512000 pbs 512000 share red pass ?
remark-8021p Specify vlan 802.1p to match
remark-dscp Remark IP DSCP of the packet and send it
<cr>
[HuaWei_S5720-36C-EI-AC-behavior-4M]car cir 4096 pir 4096 cbs 512000 pbs 512000 share red pass remark-dscp ?
INTEGER<0-63> Value of IP DSCP
[HuaWei_S5720-36C-EI-AC-behavior-4M]car cir 4096 pir 4096 cbs 512000 pbs 512000 share red pass remark-dscp 0
[HuaWei_S5720-36C-EI-AC-behavior-4M]dis this
traffic behavior 4M
car cir 4096 pir 4096 cbs 512000 pbs 512000 share green pass yellow pass red pass remark-dscp 0
return
[HuaWei_S5720-36C-EI-AC-behavior-4M]
同理,在華三交換機也是利用MQC工具,在創建流行為中配置流量監管。
[H3C_S5560X-54C-EI]traffic behavior 4M
[H3C_S5560X-54C-EI-behavior-4M]car cir 4094
#僅輸入命令“car cir 4096”,ebs設置為0,即,默認采用“單速單桶”算法。cbs與cir之間的倍數不固定。缺省情況下,green、yellow進行轉發,red報文丟棄。
[H3C_S5560X-54C-EI-behavior-4M]dis this
traffic behavior 4M
car cir 4094 cbs 256000 ebs 0 green pass red discard yellow pass
return
[H3C_S5560X-54C-EI-behavior-4M]
#采用“雙速雙桶”算法並對標記red的報文進行重標記優先級0轉發;
#華三交換機未定義pbs參數
[H3C_S5560X-54C-EI-behavior-4M]car cir 4094 cbs 256000 pir 4096 ebs 256000 red ?
discard Drop the packet
pass Send the packet
remark-dot1p-pass Remark 802.1p priority value of the packet and send it
remark-dscp-pass Remark DSCP value of the packet and send it
remark-lp-pass Remark local precedence of the packet and send it
[H3C_S5560X-54C-EI-behavior-4M]car cir 4094 cbs 256000 pir 4096 ebs 256000 red remark-dscp-pass ?
INTEGER<0-63> DSCP value
af11 AF11 DSCP (001010)
af12 AF12 DSCP (001100)
af13 AF13 DSCP (001110)
af21 AF21 DSCP (010010)
af22 AF22 DSCP (010100)
af23 AF23 DSCP (010110)
af31 AF31 DSCP (011010)
af32 AF32 DSCP (011100)
af33 AF33 DSCP (011110)
af41 AF41 DSCP (100010)
af42 AF42 DSCP (100100)
af43 AF43 DSCP (100110)
cs1 CS1 (IP precedence 1) DSCP (001000)
cs2 CS2 (IP precedence 2) DSCP (010000)
cs3 CS3 (IP precedence 3) DSCP (011000)
cs4 CS4 (IP precedence 4) DSCP (100000)
cs5 CS5 (IP precedence 5) DSCP (101000)
cs6 CS6 (IP precedence 6) DSCP (110000)
cs7 CS7 (IP precedence 7) DSCP (111000)
default Default DSCP (000000)
ef EF DSCP (101110)
[H3C_S5560X-54C-EI-behavior-4M]car cir 4094 cbs 256000 pir 4096 ebs 256000 red remark-dscp-pass 0
[H3C_S5560X-54C-EI-behavior-4M]dis this
traffic behavior 4M
car cir 4094 cbs 256000 pir 4096 ebs 256000 green pass red remark-dscp-pass default yellow pass
return
[H3C_S5560X-54C-EI-behavior-4M]
流量整形是一種主動調整流量輸出速率的措施,其作用是限制流量與突發,使這類報文以比較均勻的速率向外發送。流量整形通常使用緩沖隊列和令牌桶來完成,當報文的發送速度過快時,首先在緩沖隊列進行緩存,在令牌桶的控制下,再均勻地發送這些被緩沖的報文。流量整形一般用於出方向。
接口(指物理接口)收到的報文根據優先級映射進入不同的隊列,針對不同的優先級隊列設置不同的流量整形參數,可以實現對不同業務的差分服務。
下面以采用單速單桶技術的基於流的隊列整形為例介紹流量整形的處理流程,其處理流程如下圖所示。
eb494b5c7dc66d708b6a9a39eed72e5f
1.當報文到來的時候,首先對報文進行分類,使報文進入不同的隊列。
2.若報文進入的隊列沒有配置隊列整形功能,則直接發送該隊列的報文;否則,進入下一步處理。
3.按用戶設定的隊列整形速率向令牌桶中放置令牌:
如果令牌桶中有足夠的令牌可以用來發送報文,則報文直接被發送,在報文被發送的同時,令牌做相應的減少。
如果令牌桶中沒有足夠的令牌,則將報文放入緩存隊列,如果報文放入緩存隊列時,緩存隊列已滿,則丟棄報文。
4.緩存隊列中有報文的時候,會與令牌桶中的令牌數作比較,如果令牌數足夠發送報文則轉發報文,直到緩存隊列中的報文全部發送完畢為止。
#在華為交換機接口G0/0/7上匹配隊列5的報文進行流量整形配置
#華為交換機流量整形支持“雙速雙桶”算法
[HuaWei_S5720-36C-EI-AC]interface GigabitEthernet 0/0/7
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos queue 5 shaping cir 4096 pir 4096 cbs 512000 pbs 512000
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]dis this
#
interface GigabitEthernet0/0/7
port link-type access
qos queue 5 shaping cir 4096 pir 4096 cbs 512000 pbs 512000
#
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]
#查看華為交換機接口G0/0/7的流量整形配置
[HuaWei_S5720-36C-EI-AC]dis qos configuration interface GigabitEthernet 0/0/7
-------------省略信息-----------------------------------------
5 | shaping | cir = 4096, cbs = 512000
| | pir = 4096, pbs = 512000
| schedule | wrr, weight = 1
| wred |
| length |
--------------省略信息-----------------------------------------
[HuaWei_S5720-36C-EI-AC]
#在華三交換機接口G1/0/7上匹配隊列5的報文進行流量整形配置
#華三交換機流量整形僅支持“單速單桶”算法
[H3C_S5560X-54C-EI]interface GigabitEthernet 1/0/7
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts ?
queue Packets in the queue
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts queue ?
INTEGER<0-7> Number of the queue
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts queue 5 ?
cir Specify the committed information rate
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts queue 5 cir 4096 ?
cbs Specify the committed burst size
<cr>
#cbs的值必須是512的倍數;
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts queue 5 cir 4096 cbs ?
INTEGER<512-16777216> CBS value in bytes, it must be a multiple of 512
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts queue 5 cir 4096 cbs 512000 ?
<cr>
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos gts queue 5 cir 4096 cbs 512000
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]dis this
interface GigabitEthernet1/0/7
port link-mode bridge
qos gts queue 5 cir 4096 cbs 512000
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]
#查看華三交換機接口G1/0/7的流量整形配置
[H3C_S5560X-54C-EI]dis qos gts interface GigabitEthernet 1/0/7
Interface: GigabitEthernet1/0/7
Rule: If-match queue 5
CIR 4096 (kbps), CBS 256000 (Bytes)
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]
接口限速也是采用令牌桶進行流量控制,它可以限制一個接口上發送或者接收報文的總速率。如果在設備的某個接口配置瞭接口限速,所有經由該接口發送的報文首先要經過接口限速的令牌桶進行處理。如果令牌桶中有足夠的令牌,則報文可以發送;否則,報文將被丟棄或者被緩存。
下面以接口下采用單速單桶技術為例介紹出方向接口限速的處理流程,其處理流程如下圖所示。
1.如果令牌桶中有足夠的令牌可以用來發送報文,則報文直接被發送,在報文被發送的同時,令牌做相應的減少。
2.如果令牌桶中沒有足夠的令牌,則將報文放入緩存隊列,如果報文放入緩存隊列時,緩存隊列已滿,則丟棄報文。
3.緩存隊列中有報文的時候,會與令牌桶中的令牌數作比較,如果令牌數足夠發送報文則轉發報文,直到緩存隊列中的報文全部發送完畢為止。
#華為交換機G0/0/7接口出入方向配置接口限速4Mbps
#華為交換機接口限速僅支持“單速單桶”算法
[HuaWei_S5720-36C-EI-AC]interface GigabitEthernet 0/0/7
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr ?
inbound Inbound
outbound Outbound
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr inbound ?
cir Committed information rate
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr inbound cir ?
INTEGER<64-1000000> Enter cir (kbps)
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr inbound cir 4096 ?
cbs Committed burst size
<cr>
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr inbound cir 4096 cbs ?
INTEGER<4000-4294967295> The value of CBS, unit: byte
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr inbound cir 4096 cbs 512000 ?
<cr>
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr inbound cir 4096 cbs 512000
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]qos lr outbound cir 4096 cbs 512000
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]dis this
#
interface GigabitEthernet0/0/7
port link-type access
qos lr outbound cir 4096 cbs 512000
qos lr inbound cir 4096 cbs 512000
#
return
[HuaWei_S5720-36C-EI-AC-GigabitEthernet0/0/7]quit
#查看華為交換機G0/0/7接口出入方向接口限速的配置
[HuaWei_S5720-36C-EI-AC]dis qos configuration interface GigabitEthernet 0/0/7
interface GigabitEthernet0/0/7
-------------------省略信息-------------------------------
Port lr | outbound, cir = 4096, cbs = 512000
Port lr | inbound, cir = 4096, cbs = 512000
-------------------省略信息-------------------------------
[HuaWei_S5720-36C-EI-AC]
#華三交換機G1/0/7接口出入方向配置接口限速4Mbps
#華三交換機接口限速僅支持“單速單桶”算法
[H3C_S5560X-54C-EI]interface GigabitEthernet 1/0/7
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr ?
inbound Limit the rate on the inbound direction
outbound Limit the rate on the outbound direction
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr inbound ?
cir Specify the committed information rate
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr inbound cir ?
INTEGER<1000-1048576> CIR value in kbps
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr inbound cir 4096 ?
cbs Specify the committed burst size
<cr>
#cbs的值必須是512的倍數;
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr inbound cir 4096 cbs ?
INTEGER<512-134217728> CBS value in bytes, it must be a multiple of 512
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr inbound cir 4096 cbs 512000 ?
<cr>
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr inbound cir 4096 cbs 512000
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]qos lr outbound cir 4096 cbs 512000
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]dis this
#
interface GigabitEthernet1/0/7
port link-mode bridge
qos lr inbound cir 4096 cbs 512000
qos lr outbound cir 4096 cbs 512000
#
return
[H3C_S5560X-54C-EI-GigabitEthernet1/0/7]
#查看華三交換機G1/0/7接口出入方向接口限速的配置
[H3C_S5560X-54C-EI]dis qos lr interface GigabitEthernet 1/0/7
Interface: GigabitEthernet1/0/7
Direction: Inbound
CIR 4096 (kbps), CBS 512000 (Bytes)
Direction: Outbound
CIR 4096 (kbps), CBS 512000 (Bytes)
[H3C_S5560X-54C-EI]
通過本文學習、總結,希望各位小夥有如下收獲:
帶寬流量控制的意義;
令牌桶的含義以及采用三種算法來標記、計算帶寬流量;
流量監管、流量整形和接口限速的含義、作用及對應的配置;
流量監管在流行為中配置,一般應用於入方向;流量整形利用瞭接口緩沖隊列,因此,它在接口中配置,一般應用於出方向;接口限速也利用瞭接口緩沖隊列,同理,它也在接口中配置,可應用於接口出入方向。