第108篇:灵活 QinQ——基于 VLAN 或优先级的外层标签

关键词

灵活 QinQ、Selective QinQ、VLAN Stacking、802.1p、C-VLAN 映射、S-VLAN 选择


一、基本 QinQ 的局限性

上篇我们学习了基本 QinQ,但它有一个限制:一个端口只能打一个 S-VLAN

实际场景中,一个用户可能有多种业务(上网、IPTV、VoIP),每种业务使用不同的 C-VLAN。运营商希望这些业务通过不同的 S-VLAN 进入骨干网,以便做不同的 QoS 策略。

基本 QinQ(所有业务一个 S-VLAN):
  用户端口 ──┬── VLAN 10(上网)─┐
             ├── VLAN 20(IPTV)─┼── S-VLAN 100──── 无法区分业务
             └── VLAN 30(VoIP)─┘

灵活 QinQ(按业务打不同的 S-VLAN):
  用户端口 ──┬── VLAN 10(上网)── S-VLAN 100(普通业务)
             ├── VLAN 20(IPTV)── S-VLAN 200(视频)
             └── VLAN 30(VoIP)── S-VLAN 300(语音)

二、灵活 QinQ 的工作原理

灵活 QinQ(也称 Selective QinQ)根据报文的 C-VLAN ID802.1p 优先级,决定打哪个 S-VLAN。

2.1 基于 C-VLAN 的映射

灵活 QinQ 策略 C-VLAN → S-VLAN 10 → 100 20 → 200 30 → 300

2.2 基于 802.1p 优先级的映射

灵活 QinQ 策略 优先级 → S-VLAN 0-3 → S-VLAN 100 4-7 → S-VLAN 200


三、灵活 QinQ 的配置

3.1 华为交换机:基于 C-VLAN 的灵活 QinQ

# ===== 配置 VLAN 策略 =====
vlan batch 100 200 300

# 配置灵活 QinQ 规则
interface GigabitEthernet0/0/1
 port link-type hybrid

 # 针对不同 C-VLAN 打不同 S-VLAN
 vlan-stacking vid 10 stack-vlan 100       # C-VLAN 10 → S-VLAN 100
 vlan-stacking vid 20 stack-vlan 200       # C-VLAN 20 → S-VLAN 200
 vlan-stacking vid 30 stack-vlan 300       # C-VLAN 30 → S-VLAN 300

# 骨干端口放行 S-VLAN
interface GigabitEthernet0/0/24
 port link-type trunk
 port trunk allow-pass vlan 100 200 300

3.2 基于 802.1p 优先级的灵活 QinQ

interface GigabitEthernet0/0/1
 port link-type hybrid

 # 按优先级映射 S-VLAN
 vlan-stacking 8021p 0 to 3 stack-vlan 100    # 低优先级 → S-VLAN 100
 vlan-stacking 8021p 4 to 5 stack-vlan 200    # 中优先级 → S-VLAN 200
 vlan-stacking 8021p 6 to 7 stack-vlan 300    # 高优先级 → S-VLAN 300

3.3 同时基于 C-VLAN 和优先级

interface GigabitEthernet0/0/1
 port link-type hybrid

 # 先匹配 C-VLAN,再匹配优先级
 vlan-stacking vid 10 8021p 5 stack-vlan 101  # VLAN 10 + 优先级 5 → S-VLAN 101
 vlan-stacking vid 10 stack-vlan 100           # VLAN 10 其他优先级 → S-VLAN 100
 vlan-stacking vid 20 stack-vlan 200

四、典型应用案例

4.1 三网融合(FTTH)

运营商通过一根光纤为家庭用户提供三重业务(Triple Play):

业务 C-VLAN 802.1p S-VLAN QoS 策略
上网 10 0 100 尽力而为
IPTV 20 4 200 保证带宽
VoIP 30 5 300 低延迟
# OLT 上配置灵活 QinQ
interface GigabitEthernet0/0/1
 vlan-stacking vid 10 stack-vlan 100         # 上网
 vlan-stacking vid 20 stack-vlan 200         # IPTV
 vlan-stacking vid 30 stack-vlan 300         # VoIP

在 BRAS 或 SR 端可以根据 S-VLAN 应用不同的 QoS 策略:

# S-VLAN 300(VoIP)优先调度
traffic classifier voip
 if-match vlan-id 300

traffic behavior voip
 queue ef bandwidth 10000

traffic policy voip
 classifier voip behavior voip

4.2 企业园区多业务隔离

同一企业在运营商网络中有多个业务,需要不同的 S-VLAN 做区分:

企业 A:
  办公数据   ──── C-VLAN 100 ──── S-VLAN 1000
  视频会议   ──── C-VLAN 200 ──── S-VLAN 2000
  监控视频   ──── C-VLAN 300 ──── S-VLAN 3000

运营商可以在 PE 上针对企业 A 的端口配置灵活 QinQ,按 C-VLAN 映射到不同的 S-VLAN。


五、灵活 QinQ vs 基本 QinQ

对比项 基本 QinQ 灵活 QinQ
匹配方式 基于端口 基于 C-VLAN/802.1p
S-VLAN 数量 端口一个 S-VLAN 端口多个 S-VLAN
灵活性
配置复杂度 简单 较复杂
业务区分 不能
资源消耗 稍高

六、注意事项与常见问题

6.1 规则匹配顺序

华为交换机采用精确匹配优先:先匹配 C-VLAN + 优先级组合规则,再匹配仅 C-VLAN 规则,最后匹配默认规则。

规则匹配顺序:
  vid + 8021p(最精确)→ vid(次精确)→ 默认

6.2 默认行为

未匹配任何规则的帧: - 如果端口配置了 port default vlan → 打默认 S-VLAN - 否则 → 不打外层标签(直接透传)

6.3 性能影响

灵活 QinQ 需要 ACL 查表匹配规则,多规则场景下对转发性能有轻微影响。

6.4 排错命令

# 查看灵活 QinQ 配置
display vlan-stacking configuration

# 查看匹配统计
display vlan-stacking statistics

# 测试特定帧的匹配结果
test vlan-stacking interface GigabitEthernet0/0/1 vlan 10 8021p 5

七、总结

知识点 核心要点
灵活 QinQ 本质 根据 C-VLAN ID 或 802.1p 选择不同的 S-VLAN
基本 vs 灵活 基本按端口,灵活按报文特征
业务区分 不同业务(上网/IPTV/VoIP)通过不同 S-VLAN 传输
配置关键 匹配规则定义 C-VLAN → S-VLAN 的映射关系
匹配顺序 精确匹配优先

八、思考

  1. 灵活 QinQ 和基本 QinQ 的核心区别是什么?
  2. 一个家庭用户有三种业务(上网、IPTV、VoIP),C-VLAN 分别为 10/20/30,S-VLAN 如何规划?
  3. 灵活 QinQ 中如果一条帧同时匹配了 vid=10 和 vid=10+8021p=5 两条规则,会采用哪条?
  4. 在灵活 QinQ 中,未匹配任何规则的帧会怎么处理?
  5. 灵活 QinQ 对设备性能的影响主要来自哪里?

下篇预告:第109篇《DHCP Snooping——防私设 DHCP 服务器》——讲解如何通过 DHCP Snooping 技术防止非法 DHCP 服务器分配错误的 IP 地址导致网络瘫痪。