3. 食品工厂网络分段与隔离设计
在食品工厂里,PLC、SCADA服务器、MES、办公电脑往往同时存在于一张“看起来能用”的网络上。只要有一台办公电脑中了蠕虫,或者某台交换机形成环路,广播报文就会迅速灌满整张网络,导致灌装机PLC的扫描周期抖动、SCADA画面刷新迟滞,甚至出现通信超时报警。这类问题的根源通常不是设备本身,而是网络缺少分层与隔离。本节以某灌装车间为例,说明如何按控制层、监控层、信息层进行划分,如何规划VLAN与子网,以及如何用隔离与广播抑制手段把故障限制在局部。
一、三层划分:先明确“谁和谁必须通”
网络分段的本质是按通信关系与安全等级切分广播域。食品工厂通常划分为三层:控制层由PLC、远程I/O、变频器、伺服、HMI、工业交换机组成,承担实时控制与设备级数据采集,要求低时延、高可靠;监控层由SCADA服务器、历史数据库、操作员站、工程师站、报警服务器组成,负责集中监视、配方下发与数据归档;信息层由MES/ERP接口、生产报表、办公终端、无线接入等组成,负责生产管理与经营数据交换。三层之间的数据流向应遵循“控制层→监控层→信息层”的汇聚方向,信息层不得直接访问控制层设备。
以某灌装车间为例:两条PET灌装线各配一台S7-1500 PLC和若干ET200SP远程I/O,线体HMI就地安装;车间设一台SCADA服务器和两台操作员站;车间数据经厂级核心交换机上传至MES。若全部设备处于同一子网,任何一台HMI或办公电脑的广播都会到达PLC。因此需要按层划分VLAN,并用三层交换机或工业防火墙实现受控互通。
二、VLAN与子网规划:地址要“看得出位置”
规划时建议采用“层号+线体号”的编码思路,使IP地址本身携带位置信息,便于排障。示例方案如下:控制层使用10.10.0.0/16,按线体划分10.10.1.0/24(1#线)、10.10.2.0/24(2#线);监控层使用10.20.0.0/24;信息层使用10.30.0.0/24。VLAN ID与控制层、监控层、信息层分别对应10、20、30,管理VLAN单独使用99。PLC、HMI、远程I/O的地址在各自子网内连续分配,例如PLC取.10、HMI取.20~.29、远程I/O取.30~.49,服务器与操作员站同理。这样看到10.10.2.35就能判断是2#线的远程I/O,而不必查表。
子网掩码统一采用/24,避免控制层出现跨子网的大广播域。若单条线体设备超过250台,可再按工段细分,但不宜把一条灌装线拆成多个子网,否则PLC与远程I/O之间的PROFINET通信需要经过路由,增加不确定时延。需要强调的是,PROFINET、EtherNet/IP等实时协议对广播与组播敏感,控制层内部应尽量保持二层连通,把隔离点放在控制层与监控层之间,而不是插在PLC与I/O之间。
三、安全隔离:白名单与单向汇聚
三层之间的互通必须“最小必要”。典型做法是在监控层与控制层之间部署工业防火墙或带ACL的三层交换机,只放行SCADA采集所需的端口。以西门子S7通信为例,SCADA通过ISO-on-TCP(端口102)访问PLC,则ACL可配置为:允许10.20.0.10(SCADA服务器)到10.10.1.10、10.10.2.10的TCP 102,其余拒绝;监控层到信息层仅允许历史数据上传所需的端口,例如OPC UA的4840或数据库端口,且方向为监控层主动上报。信息层到控制层的任何直接访问一律拒绝。
! 三层交换机ACL示例(方向:监控层 → 控制层)
access-list 110 permit tcp host 10.20.0.10 host 10.10.1.10 eq 102
access-list 110 permit tcp host 10.20.0.10 host 10.10.2.10 eq 102
access-list 110 deny ip any 10.10.0.0 0.0.255.255
access-list 110 permit ip any any
interface Vlan20
ip access-group 110 in
除ACL外,还应在控制层交换机上关闭未使用端口、启用端口安全限制MAC数量、禁用边缘设备的生成树或启用BPDU Guard,防止现场临时接线引入环路。对于需要远程维护的场景,应通过VPN或跳板机接入,维护结束后关闭通道,而不是长期开放公网映射。
四、广播风暴抑制:把异常限制在端口内
广播风暴在工业网络中并不罕见:一根网线两端插在同一台交换机上、劣质网卡持续发送广播、或视频设备误接入控制层,都可能让广播速率迅速升高。抑制手段分三层:其一,在接入端口启用风暴控制,按端口带宽的百分比限制广播、组播和未知单播,例如限制为端口速率的5%,超出后丢弃并上报告警;其二,启用IGMP Snooping,让组播报文只转发给有需求的端口,减少无谓泛洪;其三,合理划分VLAN本身就把广播域缩小到单层单线体,一台设备异常不会波及全厂。
配置后要验证效果。可在交换机上查看端口风暴控制计数与日志,确认异常端口被抑制而非整机瘫痪;用抓包工具在监控层镜像口观察广播包速率,正常时应远低于设定阈值。若发现某端口持续触发抑制,应先排查该端口所接设备,而不是简单调高阈值。灌装车间的实际经验是:把控制层每个接入端口的广播限制设为5%、组播限制设为10%,并开启端口安全,可在不影响PROFINET正常通信的前提下,把环路或异常网卡的影响控制在单端口范围内。
综上,灌装车间的网络分段不是把设备随便分进几个VLAN,而是围绕“控制层保持二层稳定、监控层集中采集、信息层受控上传”这一通信关系来设计。VLAN与子网让地址可读、广播可控,防火墙与ACL让访问最小化,风暴控制与端口安全让异常局部化。三者配合,才能让SCADA通信在食品工厂的连续生产环境中保持稳定。