堆叠(Stack)与 MLAG 技术知识点梳理
整理时间:2026年4月9日
适用场景:网络架构高可用技术
一、堆叠(Stacking)技术
1.1 什么是堆叠
堆叠是将多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上虚拟成一台交换设备,作为一个整体参与数据转发。目前广泛应用的一种横向虚拟化技术。
1.2 堆叠的核心价值
| 价值点 | 说明 |
|---|---|
| 提高可靠性 | 多台成员交换机之间形成冗余备份,一台故障时另一台接替运行 |
| 扩展端口数量 | 增加新交换机与原交换机组成堆叠系统,满足高端口密度需求 |
| 增大带宽 | 将成员交换机的多条物理链路配置成一个聚合组,提高上行带宽 |
| 简化组网 | 不再需要 MSTP 等破环协议,简化网络配置,降低维护成本 |
1.3 堆叠的工作原理
四阶段工作流程
┌─────────────────────────────────────────────────────────┐
│ 阶段1:堆叠组建与主交换机选举 │
│ ├── 成员发现:通过堆叠链路发送邻居发现报文 │
│ ├── 选举条件:优先级 → MAC地址 → 启动时间 │
│ └── 角色确定:1台主交换机 + 1台备交换机 + N台从交换机 │
├─────────────────────────────────────────────────────────┤
│ 阶段2:配置同步 │
│ ├── 主设备生成统一配置 │
│ ├── 全局配置同步到所有成员 │
│ └── 备交换机实时同步运行状态(路由表、ARP表等) │
├─────────────────────────────────────────────────────────┤
│ 阶段3:数据转发 │
│ ├── 主交换机:负责转发决策 │
│ ├── 从交换机:负责报文转发 │
│ └── 跨成员链路聚合:Eth-Trunk/Port-Channel │
├─────────────────────────────────────────────────────────┤
│ 阶段4:故障切换 │
│ ├── 主交换机故障:备交换机毫秒级接管(<50ms) │
│ └── 堆叠链路故障:环形→链型拓扑自动切换 │
└─────────────────────────────────────────────────────────┘
关键概念
- 主交换机(Master):负责管理整个堆叠,仅有一台
- 备交换机(Standby):主交换机的备份交换机,主故障时接替
- 从交换机(Slave):用于业务转发,可有多台
- 堆叠ID:标识堆叠成员交换机,唯一ID
- 堆叠优先级:用于角色选举,值越大优先级越高
1.4 堆叠的连接方式
| 拓扑类型 | 说明 | 适用场景 |
|---|---|---|
| 链形拓扑 | 首尾不相连,可冗余备份 | 长距离堆叠 |
| 环形拓扑 | 首尾相连,形成环路 | 同机柜/短距离,高可靠性 |
1.5 堆叠的建立过程
- 选择堆叠线缆和连接方式
- 选举主交换机:优先级高/MAC小/先启动者优先
- 分配堆叠ID和备交换机选举:除主交换机外最先启动的为备交换机
- 同步软件版本和配置文件:版本兼容即可自动加载
1.6 堆叠的优缺点
优点:
- ✅ 管理极简:单一IP、单一配置
- ✅ 带宽聚合:成员间高速链路
- ✅ 快速收敛:毫秒级故障切换
- ✅ 即插即用扩展
缺点:
- ❌ 单控制平面风险:主设备故障可能引发整堆重启
- ❌ 距离限制:堆叠电缆通常1-3米,最长约10米
- ❌ 升级复杂:多数场景需重启整个堆叠
- ❌ 硬件绑定:必须同型号、同版本
二、MLAG(M-LAG)技术
2.1 什么是 MLAG
MLAG(Multi-Chassis Link Aggregation Group) 是一种跨设备链路聚合技术,通过将两台接入交换机以同一个状态和用户侧设备或服务器进行跨设备的链路聚合,把链路的可靠性从单板级提升到设备级。
2.2 核心组件
┌────────────────────────────────────────────────────────┐
│ MLAG 系统架构 │
│ │
│ ┌─────────┐ peer-link ┌─────────┐ │
│ │ 设备A │◄───────────────────►│ 设备B │ │
│ │(Master) │ │(Standby)│ │
│ └────┬────┘ └────┬────┘ │
│ │ Keepalive (DAD) │ │
│ └───────────────────────────────┘ │
│ │
│ 服务器/下游设备通过 LACP 同时连接到两台设备 │
└────────────────────────────────────────────────────────┘
| 组件 | 功能 |
|---|---|
| peer-link | 同步控制信息(MAC/ARP表项)及少量数据转发,需高带宽 |
| Keepalive/DAD链路 | 三层心跳链路,检测设备存活状态,防止双主冲突 |
| DFS Group | 动态交换服务组,负责设备配对与主备协商 |
| M-LAG成员口 | 与下游设备相连的聚合端口 |
2.3 MLAG 的工作流程(五步)
1. DFS Group 配对
└── 设备通过 peer-link 发送 Hello 报文,编号一致则配对成功
2. DFS Group 主备协商
└── 依据优先级和系统 MAC 地址选举主备设备
3. M-LAG 成员口协商主备
└── 先变为 Up 的接口为主,另一端为备
4. 双主检测
└── 周期性(1秒)发送检测报文,peer-link 故障时加速检测
5. 表项同步与转发
└── 通过 peer-link 实时同步 MAC/ARP/STP 表项
2.4 流量转发机制
| 流量类型 | 转发方式 |
|---|---|
| 已知单播 | 主备设备逐流负载分担,共同转发 |
| 广播/组播/未知单播 | 设备间泛洪,单向隔离机制防环 |
2.5 故障场景处理
| 故障类型 | 处理机制 |
|---|---|
| 上行链路故障 | 流量经过 peer-link 链路转发 |
| M-LAG 成员口故障 | 正常链路负载分担,故障口通过 peer-link 绕行 |
| peer-link 故障 | 触发双主检测,备设备端口 Error-Down |
| 设备故障 | 存活设备接管,切换时间≤50ms |
2.6 MLAG 的优缺点
优点:
- ✅ 可靠性高:单设备故障不影响另一台,故障域隔离
- ✅ 独立升级:一台做 ISSU/GIR,另一台顶上
- ✅ 距离灵活:peer-link 用普通光纤可跨机房(几十公里)
- ✅ 负载分担:双活模式最大化带宽利用率
缺点:
- ❌ 配置复杂:需严格同步参数
- ❌ 管理复杂度:两台独立设备IP
- ❌ peer-link 带宽瓶颈:需高于业务峰值
三、堆叠 vs MLAG 深度对比
3.1 核心维度对比
| 对比维度 | 堆叠(Stack) | MLAG/M-LAG |
|---|---|---|
| 控制平面 | 集中化(单 Master) | 独立(双控制平面) |
| 设备独立性 | 统一管理面,升级需整组重启 | 独立控制面/管理IP,可单独升级 |
| 设备数量 | 2-10台(厂商限制) | 通常仅2台 |
| 故障域 | 大(整堆叠重启/分裂) | 小(单设备故障无影响) |
| 管理复杂度 | 低(单一IP) | 中(两台同步) |
| 收敛时间 | 毫秒~秒级 | 毫秒级(≤50ms) |
| 扩展性 | 高(支持多台) | 低(仅双机) |
| 距离限制 | 几米~几十米 | 几十公里 |
| 带宽利用率 | 高(全 active) | 高(全 active) |
| 厂商依赖 | 高(私有协议) | 中等(各厂商私有实现) |
3.2 选型决策树
需要提升两点间带宽?
├─ 是 → 链路聚合 (LACP)
└─ 否
需要简化多台交换机管理?
├─ 是 → 堆叠 (同机柜/短距离)
└─ 否
需要最高可靠性 + 独立升级?
├─ 是 → MLAG (跨机房/数据中心)
└─ 否 → 可能不需要这两种技术
3.3 典型应用场景
| 场景 | 推荐技术 | 理由 |
|---|---|---|
| 企业园区接入层 | 堆叠 | 同机柜,端口密度高,管理简单 |
| 数据中心核心层 | MLAG | 高可靠,独立升级,故障隔离 |
| 长距离汇聚层 | MLAG | 跨楼层/跨机房 |
| 服务器双活接入 | MLAG | 支持服务器 LACP 双上联 |
| 叶脊架构 | MLAG | Leaf 双上联到 MLAG Spine |
四、常见厂商实现
| 厂商 | 堆叠技术 | MLAG 技术 |
|---|---|---|
| 华为 | iStack(S系列)/ CSS(框式) | M-LAG(CloudEngine) |
| 思科 | StackWise(Catalyst)/ VSS | vPC(Nexus) |
| 华三 | IRF2 | M-LAG |
| Arista | 不推荐堆叠 | MLAG |
| Juniper | 虚拟 chassis | MC-LAG |
五、总结
堆叠的核心逻辑
控制平面集中化 + 数据平面分布式 + 故障切换自动化
- 适合:需要简化管理、端口密度扩展、同机柜部署的场景
- 注意:控制平面单点风险、距离限制、升级复杂度
MLAG 的核心逻辑
双控制平面独立 + peer-link 同步 + 双活负载分担
- 适合:需要最高可靠性、独立升级能力、跨机房部署的场景
- 注意:配置复杂度、peer-link 可靠性要求
最佳实践
┌────────────────────────────────────────────────────────┐
│ 实际组网中,两者常结合使用: │
│ │
│ [服务器] ------ (eth0→SW1, eth1→SW2) │
│ ↓ │
│ [SW1 + SW2 堆叠] = 逻辑一台设备 │
│ ↓ │
│ [核心交换机] │
│ │
│ 服务器双网卡 LACP → 带宽翻倍 + 冗余 │
│ 无需 vPC/M-LAG,配置简单,可靠性高 │
└────────────────────────────────────────────────────────┘
参考资料:华为技术白皮书、CSDN 技术博客、华三 M-LAG 白皮书等