access-list rate-limit
在设置committed access rate的时候可以使用acl来对特定优先级(IPPrecedence)的流量进行区分处理。
需求:对IP Precedence = 1 2 5的流量限速 2M,其他的限速1M,Normal burst=Maximum burst=35000bytes
通常会按照下面的写法做:
写ACL匹配IP Precedence 1,2,5:
access-list 101 permit ip any any precedence priority
access-list 101 permit ip any any precedence immediate
access-list 101 permit ip any any precedence critical
接口下配置:
rate-limit input access-group 101 2000000 35000 35000 conform-action transmit exceed-action drop
rate-limit input 1000000 35000 35000 conform-action transmit exceed-action drop
如果使用access-list rate-limit命令可以直接使用一条ACL即可实现对IP Precedence 1,2,5的匹配:
access-list rate-limit 1 mask 26
rate-limit input access-group rate-limit 12000000 35000 35000 conform-action transmit exceed-action drop
rate-limit input 1000000 35000 35000 conform-action transmit exceed-action drop
26是经过下面步骤计算得出来的:
IP Precedence 1对应的8bit为 00000010
IP Precedence 2对应的8bit为 00000100
IP Precedence 5对应的8bit为 00100000
将1,2,5对应的8bit串按位相加:00100110,转换为16进制:26
ip access-list rate-limit 1 (序号,仅做标示作用,0-99可以用来标记IP Precedence)mask 26 (26就是刚刚计算出来的结果)可以表示IP Precedence 1,2,5。
—————————————————————
说下 access-list rate-limite 的后面的掩码的算法
在使用限速访问列表(access-list rate-limit)根据IP优先级或EXP字段分类时,一个访问列表内只能写一个值,如果要在同一个访问列表内表示多个值,可以使用掩码。掩码的用法如下:
第一步,确定需要表达的IP优先级值或EXP值。<?XML:NAMESPACE PREFIX = O />
第二步,把优先级值或EXP值用一个8比特二进制数代表。它们的对应关系是:
0-00000001
1-00000010
2-00000100
3-00001000
4-00010000
5-00100000
6-01000000
7-10000000
第三步,把需要表达的值对应的二进制数值相加。例如,希望同时表达IP优先级3和7,mask= 00001000 + 10000000 = 10001000
第四步,把相加后的二进制值转换为十六进制值。例如,把第三步相加后的值转换为十六进制后就是0x88。
第五步,用十六进制值写入限速访问列表中。
例3:把优先级为0,1,2的数据指派到限速访问列表10中。
access-list rate-limit 10 mask 07
例4:把携带EXP值为3和4的数据指派到限速访问列表中。
access-list rate-limit 200 mask 18
提示:FF表示匹配任意值;00表示不匹配任意值。