且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

交换机使用QoS来对端口限速

更新时间:2022-08-15 19:47:00


哎……,这一段时间一直都很忙呀,很久都没有来写博客了,今天正好没有事。就带家大一起来看看这个交换机里面的QoS吧。

一直以来想对这个交换机上面QoS来做一个限制,今天正好没有事情做,于是利用办公室里面的4006交换机来做一下这个测试。
4006上面我没有做任何配置。下面按照惯例来看看拓扑图吧。
交换机使用QoS来对端口限速
现在呢?在没有做QoS的时候我们来看看它的下载速度。
交换机使用QoS来对端口限速
从这里我们可以看见,我从192.168.0.230上面下载一个VM虚拟机,速度是10.5M,因为我内网都是100M口嘛。
那下面我们就通过这台4006交换机来带着大家做一下这个配置嘛!
在这里我们还是先来讲讲我们做这个实验的思路吧,首先我们给要限速的一些PC使用ACL挑选出来。然后我们将ACL绑定在类上面,再将类绑定在策略上面,***再将这个策略应用在接口上面。大至就是这样一个流程来做。但是这里要注意的是每个接口每个方向只支持一个策略;一个策略可以用于多个接口。
1、在交换机上启动QOS
Switch(config)#mls qos  //启用QOS功能
2、分别定义PC1(192.168.0.187)PC2(192.168.0.189)访问控制列表
Switch(config)#access-list 1 permit host 192.168.0.187  //控制pc1上行流量
Switch(config)#access-list 110 permit ip any host 192.168.0.187  //控制pc1下行流量
Switch(config)#access-list 2 permit host 192.168.0.189  //控制pc2上行流量
Switch(config)#access-list 120 permit ip any host 192.168.0.189  //控制pc2下行流量
3、定义类,并和上面定义的访问控制列表绑定
Switch(config)#class-map user1-up  //定义PC1上行的类,并绑定访问列表
Switch(config-cmap)#match access-group 1
Switch(config-cmap)#exit
Switch(config)#class-map user2-up  //定义PC2上行的类,并绑定访问列表
Switch(config-cmap)#match access-group 2
Switch(config-cmap)#exit
Switch(config)#class-map user1-down  //定义PC1下行的类,并绑定访问列表
Switch(config-cmap)#match access-group 110
Switch(config-cmap)#exit
Switch(config)#class-map user2-down  //定义PC2下行的类,并绑定访问列表
Switch(config-cmap)#match access-group 120
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-pmap-c)#exit
Switch(config-pmap)#policy-map user2-up   //定义PC2上行的速率为2M
Switch(config-pmap)#class user2-up
Switch(config-pmap-c)#police 2048000 1024000 exceed-action drop
Switch(config-pmap-c)#exit
Switch(config-pmap)#exit
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)#int fa3/15  //从该接口出去的数据最大1M
Switch(config-if)#service-policy input user1-up
Switch(config-if)#exit
Switch(config)#int fa3/26  //从该接口出去的数据最大2M
Switch(config-if)#service-policy input user2-up
Switch(config-if)#exit
Switch(config)#int fa3/2   //应用我们刚才前面建立的下载策略
Switch(config-if)#service-policy input user-down
Switch(config-if)#exit
现在我们来测试一下看看呢?当我PC1接在15口上面时。
交换机使用QoS来对端口限速
 
我们可以看到差不多速度就在125K左右,而当我们PC2接在26口上面呢?
交换机使用QoS来对端口限速
我们可以看见,能够达到200K,你想一下你们家里面的ADSL如果是1M的,下载速度是不是就只有130-140Kb,而2MADSL则能够达到200-230K。我们可以看见它已经实现了我们的这个限速功能了吧。
那我们现在将PC2接在本交换机的其他任意一个口看看有没有影响呢?现在我将PC2接在13口的。
交换机使用QoS来对端口限速
我们可以看见,它还是没有影响。这是为什么呢?因为我们下载的策略应用在fa3/2这个接口上面的,而我们服务器就连在这个接口上面,当然我们PC连在其他那些端口上面都是一样的效果,我这里只是拿的两台PC来做的实验,而在我们实际工作中,不可能这么做,我们可以将上面的ACL改成你要做限速的网段就OK了。
这个功能是不是很实用呢。有时间也来练习练习嘛!

本文转自 ltyluck 51CTO博客,原文链接:
http://blog.51cto.com/ltyluck/224471