一、rate-limit  路由器限速

简介:

在Cisco设备中,只有支持思科快速转发(CEF,Cisco Express Forward)的路由器或交换机才能使用rate-limit来限制流量,具体设置分三步:
1. 在全局模式下开启cef:
configure terminal
Router(config)#ip cef
2. 定义标准或者扩展访问列表(定义一个方向就可以了):
Router(config)#access-list 111 permit ip 192.168.1.0 0.0.0.255 any
Router(config)#access-list 112 permit ip 192.168.1.1 0.0.0.0 any
3. 在希望**的端口上进行rate-limit:
Router(config)#interface FastEthernet 0/1
Rounter(config-if)#rate-limit input access-group 112 2000000 40000 60000 conform-action transmit exceed-action drop
这样我们就对192.168.1.1进行了限速,速率为2Mbps。
Rounter(config-if)#rate-limit input access-group 111 4000000 80000 100000 conform-action transmit exceed-action drop
这样我们就对192.168.1.1进行了限速,速率为4Mbps。
==========
关键:
你定义的ACL就是针对整个网段的,你的限速就对整个网段进行。比如:access-list 111;
你定义的ACL就是针对某个主机的,你的限速就对某个主机进行。比如:access-list 112
==========
解释:
rate-limit命令格式:

#rate-limit {input|output} [access-group number] bps burst-normal burst-max conform-action action exceed-action action

input|output:这是定义数据流量的方向。

access-group number:定义的访问列表的号码。

bps:定义流量速率的上限,单位是bps。

burst-normal burst-max:定义的数据容量的大小,一般采用8000,16000,32000,单位是字节,当到达的数据超过此容量时,将触发某个动作,丢弃或转发等,从而达到限速的目的。

conform-action和exceed-action:分别指在速率**以下的流量和超过速率**的流量的处理策略。

action:是处理策略,包括drop和transmit等

 

 

 

 

案例1

在Cisco设备中,只有支持CEF快速转发(Cisco Express Forward)的路由器或交换机才能使用rate-limit来限制流量,我们在设置时分三步走。

1. 在全局模式下开启cef:

Router(config)#ip cef

2. 定义标准或者扩展访问列表:

Router(config)#access-list 2 permit 192.168.6.0 0.0.0.255

3. 在希望限制的端口上进行rate-limit:

Rounter(config-if)#rate-limit output access-group 2 128000 16000 16000 conform-action transmit exceed-action drop

这样我们就对192.168.6.0网段进行了限速,速率为128kbps。

下面,重点介绍一下rate-limit的命令格式:

#rate-limit {input|output} [access-group number] bps burst-normal burst-max conform-action action exceed-action action

input|output:这是定义数据流量的方向。

access-group number:定义的访问列表的号码。

bps:定义流量速率的上限,单位是bps。

burst-normal burst-max:定义的数据容量的大小,一般采用8000,16000,32000,单位是字节,当到达的数据超过此容量时,将触发某个动作,丢弃或转发等,从而达到限速的目的。

conform-action和exceed-action:分别指在速率限制以下的流量和超过速率限制的流量的处理策略。

action:是处理策略,包括drop和transmit等。


 



  rate-limit是QOS(Quality of Service)即服务质量保证实现的主要命令 用*基本用为:
  rate-limit input 128000 8000 9000 conform-action transmit exceed-action drop
  rate-limit output 128000 8000 9000 conform-action transmit exceed-action drop  
  对于一条链路,input和output都要设置。 这句话的意思是,限制带宽为128kbps,对于一个连接普通突发速率8kBytes(即64kbps),最大突发9k(即72kbps)如在这个范围内,进行的*作是transmit(传输) 如果超出就是的*作(Exceed-action)是drop(丢弃) 在这里,最主要测参数是128000,限制带宽,后面2个是限制每个连接的突发带宽,这样保证不会因为一个人FTP而导致整个链路性能下降很多 在conform-action里,除了transmit以外,还有一个很好的做*,就是set-prec-transmit 5,即
  rate-limit input 128000 8000 9000 conform-action set-prec-transmit 5 exceed-action drop
  rate-limit output 128000 8000 9000 conform-action set-prec-transmit 5 exceed-action drop
  这个的含义是如果普通单连接突发速率在8kbytes(64kbps)以下时,正常传输  如果在8kbytes(64kbps)和9kbytes(72kbps)之间是,优先级变为5级(中级),如果超出9kbytes(72kbps)就drop

 

 

 

案例2

 

Cisco路由器限速第一步. 在全局模式下开启cef:

  Router(config)#ip cef cisco

  Cisco路由器限速第二步. 定义标准或者扩展访问列表:

  注:定义一个方向就可以了,主要用于控制被限速的IP地址

  Router(config)#access-list 111 permit ip 192.168.1.0 0.0.0.255 any cisco

  Cisco路由器限速第三步. 在希望限制的端口上进行

  rate-limit:

  Router(config)#interface FastEthernet 0/1

  Rounter(config-if)#rate-limit input access-group 111 2000000 40000 60000 conform-action transmit exceed-action drop

  这样我们就对192.168.1.0网段进行了限速,速率为2Mbps。

  您可以根据实际情况,定义acl先控制被限速的电脑范围。 Cisco路由器的rate-limit命令格式:

  #rate-limit [access-group number] bps burst-normal burst-max conform-action action exceed-action action input|output:这是定义数据流量的方向。

  access-group number:定义的访问列表的号码。这个用来控制被限速的主机网段,本例中的acl 111。 bps:定义流量速率的上限,单位是bps。

  burst-normal burst-max:定义的数据容量的大小,单位是字节,当到达的数据超过此容量时,将触发某个动作,丢弃或转发等,从而达到限速的目的。

  conform-action和exceed-action:分别指在速率限制以下的流量和超过速率限制的流量的处理策略。 action:是处理策略,包括drop和transmit等

 

 

二、service-policy进行端口限速

一、网络说明

PC1接在Cisco3550 F0/1上,速率为1M

PC2接在Cisco3550 F0/2上,速率为2M

Cisco3550G0/1为出口。

二、详细配置过程

注:每个接口每个方向只支持一个策略;一个策略可以用于多个接口。因此所有PC的下载速率的限制都应该定义在同一个策略(在本例子当中为policy-map user-down),而PC不同速率的区分是在Class-map分别定义。

1、在交换机上启动QOS

Switch(config)#mls qos //在交换机上启动QOS

2、分别定义PC1(10.10.1.1)PC2(10.10.2.1)访问控制列表

Switch(config)#access-list 10 permit 10.10.1.0 0.0.0.255 //控制pc1上行流量

Switch(config)#access-list 100 permit any 10.10.1.0 0.0.0.255 //控制pc1下行流量

Switch(config)#access-list 11 permit 10.10.2.0 0.0.0.255 //控制pc2上行流量

Switch(config)#access-list 111 permit any 10.10.2.0 0.0.0.255 //控制pc2下行流量

3、定义类,并和上面定义的访问控制列表绑定

Switch(config)# class-map user1-up //定义PC1上行的类,并绑定访问列表10

Switch(config-cmap)# match access-group 10

Switch(config-cmap)# exit

Switch(config)# class-map user2-up

Switch(config-cmap)# match access-group 11 //定义PC2上行的类,并绑定访问列表10

Switch(config-cmap)# exit

Switch(config)# class-map user1-down

Switch(config-cmap)# match access-group 100 //定义PC1下行的类,并绑定访问列表100

Switch(config-cmap)# exit

Switch(config)# class-map user2-down

Switch(config-cmap)# match access-group 111 //定义PC2下行的类,并绑定访问列表111

Switch(config-cmap)# exit

4、定义策略,把上面定义的类绑定到该策略

Switch(config)# policy-map user1-up //定义PC1上行的速率为1M

Switch(config-pmap)# class user1-up

Switch(config-pmap-c)# trust dscp 信任差分服务代码点,用来对每一类流量实施各种QOS策略,用户进来的数据包的DSCP缺省都为0)

Switch(config-pmap-c)# police 1024000 1024000 exceed-action drop 任何超过策略限制速率的通信流将会被丢弃(bitsbytes

Switch(config)# policy-map user2-up //定义PC2上行的速率为2M

Switch(config-pmap)# class user2-up

Switch(config-pmap-c)# trust dscp

Switch(config-pmap-c)# police 2048000 1024000 exceed-action drop

Switch(config)# policy-map user-down

Switch(config-pmap)# class user1-down

Switch(config-pmap-c)# trust dscp

Switch(config-pmap-c)# police 1024000 1024000 exceed-action drop

Switch(config-pmap-c)# exit

Switch(config-pmap)# class user2-down

Switch(config-pmap-c)# trust dscp

Switch(config-pmap-c)# police 2048000 1024000 exceed-action drop

Switch(config-pmap-c)# exit

5、在接口上运用策略

Switch(config)# interface f0/1

Switch(config-if)# service-policy input user1-up

Switch(config)# interface f0/2

Switch(config-if)# service-policy input user2-up

Switch(config)# interface g0/1

Switch(config-if)# service-policy input user-down