内网语音出了出口就被当普通流量?华为路由器重标记DSCP给业务分等
企业内网的 QoS 做得再好,也有一个容易忽视的断层:内网交换机认的是 802.1p 优先级,写在二层帧头里;流量一出出口进入广域网,对端设备看的是 DSCP 优先级,写在三层 IP 头里。两种"语言"互不相通——你在内网把语音标成 802.1p 6、视频标成 5、数据标成 2,辛苦分的等级到了 WAN 侧设备眼里统统"查无此人",语音报文和批量传输挤在一条队列里,视频会议该卡还是卡。
解法是在出口设备上做一次"翻译":按 802.1p 把流量认出来,重标记成对应的 DSCP 值再送出去,让 WAN 侧网络能针对不同业务提供差分服务。华为路由器用 MQC 三件套完成这件事——流分类负责认、流行为负责改、流策略负责把两者绑在一起挂到接口上。
这两种优先级的"出身"决定了断层必然出现:802.1p 是二层优先级,写在 VLAN 帧头的 Tag 里,只有三个比特,取值 0 到 7,出了二层网络就没人再看它;DSCP 是三层优先级,写在 IP 头的服务类型字段里,六个比特,取值 0 到 63,广域网设备的差分服务全靠它分档。所以翻译必须发生在这两个世界的交界处——出口设备的入方向接口上。还有一个位置上的讲究:策略挂在入方向而不是出方向,内网各处的原有 802.1p 标识原样保留,出口翻译一次即止,内网已有的一系列策略不受牵连。
组网与配置
示例组网里,企业内网 LAN 侧的语音、视频和数据业务通过 DeviceA 和 DeviceB 连接到出口设备 DeviceC 的 interface1 和 interface2,再经 DeviceC 的 interface3(10GE0/0/3)送往 WAN 侧网络。翻译工作就在 DeviceC 上做,两个入方向接口都要挂上策略。
第一步,进入系统视图,配置设备名称:
<HUAWEI> system-view
[HUAWEI] sysname DeviceC
第二步,配置流分类。在 DeviceC 上创建并配置流分类 c1、c2、c3,对报文按照 802.1p 优先级进行分类:
[DeviceC] traffic classifier c1
[DeviceC-classifier-c1] if-match 8021p 2
[DeviceC-classifier-c1] quit
[DeviceC] traffic classifier c2
[DeviceC-classifier-c2] if-match 8021p 5
[DeviceC-classifier-c2] quit
[DeviceC] traffic classifier c3
[DeviceC-classifier-c3] if-match 8021p 6
[DeviceC-classifier-c3] quit
第三步,配置流行为。在 DeviceC 上创建并配置流行为 b1、b2、b3,重标记用户报文的优先级:
[DeviceC] traffic behavior b1
[DeviceC-behavior-b1] remark dscp 15
[DeviceC-behavior-b1] quit
[DeviceC] traffic behavior b2
[DeviceC-behavior-b2] remark dscp 40
[DeviceC-behavior-b2] quit
[DeviceC] traffic behavior b3
[DeviceC-behavior-b3] remark dscp 50
[DeviceC-behavior-b3] quit
对应关系由此定型:802.1p 2 的数据类报文重标记为 DSCP 15,802.1p 5 的视频类报文重标记为 DSCP 40,802.1p 6 的语音类报文重标记为 DSCP 50——数字越大,WAN 侧的差分服务档位越高。
第四步,创建流策略 p1,绑定流分类和对应的流行为,并将流策略应用到接口 interface1 和 interface2 的入方向上,对报文进行重标记:
[DeviceC] traffic policy p1
[DeviceC-trafficpolicy-p1] classifier c1 behavior b1
[DeviceC-trafficpolicy-p1] classifier c2 behavior b2
[DeviceC-trafficpolicy-p1] classifier c3 behavior b3
[DeviceC-trafficpolicy-p1] quit
[DeviceC] interface 10ge 0/0/1
[DeviceC-10GE0/0/1] traffic-policy p1 inbound
[DeviceC-10GE0/0/1] quit
[DeviceC] interface 10ge 0/0/2
[DeviceC-10GE0/0/2] traffic-policy p1 inbound
[DeviceC-10GE0/0/2] quit
配置完成后,DeviceC 上的配置脚本如下:
#
sysname DeviceC
#
traffic classifier c1 type or
if-match 8021p 2
#
traffic classifier c2 type or
if-match 8021p 5
#
traffic classifier c3 type or
if-match 8021p 6
#
traffic behavior b1
remark dscp 15
#
traffic behavior b2
remark dscp cs5
#
traffic behavior b3
remark dscp 50
#
traffic policy p1
classifier c1 behavior b1 precedence 5
classifier c2 behavior b2 precedence 10
classifier c3 behavior b3 precedence 15
#
interface 10GE0/0/1
traffic-policy p1 inbound
#
interface 10GE0/0/2
traffic-policy p1 inbound
#
return
脚本里 b2 的 remark dscp cs5 与配置命令的 remark dscp 40 是同一个值——cs5 正是 DSCP 40 的别名写法,设备保存配置时按自身口径回显,无需疑惑。
验证
先看流分类的配置信息:
<DeviceC> display traffic classifier
Traffic Classifier Information:
Classifier: c1
Type: OR
Rule(s):
if-match 8021p 2
Classifier: c2
Type: OR
Rule(s):
if-match 8021p 5
Classifier: c3
Type: OR
Rule(s):
if-match 8021p 6
Total classifier number is 3
再看流策略的配置信息,三个分类与三个重标记行为的绑定关系一目了然:
<DeviceC> display traffic policy
Traffic Policy Information:
Policy: p1
Classifier: c1
Type: OR
Behavior: b1
Remark:
Remark dscp 15
Classifier: c2
Type: OR
Behavior: b2
Remark:
Remark dscp cs5
Classifier: c3
Type: OR
Behavior: b3
Remark:
Remark dscp 50
Total policy number is 3
最后看流策略的应用状态信息:
<DeviceC> display traffic-policy applied-record
Total records : 2
--------------------------------------------------------------------------------
Policy Type/Name Apply Parameter Slot State
--------------------------------------------------------------------------------
p1 10GE0/0/1(IN) slot_1 success
10GE0/0/2(IN) slot_1 success
--------------------------------------------------------------------------------
两条记录 State 均为 success,说明策略已在两个入接口正常生效,出往 WAN 侧的报文带着新的 DSCP 等级上路。回显里分类规则、绑定关系、应用位置三张信息各查一遍,翻译链路才算完整闭环。有一点部署提醒值得记下:重标记要发生在流量的入方向接口上,若你的出口设备还有其他入接口承载同类业务,同样需要挂上该策略,漏一个口就有一路流量"说着旧方言"出去。
出口优先级翻译这种活,做之前先理清内网标识和运营商差分档位的对应表,改错一行映射,语音和数据的位置就互换了。贵州诚鑫致达科技在出口优化项目里处理 QoS 对接时,第一件事就是把这张对应表和业务清单逐项核对。你们的内网 QoS 出了出口是谁在"翻译",欢迎留言聊聊。