第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 ID 或 802.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 的映射关系 |
| 匹配顺序 | 精确匹配优先 |
八、思考
- 灵活 QinQ 和基本 QinQ 的核心区别是什么?
- 一个家庭用户有三种业务(上网、IPTV、VoIP),C-VLAN 分别为 10/20/30,S-VLAN 如何规划?
- 灵活 QinQ 中如果一条帧同时匹配了 vid=10 和 vid=10+8021p=5 两条规则,会采用哪条?
- 在灵活 QinQ 中,未匹配任何规则的帧会怎么处理?
- 灵活 QinQ 对设备性能的影响主要来自哪里?
下篇预告:第109篇《DHCP Snooping——防私设 DHCP 服务器》——讲解如何通过 DHCP Snooping 技术防止非法 DHCP 服务器分配错误的 IP 地址导致网络瘫痪。