华为交换机 QinQ 配置:dot1q-tunnel 双标签实战 - 夜莺博客

华为交换机 QinQ 配置:dot1q-tunnel 双标签实战

QinQ(802.1ad,双标签 VLAN)解决的是“客户自带 VLAN 与运营商 VLAN 冲突”这一根本问题:在客户报文外再压一层运营商 VLAN 标签,客户内部的 VLAN ID 完全被透明传输。华为 S 系列交换机上用 port link-type dot1q-tunnel 实现基本 QinQ,用 qinq mapping 的变体实现灵活 QinQ(按内层 VLAN 映射到不同外层 VLAN)。本文给出两种模式的完整配置、外层 VLAN 规划建议和验证命令。

关键概念

  • UNI(用户侧接口):连接客户设备的接口,类型配为 dot1q-tunnel,负责给未标记/已标记报文压外层标签。
  • NNI(网络侧接口):连接运营商汇聚网络的接口,通常配成 trunk,放通外层 VLAN。
  • 外层 VLAN(S-VLAN):运营商分配,逐客户/逐业务独立规划;内层为客户 VLAN(C-VLAN),对外透明。
  • TPID:外层标签的类型值,默认 0x8100;当网络侧使用 0x9100 等非标 TPID 时需要显式配置。

基本 QinQ 配置(单外层 VLAN)

system-view
# 1. 规划外层 VLAN
vlan batch 1050

# 2. 用户侧接口:dot1q-tunnel,未标记报文全部落入外层 VLAN
interface GigabitEthernet0/0/1
 port link-type dot1q-tunnel
 port default vlan 1050
 quit

# 3. 网络侧接口:trunk,放通外层 VLAN
interface GigabitEthernet0/0/24
 port link-type trunk
 port trunk allow-pass vlan 1050
 quit

# 4. 保存
save

效果:客户侧无论发送未标记报文还是带自己 VLAN 标签的报文,进入 GigabitEthernet0/0/1 后都会被打上 1050 外层标签;内层标签(如果有)被完整保留并透明穿过运营商网络,对端出口设备再剥离外层标签还给客户。

灵活 QinQ:按内层 VLAN 映射(VLAN Mapping)

system-view
vlan batch 1050 to 1060

interface GigabitEthernet0/0/1
 port link-type dot1q-tunnel
 qinq mapping vlan 100 to 1050
 qinq mapping vlan 200 to 1060
 quit

灵活 QinQ 的价值在于:同一物理端口下,不同客户 VLAN 可以被映射到不同的外层 VLAN,从而在网络侧按外层 VLAN 做精细的 QoS、限速与选路。当客户实际使用的 VLAN ID 与规划不符时,也可以只做 VLAN 映射(VLAN mapping,替换而非叠加),此时端口类型使用 trunk 加 qinq vlan-translation 系列命令。

带 TPID 的网络侧对接

interface GigabitEthernet0/0/24
 port link-type trunk
 port trunk allow-pass vlan 1050
 qinq protocol 9100        # 使外层标签使用 0x9100,与对端 ISP 设备一致
 quit

只有互联两端 TPID 一致才能正确识别外层标签。跨厂商对接时,先确认对方的 TPID 是默认 0x8100 还是不标准的 0x9100/0x88a8,再决定本端配置;TPID 不匹配的典型现象是“链路 up、报文丢弃”。

验证命令

display vlan
display vlan 1050
display port vlan
display interface GigabitEthernet0/0/1
display qinq vlan mapping interface GigabitEthernet0/0/1
display mac-address vlan 1050
display interface GigabitEthernet0/0/1 | include drop

排查思路:先看外层 VLAN 是否在所有路径端口上被放通(port trunk allow-pass vlan 1050),再看 UNI 口是否真的把未标记报文归入外层 VLAN(display port vlan 会显示 PVID 与端口类型),最后用 display mac-address vlan 1050 确认客户 MAC 是否经外层 VLAN 学习到。

版本差异与规划建议

  • 命令随版本变化:部分较早版本使用 VLAN-VPN(qinq enable / vlan-vpn)方式实现双层标签,而较新的 S 系列(V200R005 及以后)统一使用 port link-type dot1q-tunnel。上架前请以设备实际版本的《命令参考》为准,先在生产之外验证。
  • 外层 VLAN 规划:按客户与业务分段(例如 1000-1999 客户 A,2000-2999 客户 B),并把分配关系写入 CMDB,否则三年后没人说得清 1050 属于谁。
  • MTU 与转发:双标签报文比普通以太网帧长 4 字节,路径上所有设备的 MTU/巨帧设置需要留出余量,否则大包会被丢弃而小包正常。
  • 安全:UNI 口建议同时配置风暴抑制与端口隔离,避免客户侧广播直接冲击运营商汇聚。

相关阅读:华为交换机 VLAN access/trunk/hybrid 三种链路类型华为 S5700 VLAN 划分配置

原文链接:https://support.huawei.cn/enterprise/en/doc/EDOC1100518874/f48eff36/configuring-qinq