QOS应用于网络拥塞的网络情况,在有限的带宽中保证通信质量,当带宽足够时没有应用的价值
术语解释:
延迟:报文从一端到另一端的时间
延迟抖动:即延迟不固定,抖动为延迟的时间差
DSCP:差异化服务编码点,在IP报文中IP报头含有一个DS字段,字段的其中一部分为差异化服务编码点,即DSCP,DSCP定义了0~63,共64个优先级,另外DSCP段中包含了标致IP优先级的段,IP优先级是0~7八个等级,0表示尽力转发,ip优先级 DSCP优先级都用于编码数据包的优先级。
QOS的服务模型:
Best-effort-service //尽力而为模型
Integrated service //综合服务模型,简称,intServ
Diffrentiated Service //区分服务模型 ,简称 DiffServ
CIR:承诺平均速率,代表了平均速率,实际配置中用作相应的关键字。
Bc:突发量,即在承诺平均速率基础上,允许突发的流量大小
Be:额外突发量,即在超出允许突发量之外还可以转发的流量
GTS:流量整形,利用缓冲区使流量均匀发送,减少丢包,但增大延迟,用于小流量网络有较大突发流量的情况。
CAR:承诺访问速率,QOS 的一种流量控制技术
RTT:流量往返时间,一般可用Ping命令测试
LLQ:低延时队列,可被CBWFQ调度的优先队列,此队列无数据才转发其他队列
BQ:CBWFQ中的普通队列,共64个,按wfq方式调度
Default lass :CBWFQ中默认类队列,即,数据分类时没有匹配任何条件送入该队列
拥塞管理技术:主要以下五种:
FIFO:Frist in frist out queuing先进先出队列
PQ:priority queuing优先级队列
CQ:Custom queuing 定制队列
WFQ:weighted fair queuing 加权公平队列
CBWFQ:class based weighted fair queuing 基于类的加权公平队列,是主流的拥塞管理技术
尾丢弃:传统丢包策略,即队列长度达到最大长度后,后续包全部丢弃
RED:随机预检测,拥塞避免技术,为队列长度设定低阈值,高阈值,当队列处于阈值之间时随机丢弃报文,越长丢弃概率越高
WRED:加权随机预检测,类似RED,只是在丢弃报文时,考虑报文的IP优先级
外文词汇:
Violate:违反
Reservation:保留预留
Latency:反应时间
Commit:答应负责
Peak:峰值
小知识点:
//WFQ是Cisco低俗端口默认配置
//WFQ将不同源/目的IP,协议,端口号,IP优先级数据流分类放入不同队列,按优先级分配出口带宽,按某个流优先级在所有流优先级中所占比例计算。优先级从0开始,所以计算时都将优先级加1
//Bc的配置,一般采用Bc=2*RTT*CIR/8,该速率单位是字节/秒
//Be 一般与Bc大小相同
//CIR配置时的速率一般是Bit/秒
//GTS只能配置在Output方向
//GTS对违规流量纳入缓存区,缓存区满后,才丢弃,而CAR直接丢弃
//CAR 中的Bc和Be作为被允许的额外流量的同时也作为一种信用值,如果该流量一直小于规定流量,Bc和Be会积累,直到Bc,Be的设定值,如果流量一直大于规定流量,信用值降低,直至为0,最初时刻默认为最高值。
//流量策略,一般有几种对应的操作:
合规流量转发,违规流量丢弃,流量报文标记IP优先级,进入下一级流量策略。
LLQ队列不能使用 WRED ,也不能使用 queue-limit 命令
配置CBWFQ时,配置保留最小带宽要注意所有数据流的总带宽最好不要超过端口总带宽的75%,留下一部分带宽用作设备间通信使用
Cisco中QOS提供的主要技术以及配置:
QOS主要是:
1 利用GTS技术配置流量整形,主要配置其平均输出速率
,缓存区大小,是对流量的一种加工
2 利用CAR技术配置承诺访问速录,主要也是限制通信速率,配置突发流量,和额外突发流量,是对流量大小的一种限制
3 利用CBWFQ配置拥塞管理,主要配置以保证谋种特定数据流的最小带宽,或配置其低延时队列的最大带宽,以及默认队列的最小带宽。
4 利用WRED技术配置拥塞避免,主要配置队列长度阈值,然后随机丢弃队列长度在其设定的高低域范围内的报文
配置:
Cisco设备中:
GTS
1 在接口上使用traffic-shape rate “平均速率CIR” [Bc Be] [“缓存区大小” ] 命令配置GTS,中括号内为可选参数,缓存区默认大小1000(报文数)范围1~4096
2 也可利用ACL来规定要整形的流量。
然后用traffic-shape group “访问列表编号” “CIR” [Bc Be]
3 使用 show traffic-shap “接口”查看谋个接口的GTS
//也可以在接口前加 statistics 参数查看GTS 流量统计信息
使用 show traffic-shap queue 命令查看GTS队列信息
CAR
1 在接口上使用 rate-limit {input | output} {CIR} {突发量Bc}{最大突发量Bc+Be} conform-action {动作} exceed-action {动作}
//其中大括号代表里面的参数必须配置,竖线代表多选其一,
//”动作”可以是drop 或 transmit 或 set-prec-transmit “ip优先级”
//ip优先级可以是0~7 ,越高越优先 0表示“尽力而为”
// Bc范围 1000~521 000 000 单位Byte
//Bc+Be范围为Bc的二倍
// CIR 范围 8000 ~ 2 000 000 000 Bit/s
1 也可以在CIR前面加 access-group “ACL编号”来引用ACL规定的数据流
2 使用show interface [接口号] rate-limit 查看端口限速信息
WRED
1 在接口上使用:
random-detect dscp-based //启动基于DSCP优先级的WRED
random-detect dscp {dscp} {min max} [mark]
//其中min max分别表示高低阈值,mark 用于计算丢弃的最大概率分母
3 在接口使用
Random-detect //启动基于IP优先级的WRED
Random-detect precedence {precedence}{min max} [mark]
//综上,可以为不同优先级设定不同的阈值,来使优先级低的报文优先丢弃
4 查看WRED
Show queueing Random-detect 查看WRED信息
Show queue “接口” 查看端口队列信息
CBWFQ
CBWFQ的配置需使用端口策略表policy-map 来引用类映射表class -map,然后再在相应端口实施策略
1 首先使用 calss-map [match-all | match-any] “表名称” 来定义一个类匹配表,/./match-all 为匹配所有表中加入的条件,match-any 为匹配条件中任意一个,缺省值为 match-all
2 然后配置匹配条件:
可以是:match access-group {ACL表编号}
可以是:match protocol {协议}
可以是:match input-interface {端口号} //匹配端口进入的流量,端口也可以是VLAN
可以是:match any // 匹配任意数据包
可以是:match {source-address | destination-address} mac {mac-address}
//匹配源或目标的mac
3然后使用
policy-map “策略名称” //定义流控制策略表名
然后使用
class “类映射表名” //来引用,类匹配
或使用 class class-default 来添加类匹配条件为默认队列
4然后给出流量策略:
此时已经进入策略与类映射关联模式:(config-pmap-c)#
接下来:
可以使用set ip dscp {dscp} //标记dscp优先级 0~63
或使用 set ip precedence { precedence } //标记IP优先级 0~7
可以使用 bandwidth {“保证最小带宽”| percent 最小带宽占端口带宽百分比} 配置CBWFQ队列的最小带宽
可以使用 queue-limit “队列报文个数” //1~4096 ,配置队列最大长度
可以使用priority {“最大带宽”| percent 最大带宽占端口带宽百分比}
来配置LLQ队列最大带宽
//以上绿色字体部分即为CBWFQ技术的配置
接下来还可以使用
police {CIR} [突发量Bc 额外突发量Be] conform-action {动作} exceed-action {动作} violate-action{动作}
来配置CAR,其中conform-action为合规流量动作 exceed-action为Bc和Be 之间的流量的动作 violate-action 为超出额外突发量动作,而“动作”与rate-limit命令中的“动作”意义和配置相同
还可以使用
Shap average {CIR}[Bc Be] 来配置GTS的平均速率
Shape max-buffers [缓冲区报文数] //1~4096 默认1000来配置GTS的缓冲区大小
还可以使用
Random-detect
Random-detect precedence {precedence}{min max} [mark]来配置WRED
最后在端口应用策略
进入某接口 service-policy {input | output}{策略名称}
//注意,GTS 和CBWFQ 只能应用于output方向,而CAR可以应用在两个方向
查看配置:
Show policy-map “名称” 查看策略配置
Show policy-map interface “接口名称” //查看端口策略应用和流量信息
总结:QOS 在cisco中的几个主要应用:限速(CAR,GTS),保证带宽(CBWFQ),和队列长度限制(WRED)来保证网络不至于拥塞恶循环以至于瘫痪
-------------------------------------------Frank Chen
联系客服