CISCO 路由器限速方法

在 Cisco设备中,只有支持思科快速转发(CEF,Cisco Express Forward)的路由器或交换机才能使用
rate-limit来限制流量,具体设置分三步
rate-limit input 2048000 8000 16000 conform-action transmit exceed-action drop
rate-limit output 2048000 8000 16000 conform-action transmit exceed-action drop
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
3. 在希望限制的端口上进行 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就
是针对整个网段的。
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等
另外,阻止非法地址的命令是
Router(config)# interface <interface>
Router(if-config)# no ip unreachables
如果此命令不能禁止,可参考下面这个命令
Elab(config)# ip icmp rate-limit unreachable <millisecond
CISCO 路由器简单命令:
1.看流量:        #sh int
2.看内网发包:    #sh ip acco
3.清除内网发包记录: #clear ip acco
注意:一般查看当时的发包记录,是先清除再查看。
4.看 cpu占用率:
#sh proc cpu
(一般不要超过70%)
CPU utilization for five seconds: 20%/16%; one minute: 19%; five minutes: 21%
5.看 cpu占用率历史记录:#sh proc cpu history

2222222222222222111111111111111111111111111111111111111111
    2333337777722222777777777788888888888888877777888887777788
100
90
80
70
60
50
40
30       *****
20 **********************************************************
10 **********************************************************
   0....5....1....1....2....2....3....3....4....4....5....5....
             0    5    0    5    0    5    0    5    0    5
               CPU% per second (last 60 seconds)
    2222232222223222222332222232232222233323222222322222222222
    7335725961592864414104663247415378600643443288185454635487
100
90
80
70
60
50
40                                      *
30 * ****** *****    ** ** ** ** ****** *    ***** * * * **
20 ##########################################################
10 ##########################################################
0....5....1....1....2....2....3....3....4....4....5....5....
            0    5    0    5    0    5    0    5    0    5
              CPU% per minute (last 60 minutes)
             * = maximum CPU%   # = average CPU%
   3343225445456667887667645432212433356577665555544443232235657777875543
   6994662940750869031216075447584174694830412090585700638819001739122948
00
90
80                ***   *                                       * **
70              ****** *                **                    ******
60            ****###***** *          ******* * *          ** ***##* *
50   *   ** ****#*####*##***          ****##*********       ******##***
40 ***   *****############***     ** ***#####****#****      *#*######****
30 ********#################**** ****##############********###########**
 
 
 
CISCO 3550 交换机端口限速配置
 
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

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

  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-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
 
 
 
 
详解 :
一、网络说明
   PC1接在Cisco3550 F0/1上,速率为100M;
  Cisco3550的G0/1为出口。
  二、详细配置过程
 
1、在交换机上启动 QOS
Switch(config)#mls qos //在交换机上启动QOS
2、定义 PC1(10.10.10.1)访问控制列表
Switch(config)#access-list 10 permit 10.10.10.0 0.0.0.255 //控制pc1上行流量
Switch(config)#access-list 100 permit ip any 10.10.10.0 0.0.0.255 //控制pc1下行流量
3、定义类,并和上面定义的访问控制列表绑定
Switch(config)# class-map user1-up //定义PC1上行的类,并绑定访问列表10
Switch(config-cmap)# match access-group 10
Switch(config-cmap)# exit
Switch(config)# class-map user1-down
Switch(config-cmap)# match access-group 100 //定义PC1下行的类,并绑定访问列表100
Switch(config-cmap)# exit
4、定义策略,把上面定义的类绑定到该策略
Switch(config)# policy-map user1-up //定义PC1上行的速率为100M
Switch(config-pmap)# class user1-up
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 102400000(速率) 1024000 (相当于缓存)exceed-action drop
Switch(config)# policy-map user-down
Switch(config-pmap)# class user1-down 定义PC1上行的速率为100M
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 102400000(速率)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 g0/1
Switch(config-if)# service-policy input user-down
  三、实例:
  为 IP为125.91.9.*的服务器限速上行和下行为100M
mls qos(启用 QOS)
access-list 10 permit  host 125.91.9.*(访问列表10)
access-list 100 permit ip any host 125.91.9.*(访问列表 100)
class-map user1-up (定义上行类及绑定ACL)
match access-group 10
exit
class-map user1-down (定义下行类及绑定ACL)
match access-group 100
exit
policy-map user1-up (定义上行速率为100M)
class user1-up
trust dscp
police 102400000 2000000 exceed-action drop (第一个数字表示速率,第二个数字类似缓存)
exit
policy-map user-down (定义下行速率为100M)
class user1-down
trust dscp
police 102400000 2000000 exceed-action drop (第一个数字表示速率,第二个数字类似缓存)
exit
int fa 0/21(接口下应用策略)
service-policy input user1-up
no shut
int g 0/2(接口下应用策略)
service-policy input user-down
no shut