一、针对每个IP进行限速 会写死人的方法:
首先:不是所有设备都能很好支持单个IP限速,要看是否支持,比如3550和6509都支持QoS,但是3550就不支持micro flow,所以不能单ip滴限制流量,而6509则支持micro flow,所以可以单个ip限制流量。
想要实现,可用如下方法针对单IP进行限速:

拓扑图:

ASA 5100限​速 MQC方式对每个IP进行限速、某网段限速、某些IP进行限速



限速配置如下:
!
access-list rate_limit_1 extended permit ip any host 192.168.1.2    //(限制192.168.1.2下载)
access-list rate_limit_1 extended permit ip host 192.168.1.2 any    //(限制192.168.1.2上传)
access-list rate_limit_2 extended permit ip any host 192.168.1.3    //(限制192.168.1.3下载)
access-list rate_limit_2 extended permit ip host 192.168.1.3 any    //(限制192.168.1.3上传)  

class-map  rate_limit_1
 match access-list  rate_limit_1
exit
class-map rate_limit_2
 match access-list  rate_limit_2
exit  

policy-map rate_limit
 class  rate_limit_1
  police input 819000 4368000        //(限制192.168.1.2上传速度为99K/S)  
  police output 819000 4368000      //(限制192.168.1.2下载速度为99K/S)
 class  rate_limit_2
  police input 819000 4368000        //(限制192.168.1.3上传速度为99K/S)  
  police output 819000 4368000      //(限制192.168.1.3上传速度为99K/S)
 
 exit
exit  
service-policy rate_limit interface inside    //(应用到内网接口上)    
!
注:由于是根据单个IP限制速度,所以ACL要写成一个IP两句ACL,一个匹配上传,另一个匹配下载。要是所有IP都写在一个ACL里,那么是限制所有IP的共用这99K/s。一定要写不同的ACL。
         police input 819000 4368000 前一个819000速度是基本速率,后一个4368000是突发速率,发流量:可以按照 最大流量/8 *1.5 这个公式来算。也可以是其它。
如:police output 40000000 5625000           //策略的outbound流量限制在40M bits以下,突发45M5625000 bytes注意看单位

注1:这种限制流量的做法不能使用在outside上,因为在outside端口上做PAT,地址经过NAT转换以后,找不到匹配的目的和原地址,但是我试过如果使用any 到 any是可以限制流量的。任何源和目的指定地址限速都不会生效。 
注2:关于速率的问题
在应用police的时候单位是bps 记住是bit 它是速率单位,所以如果要把它换算为存储单位byte需要除以8。

二、限制某网段总上行、下行速率

以限制172.16.18.0  /24网段为例:
!
access-list pol extended permit ip any 172.16.18.0 255.255.255.0
access-list pol extended permit ip 172.16.18.0 255.255.255.0 any
!
class-map pol
 match access-list pol
 !
policy-map pol
 class pol
  police input 3276500 600000
  police output 26214000 5000000
!
service-policy pol interface inside
!

三、使用object-group对象分组的方法

到底是实现对某些IP总上行下行,还是能实现对某个IP上行下行限速,没实际测试过。这写法看着方便,先留着。

把ACL改一下,最好是建一下对象分组,再把这个对象分组加到ACL中,这样以后想对某个IP限速,直接把它加到这个对象分组中就OK了。
object-group network rate_limit
  network host *.*.*.*  
access-list rate_limit extended permit ip object-group rate_limit any
access-list rate_limit extended permit ip any object-group rate_limit 

  class-map map1
   match access-list rate_limit
policy-map map2
class map1
  police output 200000 43750
  police input 800000 250000
service-policy map2 interface outside

问:object-group network rate_limit
  network host *.*.*.*
换成如range x.x.x.2 x.x.x.90
会对每个IP单独限速吗
单个添加工作还是太大了
答:
没有试过,不过应该可以,使用对象分组其实就是为了少写几个ACL,只要能定位IP就可以。

以上show access-list就可以看到生效的ACL了,
其实就是:使用object-group 能大大简化配置工作量