CAR是Committed AccessRate的简写,意思是:承诺访问速率,CAR主要有两个作用:对一个端口或子端口(Subinterface)的进出流量速率按某个标准上限进行限制;对流量进行分类,划分出不同的QoS优先级。CAR只能对IP包起作用,对非IP流量不能进行限制,另外CAR只能在支持CEF交换(CiscoExpress Forward)的路由器或
交换机上使用。
要对流量进行控制我们首先要做的是对数据包分类识别(Packet Classification),然后再对其进行流量控制(Access Rate Limiting),CAR 就是两者的结合。
我们通常在
网络的边缘
路由器上配置CAR 。配置CAR主要包括以下几部分:
1. 确定“感兴趣”的流量类型也就是我们需要监视的流量,主要通过下列方式确定:
(1)基于IP前缀,此种方式是通过rate-limit access list来定义的。
(2)基于QoS分组。
(3)基于MAC地址。
(4)基于standard或extended的IP access list。
2.在相应的端口配置rate-limit:
一般的写法是:
interface X
rate-limit {input output} [access-group number ] bps burst-normal burst-max conform-
action action exceed-action action
上述命令的含义是:
interface: 用户希望进行流量控制的端口,可以是Ethernet也可以是serial口,但是不同类型的interface在下面的input、output上选择有所不同。
Input output:确定需要限制输入或输出的流量。如果在以太网端口配置,则该流量为output;如果在serial端口配置,则该流量为input。
access-group number: number是前面用access list定义流量的access list号码。
bps:用户希望该流量的速率上限,单位是bps。
burst-normal burst-max:这个是指token bucket的大小,一般采用8000、16000、32000这些值,视bps值的大小而定。
conform-action:在速率限制以下的流量的处理策略。
exceed-action:超过速率限制的流量的处理策略。
action:处理策略,包括以下几种:
◆ transmit:传输。
◆ drop:丢弃。
◆ set precedence and transmit:修改IP前缀然后传输。
◆ set QoS group and transmit:将该流量划入一个QoS group内传输。
◆ continue:不动作,看下一条rate-limit命令中有无流量匹配和处理策略,如无,则transmit。
◆ set precedence and continue:修改IP前缀然后continue。
◆ set QoS group and continue:划入QoS group然后continue。
例如:在路由器上对ICMP包通过配置CAR来设置速率上限的方法来保护网络,路由器上的配置如下:
interface s0 rate-limit input access-group 200 3000000 80000 80000
conform-action transmit exceed-action drop
这里我们把icmp包的流量定义在3Mbps,token bucket的大小为8000字节。
access-list 200 permit icmp any any echo-reply
这样一旦受到Smurf攻击时,在一定程度上我们可以限制ICMP包的转发速率和大小,减少对网络和主机造成的破坏。