QOS基本配置_分类_打标_映射转换

发布时间 2023-03-29 13:28:12作者: 张贺贺呀

边界设备基本概念

MQC及其组件

  • MQC(模块化的QOS)
    1. 配置流分类(通常是五元组)
    2. 配置流行为(就是打标,通常是EF或AF)
    3. 配置流量策略,其实就是将流分类和流行为关联到一起,称之为流量策略,意为匹配到的流量打什么标识
    4. 应用流量策略,在接口下应用,有方向哈,inbound和outbound

QOS的配置方法也是多种多样的,很多配置可以基于接口进行配置,也可以根据类进行配置,而根据类进行配置的时候通常我们要敷衍MQC模板进行配置,这种方法功能性最强,也最容易理解,最具有通用性。路由器将配置QOS的步骤做成了模块,也叫模块化的QOS,称称MQC,我们可以理解为配置套路或配置工具,我们在配置的时候要调用MQC,在MQC内部进行配置QOS。

流行为就是打标,打标的具体体现就是在报文里面DSCP当中,其实就是指的修改DSCP这个字段,这个打标不是给自己用的,而是给后面路由器用的,后面的路由器再做匹配的时候,直接使用第一台路由器打好的标就可以了,这样就不需要再做复杂流分类了。

因为PHB行为一般只有四种大类,我们常用的其实也只有两种,EF和AF,我们前面的内容有提到过指的是快速转发标记和确认转发标记。

Traffic Policy的套路

image-20230329132028623

traffic policy应该翻译成流策略,是MQC的组件之一,专用于配置流量策略的,是为来完成配置流分类和配置流行为的

traffic-policy又分为两个组件,所以整个的结构应该是这样:

  • QOS
    • 边界路由器
      • MQC
        • Traffic policy
          • traffic classifier(做分类)
          • traffic behavior(行为,打标,就是修改DSCP字段)

我们要明确一点,我们理解的流行为就是在DSCP打标,这是只是配置流分类的一种动作呀,不仅仅能如此,他还可以修改,删除ESCP里面原有的标识,我们就把它理解成拥有对ESCP、EXP、802.1p里面关于QOS字段的完全操作权。比如我们在我们的PC上设置了ESCP,那到了边界路由器至于要不要删除掉就是traffic policy说了算的。

traffic policy与我们以前学过的策略有点相似之处,那就是它也是一个列表,列表里面由一个个的条目组成,从序列小的开始处理,第一个条目都有由两个单位组成traffic classifier和traffic behavior。

总结

image-20230329132038187

  1. PC设备可能已经做了流分类和打标,windows和linux都可以轻易的实现
  2. 在DS边界设置上我们要做分类,分类完之后决定做什么样的动作,最终的体现就是修改一下DSCP字段
  3. 域内的其它路由器就根据DSCP里面的字段来匹配流量

配置思路

边界设备

  1. 通过traffic classifier 创建流分类
    1. 调用acl
  2. 通过traffic behavior 创建流行为
    1. remark,其实就是打标
  3. 通过traffic policy 将流分类和流行为绑定到一起生成一个条目,放入数据库当中
  4. 接口调用

域内设备

  1. 配置信任接口:域内设备一般都会有一个接口向着边界设备,那与边界设备相连的接口我们将其配置为信任接口,也就是接纳边界路由器的DSCP字段或exp字段,在入方向上不做修改
  2. QOS_MAP做简单的流分类:在入方向我没修改,并不代表我在路由器内部不做修改,所以通过QOS_MAP还是可以对DSCP等字段做修改的,这个修改是有必要的,因为如果此设备连接两种网络类型,比如说入方向连接着三层网络,出方向连接MPLS,那就得把DSCP映射成为EXP,这个映射是自动的,我们只需要帮助QOS指明将什么映射成什么就可以了。

基础实验

边界设备_复杂流分类

image-20230329132048253

# 先做流分类,将语音和ftp的流量单独搞出来
# 语音
acl number 3000  
 rule 5 permit icmp source 10.1.12.1 0 destination 10.1.3.3 0 
# ftp
acl number 3001  
 rule 5 permit icmp source 10.1.12.1 0 destination 10.1.4.4 0

# 从这里往下就是MQC的套路了
# 通过MQC当中的classifier工具创建好分类
traffic classifier voip
 if-match acl 3000
traffic classifier ftp
	if-match acl 3001

# 创建好动作
traffic behavior voip-ef
	remark dscp ef
traffic behavior ftp-af11
	remark dscp af11

# 通过策略将创建好分类和动作绑定到一起
traffic policy MQC 
	# 先写优先的,把优先的放上面
	classifier voip behavior voip-ef 
	classifier ftp behavior ftp-af11

int g0/0/0
traffic-policy MQC inbound
  • 我们写在traffic policy的时候,注意,由于它是从上向下匹配,所以你应该把优先转发的流量放在上面,ef就是指快速转发标记。
  • 为什么要有入接口做呢?理论了在入接口和出接口都可以做,在入接口做的原因是因为我们在入接口做了之后,还剩出接口中,那在出接口中就可以应用一些策略,留有余地。
  • 注意,我们只是做了我们候修改的流量,那些没匹配的呢?默认就是正常的转发。

image-20230329132106092

域内设备_简单流分类

image-20230329132057236

# 在R3的s1/0/0接口上信任上游AR2发过来的DSCP字段,在入方向暂时不做修改
interface Serial1/0/0
	# 信任dscp
	trust dscp override

# 修改映射
# 在入方向不做修改,但在设备内部通过map-table做了修改,将10改成了11
qos map-table dscp-dscp
  input 10 output 11

image-20230329132117036

映射转换

image-20230329132124251

我们在3、4上把MPLS配置好,之前我们都是使用是ospf。

# 先将MPLS配置好
R3:
	mpls lsr-id 10.1.3.3
	mpls
	mpls ldp
	
	int g0/0/0
		mpls 
		mpls ldp

[AR4]mpls lsr-id 10.1.4.4
[AR4]mpls
Info: Mpls starting, please wait... OK!
[AR4-mpls]mpls ldp
[AR4-mpls-ldp]int g0/0/0
[AR4-GigabitEthernet0/0/0]mpls 
[AR4-GigabitEthernet0/0/0]mpls ldp
[AR4]int g0/0/1
[AR4-GigabitEthernet0/0/1]mpls 
[AR4-GigabitEthernet0/0/1]mpls ldp

[R5]mpls lsr-id 10.1.5.5
[R5]mpls
Info: Mpls starting, please wait... OK!
[R5-mpls]mpls ldp
[R5-mpls-ldp]int g0/0/0
[R5-GigabitEthernet0/0/0]mpls
[R5-GigabitEthernet0/0/0]mpls ldp

<AR4>dis mpls ldp session 
 10.1.3.3:0         Operational DU   Active   0000:00:08  35/35
 10.1.5.5:0         Operational DU   Passive  0000:00:05  24/24
<AR3>dis mpls lsp 
FEC                In/Out Label  In/Out IF                      Vrf Name       
10.1.3.3/32        3/NULL        -/-                                           
10.1.4.4/32        NULL/3        -/GE0/0/0                                     
10.1.4.4/32        1024/3        -/GE0/0/0                                     
10.1.5.5/32        NULL/1025     -/GE0/0/0                                     
10.1.5.5/32        1025/1025     -/GE0/0/0
# 第一步先把想要的流量匹配住
# 注意,此时这条流量是要走MPLS的
[AR2]acl 3002
[AR2-acl-adv-3002]rule permit icmp source 10.1.12.1 0 destination 10.1.5.5 0

# 第二步:做好分类
[AR2]traffic classifier vodio 
[AR2-classifier-vodio]if-match acl 3002

# 第三步:修改DSCP,也就是打标
traffic behavior video-af12
 remark dscp af12

# 第四步:将分类和打标关联到一起
[AR2]traffic policy MQC
[AR2-trafficpolicy-MQC]classifier vodio behavior video-af12

image-20230329132136426

当我们在通过10.1.12.1 ping 10.1.5.5 在R2到R3中间使用就是普通的IP报文封装,即DSCP,但R3继续向后传的时候,这时候就不再是传统的IP报文,而变成MPLS,这时候R3会自动做映射,将DSCP里面的内容根据默认规则映射到MPLS当中的EXP字段当中并继续向R5发送,如上图所示。

我们在R3和R4中间抓包发现MPLS里面多了一个字段EXP,值为1。这个值为1是怎么来的?我们在R3的接口面对边界路由器配置了信任端口,自动实现了DSCP到EXP的映射DSCP里面的12,正好对应了EXP的1,如下图所示:

image-20230329132147313