在华为 VRP 架构中,灵活 QinQ 的核心在于**“分类与映射” (Classification & Mapping)**。它不再是单纯地在接口上“一刀切”地打上外层标签,而是基于数据帧的特征进行精准识别。

  1. 策略触发的判定维度 要实现灵活 QinQ,交换机必须首先对进入接口的原始帧(Inner Tag)进行流分类。通常根据以下三个维度进行策略匹配:

VLAN ID 范围:这是最常见的应用场景。例如,VLAN 10-100 映射到外层 VLAN 1000,而 VLAN 101-200 映射到外层 VLAN 2000。

802.1p 优先级:根据内层标签的优先级(CoS)来决定外层标签。这常用于区分业务类型,如语音业务优先上送不同的 ISP 网络。

IP/MAC 特征:在某些高级配置中,可以利用 ACL 匹配特定的五元组信息,从而针对特定的数据流封装外层 Tag。

  1. 技术实现原理:基于流策略 (Traffic Policy) 在华为设备上,灵活 QinQ 主要是通过 Traffic Policy 或者在接口下直接配置 VLAN Stacking 来实现的。

A. 配置逻辑分解 定义流分类 (Traffic Classifier): 使用 if-match 命令识别内层 VLAN。

Plaintext traffic classifier C1 operator or if-match customer-vlan-id 10 to 20 定义流行为 (Traffic Behavior): 这是核心步骤。使用 nesting 动作。根据 IEEE 802.1ad 标准,nesting 会在原始报文外层压入一个新的 802.1Q 头部,而不会修改原始标签。

Plaintext traffic behavior B1 nesting vlan 100 应用流策略 (Traffic Policy): 将分类与行为关联,并应用在接口的 Inbound 方向。

B. 映射机制与 TPID 控制 根据 IEEE 802.1Q 与 802.1ad,外层标签的 EtherType (TPID) 默认通常为 0x8100。但在多厂商对接环境中,运营商网络可能识别 0x88a8。

原理:交换机在添加外层 Tag 时,会检查接口下配置的 qinq protocol。

注意点:如果内层是 0x8100 而外层需要不同,必须在入接口配置 port vlan-stacking 相关属性,确保全局或接口级别的 TPID 转换逻辑正确。

  1. 数据转发面的处理流程 当一个带有内层标签 VLAN inner

    的帧到达接口:

L2 解析:解析器识别出该帧带有 VLAN Tag。

策略匹配:查找该接口关联的 VLAN Mapping Table 或 Traffic Policy。

压栈动作 (Push):

如果匹配成功,硬件加速模块(ASIC)会在原有的 MAC 地址与 VLAN inner

之间插入新的 VLAN outer

优先级映射:默认情况下,外层 Tag 的优先级可以继承自内层,也可以通过 remark 8021p 手动强制指定,以满足 DiffServ 模型的要求。

查表转发:交换机根据 VLAN outer

的 MAC 地址表进行转发,内层 VLAN 信息在运营商骨干网中被透传(Transparent Tunneling)。

  1. 关键限制与深度思考 作为 HCIE 层次的探讨,我们需要注意以下细节:

MTU 问题:由于增加了 4 字节的外层 Tag,必须确保路径上所有接口的 MTU 至少为 1504 字节,否则会发生分片或丢弃。

VLAN Mapping vs. Stacking:灵活 QinQ 属于 Stacking(1:2 或 N:2),而 VLAN Mapping 是 Translation(1:1 或 N:1)。在设计架构时,需明确是需要“隧道透传”还是“标签替换”。