3、核心网络冗余:核心交换机堆叠与虚拟化、M-LAG技术原理、跨设备链路聚合配置
好,咱们进入核心网络冗余这一章。说实话,在PIS系统里,核心交换机就是整个网络的“心脏”。心脏要是停跳了,全线列车的信息显示都得黑屏。所以这一章,我重点聊聊怎么让这颗“心脏”做到全年无休。
3.1 核心交换机堆叠与虚拟化
先说说堆叠。堆叠是什么?说白了,就是把两台或者多台物理交换机,通过专用的堆叠线缆连起来,让它们“合体”成一台逻辑交换机。你从管理面看,只有一个IP,一个配置界面。从数据面看,它们共享一份转发表。
我个人习惯在PIS的核心层用堆叠。为什么?因为简单粗暴。你想想看,如果不用堆叠,两台核心交换机之间跑VRRP,那主备切换怎么也得几秒钟。这几秒钟里,所有PIS终端都在重新建立ARP,画面会闪一下。在乘客眼里,这就是“故障”。
堆叠的好处很明显:
- 简化管理:一台设备,一套配置,不用操心主备同步的问题。
- 跨设备链路聚合:服务器双归到两台交换机,在堆叠模式下,直接做链路聚合就行,交换机自己会处理流量分担。
- 故障切换快:堆叠成员之间通过私有协议同步状态,切换时间通常在毫秒级。
但堆叠也有坑。我在项目中遇到过一个问题:堆叠分裂。两台交换机之间的堆叠线缆松了,两台设备都以为自己是“老大”,开始各自转发流量。结果就是网络里出现广播风暴,整个PIS系统直接瘫痪。嗯,这里要注意,堆叠一定要配多主检测(MAD)。一旦检测到分裂,备设备要立刻关闭所有业务端口,避免冲突。
核心要点:堆叠适合核心层,但必须启用MAD检测。别省那根堆叠线缆,双链路堆叠是基本操作。
3.2 M-LAG技术原理
说完堆叠,咱们聊聊M-LAG。M-LAG的全称是Multi-Chassis Link Aggregation,跨设备链路聚合。你可能会问:“堆叠不也能做跨设备链路聚合吗?为什么还要搞个M-LAG?”
好问题。堆叠有个硬伤:它要求所有成员设备必须是同一厂商、同一型号、甚至同一软件版本。而且升级的时候,往往需要整堆重启。这在PIS这种7×24小时运行的场景里,简直是灾难。
M-LAG就不一样了。它允许两台独立的交换机,通过一条peer-link链路协商,对外表现为一台逻辑设备。但内部,它们各自独立运行控制平面。一台挂了,另一台照常工作,不影响业务。
M-LAG的工作原理,我简单梳理一下:
- Peer-link链路:两台设备之间用一根或多根链路连接,专门用来传递控制信息和部分数据流量。
- DRCP协商:类似标准的LACP,但M-LAG有自己的扩展协议。两台设备通过peer-link协商,决定哪个端口属于哪个M-LAG组。
- 一致性检查:两台设备会定期检查配置是否一致。比如VLAN配置、端口成员关系。如果不一致,M-LAG会报错,甚至阻塞端口。
- 流量转发:正常情况下,流量通过哈希算法分担到两台设备。如果一台挂了,所有流量自动切换到另一台,会话保持不受影响。
我记得有一次做PIS系统改造,客户的核心交换机是两台华为的CE系列。他们要求升级固件,但不能中断业务。用堆叠肯定不行,一升级就得重启。最后我用了M-LAG方案。先升级备机,然后平滑切换主备角色,再升级主机。整个过程业务零中断。说实话,那种感觉挺爽的。
个人经验:M-LAG的peer-link链路建议用10GE以上端口,并且至少两条做链路聚合。别问我为什么,我曾经见过一条peer-link链路被误拔,两台设备直接失联,M-LAG状态异常,业务全断。
3.3 跨设备链路聚合配置
理论讲完了,咱们上点干货。我以华为CE系列交换机为例,演示一下M-LAG的配置。其他厂商(比如华三、思科)原理类似,命令略有差异。
先看拓扑:两台核心交换机(CE1和CE2),下联一台PIS服务器。服务器双网卡,分别接到两台交换机上。我们要让这两条链路看起来像一条。
第一步:配置M-LAG的基本参数
# 在CE1上
sys
m-lag system-id 0000-5e00-0101 # M-LAG的系统ID,两台设备必须一致
m-lag priority 100 # 优先级,数值越小越优先
interface eth-trunk 1
m-lag mode enhanced # 启用增强模式,支持跨设备聚合
quit
# 在CE2上
sys
m-lag system-id 0000-5e00-0101 # 与CE1相同
m-lag priority 200 # 优先级低一些,作为备
interface eth-trunk 1
m-lag mode enhanced
quit
第二步:配置peer-link链路
# CE1
interface eth-trunk 10
description peer-link
trunkport 10ge 1/0/1
trunkport 10ge 1/0/2
m-lag peer-link 1 # 指定为peer-link,编号1
quit
# CE2
interface eth-trunk 10
description peer-link
trunkport 10ge 1/0/1
trunkport 10ge 1/0/2
m-lag peer-link 1
quit
第三步:配置下联服务器的链路聚合
# CE1
interface eth-trunk 20
description to-server
trunkport 10ge 1/0/3
m-lag group 1 # 加入M-LAG组1,组号两台设备要一致
quit
# CE2
interface eth-trunk 20
description to-server
trunkport 10ge 1/0/3
m-lag group 1
quit
第四步:验证配置
display m-lag summary
display m-lag consistency-check
配置完成后,你会在两台交换机上看到M-LAG状态为Active,一致性检查通过。这时候,服务器的双网卡就可以做链路聚合了,交换机侧会自动处理流量分担和故障切换。
避坑指南:我曾经在配置M-LAG时,忘记在peer-link上放行VLAN。结果控制报文能通,但业务VLAN的流量全丢了。排查了半天才发现。所以,记得在peer-link的eth-trunk接口下,用port trunk allow-pass vlan all放行所有VLAN。
3.4 小结
这一章内容不少,我帮你捋一下重点:
- 堆叠适合同厂商、同型号设备,管理简单,但升级有风险,必须配MAD。
- M-LAG更灵活,支持独立设备,适合需要零中断升级的场景。
- 配置要点:peer-link要冗余、一致性检查要开启、VLAN要放行。
下一章,咱们聊聊接入层的冗余设计。说白了,就是怎么让每个车站的交换机也能做到“断一条线,不影响业务”。到时候我会分享一个我在高铁站项目里踩过的坑,挺有意思的。