二十五 QOS.docx
- 文档编号:28072127
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:21
- 大小:35KB
二十五 QOS.docx
《二十五 QOS.docx》由会员分享,可在线阅读,更多相关《二十五 QOS.docx(21页珍藏版)》请在冰豆网上搜索。
二十五QOS
模块二十五QOS
网络带宽的发展永远跟不上需求,因此当网络出现堵塞时如何保证网络的正常工作呢?
QOS(服务质量)是一个解决方法,QOS的基本思想就是把数据分类,放在不同的队列中。
根据不同类数据的要求保证它的优先传输或者为它保证一定的带宽。
QOS是在网络发生堵塞才起作用的措施,因此QOS并不能代替带宽的升级。
本模块将介绍简单的QOS配置,实际上Cisco路由器现在推荐是模块化的QOS配置(MQC,ModuleQOSConfig)。
大量的QOS知识无法在本课程中一一介绍。
第一讲QOS简介
一、QOS
QOS有三种模型:
尽最大努力服务、综合服务、区分服务。
尽最大努力服务实际上就是没有服务,先到的数据先转发。
综合服务的典型就是预留资源,在通信之前所有的路由器先协商好,为该数据流预先保留带宽出来。
区分服务是比较现实的模型,该服务包含了一系列分类工具和排队机制,为某些数据流提供比其他数据流优先级更高的服务。
下面我们介绍典型的区分服务。
二、优先级队列
优先级队列(PQ,PriorityQueue)中,有高、中、普通、低优先级四个队列。
数据包根据事先的定义放在不同的队列中,路由器按照高、中、普通、低顺序服务,只有高优先级的队列为空后才为中优先级的队列服务,依次类推。
这样能保证高优先级数据包一定是优先服务,然而如果高优先级队列长期不空,则低优先级的队列永远不会被服务。
我们可以为每个队列设置一个长度,队列满后,数据包将被丢弃。
三、自定义队列
自定义队列(CQ,CustomQueue)和PQ不一样,在CQ中有16个队列。
数据包根据事先的定义放在不同的队列中,路由器将为第一个队列服务一定包数量或者字节数的数据包后,就转为为第二个队列服务。
我们可以定义不同队列中的深度,这样可以保证某个队列被服务的数据包数量较多,但不至于使得某个队列永远不会被服务。
CQ中的队列0比较特殊,只有队列0为空了,才能为其他队列服务。
四、加权公平队列
加权公平队列(WFQ,WeightFairQueue)是低速链路(2.048M以下)上的默认设置。
WFQ将数据包区分为不同的流,例如在IP中利用IP地址和端口号可以区分不同的TCP流或者UDP流。
WFQ为不同的流根据权重分配不同的带宽,权因子是IP数据包中的优先级字段。
例如有3个流,两个流的优先级为0,第三个为5,总权为(1+1+6)=8,则前两个流每个得到带宽的1/8,第三个流得到6/8。
五、基于类的加权公平队列
基于类的加权公平队列(CBWFQ,ClassBasedWeightFairQueue)允许用户自定义类别,并对这些类别的带宽进行控制。
这在实际中很有用,例如我们可以控制我们的网络访问Internet时的web流量的带宽。
可以根据数据包的协议类型、ACL、IP优先级或者输入接口等条件事先定义好流量的类型,为不同类别的流量配置最大带宽、占用接口带宽的百分比等。
CBWFQ可以和NBAR、WRED等一起使用。
六、低延迟队列
低延迟队列(LLQ,LowLatencyQueue)的配置和CBWFQ很类似。
有的数据包,例如VOIP的数据包,对数据的延迟非常敏感。
LLQ允许用户自定义数据类别,并优先让这些类别的数据传输,在这些数据没有传输完之前不会传输其他类别的数据。
七、加权随机早期检测
加权随机早期检测(WRED,WeightRandomEarlyDetect)是RED的Cisco实现。
当多个TCP连接在传输数据时,全部连接都按照最大能力传输数据,很快造成队列满,队列满后的全部数据被丢失;这时所有的发送者立即同时以最小能力传输数据,带宽开始空闲。
接着全部发送者开始慢慢加大速度,于是又同时达到最大速率,又出现堵塞,如此反复。
这样网络时空时堵,带宽的利用率不高。
RED则随机地丢弃TCP的数据包,保证链路的整体利用率。
WRED是对RED的改进,数据包根据IP优先级分成不同队列,每个队列有最小阀值、最大阀值,当平均长度小于最小阀值时,数据包不会被丢弃;随着平均队列的长度增加,丢弃的概率也增加;当平均长度大于最大阀值时,数据包按照设定的比例丢弃数据包。
八、CAR
承诺访问速率(CAR,CommitedAccessRate)是一种流量策略的分类和标记的方法,它基于IP优先级、DSCP值、MAC地址或者访问控制列表来限制IP流量的速率。
标记则可以改变IP优先级或者DSCP。
CAR使用令牌桶的机制,检查令牌桶中是否有足够的令牌。
如果一个接口有可用的令牌,令牌可以从令牌桶中挪走,数据包被转发,当这个时间间隔过去后,令牌会重新添加到令牌桶中。
如果接口没有可用的令牌,那么CAR可以定义对数据包采取的行为。
CAR使用3种速率定义来定义流量的速率:
1、Normalrate(正常的速率):
令牌被添加到令牌桶中的平均速率,就是数据包的平均传输速率。
2、Normalburst(正常的突发):
正常的突发时在时间间隔内允许正常流量速率的流量。
3、Excessburst(过量突发):
超过正常突发的流量。
当配置过量突发时,会借令牌并且将它添加到令牌桶中来允许某种程度的流量突发。
当被借的令牌已经使用后在这个接口上收到的任何超出的流量会被扔掉。
流量突发只会发生在短时间内,直到令牌桶中没有令牌存在才停止传输。
通常建议正常的流量速率配置为等于在一段时间内的平均流量速率。
正常的突发速率应当等于正常速率的1.5倍。
过量速率是正常突发速率的2倍。
九、基于网络的应用识别
基于网络的应用识别(NBAR,NetworkBasedApplicationRecognition)实际上一个分类引擎,它查看数据包,对数据包包含的信息进行分析。
NBAR使得路由器不仅要做转发数据的工作,还要对数据包进行检查,这样会大大增加负载。
NBAR可以检查应用层的内容,例如可以检查URL是否有“.java”字样。
NBAR可以和许多QOS配合使用。
第二讲实验1:
PQ
1.实验目的
通过本实验,读者可以掌握如下技能:
(1)理解PQ的工作原理。
(2)掌握PQ的配置。
2.实验拓扑
图25-1实验1--实验8拓扑图
3.实验步骤
(1)步骤1:
配置IP地址、配置路由协议。
(2)步骤2:
配置PQ。
R1(config)#priority-list1protocoliphightcptelnet
//创建1个优先级队列,标号为1。
把telnet流量放在高优先级队列中
R1(config)#priority-list1protocoliphighlist101
//以上把ACL101定义的流量也放在高优先级队列中
R1(config)#priority-list1protocolipmediumgt1000
//以上把数据包大小大于1000字节的流量放在中优先级队列中
R1(config)#priority-list1interfaceGigabitEthernet0/0normal
//以上把从g0/0接口接收到流量放在普通优先级队列中
R1(config)#priority-list1defaultlow//把其他的流量放在低优先级队列中
R1(config)#access-list101permitiphost10.1.1.1any//定义ACL101
R1(config)#priority-list1queue-limit20304050
//以上定义优先级队列高、中、普通、低队列中的长度,如果队列超过这些长度,数据包将被丢弃。
R1(config)#ints0/0/0
R1(config-if)#priority-group1//把定义好的优先级队列应用在s0/0/0接口上
4.实验调试
(1)检查接口上的队列。
R1#showinterfacess0/0/0
Serial0/0/0isup,lineprotocolisup
HardwareisGT96KSerial
Internetaddressis192.168.12.1/24
MTU1500bytes,BW128Kbit,DLY20000usec,
reliability255/255,txload1/255,rxload1/255
EncapsulationHDLC,loopbacknotset
Keepaliveset(10sec)
Lastinput00:
00:
04,output00:
00:
03,outputhangnever
Lastclearingof"showinterface"countersnever
Inputqueue:
0/75/0/0(size/max/drops/flushes);
Totaloutputdrops:
0
Queueingstrategy:
priority-list1//接口上的队列策略是优先级队列,标号为1
(此处省略)
(2)查看队列的配置。
R1#showqueueingpriority
CurrentDLCIpriorityqueueconfiguration:
Currentpriorityqueueconfiguration:
ListQueueArgs
1lowdefault
1highprotocoliptcpporttelnet
1highprotocoliplist101
1mediumprotocolipgt1000
1normalinterfaceGigabitEthernet0/0
(3)测试队列是否生效。
先从PC1pingR2上的192.168.2.2,然后:
R1#debugpriority
从PC1pingR2的g0/0接口,R1上有信息,如下:
*Feb2802:
59:
57.299:
PQ:
Serial0/0/0output(Pksize/Q24/0)
*Feb2803:
00:
07.299:
PQ:
Serial0/0/0output(Pksize/Q24/0)
*Feb2803:
00:
08.679:
PQ:
Serial0/0/0:
ip(defaulting)->low
*Feb2803:
00:
08.679:
PQ:
Serial0/0/0output(Pksize/Q56/3)
*Feb2803:
00:
14.755:
PQ:
Serial0/0/0:
cdp(defaulting)->low
*Feb2803:
00:
14.755:
PQ:
Serial0/0/0output(Pksize/Q326/3)
*Feb2803:
00:
17.299:
PQ:
Serial0/0/0output(Pksize/Q24/0)
第三讲实验2:
CQ
1.实验目的
通过本实验,读者可以掌握如下技能:
(1)理解CQ的工作原理。
(2)掌握CQ的配置。
2.实验拓扑
如图25-1。
3.实验步骤
(1)步骤1:
配置IP地址、配置路由协议。
(2)步骤2:
配置CQ。
R1(config)#queue-list1protocolip1tcptelnet
//创建1个自定义队列,标号为1。
把telnet流量放在队列1中
R1(config)#queue-list1protocolip2list101
//以上把ACL101定义的流量放在队列2中
R1(config)#queue-list1protocolip3gt1000
//以上把数据包大小大于1000字节的流量放在队列3中
R1(config)#queue-list1interfaceGigabitEthernet0/05
//以上把从g0/0接口接收到流量放在普通优先级队列5中
R1(config)#queue-list1default6//把其他的流量放在队列6中
R1(config)#access-list101permitiphost10.1.1.1any//定义ACL101
R1(config)#queue-list1queue1limit40
//以上定义队列1的深度为40,也就是说路由器将为队列1服务40个数据包后,转向队列2的服务
R1(config)#queue-list1queue2limit35
R1(config)#queue-list1queue3limit30
R1(config)#queue-list1queue5limit25
R1(config)#ints0/0/0
R1(config-if)#custom-queue-list1//把定义好的自定义队列应用在s0/0/0接口上
4.实验调试
(1)检查接口上的队列。
R1#showinterfacess0/0/0
Serial0/0/0isup,lineprotocolisup
HardwareisGT96KSerial
Internetaddressis192.168.12.1/24
MTU1500bytes,BW128Kbit,DLY20000usec,reliability255/255,txload1/255,rxload1/255
EncapsulationHDLC,loopbacknotset
Keepaliveset(10sec)
Lastinput00:
00:
05,output00:
00:
04,outputhangnever
Lastclearingof"showinterface"countersnever
Inputqueue:
0/75/0/0(size/max/drops/flushes);Totaloutputdrops:
0
Queueingstrategy:
custom-list1
Outputqueues:
(queue#:
size/max/drops)
0:
0/20/01:
0/40/02:
0/35/03:
0/30/04:
0/20/0
5:
0/25/06:
0/20/07:
0/20/08:
0/20/09:
0/20/0
10:
0/20/011:
0/20/012:
0/20/013:
0/20/014:
0/20/0
15:
0/20/016:
0/20/0
//接口上的队列策略是自定义队列,标号为1,可以看到每个队列的深度
(此处省略)
(2)查看队列配置情况。
R1#showqueueingpriority
Currentcustomqueueconfiguration:
ListQueueArgs
16default
11protocoliptcpporttelnet
12protocoliplist101
13protocolipgt1000
15interfaceGigabitEthernet0/0
11limit40
12limit35
13limit30
15limit25
(3)测试队列是否生效。
R1#debugcustom-queue
从PC1pingR2的g0/0接口,观察R1的信息。
第四讲实验3:
WFQ
1.实验目的
通过本实验,读者可以掌握如下技能:
(1)理解WFQ的工作原理。
(2)掌握WFQ的配置。
2.实验拓扑
如图25-1。
3.实验步骤
(1)步骤1:
配置IP地址、配置路由协议。
(2)步骤2:
配置WFQ。
R1(config)#ints0/0/0
R1(config-if)#fair-queue512102410
//以上是在接口上启用WFQ,实际上在E1速(2.048M)或者更低速率的链路上,WFQ是默认启用的。
512是丢弃值,当队列达到512数据包时,数据将被丢弃;1024是最大的会话数;
10是RSVP可预留队列。
4.实验调试
R1#showinterfacess0/0/0
Serial0/0/0isup,lineprotocolisup
HardwareisGT96KSerial
Internetaddressis192.168.12.1/24
MTU1500bytes,BW128Kbit,DLY20000usec,reliability255/255,txload1/255,rxload1/255
EncapsulationHDLC,loopbacknotset
Keepaliveset(10sec)
Lastinput00:
00:
09,output00:
00:
08,outputhangnever
Lastclearingof"showinterface"countersnever
Inputqueue:
0/75/0/0(size/max/drops/flushes);Totaloutputdrops:
0
Queueingstrategy:
weightedfair
Outputqueue:
0/1000/512/0(size/maxtotal/threshold/drops)Conversations0/0/1024(active/maxactive/maxtotal)ReservedConversations0/0(allocated/maxallocated)AvailableBandwidth96kilobits/sec
第五讲实验4:
CBWFQ
1.实验目的
通过本实验,读者可以掌握如下技能:
(1)理解CBWFQ的工作原理。
(2)掌握CBWFQ的配置。
2.实验拓扑
如图25-1。
3.实验步骤
(1)步骤1:
配置IP地址、配置路由协议。
(2)步骤2:
定义class-map。
R1(config)#class-mapmatch-anyCLASS-MAP1
//以上定义了一个class-map,名为CLASS-MAP1,class-map命令参见下文解释。
R1(config-cmap)#matchprotocolhttp
R1(config-cmap)#matchprotocolftp
//以上定义只要是http或者ftp流量就属于CLASS-MAP1
R1(config)#class-mapmatch-allCLASS-MAP2
R1(config-cmap)#matchprotocoltelnet
//以上定义只要是telnet流量就属于CLASS-MAP1。
系统有一个默认的class-map,名为class-default,凡是没有定义的流量就属于这个class-map。
【技术要点】
class-map命令格式为:
“class-map[match-all|match-any]name”:
①match-all:
指明下面的条件必须全部满足,才可以执行,此为默认值;
②match-any:
表示匹配任何一个条件就可以执行。
在class-map模式下,可以设置各种匹配条件,例如:
①匹配一种协议类型:
matchprotocolprotocol-name。
协议类型包括EGP,ICMP,EIGRP,DNS,HTTP,Telnet等上百种具体协议。
②匹配访问列表:
matchaccess-group{number|nameacl_name}。
可以匹配基于号码的list和基于Name的Accesslist。
③匹配CoS(classofServie):
matchcoscos-value。
匹配IP包中的CoS值。
④匹配IP优先级(IPPrecedence):
matchipprecedenceprecedence-value。
匹配IP包中的IP优先级值。
⑤匹配DSCP值(DifferentiatedServicesCodePoint):
matchipdscpdscp_value。
匹配IP包中的DSCP值。
⑥匹配入接口:
matchinput-interfacetypenumber。
匹配IP包的进入接口。
(3)步骤3:
定义Policy-map。
R1(config)#policy-mapMY-POLICY//定义policy-map
(4)步骤4:
配置带宽。
R1(config-pmap)#classCLASS-MAP1
R1(config-pmap-c)#bandwidth60
R1(config-pmap)#classCLASS-MAP2
R1(config-pmap-c)#bandwidth10
【注】以上配置CLASS-MAP1流量的带宽为60K,CLASS-MAP2流量的带宽为10K。
该接口的总带宽为128K。
该格式为:
“bandwidth{bandwidth_value|percentpercent_value}。
①可以指定具体带宽:
单位为K。
②也可以指明百分比:
percent关键字指定接口可用带宽百分比,可以0--100取值,默认情况下接口可用最大带宽为物理带宽的75%(其余25%留给系统自己用),所以percent值是这75%的percent,而不是物理带宽的percent,我们可以在接口下使用“max-reserved-bandwidthprecent”命令更改最大可用带宽。
(5)步骤5:
将policy-map应用到接口上。
R1(config)#ints0/0/0
R1(config-if)#service-policyoutputMY-POLICY
【注】以上把我们定义的策略应用在接口的output方向上,CBWFQ只能在output方向。
这样我们就在接口上限制了http、ftp和telnet流量的带宽。
4.实验调试
(1)检查class-map和policy-map。
R1#showinterfacess0/0/0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二十五 QOS 十五