二层QOS.docx
《二层QOS.docx》由会员分享,可在线阅读,更多相关《二层QOS.docx(15页珍藏版)》请在冰豆网上搜索。
![二层QOS.docx](https://file1.bdocx.com/fileroot1/2023-4/21/f0c0f076-4d0c-47db-acfe-4fbab1120d9c/f0c0f076-4d0c-47db-acfe-4fbab1120d9c1.gif)
二层QOS
交换机QOS
mlsqos//在交换机上启用QOS
交换机的分类、标记、管制2950、3550型
默认情况下,一台激活了QOS特性的交换机的默认动作是不信任边缘设备,并且任何进入该交换机的帧将其cos重写为最低优先级0。
如果你信任你的边缘设备,不想对其所设置的cos做改动,哪么要做以下配置:
配置入站信任:
SW1(config-if)#mlsqostrustcos//信任接口进来流量的COS值,不做改动
SW1(config-if)#mlsqoscosdefault-cos//为接口设置一个默认COS值,在没有配置信任的情况下,所有进来的包都将被给予这个值。
SW1(config-if)#mlsqoscosoverride//本命令将接口进来的所有流量COS都设为默认值。
这条命令和任何mlsqostrust命令不能同时存在
默认情况下,交换机在进行QOS处理时,会使用内部DSCP值重新标记所有的分组,在没有设置入口信任的情况下,所有分组的优先级都会被设为0。
当外部进来的流量有三层标记时,如果想继续保留原有的标记不变。
可以通过开启信任入站分组来实现。
交换机会将外部进来的分组原有的标记映射到内部DSCP上。
这样,在使用内部DSCP值重标记以后,每一个分组其实还是原有的标记不变。
(详见下面默认映射表)
如果你想改写入站分组的三层标记,还可以手工进行映射,将入站分组的优先级重新标记为另一个DSCP值,而不用默认的映射。
(注意,是真正地改变了原有的标记)
SW1(config-if)#mlsqostrustdscp//信任DSCP,根据收到的DSCP值来设置内部的DSCP值
SW1(config-if)#mlsqostrustip-precedence//基于收到的包的IP优先级来设置内部的DSCP
SW1(config-if)#mlsqostrustcos//基于收到的包的COS来设置内部的DSCP
SW1(config-if)#mlsqostrustdevicecisco-phone
默认映射表:
COS/IPDSCP
00
18
216
324
432
540
648
756
手工配置映射修改:
mlsqosmapcos-dscp08162432464856//手工配置将进入包的每一个COS值映射到内部的DSCP上
mlsqosmapdscp-cos258to0//将多个DSCP值映射为一个COS值
mlsqosmapip-prec-dscp08162432404856
还可以将外部进入包的DSCP值映射到内部的一个不同的DSCP值上,这个叫DSCP突变
mlsqosmapdscp-mutationDIFFSERV1-TO-DIFFSERV218to8
intf0/1
mlsqostrustdscp
mlsqosdscp-mutationDIFFSERV1-TO-DIFFSERV2
也可以使用CBMARKING为交换机某一接口进来的流量分类并设置优先级:
例一:
在F0/1接口为VOIP流量设DSCP为50
access-list100permitudpanyanyrange1638432767
class-mapVOIP
matchaccess-group100
policy-mapDSCP
classVOIP
setipdscp50
intf0/1
service-policyinputDSCP
总结:
1、交换机默认如果没开MLSQOS,不对IP包做任何处理
2、交换机开启了MLSQOS,默认不信任所收到包的原有标记,会将所有标记重写为0
3、开启MLSQOS后,如果又开启了信任,交换机会用内部DSCP值重新标记IP包
4、如果在接口开启了mlsqostrustcos,则交换机信任原有包的二层COS,并根据COS在映射表中找到对应的内部DSCP值来改写三层TOS,这也就是COS到TOS的映射。
5、如果在接口开启了mlsqostrustip-precedence,则交换机信任原有包的IP优先级,并会根据这个IP优先级在映射表中找到对应的内部DSCP值来重新标记三层TOS
6、如果在接口开启了mlsqostrustdscp,则交换机信任原有包的DSCP值,并会根据这个外部DSCP值在映射表中找到对应的内部DSCP值来重新标记三层TOS
7、不管怎样,交换机一定会重写三层的TOS
交换机的入接口和出接口还可以进行流量管制,进行限速,丢弃包,或者降格包的优先级。
例二:
在交换机的入接口,将优先级为5的流量限速为1M,超过的流量将优先级降为3
class-mapmatch-allVOIP
matchipprecedence5
mlsqosmappoliced-dscp5to3
policy-mapWOLF
classVOIP
police10000008000exceed-actionpoliced-dscp-transmit
intf0/1
service-policyinputWOLF
WRRQ(WeightedRound-Robin加权轮询队列)
主要用于交换机的排队技术
MLSQOS在交换机上启用后,每一个端口都会自动开启WRRQ,WRRQ有四个队列,每个队列默认占用25%的带宽,采用循环的方式来调度。
可以把第四个队列配置成绝对优先队列,只有绝对优先队列中的数据处理完成后,才会传输其它队列的数据。
配置实例:
需求:
配置COS到队列的映射
将优先级为0、1的数据帧放入队列一中
将优先级为2、3的数据帧放入队列二中
将优先级为4、5的数据帧放入队列三中
将优先级为6、7的数据帧放入队列四中
SW1(config)#mlsqos启用命令,必须打上
SW1(config)#intf0/1
SW1(config-if)#wrr-queuecos-map101//定义队列映射表,将cos0和1映射到队列1
SW1(config-if)#wrr-queuecos-map223
SW1(config-if)#wrr-queuecos-map345
SW1(config-if)#wrr-queuecos-map467
SW1#shmlsqosintf0/1queueing//查看
也可以根据DSCP值将流量分组映射到不同的队列:
intf0/1
wrr-queuedscp-map112202836
wrr-queuedscp-map28101618//这里要注意一个语句最多只能写8个值,如果还有更多值,需要再写一条语句
可以配置四个队列的权值,使其得到不同的带宽服务,每一个队列得到的带宽百分比是自已的权值除以所有队列的权值之和。
SW1(config-if)#wrr-queuebandwidth2431
队列1得到20%的带宽
队列2得到40%的带宽
队列3得到30%的带宽
队列4得到10%的带宽
intf0/1
priority-queueout//启用绝对优先队列,固定为4号队列
wrr-queuequeue-limit//修改队列限制,默认每个队列分配25%的缓存
wrr-queuedscp-map11220//将DSCP值为12、20的包映射到到阀值1(详见端到端QOS的181页)
在配置队列丢弃阀值时有两种方法:
1、尾丢弃
2、WRED
intf0/1
wrr-queuethreshold//修改分配给四个出口队列的两个尾丢弃阀值的百分比,默认两个都是100%
wrr-queuerandom-detectmax-threshold140100//对队列启用WRED,并且可修改四个队列的两个丢弃阀值的百分比
上例中对队列一启用了WRED,并设置两个阀值,一个是40%,一个是100%
还可将不同的DSCP值映射到一个阀值ID,当这个阀值达到时,所有这些DSCP值的包就会被随机丢弃
intg0/1
wrr-queuedscp-map112202836//DSCP值12、20、28、36被映射到第一个阀值
==============================================================
SRRQ
3560/3750交换机与3550在QOS上的主要不同就是排队,3560/3750支持入口调度。
并且入口队列只支持共享模式。
在3560的交换机上支持SRR队列(共享循环队列),跟WRR类似,只不过多了一个整形模式。
SRR支持两种拥塞管理模式:
1、整形模式
2、共享模式
整形模式:
在此模式中,出站队列可以被整形到接口带宽的准确比例。
类似于限速。
也就是说,每一个队列的流量不能超过指定速率。
即使其他队列有多余带宽也不行。
共享模式:
在此模式中,队列根据已经配置的权重来共享他们之间的带宽,出站队列不局限于本队列带宽,如果其他队列有空余带宽未用,可以占用。
如果要使用整形模式,用以下命令配置各队列带宽:
intf0/1
srr-queuebandwidthshape1234
注意:
如果一个队列的权重配置为0,则本队列工作在共享模式,并使用以下命令所指定的权重:
intf0/1
srr-queuebandwidthshare1234
例:
intf0/1
srr-queuebandwidthshape20000
srr-queuebandwidthshare20302525
注意:
在SRRQ中,也有一个优先级队列,也叫做加速队列,固定就是1号队列。
而在WRRQ中,队列4才是加速队列。
intf0/1
priority-queueout//PQ启用后,分配给它的共享权重就无意义了,因为总是优先为它传递流量,且没有限制,除非做了整形限制
Bydefault,packetswithaDSCPvalueofCS5(decimal40)aremappedtoqueue1.BecausethevideomediastreamsaremarkedDSCPCS5,thevideotrafficisservicedbythepriorityqueue.
把不同优先级的流量映射到不同队列
SRRQ的映射是在全局下做,而不是在接口下:
mlsqossrr-queueoutputcos-mapqueue123//把cos为2、3的流量放入第一个队列
mlsqossrr-queueoutputdscp-mapqueue12223//把DSCP值为22、23的流量放入第一个队列
还可以指定每种优先级所对应的丢弃阀值
mlsqossrr-queueoutputdscp-mapqueue1threshold146
mlsqossrr-queueoutputdscp-mapqueue2threshold12426
mlsqossrr-queueoutputdscp-mapqueue2threshold23538
mlsqossrr-queueoutputdscp-mapqueue3threshold110
mlsqossrr-queueoutputdscp-mapqueue4threshold11215
mlsqossrr-queueoutputdscp-mapqueue4threshold220
showmlsqosmapscos-output-q//查看cos到出队列的映射
showmlsqosmapsdscp-output-q//查看dscp到出队列的映射
WTD
SRRQ的队列可以使用一个尾丢弃拥塞避免机制的增强版本,做加权的尾丢弃WTD
WTD可以根据已分配的COS或DSCP值将帧分配给不同的阀值。
如果队列中的包达到了阀值,就丢弃帧。
每个队列最多三个阀值,其中有两个是可配置的,第三个是不可配置的,并且预设为队列满状态时才进行丢弃。
mlsqossrr-queueoutputcos-mapqueue1threshold15//把cos5的流量映射到队列一的第一阀值
mlsqosqueue-setoutput1threshold240100100100//为队列1设置丢弃阀值,是按包为单位来设置
mlsqosqueue-setoutput1threshold240100200300//为队列2设置丢弃阀值,是按包为单位来设置
使用队列集配置
mlsqosqueue-setoutput1threshold240100100100//创建队列集一,为队列2设置丢弃阀值,是按包为单位来设置
mlsqosqueue-setoutput2threshold240100200300//创建队列集二,为队列2设置丢弃阀值,是按包为单位来设置
mlsqosqueue-setoutput1buffers35302510//在队列集一中,为每个队列配置缓存的分配
intf0/1
queue-set1//在f0/1接口调用队列集一
intf0/2
queue-set2//在f0/2接口调用队列集二
使用COS或DSCP到队列/阀值的映射:
mlsqossrr-queueoutputdscp-mapqueue1threshold146
mlsqossrr-queueoutputdscp-mapqueue2threshold12426
mlsqossrr-queueoutputdscp-mapqueue2threshold23538
mlsqossrr-queueoutputdscp-mapqueue3threshold110
mlsqossrr-queueoutputdscp-mapqueue4threshold11215
mlsqossrr-queueoutputdscp-mapqueue4threshold220
也可以不管阀值,只将DSCP映射到队列:
mlsqossrr-queueoutputdscp-mapqueue146
Rack32Sw1#showmlsqosqueue-set
Queueset:
1
Queue:
1234
----------------------------------------------
buffers:
25252525
threshold1:
100200100100
threshold2:
100200100100
reserved:
50505050
maximum:
400400400400
Queueset:
2
Queue:
1234
----------------------------------------------
buffers:
25252525
threshold1:
100200100100
threshold2:
100200100100
reserved:
50505050
maximum:
400400400400
入队列
还可以在入队列做映射,不过每个接口只有两个入队列:
Rack32Sw1#shmlsqosinput-queue
Queue:
12
----------------------------------------------
buffers:
9010
bandwidth:
44
priority:
010
threshold1:
100100
threshold2:
100100
SW1-SW4
Mlsqos
mlsqossrr-queueinputthreshold140100
mlsqossrr-queueinputthreshold2100100//这是默认的
mlsqossrr-queueinputcos-mapqueue1threshold11
mlsqossrr-queueinputcos-mapqueue2threshold35
------------================
SW1-SW4
Mlsqos
mlsqossrr-queueinputcos-mapqueue115
mlsqossrr-queueinputcos-mapqueue1threshold11
mlsqossrr-queueinputcos-mapqueue1threshold35
mlsqossrr-queueinputthreshold140100
mlsqossrr-queueinputbuffers1000
说明
1,问:
请解释一下CiscoCatalyst3750-E中的排序机制。
答:
CiscoCatalyst3750-E共有两个输入队列和四个输出队列。
对于这两个集合,都能够将一个队列配置为优先队列,只有这个队列中的任务都处理完之后,才会处理其它加权队列。
当然,每个集合也能全部配置加权队列。
CiscoCatalyst3750-E采用SRR。
SRR负责队列调度服务,规定包出列的速率。
SRR共有两种模式:
整形模式和共享模式。
整形模式只在输出队列中使用。
经过整形的输出队列保留一组端口带宽,然后根据计划发送均匀间隔包。
共享输入队列也能够得到一定的带宽份额,但不能预留带宽。
换言之,在共享模式中,如果高优先级队列为空,低优先级队列能够在预留带宽到期之前就使用空闲带宽。
整形SRR与共享SRR之间难分伯仲。
共享SRR能够大大提高排序系统的效率,因为流量多的队列能够使用空闲时隙。
而在标准加权循环(WRR)中,这是不允许的。
整形SRR用于队列整形,或者设置硬极限,规定队列能够使用的最高带宽。
使用整形SRR时,能够在端口的总整形速率范围内进行队列整形。
除队列整形外,CiscoCatalyst3750-E还能限制物理端口的速度,从线速的1%到99%。
因此,客户能够在速率受限的端口内进行队列整形。
2,问:
在共享模式中,WRR与SRR有什么区别?
答:
上面一个问题提到了SRR。
在回答本问题之前,请阅读关于上一个问题的回答。
在上例中,Q4的权重最高,Q3次之,以此类推。
严格优先队列已关闭。
SRR与典型的WRR不同。
WRR队列是根据权重处理的。
Q1在权重1期间处理,Q2在权重2期间处理,以此类推。
处理时,将在不同的队列间移动,每个队列的处理时间等于加权时间。
SRR同样使用了权重的概念,但SRR从Q1转向Q2,然后再转向Q3和Q4的方式不同。
它并非在每个队列等待和停留加权时间后,才转向下一个队列。
SRR将快速通过每个队列多次。
每次通过时,每个队列可能得到处理,也可能没有得到处理。
与低优先级队列相比,高优先级队列得到处理的概率较高。
一段时间之后,从每个队列得到处理的包的数量看,SRR和WRR是相等的,但顺序是不同的。
使用SRR时,流量的顺序是平均分布的。
使用WRR时,处理的顺序可能是Q1的一批包,然后是Q2的一批包。
使用SRR时,能够看到包的加权交叉。
在使用WRR中,标有1的所有包都得到了处理,然后是标有2、3、4和5的包。
在SRR中,所有包都将得到处理,然后是B、C和D。
为使流量的流动更平滑,SRR支持交叉(受权重影响)。
SRR是WRR的发展,采用了更顺畅的循环机制,能够防止由于大量突发流量引起缓存溢出。
3,问:
CiscoCatalyst3750-E是否支持拥塞避免?
答:
是的。
加权尾部丢弃(WTD)能够运用于部分或全部输入和输出队列。
WTD是一个拥塞避免机制,能够管理队列长度,加入收藏为不同的流量类型制定不同的丢弃策略。
利用可配置的阈值,能够确定丢弃某些包的时机。
阈值能够基于服务类别(CoS),也能够基于个性化服务代码点(DSCP)值。
队列填满之后,低优先级的包将首先被丢弃。
例如,当队列达到60%时,可通过配置让WTD丢弃CoS为0~5的包。
另外,还能为每个队列的不同CoS和DSCP值规定多个阈值和水平。
4,问:
CiscoCatalyst3750-E支持聚合监管吗?
答:
CiscoCatalyst3750-E支持聚合监管,即几股流量能够作为一个组进行监管。
5,问:
CiscoCatalyst3750-E怎样对包进行分类?
答:
CiscoCatalyst3750-E能按照以下条件对包进行分类:
第2层:
MACSA、DA、802.1P、Ethertype、输入端口号第3层:
IP目标地址、IP源地址;第4层:
端口号和IPServices类型(ToS)。
6,问:
CiscoCatalyst3750-E支持输出流量整形吗?
答:
是的,由于流量整形能在每队列基础上进行,即流量能按照ACL、流、CoS、DSCP等映射到输出队列,因而为客户提供了极大的灵活性。
7,问:
CiscoCatalyst3750-E是否能够为QoS设置端口信任状态?
答:
可以,CiscoCatalyst能通过配置,来信任端口的CoS、DSCP或IP优先级。
这个功能能够基于VLAN执行。
这一点很重要,因为用户需要信任高优先级语音VLAN流量的值。
8,问:
CiscoCatalyst3750-E是否能够标识输入和输出方向的包?
答:
可以,CiscoCatalyst3750-E能够标识输入和输出方向的CoS和DSCP。
9,问:
CiscoCatalyst3750-E的QoS是否能够调度输入和输出方向的包,并作为拥塞避免机制的一部分?
请描述一下实施过程。
答:
能。
关于这一点,我们将在输入和输出QoS中讨论。
10,问:
第3层QoS是否需要IPServices许可证?
答:
不需要,IPBASE特性集和IPServices特性集都能执行第3层QoS。
11,问:
是否需要IPServices特性集才能执行第3层和第4层查询,实现QoS和安全性?
答:
不是,IPBASE特性集和IPServices特性集都允许利用第3层和第4层查询实现QoS和安全性。
12,问:
监管能够达到多高的精确程度?
答:
承诺信息率(CIR)为8KB~1GB,突发量为8KB~1MB。
13,问:
当监管策略应用到VLAN时,,您能否描述一下监管的过程?
答:
尽管能向VLAN接口应用策略图,但所有监管或限速操作都只能在端口水平上执行。
换言之,不能通过计