在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 ********#################**** ****##############********###########** |
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
Cisco3550的G0/1为出口。
Switch(config)#mls qos //在交换机上启动QOS
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
access-list 10 permit host 125.91.9.*(访问列表10)
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