Qos报文分类和标记原理与实验

模拟器:eNSP

报文分类的目的:

大多数的QoS工具都能对进来的业务流分类,分类的目的是对进来的不同流量实施不同级别的QoS服务。在当前的网络中,分类和打标记在网络的边缘发挥了重要的作用,而在网络的核心根据标记来分类并实施相应的QoS动作,这是实现差分服务的前提和基础。分类的工具有多种,可在接口下应用ACL或由MQC使用traffic classifer定义具备复杂匹配能力的流分类。

传统的工具进行分类:

也就是接口下使用ACL进行分类,这种分类方法多和传统的QOS工具,如Remark (打标记)、CAR (监管) 一起使用,它最大的特征是把全局定义的用于匹配数据报文的ACL直接在接口下调用,其匹配进入或离开接口的流量,对ACL所允许的报文做限速或过滤等处理。

此种分类方式的特点是实现简单、匹配能力有限,需要和其他传统QoS配置工具一起使用。例如:

acl number 2000
rule 0 permit source 192.168. 1.0 0.0.0.255
#acl2000,允许源地址为192.168.1.0网段的报文通过
acl number 2001
rule 0 permit source 192. 168.2.0 0.0.0.255
#acl2001,允许源地址为192.168.2.0 网段的报文通过
interface GigabitEthernet3/0/0
ip address 1.2.0.2 255.255.255.0
qos car outbound acl 2000 cir 512 cbs 32000 pbs 432000 green pass yellow pass red discard
#在接口下直接调用qos car监管命令,其对在接口出方向对符合ACL 2000规则的报文做流量监管,指定承诺信息速
率为512kbit/s
qos car outbound acl 2001 cir 128 cbs 8000 pbs 72000 green pass yellow pass red discard
#同样,接口出方向对符合ACL 2001规则的报文做流量监管,指定承诺信息速率为128kbit/s

MQC方式进行分类:

概述:
MQC是灵活性很强的配置工具,其可使用trfficclassifer定义复杂的匹配规则,可以匹配报文的LI/L2/L3/L4甚至L7。匹配规则通过识别报文头中的一层、二层、三层及高层相应字域的内容。

在这里插入图片描述
常见的分类依据如下:
在这里插入图片描述
识别报文是分类阶段的职责。使用MQC方式进行分类,也被称为复杂流分类。

华为设备上配置命令:
执行命令traffic classifier classifier-name [ operator { and | or } ],创建一个流分类,进入流分类视图。
• and:报文只有匹配了类中的所有的规则,设备才认为报文属于此类。当流分类中有ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类。当流分类中没有ACL规则时,则报文必须匹配所有非ACL规则才属于该类。
• or:报文只要匹配了类中的一个规则,设备就认为报文属于此类。
if-match 匹配条件
if-match 匹配条件

报文标记:

本地优先级和报文优先级:
标记是对分类的流量打上不同的标签,据此分级别对待不同的数据,称为优先级标记。根据优先级标记的作用,华为设备可分为设备内部优先级(又称为本地优先级)和报文优先级(又称外部优先级)。设备内部优先级是对进到设备内部的数据报文给予的一个内部优先级标记值,根据该值可在设备内部分配或优化资源分配,如选择队列。

设备内部优先级和报文优先级的关系:
●设备内部优先级是用于内部资源分配和调度使用的值,每个进到设备的报文一定都会得到一个值,该值根据入接口配置的信任或Remark功能而生成。
●报文优先级是报文本身所携带的OoS标记值。两层报文使用802.1p或EXP而三层报文多使用IP Precedence和DSCP。报文在离开设备时,报文优先级可能会被重写,把内部优先级作为报文优先级携带出去。

优先级分类:
在这里插入图片描述
优先级映射是在交换机或路由器内部把报文携带的QoS优先级与设备内部优先级做转换,从而使设备根据内部优先级提供有差别的QoS服务质量的过程。

不同的网络技术,QoS 优先级标记会不同,用户可以根据网络规划在相应网络上使用相应的QoS优先级标记。例如,以太网络上(802.1Q 链路)使用802.1p, IP网络中使用IP Precedence或DSCP,MPLS 网络中使用EXP等。

华为设备在其入口根据接口信任的信任关系配置映射表生成内部优先级。在出口,根据内部优先级或802.1p选择出队列,并映射到报文优先级。

当报文经过不同网络时,为了保持报文的优先级,需要在连接不同网络的设备上配置这些优先级字段的映射关系。当数据报文进入设备时,其外部优先级字段(802.1p 或DSCP或MPLS EXP)被映射为内部优先级:报文离开设备时,将内部优先级映射为外部优先级字段。

二层标记:
在这里插入图片描述
Vlan tag中和MPLS报文中的表示优先级的字段都是3bit,0-7,越大越优先。默认情况下都是0,做尽力而为的转发。7为系统的报警字段,6一般为协议相关的控制信息,如OSPF报文,5一般为语音流量,4一般为网帧流量(视频),优先级为0也叫做cs0。

以太网帧上的802.1p标记又常被称为CoS (Classification of Service)。

三层标记:
在IP报文里,我们使用的是8bit来表示优先级,在最初的时候,只使用了前面3个bit,也就是和二层标记一样,0-7来表示流量的优先级,但是因为流量种类很多,0-7完全无法满足真实的需要,所以后将后面三个字节划分作为优先级的标识,只是最后2个字节没有使用。这也被称为了DSCP。
在这里插入图片描述

IPP:
IP Precedence也是IP报又上的一个标记,占Tos子域的头3位,同CoS相似,值越大,代表的优先级别就越高,是比较老的一种QoS标记,在一 些传统的QoS工具中使用较多。IPP 值和名字的对应关系如下图所示:

在这里插入图片描述

DSCP:
IETF DiffServ工作组目前定义了四种PHB( Per-Hop Behaviors,下一跳行为)。

  1. Default PHB:提供best-effort服务,数值为0。
  2. Class-Selector PH:后3位数值为0,头三位非0的DSCP,用来和IPP兼容。
  3. Expedited Forwarding PHB:服务于低延迟应用,数值为46。
  4. Assured Forwarding PHB:用于提供带宽保证,数值请参考下图。
    在这里插入图片描述

如果前面三个字段为111,后三个字段为000,向下兼容ip优先级的,表示为CS7,同样前三个字段110,后三个字段为000,表示为CS6。EF表示当前面三个字段为101,后面三个字段为110,也就是总体为46,表示加速转发。

AF字段只用了前面的5个bit,前三个bit作为x,后两个bit作为y,x取值范围1-4,越大表示转发的优先级越大,后两个bit范围为1-3越大表示拥塞时丢弃的优先级越大,转发和丢弃的优先级是互相独立的。

注意,第6位没有使用到就会保持为0,当y为0的时候,AF4表示的也就是CS4,AF3表示的也就是CS3,AF2表示的也就是CS2,AF1表示也就是CS1。最后BE表示的是6位全部为0的情况,也就是表示CS0。

内部优先级使用同DSCP一样的取值范围,可以做到同DSCP一致的精细化控制。

生成内部优先级工具一:信任关系

当报文进入设备内部时,根据接口配置的信任状态决定设备内部的优先级,在报文的入端口上设置信任关系,会影响内部优先级和报文优先级。使用命令: trust { 8021p[ override ]| dscp [ override ]| exp},设备可选择其中一种进行配置。

1.信任报文的802.1p优先级——trust 8021p

  1. 对于带VLANTag的报文,设备根据报文携带的802.1p优先级查找优先级映射表,生成内部优先级,确定报文进入的队列,并修改报文的优先级值。
  2. 对于不带VLAN Tag的报文,设备将使用端口优先级作为802.1p 优先级,查找优先级映射表,确定报文进入的队列,并可以修改报文的优先级值。
  3. 建议LAN中使用信任802.1p生成内部优先级。
  4. 进到设备的802.1p为3的报文,在设备内部使用内部优先级AF31。同理, 802.1p为5的报文。在设备内部分配内部优先级EF。
  5. 当报文从出口离开设备时,报文优先级没有被改写。

相关配置:

在这里插入图片描述

 #配置优先级映射在路由器A上
 #配置Eth2/0/0和Eth2/0/1接口信任报文的802.1p优先级
 [RouterA] interface ethernet 2/0/0
 [RouterA-Ethernet2/0/0] trust 8021p
 [RouterA-Ethernet2/0/0] quit
 [RouterA] interface ethermnet 2/0/1
 [RouterA-Ethernet2/0/1] trust 8021p
 [RouterA-Ethernet2/0/1] quit
 #配置优先级映射关系
 [RouterA] qos map-table dot1p-dscp
 [RouterA-maptbl-dot1p-dscp] input 3 output 26
 [RouterA-maptbl-dot1p-dscp] input 5 output 46
 #验证配置结果
 #查看RouterA上的优先级映射信息
 <RouterA> display qos map-table dot1p-dscp
 Input Dotlp        DSCP
 0                   0
 1                   8
 2                   16
 3                   26
 4                   32
 5                   46
 6                   48
 7                   56
#trust 802.1p后 ,根据802.1p生成内部优先级

2.信任的报文的DSCP优先级一一trust dscp
设备按照报文携带的DSCP值查找DSCP优先级映射表,生成内部优先级。默认情况下,报文的DSCP优先级和内部优先级是一一对应的关系,可以使用命令qos map-tab1e dscp-dscp进行修改。

相关配置:

#配置优先级映射关系,修改默认映射表
[RouterA] qos map-table dscp-dscp
[RouterA-maptbl-dscp-dscp] input 24 output 26
[RouterA-maptbl-dscp-dscp] input 40 output 46
#配置Eth2/0/0和Eth2/0/1接口信任报文的dscp优先级
[RouterA] interface ethernet 2/0/0
[RouterA-Ethernet2/0/0] trust dscp
[RouterA-Ethernet2/0/0] quit
[RouterA] interface ethernet 2/0/1
[RouterA-Ethernet2/0/1] trust dscp
[RouterA-Ethernet2/0/1] quit

3.信任的报文的exp优先级一一trust exp
设备按照报文携带的exp值查找DSCP优先级映射表,生成内部优先级。eNSP模拟器上无法修改其与内部优先级的对应关系,但是可以在接口上设置信任。
在这里插入图片描述

4.设置override参数——trust dscp override和trust 8021p override
配置override与否,不影响内部优先级的生成,但会影响经过设备的报文优先级,报文优先级会被改写成内部优先级。

未配置override关键词时,进入的报文按照指定优先级映射生成内部优先级,但离开时报文优先级并不修改,报文优先级透传。

配置override关键词后,离开设备的报文的802.1p值、DSCP值均被修改成内部优先级。

例:设备在报文入口配置trust 8021p,报文优先级中802.1p为3,而DSCP为24。内部映射表802.1p-to-dscp修改后802.1p值3所对应的DSCP为26, dscp-to-dscp映射表中24映射为24,在设备的入口配置trust 8021p override。则离开设备时,报文优先级802.1p值和DSCP值分别是多少?
同样的场景,如果在设备入口配置trust dscp override,则离开设备时,报文优先级中802.1p和dscp值分别是多少?

答:进入设备后,根据映射表生成内部优先级
配置trust 8021p override后,离开设备的报文优先级为802.1p=3,dscp=26。(dscp 26=16+8+2=011010,前三位依旧是011=3,所以802.1p=3)
配置trust dscp override后,离开设备的报文优先级为802.1p=3,dscp=24。

802.1p=3根据dscp-to-802.1p映射而生成。内部优先级DSCP=24,会有对应的内部优先802.1p=3。报文离开时用内部优先级802.1p和dscp修改报文优先级。

5.端口优先级
每个进入设备的报文都需要内部优先级,如果端口信任802.1p,但报文本身没有对应的Vlan Tag, 此种情况下,会使用到端口优先级。每个端口的默认端口优先级为0,使用规则如下:

  1. 端口处于信任802.1p状态时,若收到不带Vlan Tag的报文,设备将根据端口优先级生成内部优先级并转发。
  2. 端口处于不信任状态时,即没有配置任何Trust 命令,所有报文都将根据端口优先级进入一个队列,无法实现差分服务。

相关配置:
端口G0/0/0下,使进入的报文(没有Vlan Tag)离开设备时使用队列1。同理,使端口G0/0/1进来的任何报文都进入队列2。
#G0/0/0端口修改端口优先级为1,同理,修改G0/0/1端口优先级为2

[RouterA]interface G0/0/0
[RouterA-Ethernet0/0/0] port priority 1
[RouterA-Ethernet0/0/0] quit
[RouterA]interface G0/0/1
[RouterA-Ethernet0/0/1] port priority 2
[RouterA-Ethernet0/0/1] quit
#G0/0/0和G0/0/1端口默认处于非信任状态

6.信任边界
华为设备可以在接口上设置4种信任状态一不信任、 信任802.1p、信任DSCP、信任EXP。

如果接口处于不信任状态,设备在报文离开时重写或清除原有报文优先级,重新生成的报文优先级在网络中继续使用。建议在网络边缘设备上对进入的报文不做信任,而在网络中间设备上重新标记报文优先级。我们把信任报文优先级的设备所组成的网络区域称为信任域,而第三方设备或外部网络或终端等设备所代表的区域称为非信任域。服务质量工程师在设计QoS时会在接入层交换机或企业边缘设备入口上设置不信任状态。

对报文优先级做不信任处理,可在设备内部生成符合企业服务规范的报文优先级,并在企业网络内部信任域中使用。这种不信任设备( 或非信任域)和信任域的边界称为信任边界。

如下图所示,在企业网络的边缘设备上,如接入层交换机、内外网络的边缘、企业与第三方网络的边界互联设备都是外部业务报文进来的位置,此位置建议重新打标记(上色),信任边界不信任任何外部网络进来的报文优先级。
在这里插入图片描述

生成内部优先级工具二:MQC的Remark工具

在报文进入设备时,除配置信任外,接口还有其他方式生成内部优先级,如MQC和CAR等Remark工具,使用这些机制在报文进入设备时生成的QoS标记即是内部优先级,同时也是报文离开设备时的报文优先级。

若接口同时配置信任和其他Remark工具,Remark配置优于信任起作用。

例:在企业网络边界,把进入企业网络内部的所有RTP报文打,上DSCP EF标记。

[huawei]traffic classifier voip
[huawei]classifer-voip]if match rtp start-port 16384 end-port 32767
[huawei]classifier-voip]quit
[huawei]traffic behavior b1
[huawei-behavior-b1]remark dscp ef
[huawei-behavior-b1]quit
[huawei]traffic policy p1
[huawei-trafficpolicy-p1]classifier voip behavior b1
[huawei-trafficpolicy-p1]quit
#在入方向调用MQC
[huawei]int g0/0/0
[huawei-GigabitEthernet/0/0]traffic-policy p1 inbound
[huawei-GigabitEthernet0/0/0]quit
#MQC remark修改报文优先级,该报文优先级也是内部优先级

注意:如果使用MQC或CAR Remark为报文设置优先级,则离开的报文优先级就是在报文入口配置的优先级。

整理资料来源:《HCIE路由交换学习指南》、HCIE培训资料

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值