4、汇聚层冗余:汇聚层双归设计、STP/RSTP/MSTP协议对比、环路避免与快速收敛
好,咱们接着聊汇聚层。这一章我打算重点说说汇聚层的冗余设计。说白了,就是怎么让网络在汇聚层这个位置,既扛得住单点故障,又不会因为冗余链路自己把自己搞死。
我个人习惯把汇聚层比作「网络的腰」。腰要是断了,整个上半身(核心层)和下半身(接入层)就失联了。所以,汇聚层的冗余设计,是PIS系统里绝对不能含糊的一环。
4.1 汇聚层双归设计:为什么是「双归」而不是「单归」?
先看一个最简单的场景。一台接入交换机,只有一根线上联到汇聚交换机。这叫「单归」。单归的问题很明显——那根线断了,或者汇聚交换机挂了,底下所有终端就全瞎了。
所以,我们做双归。一台接入交换机,用两根线分别上联到两台不同的汇聚交换机。你想想看,这样一来,无论是线路故障还是设备故障,都能扛得住。
我在项目中遇到过一种情况:某车站的PIS终端频繁掉线,查了半天发现是接入交换机的上联光模块坏了。幸好当时做了双归设计,业务自动切到了另一条链路,乘客完全没感觉到异常。嗯,这就是双归的价值。
双归设计的核心要点:
- 物理分离:两条上联链路走不同的物理路径,避免同沟同缆。
- 设备分离:上联到两台不同的汇聚交换机,避免单设备故障。
- 链路聚合或冗余协议:要么用LACP做链路聚合,要么用STP家族做冗余切换。
关键点:双归设计不是简单地把两根线插上就完事了。你得考虑环路问题。两根线插上去,如果不做任何处理,网络就成环了。广播风暴、MAC地址漂移,这些麻烦事都会找上门来。
4.2 STP / RSTP / MSTP 协议对比:选哪个?
说到环路避免,就绕不开STP(生成树协议)家族。这三个协议我挨个说说,顺便讲讲我的使用感受。
| 协议 | 收敛时间 | 适用场景 | 我的评价 |
|---|---|---|---|
| STP (802.1D) | 30~50秒 | 老旧网络、对收敛不敏感 | 太慢了,PIS系统基本不用 |
| RSTP (802.1w) | 1~3秒 | 中小型网络、快速收敛需求 | 够用,我大部分项目都用它 |
| MSTP (802.1s) | 1~3秒(多实例) | 大型网络、VLAN负载均衡 | 灵活,但配置复杂 |
STP:最原始的版本。它通过阻塞冗余端口来防止环路。但收敛时间太长了,30秒起步。你想想看,PIS系统里列车到站信息如果中断30秒,乘客会怎么想?所以,我个人不建议在PIS网络里用STP。
RSTP:这是STP的改进版。它把收敛时间从30秒降到了1~3秒。怎么做到的?说白了,RSTP引入了「边缘端口」和「提议-同意」机制,不需要再等那些冗长的计时器了。我在大多数车站PIS项目里用的就是RSTP,效果很稳定。
MSTP:这个更高级。它可以把多个VLAN映射到不同的生成树实例里,实现链路负载均衡。举个例子:VLAN 10和VLAN 20走链路A,VLAN 30和VLAN 40走链路B。这样一来,两条链路都能用上,不会像RSTP那样有一条链路闲着。
我的建议:如果你的网络规模不大(比如一个车站内部),RSTP完全够用。如果网络跨多个车站、有大量VLAN,MSTP是更好的选择。我曾经在一个地铁线网项目里用了MSTP,把全线32个车站的VLAN分成了4个实例,每条链路都跑满了,效果很好。
4.3 环路避免:别让广播风暴毁了你的PIS
环路是网络设计的大忌。一旦出现环路,广播帧会在环路里无限转发,最终把网络带宽吃光。PIS系统里,视频流、状态报文、控制指令,这些都对带宽敏感。环路一出现,画面卡顿、信息延迟,甚至整个系统瘫痪。
我曾经在一个调试现场遇到过:所有PIS终端突然全部离线,交换机CPU飙升到99%。查了半天,发现是施工队不小心把两根网线插到了同一个交换机上,形成了环路。幸好RSTP及时收敛,但那一瞬间的冲击还是让部分终端重启了。
环路避免的几个关键措施:
- 启用生成树协议:这是最基本的。RSTP或MSTP必须开。
- 配置BPDU Guard:在接入端口上开启BPDU Guard。一旦收到BPDU报文,端口直接进入err-disable状态。这能防止有人误插网线导致环路。
- 配置Loop Guard:防止单向链路故障导致的环路。我记得有一次,一根光纤的接收端坏了,但发送端正常,结果RSTP以为链路是好的,实际上数据已经不通了。Loop Guard就是用来对付这种情况的。
- 物理拓扑检查:施工完成后,一定要用工具扫描一下网络拓扑,确认没有物理环路。
警告:不要完全依赖生成树协议。它只是最后一道防线。最好的环路避免,是从设计阶段就杜绝环路。双归设计本身不会产生环路,但如果你把双归链路接成了「三角形」,那就成环了。
4.4 快速收敛:PIS系统对时间的苛刻要求
PIS系统对网络收敛时间有明确要求。一般来说,链路故障后,网络应该在3秒内完成收敛。为什么?因为列车到站信息、紧急广播这些,都是实时性要求很高的业务。
快速收敛的几个关键点:
- 使用RSTP或MSTP:这两个协议的收敛时间都在1~3秒,满足要求。
- 配置边缘端口:连接终端的端口,配置为边缘端口。这样端口UP/DOWN时不会触发生成树重新计算,直接进入转发状态。我在项目里习惯把所有接PIS终端的端口都配成边缘端口,配合BPDU Guard一起用。
- 启用链路聚合:如果双归链路用的是LACP,链路故障时切换速度比STP快得多。LACP的收敛时间通常在毫秒级。
- 优化计时器:如果用的是RSTP,可以适当调整Hello Time和Max Age,但别调得太激进,否则网络会不稳定。
经验之谈:我曾经在一个项目里遇到过RSTP收敛时间超过5秒的情况。排查后发现,是某台交换机的CPU负载太高,导致BPDU处理延迟。后来把那台交换机升级了一下,问题就解决了。所以,快速收敛不光靠协议,还得靠设备性能。
嗯,这一章的内容差不多就这些。总结一下:双归设计是汇聚层冗余的基础,STP家族是环路避免的保障,快速收敛是PIS系统的硬性要求。三者缺一不可。
下一章,咱们聊聊核心层的冗余设计。那又是另一番天地了。