3、设备冗余技术:堆叠(Stack)与虚拟化(VPC/VSS)对比、堆叠分裂与双活检测、M-LAG(跨设备链路聚合)实战
设备冗余,说白了就是让两台设备看起来像一台。你想想看,单台交换机挂了,业务就断了,这谁受得了?我这些年踩过的坑,十有八九都跟设备冗余没做好有关。今天咱们就把堆叠、VPC/VSS、M-LAG这几个技术掰开揉碎了讲清楚。
3.1 堆叠(Stack)与虚拟化(VPC/VSS)的核心差异
先说说堆叠。堆叠就是把多台物理交换机通过堆叠口连起来,变成一个逻辑设备。我习惯叫它「物理捆绑,逻辑统一」。华为叫iStack,华三叫IRF,思科叫StackWise,名字不同,本质一样。
VPC(思科)和VSS(思科)呢?它们属于虚拟化范畴。VSS是把两台交换机虚拟成一台,共享控制平面。VPC则是控制平面独立,转发平面共享。说白了,VPC更灵活,故障隔离性更好。
我整理了一个对比表,你一看就明白:
| 特性 | 堆叠(Stack) | VPC/VSS |
|---|---|---|
| 控制平面 | 主备模式,一台控制 | VSS共享控制,VPC独立控制 |
| 转发平面 | 所有成员参与转发 | VPC双活转发,VSS主备转发 |
| 故障隔离 | 堆叠分裂风险大 | VPC隔离性好 |
| 升级方式 | 需整堆重启或逐台升级 | VPC支持ISSU,VSS需主备切换 |
| 典型场景 | 接入层、汇聚层 | 核心层、数据中心 |
我在项目中遇到过一件事:某客户用堆叠做核心,结果一次软件升级导致整个堆叠重启,全网断了15分钟。后来换成VPC,再也没出过这种问题。所以我的建议是——核心层尽量用VPC/VSS,接入层用堆叠就够了。
3.2 堆叠分裂与双活检测
堆叠最怕什么?堆叠分裂。两台设备之间的堆叠线断了,它们各自以为自己是主设备,开始抢IP、抢MAC,网络瞬间就乱了。这就是传说中的「脑裂」。
为什么会这样?因为堆叠没有独立的检测机制。它只靠堆叠口的心跳来判断对方是否活着。一旦心跳断了,两台设备都认为对方挂了,自己上位当老大。
怎么解决?双活检测(DLDP、BFD)。我建议你在堆叠口之外,单独拉一根检测线,跑BFD。这样即使堆叠口全断,BFD也能快速检测到,触发备设备降级。
嗯,这里要注意:
- 检测线不能走业务口,必须独立
- BFD检测时间建议设为100ms,别太短,容易误判
- 堆叠优先级要配好,确保主设备稳定
3.3 M-LAG(跨设备链路聚合)实战
M-LAG,全称是跨设备链路聚合。说白了,就是把两台独立的交换机,通过一条虚拟的链路聚合组,让下游设备看起来像连了一台交换机。华为叫M-LAG,华三叫DRNI,思科叫vPC。
M-LAG的好处很明显:
- 两台设备独立运行,一台挂了另一台照常转发
- 支持双活转发,带宽利用率高
- 故障隔离性好,不会出现堆叠分裂那种脑裂问题
我实战中常用的M-LAG配置思路是这样的:
# 华为M-LAG基础配置(简化版)
# 设备A
interface Eth-Trunk1
mode lacp-static
trunkport 10GE1/0/1
trunkport 10GE1/0/2
m-lag id 1
# 设备B
interface Eth-Trunk1
mode lacp-static
trunkport 10GE1/0/1
trunkport 10GE1/0/2
m-lag id 1
# 两台设备之间跑peer-link
interface Eth-Trunk10
description peer-link
trunkport 10GE1/0/10
trunkport 10GE1/0/11
m-lag peer-link 1
你看,配置其实不复杂。关键点在于:
- 两台设备的M-LAG ID必须一致
- peer-link要至少两根链路,防止单点故障
- LACP模式建议用静态,别用动态,省得协商出问题
3.4 三种技术的选型建议
说了这么多,到底该用哪个?我总结一下:
- 接入层: 堆叠就够了。成本低,配置简单,一台坏了换一台就行。
- 汇聚层: 看情况。如果对可靠性要求高,用M-LAG;如果预算有限,堆叠也能凑合。
- 核心层: 强烈建议用VPC或M-LAG。别用堆叠,风险太大。
你想想看,核心层挂了,整个网络就瘫了。花点钱上VPC/M-LAG,值不值?我觉得值。
3.5 知识体系图
下面这张图,我把三种技术的核心逻辑画出来了,你一看就懂:
好了,设备冗余这块就聊到这儿。记住一句话:堆叠省成本,M-LAG保可靠,VPC/VSS稳核心。选型的时候,别光看价格,想想业务挂了你能扛多久。