注:每个接口每个方向只支持一个策略;一个策略可以用于多个接口。因此端口下的网段的下载速率的限制都应该定义在同一个策略
1.在交换机上启动QOS
Switch(config)#mls qos //在交换机上启动QOS
2. 定义访问控制列表
Switch(config)#access-list 10 permit 59.215.45.0 0.0.0.127
控制这个端口下59.215.45.0网段的上传流量
Switch(config)#access-list 100 permit 59.215.45.0 0.0.0.127
控制这个端口下59.215.45.0网段的下载流量
3.定义类,并和上面定义的访问控制列表绑定
Switch(config)# class-map rate-limit-uplink /定义上行的类.并绑定访问列表10
Switch(config-cmap)# match access-group 10
Switch(config-cmap)# exit
Switch(config)# class-map rate-limit-downlink /定义下行的类.并绑定访问列表100
Switch(config-cmap)# match access-group 100
Switch(config-cmap)# exit
4.定义策略,把定义的类绑定到该策略
Switch(config)# policy-map rate-limit-uplink //定义上行的速率为30M
Switch(config-pmap)# class rate-limit-uplink
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 30000000 1000000 exceed-action drop //这里30M不能写成30720000
否则会报以下错误:%Error: policer rate should be multiples of 1000000.
Please choose either 3000000 or 4000000 (bits per second) as the policer rate
关于100000那个数字的定义,后面做个实验跟大家解释
Switch(config)# policy-map rate-limit-downlink //定义下行的速率为30M
Switch(config-pmap)# class rate-limit-downlink
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 30000000 1000000 exceed-action drop
Switch(config-pmap-c)# exit
5.在接口上应用
Switch(config)# interface f0/1 (下联口)
Switch(config-if)# service-policy input rate-limit-uplink
interface: 用户希望进行流量控制的端口,可以是Ethernet也可以是serial口,但是不同类型的interface在下面的input output上选择有所不同,需要注意一下
input|output:这是定义数据流量的方向
Switch(config)# interface g0/20(上联口)
Switch(config-if)# service-policy input rate-limit-downlink
注释:
police bps | burst-normal burst-max |conform-action action |exceed-action action
Bps:用户希望该流量的速率上限,单位是bps
Burst-normal burst-max:这个是指token bucket的大小,一般采用8000,16000,32000 这些值,视乎bps值的大小而定。
Conform-action :在速率限制以下的流量的处理策略。
Exceed-action:超过速率限制的流量的处理策略。
Action:处理策略,包括以下几种:
Transmit:传输
Drop:丢弃