3. 工控网络拓扑测绘与关键路径标注
为什么拓扑测绘不能只靠一种数据源
工控网络拓扑测绘的目标不是画一张“好看的网络图”,而是得到一张能支撑风险评估的结构依据图。单一数据源都有盲区:SNMP 能拿到交换机端口与 MAC 转发表,但看不到未纳管设备;LLDP 能拿到直连邻居关系,但很多工控设备默认关闭;流量镜像能反映真实通信关系,但看不到“物理上连着却从不通信”的链路。因此本例采用三源融合:SNMP 取端口与转发表、LLDP 取邻居、镜像流量取实际通信,再叠加 Purdue 层级与关键路径标注。
三源数据采集与字段约定
先明确每类数据的采集对象与关键字段,避免后续融合时字段对不上。
| 数据源 | 采集对象 | 关键字段 | 能回答的问题 |
|---|---|---|---|
| SNMP | 交换机、路由器 | ifIndex、ifDescr、ifOperStatus、dot1dTpFdbAddress、dot1dTpFdbPort | 哪个 MAC 挂在哪个物理端口 |
| LLDP | 支持 LLDP 的交换机与终端 | chassisId、portId、sysName、mgmtAddr | 设备之间的直连邻居关系 |
| 流量镜像 | 核心交换机镜像口 | srcIP、dstIP、srcPort、dstPort、protocol、timestamp | 谁和谁在真实通信、用什么协议 |
采集前先确认 SNMP 只读团体字或 v3 只读账号已授权,镜像口不改变生产流量转发路径。所有采集动作应记录时间窗口,便于与后续基线对比。
拓扑融合与关键路径标注逻辑
融合的核心是“以设备为节点、以链路为边”,把三类数据映射到同一张图上:
- 节点:由 SNMP 转发表中的 MAC、LLDP 邻居的 chassisId、流量中的 IP 共同确定,按 IP/MAC 去重后归并为设备节点。
- 物理边:SNMP 的“MAC—端口”关系 + LLDP 的“本端端口—对端设备”关系,构成物理连接边。
- 通信边:镜像流量中出现的 srcIP→dstIP 关系,构成逻辑通信边,并标注协议与端口。
- 关键路径:在物理边与通信边叠加后,按三类语义标注——控制流(PLC↔HMI/工程师站)、数据流(PLC→历史库/SCADA)、运维通道(工程师站/跳板机→控制器)。
关键路径的判读与风险含义
拓扑图完成后,重点不是“画完了”,而是从关键路径上读出风险:
- 控制流路径:HMI 与 PLC 之间的控制流如果跨越了未受控的交换机或与其他业务混用 VLAN,说明控制指令可能被非授权设备嗅探或干扰。
- 数据流路径:PLC 到 SCADA/历史库的数据流如果经过 DMZ 但未做单向隔离,历史库被攻陷后可能反向影响控制层。
- 运维通道:工程师站或跳板机到 PLC 的运维路径如果缺少身份认证与操作审计,是后续风险评估中优先级最高的整改点。
拓扑图中标注的 IP、设备名和链路关系应来自实际采集结果,不能凭经验假设。若某条链路只有 LLDP 邻居但无流量记录,应标注为“物理连通、通信待确认”,避免误判为活跃路径。
可复用的拓扑测绘记录表
将采集与标注结果落到下表,可直接作为后续风险评估的结构输入。
| 链路编号 | 源设备 | 源IP | 目的设备 | 目的IP | 协议/端口 | 路径类型 | 数据来源 | 风险备注 |
|---|---|---|---|---|---|---|---|---|
| L-01 | HMI 操作站 | 10.10.10.30 | PLC-1 | 10.10.10.11 | Modbus/TCP 502 | 控制流 | 流量镜像 | 同 VLAN,需确认访问控制 |
| L-02 | PLC-1 | 10.10.10.11 | SCADA 服务器 | 10.10.20.10 | S7comm 102 | 数据流 | 流量镜像+SNMP | 跨层,检查隔离策略 |
| L-03 | 工程师站 | 10.10.20.50 | PLC-2 | 10.10.10.12 | S7comm 102 | 运维通道 | LLDP+流量镜像 | 缺少操作审计 |
| L-04 | 运维跳板机 | 10.10.20.60 | 区域交换机 SW-2 | 10.10.10.2 | SSH 22 | 运维通道 | SNMP+LLDP | 确认跳板机权限范围 |
| L-05 | PLC-2 | 10.10.10.12 | 远程 IO 站 | 10.10.10.41 | Profinet | 控制流 | LLDP | 物理连通,通信待确认 |
完成本节的判断标准:拓扑图中每个节点都有明确的数据来源;每条关键路径都能对应到控制流、数据流或运维通道中的一类;表中“数据来源”列能说明该链路是来自 SNMP、LLDP 还是流量镜像,或由哪几类共同确认。