首页 > 技术文章 > QoS---流量的分类与标记

csdragon 2021-03-15 23:07 原文

流量的分类与标记

流量分类时提供差分式服务的基础

要实现差分服务,就需要对进入DiffServ域的流量按照一定的规则进行分类,然后根据不同类别的流量提供不同的服务,不同的转发速度、延时、抖动等。

differv sever.png

报文分类的两种方式

一、简单流分类

根据报文优先级分类。不论是数据链路层头部、MPLS头部和IP头部,报文中都含有优先级字段

简单流分类中优先级通过map-table,需要在报文的入接口做“trust”表示执行简单流分类,如果没有配置,按照默认优先级0转发

  • 二层:802.1Q中PRI字段
    • 802.1p(VLAN)
    • 范围0~7
    • 802.1Q.png
  • 2.5层:MPLS的exp位
    • EXP(label)
    • 范围0~7
    • MPLS LABEL.png
  • 三层:IP的ToS(IPP、DSCP)
    • TOS值(IP头部中)
    • 长度8bit(前6bit用于标识优先级,保留最后2bit不使用)
      -IP TOS.png

DSCP

表达方式

  1. 数字形式:范围0-63

  2. 关键字形式:关键字标识DSCP值

DSCP关键字.png

DSCP与IPP关系与差别

IPP是早期的IP优先级,IPP的范围只有0-7

DSCP使用CS系列优先级字段兼容IPP

占多大ToS取值范围默认值优方式
IPPToS前 3bit0-70越大越优
DSCPToS前 6bit0-630越大越优

DSCP的几种类详解

1.CS类
  • 用于兼容IPP使用

  • 后3bit位固定为0,前3bit表示优先级

CSIPPDSCP数值
0(000 000)00
1(001 000)18
2(010 000)216
3(011 000)324
4(100 000)432
5(101 000)540
6(110 000)648
7(111 000)756

CS 6一般用于路由协议、CS 7一般用于BFD

2.AF类
  • 确保转发
  • 使用前6bit位,将前6bit位分为两部分
    • 前3bit表示优先级,后2bit位表示丢弃概率,最后1bit固定为0

计算:例:100 010

100-----4

010------1

==AF41

AF类DSCP
AF41(100 010)34
AF42(100 100)36
AF43(100 110)38
AF31(011 010)26
AF32(011 100)28
AF33(011 110)30
AF21(010 010)18
AF22(010 100)20
AF23(010 110)22
AF11(001 010)10
AF12(001 100)12
AF13(001 110)14

AF4系列用来承载语音的信令流量

AF3系列用来承载直播视频流量

AF2系列用来承载视频点播流量

AF1系列用来承载普通文本、邮件流量

3.EF类

急速转发类

  • 101 110

  • DSCP数值:46

承载语音流量

4.BF类

默认转发类

  • 000 000

  • DSCP值:0

一般没有标记的报文,不被信任的报文

DSCP.png
注意:优先级的划分基本由IP ToS的前3bit实现,因此可以算出有八个队列从0-7,正好对应802.1Q、MPLS的EXP 范围,使用优先级的队列可以实现拥塞管理的队列调度技术,而IP ToS后3bit是丢包概率对应实现拥塞避免的尾丢弃机制

在转化成TOS数值时,需要以8bit的形式进行转

xxx xxx 00

例:TOS=40 (0010 1000)==DSCP AF11(001 010)

在ping命令行后可进行指定

ping -tos 40 x.x.x.x

AF11(001 01 0)==DSCP 10(001010)

案例配置:AR2外部优先级为AF11,映射为AF31(内部优先级)

案例拓扑.png

##1、入接口做“trust”
interface GigabitEthernet0/0/0
trust dscp   ##信任外部优先级
trust dscp override   ##信任外部优先级,并且做重标记为AF31
##2、配置map-table
qos map-table dscp-dscp
input 10 output 26
3、验证
AF11的DSCP为001010,TOS是8bit=001 01 0  00=40
<AR1>ping  -tos 40 4.4.4.4

简单流分类存在局限性

当网络中需要对特定的用户提供优先转发服务时,简单流分类无法实现

当网络中需要对特定服务提供优先转发服务时,如FTP文件传输。简单流分类无法实现

针对简单流分类不够精细的缺点,提出了复杂流分类

复杂流分类主要使用MQC实现

MQC

模块化QoS命令行MQC(Modular QoS Command-Line Interface)是指通过将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务 。

随着网络中QoS业务的不断丰富,在网络规划时若要实现对不同流量(如不同业务或不同用户)的差分服务,会使部署比较复杂。MQC的出现,使用户能对网络中的流量进行精细化处理,用户可以更加便捷的针对自己的需求对网络中的流量提供不同的服务,完善了网络的服务能力。

二、复杂流分类

根据报文的五元组,使用MQC实现

  • 五元组:源IP、目的IP、源端口、目的端口、协议优先级

  • MQC三要素: 流分类(traffic classifier)、流行为(traffic behavior)和流策略(traffic policy)

  • 配置完成MQC后,需要在相应接口执行流策略

流分类(traffic classifier)的规则

流分类规则 二层.png
流分类规则 三层.png

案例配置:针对对从1.1.1.1到4.4.4.4的报文,标记急速转发类EF

案例拓扑.png

在AR2上配置

1、分类
acl number 3000  
rule 5 permit ip source 1.1.1.1 0 destination 4.4.4.4 0 
traffic classifier 1
if-match acl 3000
2、标记
traffic behavior 1
remark dscp ef
3.策略联动和调用
traffic policy 1
classifier 1 behavior 1
4.接口调用
interface GigabitEthernet0/0/1
traffic-policy 1 outbound
5.验证
ping -a 1.1.1.1 6.6.6.6

其他

为什么要对报文进行标记?

答:端到端进行QoS部署时,就需要每台设备都对报文进行分类,这样就会导致耗费大量地设备处理资源,为此提出了对报文进行标记的方法,这样下游设备只需要对标记进行识别即可提供差分服务。

推荐阅读