想让关键部门流量优先转发?华为路由器MQC按VLAN重标记802.1p优先级

同一张企业网里挤着各种流量:领导办公室的视频会议、财务月初的集中报账、后台默默跑的批量备份。网络一拥塞,大家排一个队,重要业务跟着一起卡。要让关键流量在下游设备那里享受高优先级的转发待遇,靠的是在入口设备上改写报文携带的优先级字段——报文进了 802.1Q 的 VLAN 通道后带着 802.1p 优先级,下游交换机按这个字段把报文分进不同队列,标记高的先转发。华为路由器的 MQC 框架干这件事很顺手:流分类认流量、流行为定动作、流策略把两者绑起来应用到接口。华为官方文档有一套完整的举例——配置报文重标记区分用户,本篇按这套示例把两个部门按 VLAN 分开、重标记不同 802.1p 值的全套命令走一遍,配置脚本一并附上。

本文的组网需求、配置思路与命令步骤,整理自华为官方发布的典型配置案例,参数可直接参考使用。

组网需求

Host1、Host2发往DeviceB的报文以不同的VLAN ID进行标识,Host1的VLAN ID为10,Host2的VLAN ID为20。DeviceB对从Host1和Host2收到的VLAN报文进行重标记,让Host1发出的报文在DeviceA中的设备内部优先级高于Host2发出的报文,从而保障Host1的业务体验。

本例中interface1、interface2、interface3分别代表10GE0/0/1、10GE0/0/2和10GE0/0/3。

翻译成白话:DeviceB 是汇聚侧的路由器,下挂两个用户——Host1 划在 VLAN 10、Host2 划在 VLAN 20,各自接在 DeviceB 的二层口上;DeviceB 上行用 VLAN 30 的 trunk 口连 DeviceA。要求在 DeviceB 入口把 Host1 的报文 802.1p 改成 4、Host2 的改成 2,DeviceA 收到后按优先级排队,Host1 的流量在拥塞时先得到转发机会。

配置思路

本例的配置分四步走,全部落在 DeviceB 上:

  • 打底:创建 VLAN 10、20、30,三个用户/上联口划入对应 VLAN,配 VLANIF 三层接口实现互连——分类的抓手就是入 VLAN。
  • 流分类:建 c1、c2 两个 classifier,分别匹配 VLAN 10、VLAN 20 的报文。
  • 流行为:建 b1、b2 两个 behavior,分别把 802.1p 重标记为 4 和 2。
  • 流策略:建 p1、p2 两个 policy,各自绑定一对分类与行为,再应用到 Host1、Host2 所接入接口的入方向。

核心逻辑一句话:分类认的是"从哪个 VLAN 来",动作改的是"报文优先级字段",两件事在接口入方向一挂钩,往后走的每一跳都认这个新标记。

操作步骤

一、创建VLAN并配置各接口,实现DeviceB与Host1、Host2、DeviceA互连

在DeviceB上创建VLAN10、VLAN20和VLAN30:

<HUAWEI> system-view
[HUAWEI] sysname DeviceB
[DeviceB] vlan batch 10 20 30

配置接口10GE0/0/1的接口类型为Trunk并加入VLAN30,10GE0/0/2、10GE0/0/3的接口类型为Access,分别加入VLAN10、VLAN20:

[DeviceB] interface 10ge 0/0/1
[DeviceB-10GE0/0/1] portswitch
[DeviceB-10GE0/0/1] port link-type trunk
[DeviceB-10GE0/0/1] port trunk allow-pass vlan 30
[DeviceB-10GE0/0/1] quit
[DeviceB] interface 10ge 0/0/2
[DeviceB-10GE0/0/2] portswitch
[DeviceB-10GE0/0/2] port link-type access
[DeviceB-10GE0/0/2] port default vlan 10
[DeviceB-10GE0/0/2] quit
[DeviceB] interface 10ge 0/0/3
[DeviceB-10GE0/0/3] portswitch
[DeviceB-10GE0/0/3] port link-type access
[DeviceB-10GE0/0/3] port default vlan 20
[DeviceB-10GE0/0/3] quit

portswitch 是把三层口切回二层模式当交换口用:上联口 10GE0/0/1 做 trunk 只放行 VLAN 30,两个下挂口分别做 access 属 VLAN 10、VLAN 20——两个用户从接入这一刻起就被 VLAN 分开了。

创建VLANIF10、VLANIF20、VLANIF30,并为VLANIF接口配置IP地址:

[DeviceB] interface vlanif 10
[DeviceB-Vlanif10] ip address 192.168.10.1 24
[DeviceB-Vlanif10] quit
[DeviceB] interface vlanif 20
[DeviceB-Vlanif20] ip address 192.168.20.1 24
[DeviceB-Vlanif20] quit
[DeviceB] interface vlanif 30
[DeviceB-Vlanif30] ip address 192.168.100.1 24
[DeviceB-Vlanif30] quit

三个网关各管一段:192.168.10.0/24 给 Host1、192.168.20.0/24 给 Host2、192.168.100.0/24 做上联互联,DeviceB 在三段之间做三层互通。

二、配置流分类

在DeviceB上创建并配置流分类c1、c2,对报文按照VLAN ID进行分类:

[DeviceB] traffic classifier c1
[DeviceB-classifier-c1] if-match vlan 10
[DeviceB-classifier-c1] quit
[DeviceB] traffic classifier c2
[DeviceB-classifier-c2] if-match vlan 20
[DeviceB-classifier-c2] quit

分类规则只有一个匹配项:VLAN ID。现场如果抓手的维度不同(按源网段、按协议类型),换 if-match 的条件即可,框架不变。

三、配置流行为

在DeviceB上创建并配置流行为b1、b2,将Host1上送的VLAN报文的802.1p值重标记为4,Host2上送的报文重标记为2,实现Host1优先级高于Host2:

[DeviceB] traffic behavior b1
[DeviceB-behavior-b1] remark 8021p 4
[DeviceB-behavior-b1] quit
[DeviceB] traffic behavior b2
[DeviceB-behavior-b2] remark 8021p 2
[DeviceB-behavior-b2] quit

802.1p 用报文里 3 个比特的优先级字段,取值 0~7,数字越大优先级越高;4 给关键用户、2 给普通用户,中间留了升降级的余地。

四、配置流策略并应用到接口上

在DeviceB上创建流策略p1、p2,绑定流分类和对应的流行为,并将流策略p1应用到接口10GE0/0/2入方向,将流策略p2应用到接口10GE0/0/3入方向,对报文进行重标记:

[DeviceB] traffic policy p1
[DeviceB-trafficpolicy-p1] classifier c1 behavior b1
[DeviceB-trafficpolicy-p1] quit
[DeviceB] traffic policy p2
[DeviceB-trafficpolicy-p2] classifier c2 behavior b2
[DeviceB-trafficpolicy-p2] quit
[DeviceB] interface 10ge 0/0/2
[DeviceB-10GE0/0/2] traffic-policy p1 inbound
[DeviceB-10GE0/0/2] quit
[DeviceB] interface 10ge 0/0/3
[DeviceB-10GE0/0/3] traffic-policy p2 inbound
[DeviceB-10GE0/0/3] quit

应用方向认准入方向(inbound):报文一进接口就被改写标记,后续所有处理都带着新优先级走。两个 policy 各挂各的接入口,互不干扰。

检查配置结果

查看流分类的配置信息:

<DeviceB> display traffic classifier
  Traffic Classifier Information:
    Classifier: c1
      Type: OR
      Rule(s):
        if-match vlan 10
    Classifier: c2
      Type: OR
      Rule(s):
        if-match vlan 20
Total classifier number is 2 

查看流策略的配置信息:

<DeviceB> display traffic policy
  Traffic Policy Information:
    Policy: p1
      Classifier: c1
        Type: OR
      Behavior: b1
        Remark:
          Remark 8021p 4
    Policy: p2
      Classifier: c2
        Type: OR
      Behavior: b2
        Remark:
          Remark 8021p 2
Total policy number is 2

查看流策略的应用状态信息:

<DeviceB> display traffic-policy applied-record
Total records : 2 
--------------------------------------------------------------------------------     
Policy Type/Name                     Apply Parameter             Slot State          
--------------------------------------------------------------------------------            
p1                                   10GE0/0/2(IN)                  0 success
--------------------------------------------------------------------------------        
p2                                   10GE0/0/3(IN)                  0 success        
--------------------------------------------------------------------------------  

三张表对下来链路就完整了:头两张确认 c1→b1(8021p 4)、c2→b2(8021p 2)的绑定关系没写错;第三张看应用状态——p1 在 10GE0/0/2 入方向、p2 在 10GE0/0/3 入方向,State 都必须是 success,有 failed 就回头查接口模式与策略引用。

配置脚本

DeviceB的配置脚本:

#
sysname DeviceB
#
vlan batch 10 20 30
#
traffic classifier c1 type or 
 if-match vlan 10
#
traffic classifier c2 type or
 if-match vlan 20
#
traffic behavior b1
 remark 8021p 4
#
traffic behavior b2
 remark 8021p 2
#
traffic policy p1
 classifier c1 behavior b1 precedence 5
#
traffic policy p2
 classifier c2 behavior b2 precedence 5
#
interface Vlanif10                                                              
 ip address 192.168.10.1 255.255.255.0                                           
#                                                                               
interface Vlanif20                                                              
 ip address 192.168.20.1 255.255.255.0
#
interface Vlanif30                                                              
 ip address 192.168.100.1 255.255.255.0
#
interface 10GE0/0/1
 portswitch
 port link-type trunk
 port trunk allow-pass vlan 30 
#
interface 10GE0/0/2
 portswitch
 port link-type access
 port default vlan 10
 traffic-policy p1 inbound
#
interface 10GE0/0/3
 portswitch
 port link-type access
 port default vlan 20
 traffic-policy p2 inbound
#
return

注意事项

  • 本举例适用于华为AR系列路由器各形态与配套版本(官方口径为 V600R025C00 及更高版本、所有形态的路由器),落到具体设备前核对版本配套。
  • 重标记只在"拥塞时见效果":802.1p 影响的是下游设备队列调度的先后,带宽充裕时看不出差别,验证要造拥塞场景观察。
  • 标记值要全网统一规划:4 和 2 是示例取值,0~7 每一档给谁,建议整网一张表定死,避免两台设备各自为政把优先级标串。
  • 分类条件选稳定的维度:按 VLAN 分类要求用户接入就划好 VLAN;现场若是三层接入,可改用 if-match 源网段等条件,流行为与流策略结构不动。
  • 流策略应用在接入用户的接口入方向,别挂到上联口出方向去——出方向标记虽然也改字段,但设备自身已按旧优先级处理过一程,效果打折。
  • 只改优先级不限带宽:要同时给关键用户保底带宽,还需在下游设备配对应的队列调度(如 WRR/WFQ 加权),本例不展开。

哪些部门的流量该提优先级,建议请诚鑫致达科技先跟各业务负责人把关键业务清单对一遍,再落到流分类里——标错对象比不标还麻烦。各厂商设备的命令与默认参数存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。

源:华为AR路由器5700-6700-8000官方文档