Cisco交换机下,该如何进行QOS限速配置?如何限制BT下载?本博文将用详细实例为您详解。
实例1:思科交换机上QOS限速问题
用于交换机上对专线用户的带宽进行控制,交换机平时都是10/100/1000、三种速率的,对于其它的速率需要进行QOS进行限速,也可以对一些端口进行限制,做策略,对一些端口进行限制。
一、网络说明
user1_PC1接在Cisco3560F0/1上,速率为1M;
ip_add192.168.1.1/24
user2_PC2接在Cisco3560F0/2上,速率为2M;
ip_add192.168.2.1/24
Cisco3560的G0/1为出口,或级联端口。
二、详细配置过程
注:每个接口每个方向只支持一个策略;一个策略可以用于多个接口。因此所有PC的下载速率的限制都应该定义在同一个策略(在本例子当中为policy-mapuser-down),而PC不同速率的区分是在Class-map分别定义。
1、在交换机上启动QOS
Switch(config)#mlsqos//在交换机上启动QOS
2、分别定义PC1(192.168.1.1)和PC2(192.168.2.1)访问控制列表
Switch(config)#access-list1permit192.168.1.00.0.0.255//控制pc1上行流量
Switch(config)#access-list101permitany192.168.1.00.0.0.255//控制pc1下行流量
Switch(config)#access-list2permit192.168.1.200.0.0.255//控制pc2上行流量
Switch(config)#access-list102permitany192.168.2.10.0.0.255//控制pc2下行流量
3、定义类,并和上面定义的访问控制列表绑定
Switch(config)#class-mapuser1-up//定义PC1上行的类,并绑定访问列表1
Switch(config-cmap)#matchaccess-group1
Switch(config-cmap)#exit
Switch(config)#class-mapuser2-up
Switch(config-cmap)#matchaccess-group2//定义PC2上行的类,并绑定访问列表2
Switch(config-cmap)#exit
Switch(config)#class-mapuser1-down
Switch(config-cmap)#matchaccess-group101//定义PC1下行的类,并绑定访问列表101
Switch(config-cmap)#exit
Switch(config)#class-mapuser2-down
Switch(config-cmap)#matchaccess-group102//定义PC2下行的类,并绑定访问列表102
Switch(config-cmap)#exit
4、定义策略,把上面定义的类绑定到该策略
Switch(config)#policy-mapuser1-up//定义PC1上行的速率为1M,超过的丢弃
Switch(config-pmap)#classuser1-up
Switch(config-pmap-c)#trustdscp
Switch(config-pmap-c)#police10000001000000exceed-actiondrop
Switch(config)#policy-mapuser2-up//定义PC2上行的速率为2M,超过丢弃
Switch(config-pmap)#classuser2-up
Switch(config-pmap-c)#trustdscp
Switch(config-pmap-c)#police20000002000000exceed-actiondrop
Switch(config)#policy-mapuser-down
Switch(config-pmap)#classuser1-down
Switch(config-pmap-c)#trustdscp
Switch(config-pmap-c)#police10000001000000exceed-actiondrop
Switch(config-pmap-c)#exit
Switch(config-pmap)#classuser2-down
Switch(config-pmap-c)#trustdscp
Switch(config-pmap-c)#police20000002000000exceed-actiondrop
Switch(config-pmap-c)#exit
5、在接口上运用策略
Switch(config)#interfacef0/1
Switch(config-if)#service-policyinputuser1-up
Switch(config)#interfacef0/2
Switch(config-if)#service-policyinputuser2-up
Switch(config)#interfaceg0/1
Switch(config-if)#service-policyinputuser-down
实例2:限制BT下载的QOS配置实例
一、找出BT程序开放的连接端口,默认为6881至6889.
二、将局域网内经常拉BT的IP统计出来,建立扩展访问列表如下:
ExtendedIPaccesslistbtdownloadpermittcpanyhost192.168.1.120range68816889permittcpanyhost192.168.1.135range68816889permittcpanyhost192.168.1.146range68816889permittcpanyhost192.168.1.159range68816889permittcpanyhost192.168.1.211range68816889permittcpanyhost192.168.1.223range68816889
三、建立class-mapclass_bt
Cisco(config)#class-mapclass_btCisco(config-cmap)#matchaccess-groupnamebtdownload
四、建立policy-mapqos_bt进行速率限制
Cisco(config)#policy-mapqos_btCisco(config-pmap)#classclass_btCisco(config-pmap-c)#police50000008000exceed-actiondrop
五、QOS配置完毕了,不过在将QOS应用到端口前,要搞清楚一个概念,QOS机制不能与flowcontrol(流控制)功能共存在同一个端口上。关于flowcontrol——流控制在直连的以太端口上启用,在拥塞期间允许另一端拥塞的节点暂停链路运作来控制流量速率。如果一个端口发生拥塞并且不能接收任何更多的流量,他将通知对端端口停止发送直到这种拥塞情况消失。当本地设备在他本地检测到了任何拥塞,他能够发送一个暂停帧通知链路伙伴或者远程设备已发生拥塞。紧随收到暂停帧之后,远程设备停止发送任何数据包,这样防止在拥塞期间丢弃任何一个数据包。流控制可以用两种方式设计,对称和不对称。对称设计适合于点到点的链路,而不对称设计适合于辐射型节点连接。辐射型节点中中心路由器可以中断末端系统,而反之就不行。用命令设置接口的发送或接收暂停帧为on,off或desired.(interface)flowcontrol{receive|send}{on|off|desired}缺省快速以太端口是receiveoff和sendoff.在Catalyst3550交换机上,GBT端口能够接收和发送暂停帧;快速以太端口只能够接收暂停帧。因此,对快速以太端口来说,只能用sendoff来描述其状态。
六、将QOS应用到相应端口上
Cisco(config-if)#service-policyinputqos_bt
QoS其他内容
QoS配置四个步骤:
1,设置ACL匹配应用流量;
2,设置class-map匹配相应ACL或者相应端口等等,不过一般式匹配ACL;
3,设置policy-map匹配class-map,然后定一规则动作;
4,将policy-map绑定到相应的接口上。
当然需要注意的是qos已经全局enable,默认情况先qos是disable的。使用全局命令mlsqos来enable,可以通过showmlsqos来查看是否enable。(mls:multilayerswitchinginformation)
QoS命令详解
Basicintroduction
marking就是修改IP优先级或者DSCP,但是由于IP优先级和DSCP都是占用TOS字段,后者相当于前者的扩展,所以不能同
时设置这两种值,如果同时设置了这两种值,那么只有IPDSCP的值生效。
标记是后续很多QOS策略应用的基本,使用的是policymap。
Configurations
1.定义classmap
Classmap是一个匹配表,类似于ACL。所有的policymap实质上是对classmap进行操作的
nimokaka(config)#class-map[match-all|match-any]{map-name}----参数中match-all表示匹配所有条件,match-any表示至少符合一个条件
2.classmap的匹配
nimokaka(config-cmap)#
matchaccess-group{ACL}―――――――――――――――匹配IPACL(主要就是对应数据包了)
matchprotocol{protocol}―――――――――――――――匹配协议(这个在NBAR—基于网络应用中使用)
matchinput-interface{interface}―――――――――――――――匹配进站接口
matchqos-group{GroupID}―――――――――――――――匹配组ID(不知道干啥的)
matchdestination-address{macmac-address}―――――――――――――――匹配目标MAC地址
matchsource-address{macmac-address}―――――――――――――――匹配源MAC地址
matchip{dscpdscp}――――――――――――――――――――匹配IPDSCP值
matchip{precedenceprecedence}―――――――――――――――匹配IP优先级
matchclass-map{map-name}―――――――――――――――匹配classmap(classmap嵌套)
matchvlan{vlan-id}―――――――――――――――匹配VLAN
3.设置policymap
nimokaka(config)#policy-map{policy-name}
nimokaka(config-pmap)#class{class-map}
4.配置优先级和DSCP值
nimokaka(config-pmap-c)#
一些用于标记的动作选项:
setip{precedenceprecedence}―――――――――――――――设置IP优先级
setip{dscpdscp}―――――――――――――――设置IPDSCP值
setqos-group{GroupID}―――――――――――――――设置组ID
setcos{cos}―――――――――――――――设置CoS值
priority{kbps|percentpercent}[Bc]―――――――――――――――定义优先级流量的保留的带宽(Kbor%)以及突发流量
bandwidth{kbps|percentpercent}―――――――――――――――定义保留的带宽(Kbor%)
police{CIRBcBe}conform-action{action}exceed-action{action}[violate-action{action}]――――使用令牌桶算法进行限速
random-detect启用WRED
queue-limit{packets}定义队列中数据包的最大个数
service-policy{policy-map}使用别的策略进行嵌套,做为match语句匹配的标准
shape{average|peak}{CIR[Bc][Be]}定义CIR,Bc以及Be进行整形
5.将配置挂接到接口上
nimokaka(config-if)service-policy[input|output]policy-name
6.检查配置
nimokaka#showpolicy-map[policy-name]
查看接口的p