QOS之CAR CAR: 承諾訪問(wèn)速率(CAR,Commited Access Rate)是一種流量策略的分類和標(biāo)記的方法, 它基于IP 優(yōu)先級(jí)、DSCP 值、MAC 地址或者訪問(wèn)控制列表來(lái)限制IP 流量的速率。標(biāo)記則可以 改變IP 優(yōu)先級(jí)或者DSCP。 CAR 使用令牌桶的機(jī)制,檢查令牌桶中是否有足夠的令牌。如果一個(gè)接口有可用的令牌,令牌可以從令牌桶中挪走,數(shù)據(jù)包被轉(zhuǎn)發(fā),當(dāng)這個(gè)時(shí)間間隔過(guò)去后,令牌會(huì)重新添加到令牌桶中。如果接口沒(méi)有可用的令牌,那么CAR 可以定義對(duì)數(shù)據(jù)包采取的行為。CAR 使用3 種速率定義來(lái)定義流量的速率: Normal rate(正常的速率):令牌被添加到令牌桶中的平均速率,就是數(shù)據(jù)包的平均傳輸速率。 Normal burst(正常的突發(fā)):正常的突發(fā)時(shí)在時(shí)間間隔內(nèi)允許正常流量速率的流量。 Excess burst(過(guò)量突發(fā)):超過(guò)正常突發(fā)的流量。當(dāng)配置過(guò)量突發(fā)時(shí),會(huì)借令牌并且 將它添加到令牌桶中來(lái)允許某種程度的流量突發(fā)。當(dāng)被借的令牌已經(jīng)使用后在這個(gè)接口 上收到的任何超出的流量會(huì)被扔掉。流量突發(fā)只會(huì)發(fā)生在短時(shí)間內(nèi),直到令牌桶中沒(méi)有 令牌存在才停止傳輸。 通常建議正常的流量速率配置為等于在一段時(shí)間內(nèi)的平均流量速率。正常的突發(fā)速率應(yīng) 當(dāng)?shù)扔谡K俾实?span lang="EN-US" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">1.5 倍。過(guò)量速率是正常突發(fā)速率的2 倍。 DSCP:差分服務(wù)代碼點(diǎn) 主要是是數(shù)據(jù)包中的TOS或者COS來(lái)標(biāo)記的。比如IP優(yōu)先級(jí)之類的。 IETF Diffserv工作組 正在進(jìn)行使用戶可以使用IP報(bào)頭中的 ToS字節(jié)中的 6bit用來(lái)標(biāo)記DSCP ![]() TOS 整個(gè)字段一共 8位,下圖中是 ip precedence 的標(biāo)識(shí)方法,使用前三位,也就是 P0、P1、P2 一共三位,共 8個(gè) bit 位,也就是 8個(gè)優(yōu)先級(jí),分別是0-7,其中6和7一般保留,常用的是 0-5,圖中下面部分介紹的事 IP 優(yōu)先級(jí)的含義,提供這個(gè)表格的意義在于 進(jìn)行更改數(shù)據(jù)包優(yōu)先級(jí)等配置時(shí),我們既可以使用數(shù)字,也可以使用名稱。 ![]() 分類是沒(méi)有范圍限制的,也就是說(shuō)我們可以對(duì)數(shù)據(jù)進(jìn)行靈活的分類,比如說(shuō)把某一個(gè)源ip 到目的 ip 的流量?jī)?yōu)先級(jí)進(jìn)行更改 IP 優(yōu)先級(jí)或者 DSCP 的操作。也可以定義去更改某一個(gè)特定的流量(擴(kuò)展控制列表)的優(yōu)先級(jí)。 R1(config)#int s0/0/0 R1(config-if)#rate-limit output access-group 101 64000 12000 16000 conform-action set-prec-transmit 3 exceed-action set-prec-transmit 0 //以上在接口上啟用CAR,對(duì)于符合ACL 101 的流量,平均速率為64000 位/秒,正常突發(fā) 量為12000 字節(jié)/秒,過(guò)量突發(fā)量為12000 字節(jié)/秒。 R1(config-if)#rate-limit output access-group 102 16000 8000 9000 conform-action set-prec-transmit 2 exceed-action drop R1(config-if)#rate-limit output 48000 8000 10000 conform-action set-prec-transmit 0 exceed-action drop R1(config)#access-list 101 permit tcp any any eq www R1(config)#access-list 102 permit tcp any any eq smtp 【技術(shù)要點(diǎn)】rate-limit 的命令格式為: rate-limit { output | input } { { action } CIR 單位是bit/s;而BC 和BE 的單位是byte/s。 conform-action 的條件是指當(dāng)要發(fā)的數(shù)據(jù)小于正常突發(fā)(bc)的時(shí)候 exceed-action 是指要發(fā)的數(shù)據(jù)大于普通突發(fā),小于最大突發(fā)(be)的時(shí)候。 action 的選項(xiàng)共有如下這些: continue:繼續(xù)執(zhí)行下一條CAR 語(yǔ)句 drop:丟棄數(shù)據(jù)包 tranmsit:轉(zhuǎn)發(fā)數(shù)據(jù)包 set-prec-continue { precedence }:設(shè)置IP 優(yōu)先級(jí)并繼續(xù)執(zhí)行下一條CAR 語(yǔ)句 set-prec-transmit { precedence }:設(shè)置IP 優(yōu)先級(jí)并轉(zhuǎn)發(fā)數(shù)據(jù)包 set-dscp-continue { dscp }:設(shè)置dscp 值并繼續(xù)執(zhí)行下一條CAR 語(yǔ)句 set-dscp-transmit { dscp }:設(shè)置dscp 值并轉(zhuǎn)發(fā)數(shù)據(jù)包 試驗(yàn): R1(config-if)#rate-limit output ? <8000-2000000000> Bits per second access-group Match access list 使用訪問(wèn)控制列表做對(duì)象 dscp Match dscp value 使用差分服務(wù)代碼訪問(wèn)點(diǎn)做對(duì)象 qos-group Match qos-group ID R1(config-if)#rate-limit output access-group 3 64000 15000 36000 ? conform-action action when rate not exceeded rate-limit output access-group 3 64000 1600 36000 conform-action transmit exceed-action drop config t hostname R1 int s1/0 ip add 192.168.30.1 255.255.255.0 no shutdown int fa2/0 ip add 192.168.2.1 255.255.255.0 no shut exit access-list 3 permit 192.168.2.0 0.0.0.255 access-list 4 permit 192.168.11.0 0.0.0.255 access-list 101 permit tcp any any eq www access-list 102 permit udp any any eq tftp int s1/0 rate-limit output access 3 64000 16000 36000 conform-action transmit exceed-action drop rate-limit output access 4 35000 17000 27000 conform-action transmit exceed-action drop rate-limit output access 101 64000 26000 46000 conform-action transmit exceed-action drop rate-limit input access 102 64000 16000 36000 conform-action transmit exceed-action drop end show run show int s1/0 |
|