一、概念、三种服务模型 、过程
QoS:Quality of Service 服务质量,通过牺牲非关键流量或者侵略流量来保障优先转发关键流量的能力,有以下三种服务模型:
1、BE:Best Effort 尽力而为,默认
2、InterServ:综合服务模型 RSVP: Resource Reservation Protocol 资源预留协议,基于流的方式(五元组)对带宽资源进行预留
所有节点qos参数必须一致,所有节点都要支持RSVP协议,节点之间周期性交互
优点:特定业务带宽保证、延迟保证
缺点:配置麻烦,要求所有设备支持RSVP协议,其他业务紧张时,带宽利用率低。现实中使用少
3、DiffServ: Difference Service 区分服务模型,基于类的方式实现对不同业务流提供不同服务质量,不需要协议,应用最广
过程:
1、网络入口对报文进行分类,完成对报文的标记
2、根据标记,映射为服务等级值
3、根据不同的服务等级值,进入不同的队列,根据队列间的调度机制,进行不同的转发服务
数据 ---> 分类 ---> 标记 ---> 调节 ---> 拥塞避免 拥塞管理
ACL 二层标记 整形GTS、FRTS 硬件队列
接口 802.1p.cos监管CAR 软件队列调度schedule
Length exp(mpls) 限速LR (PQ
测速 DE(FR) (RR:WRR、DRR
令牌桶 三层标记 WFQ
IPP优先级 LLQ
DSCP区分服务编码点
速率
二、名词解释:
DSCP:Differenct Service Code Point
IPP:IP Precedance IP优先级,在IP v4报文中的TOS的前三个bit,从0到7
PHB:Per-Hop Behavior 逐跳行为
RED: Random Early Detection 随机早期丢弃
WRED:Weighted Random Early Detection 带权重值的随机早期德丢弃
port trust mode:端口信任模式
CBQ:Class-Based Queueing 基于类的流队列分类
MQC:Moduled Queue CLI 模块化队列
PQ:Priority Queue 特权队列
LLQ:Low Latency Queuing 低时延队列,EF队列中的特殊,更低时延
WRR: Weighted Round Robin
DRR:Deficit Round Robin
WFQ:Weighted Fair Queuing
CIR:Commited Information Rate 承诺速率
PIR:Peak Information Rate 指定峰值信息速率,能够通过的最大速率(仅双桶双速有)
PBS:Peak Burst Size 指定峰值突发尺寸,瞬间能够通过的峰值突发流量
CBS:Committed Burst Size 承诺突发尺寸,C桶容量
EBS:Extended Burst Size 扩展突发尺寸,扩展令牌桶E桶的大小
CAR:Committed Access Rate 承诺流量速率,流量监管(限速),无缓存机制,超过的报文丢弃或者降级转发,可做双向
GTS:Gernal Traffic Shapping 通用流量整型,削峰填谷,有缓存机制,仅在出方向做
DiffServ区分服务模型:
1、流分类和标记:classification & marking
2、流量监管和整形:shaping & poicing
3、拥塞避免:congrestion avoidance
4、拥塞管理:congestion management
三、衡量网络质量的因素:
1、带宽:bandwidth
端到端计算带宽的的最小值
2、延时:delay
端到端的延时总和(固定)设备转发延时、线缆转发延时
3、抖动:jitter
因为各种因素变化的延时,来源于侵略流量(aggressive traffic)
4、丢包:drop
报文被丢弃:
1)、tail drop 尾丢弃,后续所有报文都被丢弃(无差别和区分的丢弃)
2)、RED: Random Early Detection 随机早期检测,丢弃一些报文
3)、WRED:Weighted Random Early Drop 权重随机丢弃
四、 QoS工具
1)传统命令行:Legacy CLI (仅出向有效)
interface G0.0.0
qos gts cir 1024 #出方向整形限速 1M,包含了测速、分类(单桶单色,红绿,超过红、低于1M则绿)
优点:简单高效
缺点:配置量大、重复
2)MQC: Moduled QoS CLI 模块化QoS命令行
traffic classfier #流分类
if-match acl 3000 | 接口 | 包长度。。。
traffic behavier #流行为
gts cir 1024 #承诺速率1M
traffic policy #流策略,绑定流分类和行为
classifier A behavier A
int G0/0/0 #接口出方向上调用流策略
traffic policy outbound | inbound A
优点:模块化,分类灵活、可通过模块调用来复用,配置思路清晰,方便排查
3)、auto QoS
专项行业模板供调用
五. 分类和标记
1、 二层标记:
1、802.1p:包含在802.1q中:3个bit PRI字段priority(802.1p),0-7个级别
2、EXP: mpls中的EXPerimental 实验位, 3bit, 0-7
3、源目mac、ACL4000-4999
二层分类举例:
traffic classifier manager
if-match source-mac 3333.3333.3333
traffic classifier voice
if-match 802.1p 3
traffic classifier video
if-match 802.1p 2
2、三层标记:
1、ToS(Type of Service)中的 IPP(IP precedence),IP优先级,3bit: 0-7 进分分类,电信中使用的IPP、EXP、802.1p
111 7 Network Control | 网络控制协议
110 6 Internetwork Control | 网间控制协议
101 5 Critic 关键 | 语音
100 4 FlashOverride 疾速 | 视频
011 3 Flash 闪速 | 呼叫信令
010 2 Immediate 快速 | 数据流高优先级
001 1 Priority 优先 | 数据流中优先级
000 0 Routine 普通 | 默认优先级
如直接在ACL中可以打QoS标记:
ACL 3000
rule permit ip source 10.1.1.0 0.0.0.255 precedence 0-7
做在MQC中:
acl 3001
rule permit tcp source eq 20
traffic classifier ftp
if-match acl 3001
2、DSCP: Differential Service Code Point 区分服务编码点 ,6bit
rule permit ip source 10.1.1.0 0.0.0.255 dscp 0-15 #0-7兼容IPP,0为default,1到7称为CS1-7,后3个 bit 称为 value 值,标记丢弃概率
DSCP 数字方式为0-63,也可用关键字方式表达,定义了四种分组的PHB:
Service Class:服务等级:CS7、CS6、EF、AF4、AF3、AF2、AF1、BE
1)CS:Class Selector 类选择码,CS7、CS6一般用于协议报文
2)EF:Expedited Forwarding 快速转发,需要低延时的业务,如语音流量
3)AF:Assured Forwarding 确保转发,对应AF4、AF3、AF2、AF1,需要带宽保证的业务
前3位取值如下:
001 AF1
010 AF2
011 AF3
100 AF4
后3位最后一位始终为0,后2、3位分别为:01 10 11,分别对应丢弃概率,从低到高
AF和value值组合4*3,可有12种组合,对应的数字表达式为8X+2Y
4)BE:Best Effort 尽力而为
PQ:从高到低
BE配置为QPQ:BE最高
WFQ:加权公平队列,无高低之分
Color:颜色,丢弃优先级:Green、Yellow、Red
丢弃优先级高低取决于对应参数的配置,只是标识
CS1-4:100000
CS1-4:100010 低丢弃
CS1-4:100100 中丢弃
CS1-4:100110 高丢弃
以上数值对应行为PHB逐跳行为
CS5: EF: 促进转发(优先转发)
CS1-4: AF:确保转发
AF41:丢弃百分比低
AF42:丢弃百分比中
AF43:丢弃百分比高
分类 :
1)简单流分类:
dis qos queue statistics int G0/0/0 #查看接口队列
int G0/0/0
port priority 6 #把接口的队列改为CS6(不使用队列软调度的话,队列默认为0,FIFO)
trust 802.1p | dscp | exp #信任入接口报文的标记,放入不同的队列
dis qos map-table dscp-lp #查看qos标记映射表,这里从dscp映射到 LP:local preference
也可以通过改映射表的方式简单地转换:
qos map-table dscp-lp
input 2 output 0
qos map-table dscp-dscp
input 0 output 46
int G0/0/1
trust dscp overide #入队列0改到CS5(EF)
reset qos queue statics int G0/0/0 #重置队列计数器
2)复杂流分类:
traffic classifier icmp
if-match acl 3001
traffic classifier telnet
if-match acl 3002
traffic behavior icmp
remark dscp ef
traffic behavior telnet
remark dscp af11
traffic policy remark
classifier icmp behavior icmp
classifier telnet behavior icmp
int G0/0/0
traffic policy remark inbound
#
traffic classifier af-telnet
if-match dscp af-11
traffic classifier ef-icmp
if-match dscp ef
traffic behavior af-telnet
queue af bandwidth 40000
traffic behavior af-icmp
queue ef bandwidth 60000
car cir 8 cbs 1504 pbs 2504 green pass yellow pass red discard
traffic policy bw
classifier af-telnet behavior af-telnet
classifier ef-icmp behavior ef-icmp
int G0/0/1
traffic policy bw outbound
配置示例:
[CE]acl number 3000 #CE 侧打上语音标记送出去
rule 5 permit ip source 10.1.1.0 0.0.0.255
#
traffic classifier A operator or
if-match acl 3000
#
traffic behavior remark
remark dscp ef
queue ef bandwidth 1000 cbs 5000
#
traffic policy remark
classifier A behavior remark
#
interface GigabitEthernet0/0/0
ip address 10.1.1.1 255.255.255.0
traffic-policy remark outbound
#
[ISP]traffic classifier voice #ISP侧做简单标记配上带宽
if-match dscp ef
#
traffic behavior bw
queue ef bandwidth 100000 cbs 250000
#
traffic policy
classifier voice behavior bw
#
int G0/0/1
traffic-policy bw outbound
#
六、队列:queueing
硬件队列 :FIFO,先进先出,调度算法
软件队列 :多队列 ,每个队列 是FIFO,多个队列之间的调度根据调度算法
1、PQ:Schedule Priority,严格优先级队列
如配置一个队列模板并在接口下调用:
2、RR:Round Robin,轮询,8个每个队列每轮发个包
3、WRR:Weighted Round Robin 加权轮循调度,以报文为单位,每轮每个队列走一个包,高权重队列可以走多轮,更关注包数量
qos queue-profile wrr
scdule wfq 0 to 5 pq 6 to 7 #调度0-7队列
queue 0 to 5 weight 80 #0队列分配10%,默认10%
queue 1 weight 20
int G0/0/0 #在接口上应用
qos queue-profile wfq
dis qos queue statistics interface G0/0/0
4、DRR:Deficit Round Robin 赤字调度,根据权重计算带宽比例,根据带宽比例,计算每个队列的带宽(更关注每个队列发送的包大小总量)。初始值为0,且在每次调度前,计算Dificit做为下次能否参与调度的依据,大于0则可参与调度,小于0则不参与
5、WFQ:Weighted Fair Queue 加权公平队列
用于小包(短报文)优先,每个流共享带宽
a、基于“流”(五元组:源目端口、协议、源目IP),256个队列,WFQ根据流的优先级分配带宽,优先级越高,带宽越高
b、基于“优先级”,根据8个优先级,分配到8个队列中,默认权重相同平均分,通过修改不同的权重来获取更多的带宽
6、组合队列PQ+WRR、PQ+DRR、PQ+WFQ...:
队列优先级分类,越大越优:
LLQ EF AF BE
七、流量调节:contidional
1、 整形 shapping
GTS: Gernal Traffic Shapping 通行流量整形,针对接口
FRTS:FR Traffic Shapping 帧中继流量整形,针对 接口下不同的PVC做
整形和监管的区别:
整形:削峰填谷,小于等于当前承诺速率,正常转发,有buffer,有队列支持,一般做在出向,中高端设备也可做入向
监管:小于等于当前承诺速率,正常转发; 大于当前 速率,要么丢弃,要么重新标记;无buffer,不需要队列 ,可以出向也可以入向
适用场景:整形:尽量不丢包;监管:超速就简单粗暴地丢弃
测速模块:令牌桶(tocket bucket)通过测速来分类(着色)--流量调节执行动作
分类:
单桶
单速单桶双色(适用于整形)---GTS
CBS:Committed Burst Size 突发值 :字节为单位,一个字节一个令牌,等于桶的大小
T:周期,一个周期往桶里流入令牌
CIR:Committed Information Rate 承诺信息速率 bps
CIR = CBS / T
每个周期 T 往桶 里注入CBS个令牌(权限)设备配的是CBS和T
例如,直接在接口下做整形:
int G0/0/0
qos gts cir 1000(Kbits/s) cbs 25000 #默认CBS 为CIR 值 的25倍,CBS如果小于1500,取最小1500
2、监管 monitor
1)单速双桶三色(监管,C桶、E桶)关注包的尺寸突发
突发:黄色
int G0/0/0
qos car inbound cir 1000 cbs 188000 pbs 313000 green pass yellow pass red discard|remark... #默认188倍、313倍
除了允许突发,超速丢弃之外,还允许重标记:
int G0/0/0
qos car inbound cir 1000 green pass yellow pass remark-dscp af43 red pass-dscp af43
2)双速双桶三色(P桶、C桶)关注报文速率突:
场景:A公司业务需求在1M -2M之间,1M成本1万,1- 2M成本2万,需要标识黄色。黄色的出现,依赖于前期有多余的信息溢出,如果前期没有多余的信息溢出,那么双桶单速本质上就是单桶 单速双色。,首先评估的是数据流的速率是否规定的突发要求PBS,规则 是先比较P桶,再比较C桶 ,分为色盲模式和色敏模式。
3)限速:LR: Line Rate 华为私有
监管只能针对 IP 流量进行限速 ,LR 可以针对非 IP 流量限速
场景:当用户希望限制 接口发送报文的能力时,可以执行qos lr来配置接口发送报文速率占接口带宽的百分比,限制 接口发送报文的速率。注意:仅WAN侧物理接口支持配置接口发送报文占接口带宽的百分比。另外 :接口上需要配置队列 ,接口LR才会生效
int G0/0/0
qos lr pct 50 cbs 375000 #pct百分比1-100,单桶 单速,类似于gts
八、拥塞避免:Congestion Avoidance
概念:入向流量大于出向流量(堵车)
结果:队列满了,导致尾丢弃---多个tcp流量丢包,tcp重新建立 连接,tcp慢启动,导致整个tcp速率降低,到达 同一时间到达峰值 ,来回反复,最后导致带宽利用率下降,称为TCP全局同步
解决方案:WRED,默认基于 IPP,可以修改为DSCP
R3】Drop-profile wredA
wred ip-precedence | dscp
dscp af41 low-limit 99 high-limit 100 discard-percentage 1
dscp af42 low-limit 50 high-limit 90 discard-percentage 5
dscp af43 low-limit 10 high-limit 50 discard-percentage 10
q
drop-profile ippA
ip-precedence routine low-limit 30 high-limit 60 discard-percentage 30 =0 #ipp
ip-precedence flash-overide low-limit 80 high-limit 90 discard-percentage 10 #ipp=?
ip-precedence critial low-limit 99 high-limit 100 discard-percentage 1 #ipp=5
1、拥塞避免:
尾丢弃
RED
WRED
2、拥塞管理:
PQ调度:Priority Queuing 严格按照队列优先级高低顺序调度,缺点是高优先级队列长时间有分组存在,低优先级会得不到调度机会
WRR调度: Weighted Round Robin 加权轮询调度,在队列 之间进行轮流调度,保证每个队列 都得到一定的服务时间,优点是带宽可以得到充分利用,缺点是队列的平均报文长度变化 时,用户不能配置WRR权重获取需要的带宽,另一个低延时业务得不到及时调度
DRR调度
WFQ调度:Weighted Fair Queueing 加权公平队列 调度
PQ+WRR / PQ+DRR / PQ+WFQ: 混合方式
CBQ调度:Class-based Queueing 基于类的加权公平队列调度
是对WFQ功能的扩展,首先根据IPP或者DSCP优先级、输入接口、IP报文五元组等规则 来对报文进行分类,然后让不同类别 的报文进入不同的队列 ,其它未匹配报文,进入系统定义的缺省类
EF队列:满足低时延业务
AF队列:满足需要带宽保证的业务
BE队列 :满足不需要严格QoS保证的的尽力发送的业务
drop-profile wredA #拥塞避免
wred dscp
dscp af41 low-limit 99 high-limit 100 discard-percentage 1
dscp af42 low-limit 50 high-limit 90 discard-percentage 5
dscp af43 low-limit 10 high-limit 50 discard-percentage 10
q
q
traffic classifier EF
if-match dscp ef
traffic classifier AF41
if-match dscp af41
q
traffic behavier EF
queue llq bandwidth 100000 #100M,限速,延时敏感
traffic behavior AF41
queue af bandwidth 300000 #300M,延时不敏感
drop-profile WRED
traffic policy A
classifier EF behavior EF
classifier AF41 behavior AF41
int G0/0/0 #对接研发接口
traffic-policy A outbound
int G0/0/1 #对接生产线
traffic-policy
dis qos map-table #查看qos队列映射
qos map-table
接口信任,信任标记、识别,但不能修改
if 需要修改,接口trust override ,信任标记,根据map-table进行修改(仅华为私有)
九、最后:
流量调节:
监管:无buffer
部署在入向、出向
整形:有buffer ( AR 设备只有出向有buffer )
整形模块在拥塞避免后边
整形通过信息版(单桶单速双色)-- AR默认支持双桶 双速
绿色 :转发
红色:缓存
拥塞管理:
按照优先级来进行:8个队列
每个硬件接口只有一个队列 FIFO
每个硬件接口对应8个软件队列
if 没有拥塞,数据流通过分类--标记--入队8个队列 ,直接转发
if 存在拥塞,数据流通过分类--标记--入队8个队列 ,通过调度算法
调度算法:FIFO:
PQ: Stick Priority 严格优先级;(EF、 LLQ(CBQ)LLQ相当于队列7,EF相当于队列6)
RR:Round Robin 轮询
WRR:
DRR:
WFQ:
按照类来进行:CBQ
traffic classifier
traffic behavior
traffic policy