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
[Ok3w_NextPage]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.120range68816889
permittcpanyhost192.168.1.135range68816889permittcpanyhost192.168.1.146
range68816889permittcpanyhost192.168.1.159range68816889permittcpanyhost
192.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来描述其状态。
[Ok3w_NextPage]六、将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值
[Ok3w_NextPage]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]
查看接口的policymap信息:
nimokaka#showpolicy-mapinterface[interface]
Case
把来自192.168.10.0/24的出站telnet流量的IP优先级设置为5,其他的出站流量的IP优先级设置为1:
access-list100permittcp192.168.10.00.0.0.255anyeqtelnet
class-mapmatch-alltelnet
matchaccess-group100
policy-mapnimokaka
classtelnet
setipprecedence5
classclass-default
setipprecedence1
interfaceSerial1
clockrate100
noshut
ipaddress1.1.1.1255.255.255.252
service-policyoutputnimokaka
PS
Class-map嵌套:有两点理由:在创建classmap的时候去调用一个已有的classmap
1、管理方便,在已有的基础上增加一个修改进行平滑的过度。
2、允许用户在同一个classmap里分别使用匹配所有(match-all)和匹配任何(match-any)。
比如4个匹配标准:A、B、C和D。现在想让classmap匹配A,或匹配B,或同时匹配C和D,就可以使用classmap的嵌套:
创建一个新的classmap,定义为匹配所有(match-all)新标准为匹配E即同时匹配C和D;然后定义另一个匹配任何
(match-any)的classmap,去匹配A,或B,或E(即同时匹配C和D)。
交换机QoS的配置方法(cisco3550/3560、cisco3750)
(一)配置流量分类和策略
1.全局#class-map[match-all(默认:完全符合)/Match-any]―――(建立一个流量分类的策略)
2.Map#matchaccess-group――――――(使用ACL进行流量分类,可以重复配置)
3.Map#matchinput-interface<接口>――――――(基于接口进行流量分类)
[Ok3w_NextPage]4.Map#matchvlan<#>――――――――――――(基于vlan进行流量分类)
5.Map#matchprotocol……――――――――(基于协议进行流量分类)
(二)定义策略
1.全局#policy-map――――――――――――(建立一个策略文件)
2.Pm#class―――――――――――(对定义好的分类流量作策略)
3.Pm-c#bandwidth<值/百分比>――――――――――――――(用于设置权值*占用接口的带宽比例)
4.Pm-c#setipprecedence<0-7>―――――――――――――(设置marking值)
5.Pm-c#setcos……
6.Pm-c#setdscp……
(三)加载策略
1.接口#service-policy――――――――――(在接口上加载策略)
(四)全局#mlsqos――――――――――――――――――――――(打开开QoS功能)
(五)接口#mlsqostrust――――――(在接口上设置信任状态和信任边界,一旦接口上收到相应Marking的值,则根据策略进行处理)
八.显示命令
(一)#showclass-map
交换机端口限速的配置方法(cisco3550/3560、cisco3750)
mlsqos
!
class-mapmatch-allIPclass―――――――――――――――――所有抓取所有流量
matchipdscp0
!
!
policy-maprate-256K
classIPclass
police25600020000exceed-actiondrop
policy-maprate-512K
classIPclass
police51200020000exceed-actiondrop
policy-maprate-2M
classIPclass
police2096000200000exceed-actiondrop
policy-maprate-6M
classIPclass
police6296000600000exceed-actiondrop
policy-maprate-4M
classIPclass
police4200000300000exceed-actiondrop
policy-maprate-800M
classIPclass
police800000000800000exceed-actiondrop―――定义policy-map,800M开始延时增加,到达800.8M后开始丢弃(丢包)
interfaceFastEthernet0/22
service-policyinputrate-256K―――――――――――――――――――应用policy到交换机端口上
service-policyoutputrate-256K原博客地址:http://hi.baidu.com/5ijsj/item/2cdce81ab87fcd08e75c361c
(二)#showpolicy-map
(三)#showpolicy-mapinterface<接口>――――――――――(显示接口加载的策略)