第172篇:H-VPLS 分层 VPLS 架构
关键词
H-VPLS、分层 VPLS、MTU-s、PE-rs、PW 聚合、接入层、汇聚层、扩展性
一、VPLS 的扩展性问题
1.1 PW 全连接困境
标准 VPLS 要求所有 PE 之间建立全网状 PW:
PE 数量 PW 数量
5 10
10 45
20 190
50 1,225
100 4,950
在大型网络中,PW 数量呈 O(N²) 增长,带来以下问题:
| 问题 | 影响 |
|---|---|
| 控制面负担 | LDP 会话数多,每个 PE 维护大量 PW 状态 |
| 数据面负担 | 每个 PE 需要维护所有远端 PE 的 MAC 表项 |
| 收敛慢 | 一台 PE 加入/离开触发全网状态更新 |
| BUM 流量放大 | 广播/未知单播复制到所有 PE |
2.2 解决思路:分层
H-VPLS(Hierarchical VPLS)通过分层架构将 PE 分为两个层次:
汇聚层 PE-rs(Pseudo-wire Aggregation)
│
┌───┼───┐
│ │ │
PE-a PE-b PE-c(接入层 MTU-s)
- 接入层(MTU-s):靠近客户,数量多
- 汇聚层(PE-rs):PW 聚合点,数量少
- 接入层 PE 只与汇聚层 PE 建立 PW,不需要全网状
二、H-VPLS 的两种模型
2.1 模型一:PE-rs 作为接入层 PW 汇聚
┌────── PE-rs ──────┐
│ PW 聚合 │
└──┬──┬──────┬──┬──┘
│ │ │ │
MTU-s1 MTU-s2 ... MTU-sN
PE-rs 之间建立全网状 PW(数量少)
MTU-s 只与 PE-rs 建立 PW(线性增长)
特点: - PE-rs 之间是标准 VPLS 全网状 - MTU-s 通过 PW 连接到 PE-rs - MTU-s 之间不需要 PW
2.2 模型二:MTU-s 桥接接入
MTU-s1
│
┌────┴────┐
│ PE-rs │──── PW ──── PE-rsB
└────┬────┘
│
MTU-s2
MTU-s 可以是一台普通交换机(不支持 MPLS/VPLS)
MTU-s 通过 QinQ 或 VLAN 连接到 PE-rs
PE-rs 终结客户的 VLAN 并映射到 VPLS 实例
2.3 模型对比
| 模型 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 模型一(PE-rs PW 汇聚) | 纯 MPLS,控制面统一 | MTU-s 需要支持 MPLS | 纯 MPLS 骨干 |
| 模型二(QinQ 接入) | MTU-s 可以是傻瓜交换机 | 扩展性受限 | 低成本接入 |
三、H-VPLS 的 MAC 学习
3.1 接入层 MAC 学习
MTU-s 的 MAC 学习与标准 VPLS 相同,但学习范围受限于其连接的 PE-rs:
MTU-s1 的 MAC 表:
MAC-A → AC1(本地客户)
MAC-B → PW-to-PE-rs(远端所有客户都走这条 PW)
MTU-s1 不需要知道 MAC-B 具体在哪个 PE-rsB 下
MAC-B 的"方向"就是 PE-rs(聚合方向)
3.2 水平分割的调整
H-VPLS 中,水平分割规则需要调整:
标准 VPLS 的规则:
PW → 不转发到其他 PW(保持)
H-VPLS 的补充规则:
PE-rs 上:
- 来自 MTU-s PW 的帧:可以转发到 PE-rs 之间的 PW(需要)
- 来自 PE-rs 之间 PW 的帧:可以转发到 MTU-s 的 PW(需要)
这打破了标准 VPLS 的水平分割规则!
因此需要"上行 PW"和"下行 PW"的区分
四、H-VPLS 的配置示例(华为)
4.1 PE-rs 配置
# PE-rs 配置 VSI
vsi VPLS-A-HUB
pwsignal ldp
vsi-id 200 # 汇聚层 VSI ID
peer 4.4.4.4 # 对端 PE-rs(全网状)
peer 5.5.5.5
#
# 为 MTU-s 创建接入 VSI
vsi VPLS-A-SPOKE
pwsignal ldp
vsi-id 101 # 接入层 VSI ID
peer 2.2.2.2 # MTU-s1
peer 3.3.3.3 # MTU-s2
#
# 桥接两个 VSI(将接入层 VSI 连接到汇聚层 VSI)
vsi VPLS-A-HUB
l2 binding vsi VPLS-A-SPOKE # 内部桥接
4.2 MTU-s 配置
# MTU-s1 配置(标准 VPLS PE)
vsi VPLS-A
pwsignal ldp
vsi-id 101 # 与 PE-rs 的 VSI ID 对应
peer 1.1.1.1 # 只连接 PE-rs,不连其他
#
interface GigabitEthernet0/0/0.100
vlan-type dot1q 100
l2 binding vsi VPLS-A
4.3 验证
# 在 PE-rs 上查看
<PE-rs> display vsi name VPLS-A-HUB
VSI Name : VPLS-A-HUB
VSI State : Up
PW Information:
Peer 4.4.4.4 : Up ← 汇聚层 PW
Peer 5.5.5.5 : Up ← 汇聚层 PW
Peer 2.2.2.2 : Up ← 接入层 PW(MTU-s1)
Peer 3.3.3.3 : Up ← 接入层 PW(MTU-s2)
MAC Learning : Enable
五、H-VPLS 的转发示例
5.1 场景
MTU-s1 ──PW── PE-rsA ──PW── PE-rsB ──PW── MTU-s2
│ │
客户A 客户B
MAC-A MAC-B
5.2 从 MAC-A 到 MAC-B 的转发
① MTU-s1 收到 MAC-A→MAC-B 的帧
② MTU-s1 查 MAC 表:MAC-B → PW-to-PE-rsA
③ MTU-s1 通过 PW 发送到 PE-rsA
④ PE-rsA 从 MTU-s1 PW 收到帧
⑤ 查 MAC 表:MAC-B → PW-to-PE-rsB(来自汇聚层 PW)
⑥ PE-rsA 通过汇聚层 PW 发送到 PE-rsB
⑦ PE-rsB 从汇聚层 PW 收到帧
⑧ 查 MAC 表:MAC-B → PW-to-MTU-s2
⑨ PE-rsB 通过 PW 发送到 MTU-s2
⑩ MTU-s2 从 PW 收到帧
⑪ 查 MAC 表:MAC-B → AC(本地客户接口)
⑫ 从 AC 发送到客户B
5.3 转发路径分析
路径:MTU-s1 → PE-rsA → PE-rsB → MTU-s2
跳数:4 段
对比标准 VPLS(全网状):
如果 MTU-s1 和 MTU-s2 之间没有 PW
→ 必须经过 PE-rsA → PE-rsB → MTU-s2
→ 多了一跳
代价:H-VPLS 比标准 VPLS 多一跳(经过 PE-rs 聚合)
收益:PW 数量从 O(N²) 降为 O(N)
六、H-VPLS 的优缺点
6.1 优点
| 优点 | 说明 |
|---|---|
| 扩展性 | PW 数量从 O(N²) 降为 O(N) |
| 易于运维 | 接入层 PE 配置简单,只连一个 PE-rs |
| BUM 抑制 | 广播只在接入层和汇聚层间传播 |
| 增量部署 | 新增 MTU-s 只需配置到 PE-rs 的 PW |
6.2 缺点
| 缺点 | 说明 |
|---|---|
| 多一跳延迟 | 流量多经过 PE-rs |
| PE-rs 单点瓶颈 | PE-rs 处理所有汇聚流量 |
| PE-rs 故障影响大 | 影响所有接入 MTU-s |
| MAC 表集中 | PE-rs 维护大量 MAC 地址 |
七、H-VPLS 与 EVPN 的对比
| 对比维度 | H-VPLS | EVPN |
|---|---|---|
| 信令 | LDP 扩展 | MP-BGP |
| MAC 学习 | 数据面泛洪学习 | 控制面 MP-BGP 通告 |
| BUM 优化 | 有限 | 支持 ARP/ND 抑制 |
| 多归 | 无 | 支持(DF 选举) |
| 分裂脑 | 无 | 有防分裂脑机制 |
| 扩展性 | 中等 | 好 |
| 当前地位 | 现网存量多 | 新建网络首选 |
八、总结
| 知识点 | 核心要点 |
|---|---|
| H-VPLS 动机 | 解决 VPLS 全网状 PW 扩展性问题 |
| 接入层 MTU-s | 靠近客户,只连接 PE-rs |
| 汇聚层 PE-rs | PW 聚合点,少量高性能设备 |
| PW 数量 | 从 O(N²) 降为 O(N) |
| 水平分割调整 | 需要区分上行/下行 PW |
| 转发路径 | 多一跳(经过 PE-rs 汇聚) |
九、思考
- 标准 VPLS 的 PW 全连接有什么扩展性问题?
- H-VPLS 如何通过分层解决扩展性问题?
- MTU-s 和 PE-rs 在 H-VPLS 中各自扮演什么角色?
- H-VPLS 的转发路径比标准 VPLS 多了什么?
- H-VPLS 在水平分割规则上需要做什么调整?
下篇预告:第173篇《EVPN 基本概念:MP-BGP 与 NVO3》——EVPN 作为新一代 L2VPN 技术,如何通过 MP-BGP 控制面解决 VPLS 的诸多缺陷。