4、设备冗余技术:VRRP/HSRP协议在工业网关中的应用
说到工业网关的冗余,我第一个想到的就是VRRP和HSRP。这两个协议,说白了就是给网关设备找个“备胎”。主网关挂了,备网关立刻顶上,整个过程对下面的PLC、RTU来说几乎是透明的。
我在不少项目里都遇到过这种情况:现场只有一台网关,一旦它宕机,整个车间的数据就断了。生产调度那边急得跳脚,运维人员满头大汗地跑去换设备。嗯,这种场景,经历过一次就够够的了。
4.1 为什么工业网关需要VRRP/HSRP?
工业环境不比办公室。你想想看,一个Modbus TCP网关要是坏了,下面几十台PLC的数据全部中断。上位机收不到数据,操作员看不到画面,搞不好还要停产。
传统的解决方案是什么?双机热备。两台网关,一台主用,一台备用。但问题来了:怎么让下面的设备自动切换到备用网关?
手动改IP地址?不现实。用DNS?工业设备很多不支持。这时候,VRRP和HSRP就派上用场了。
核心思想:两台网关共享一个虚拟IP地址。下面的设备只管往这个虚拟IP发数据。主网关负责处理,备网关默默监听。主网关挂了,备网关立刻接管虚拟IP,继续提供服务。
4.2 VRRP vs HSRP:选哪个?
我个人习惯在工业项目里优先用VRRP。为什么?因为它是标准协议,不挑厂商。HSRP是思科的私有协议,虽然功能类似,但如果你用的是别的品牌的网关,可能就不支持了。
我简单列个对比表,你一看就明白:
| 特性 | VRRP | HSRP |
|---|---|---|
| 标准化 | RFC 3768(标准) | 思科私有 |
| 虚拟IP | 可与物理IP相同 | 必须不同 |
| 主备切换时间 | 约3秒(默认) | 约10秒(默认) |
| 支持厂商 | 几乎所有网络设备 | 仅思科设备 |
| 抢占模式 | 默认开启 | 默认关闭 |
你看,VRRP的切换时间更短,而且默认就支持抢占——也就是说,主网关恢复后,它会自动抢回控制权。HSRP默认不抢占,有时候反而会带来麻烦。
我的建议:如果项目里全是思科设备,用HSRP也没问题。但如果是混合厂商的环境,或者你不想被绑定,老老实实用VRRP。
4.3 VRRP在工业网关中的典型配置
好了,理论说完了,咱们看看实际怎么配。我以一个常见的工业网关为例,它运行Linux系统,支持VRRP。
配置其实不复杂。核心就几步:
- 两台网关配置同一个VRRP组号
- 设置虚拟IP地址
- 指定优先级(高的当主)
- 配置认证(可选,建议加上)
下面是一个典型的VRRP配置示例:
# 主网关配置
interface eth0
vrrp 1
virtual-ip 192.168.1.100
priority 200
preempt
authentication simple "mysecret"
track interface eth1 decrement 50
# 备网关配置
interface eth0
vrrp 1
virtual-ip 192.168.1.100
priority 100
preempt
authentication simple "mysecret"
这里有个细节要注意:track interface。这个功能很实用——它让主网关监控自己的上行接口。如果上行链路断了,主网关自动降低优先级,备网关就会接管。我曾经在一个项目里没配这个,结果主网关的WAN口坏了,它自己还不知道,还在那装大爷。备网关干瞪眼,数据全断了。嗯,从那以后,我再也不敢漏掉这个配置了。
4.4 工业场景下的特殊考量
VRRP和HSRP本来是给IT网络设计的。拿到工业环境里用,有几个坑你得注意:
避坑指南:
- ARP缓存问题:工业交换机很多是傻瓜式的,ARP表老化时间可能很长。切换后,下面的设备可能还往旧MAC地址发数据。我曾经遇到过切换后等了30秒才恢复通信的情况。解决办法:在网关上配置免费ARP,切换时主动广播。
- Modbus TCP连接保持:VRRP切换时,TCP连接会断。Modbus TCP的PLC需要重新建立连接。建议在PLC侧配置自动重连机制,超时时间设短一点,比如3秒。
- 心跳网络独立:两台网关之间的心跳线,最好用独立的物理接口。别跟业务网络混在一起。否则业务流量一堵,心跳也丢了,两台网关都以为对方挂了,都抢着当主——这就是传说中的“脑裂”。
4.5 实战案例:某水处理项目的双网关冗余
我记得去年做一个水处理项目,现场有30多台PLC,全部通过Modbus TCP上报数据。客户要求:网关故障时,数据中断不能超过5秒。
我们用了两台工业网关,配置VRRP热备。具体方案是这样的:
- 两台网关分别接不同的交换机,物理上完全隔离
- 虚拟IP设为192.168.10.10,所有PLC往这个IP发数据
- 主网关优先级200,备网关优先级100
- 心跳线用独立的网口直连
- 开启抢占模式,主网关恢复后自动切回
实际测试结果:手动拔掉主网关的电源,备网关在2.8秒内接管了虚拟IP。PLC侧因为配置了自动重连,3秒左右恢复了数据上报。完全满足客户要求。
不过有个小插曲:第一次测试时,我们发现切换后有几台PLC一直连不上。查了半天,原来是那几台PLC的ARP表没更新。后来我们在网关上加了切换时发送免费ARP的脚本,问题就解决了。
小技巧:如果你用的网关不支持免费ARP,可以在备网关接管后,手动ping一下所有PLC的IP地址。ping的过程中会触发ARP更新,算是个土办法,但管用。
4.6 总结
VRRP和HSRP,说白了就是给工业网关加了个“保险”。配置不难,但细节决定成败。我个人建议:
- 优先选VRRP,兼容性好
- 一定要配接口跟踪,防止“假活”
- 心跳网络独立,避免脑裂
- 别忘了处理ARP缓存和TCP重连
下一章,我会讲Modbus热备切换的具体实现。到时候会结合VRRP,给出一个完整的双机热备方案。咱们到时候见。