工控网络拓扑管理系统设计和实现

时间:2022-07-13 08:58:40

导语:工控网络拓扑管理系统设计和实现一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

工控网络拓扑管理系统设计和实现

摘要:在工业互联网中安全厂家研制了各种网络安全管理的产品和软件,它们和路由器、交换机以及各类终端一起构建了网络拓扑图中的拓扑节点,但是人们很难对网络中的拓扑节点和各个资产节点进行统一有效的管理。本文针对这一技术难点,设计了一种可以对工控网络进行拓扑管理的Web系统,前端主要通过Antv-X6进行拓扑图形的编辑和显示,后端主要通过SNMP和ICMP协议进行拓扑的自动发现,同时支持拓扑图的分层管理,解决了不同安全厂家软件资产的有效性管理问题。

关键词:工控网络;自动发现;拓扑编辑;拓扑分层

1引言

工控网络安全是现代社会工业和企业安全生产的基础,每一次发生的网络攻击和威胁都会导致严重的后果。各个厂家为了应对工业互联网中发生的网络威胁,研制了各种网络安全管理的产品和软件。它们和路由器、交换机以及各类终端一起构建了网络拓扑图中的一个个节点。但是人们很难对网络中的拓扑图和各个资产节点进行统一的管理。本文针对这一技术难点,设计了一种可以对工控网络进行拓扑管理的Web系统。

2平台设计原理

2.1前后端分离模式

本系统采用基于前后端分离的开发模式。线上采用docker容器化的部署方式,部署时restful接口请求通过nginx进行代理和转发。

2.2前端框架和组件

前端的实现采用基于Vue2.0的开发框架,工程初始化时采用Vue-Cli进行项目框架的搭建。系统选用ElementUI和Ecarts组件库,实现表格、表单和图表的编辑和显示功能。为了能够有效地处理前端图形化的数据,使用了蚂蚁金服的Antv-X6组件进行拓扑图形的编辑和显示。Antv-X6组件支持最多1万个节点的编辑,因此本系统主要针对的是中小型企业网络。前端拓扑图自动发现时的渐进显示采用了websocket进行前后端通信。

2.3服务端框架和组件

服务端实现选用SpringBoot框架。SpringBoot是在Spring基础上发布的全新开源框架,去除了大量的配置文件,简化了复杂的依赖管理。数据库选用Mysql关系型数据库和Redis内存数据库。图数据库选择国产的NebulaGraph图数据库,其中NebulaGraph是一种可靠、分布式、线性扩容、性能高效的图数据库。此处如果选用Neo4j图数据库也是可行的。消息订阅和通知选用kafka组件。

2.4数据结构

该系统底层的数据结构分为两种。一种是图形化数据结构,存储在NebulaGraph图数据库中。图由点和边构成,点的数据结构包括点的id、坐标、属性等。边的数据结构包括边的id、起点和终点的id以及边路径上各个节点的坐标、边的属性等。一种是关系型数据结构,主要用于存储工控网络中资产数据的信息,例如资产的名称、ip、位置、标签、mac地址、分组、分类和描述信息等。此处通过资产id和图数据库中点的id进行关联,NebulaGraph更偏向于图形化数据的存储,Mysql更偏向于资产关系型数据的存储。

3拓扑自动发现

在工业互联网环境中,网络拓扑图一般具有层次性,一般分为主拓扑发现和子拓扑发现。主拓扑显示了网络中子网及网关间的互连结构,而子拓扑则显示子网内部网络设备间的互连关系。本系统在网络拓扑结构的自动发现过程中,使用SNMP协议搜索路由表信息构造网络主拓扑[1],之后使用ICMP协议来发现子网中的终端设备实现网络子拓扑[3],主拓扑和子拓扑一起构建了网络拓扑图。

3.1主拓扑

计算机网络由各种不同规模的子网构成。各个子网之间通过各自的路由器同其他的子网进行网络通信。这些发现的子网可能是局域网,也可能是局域网中的子网。路由器的端口可以和路由器相互连接,也可以和子网相互连接。主拓扑反映了工业互联网中的路由设备和子网之间的连接关系,包括路由器到路由器、路由器到子网以及接口之间的相互关系。主拓扑的自动探测采用基于SNMP(SimpleNetworkManagementProtocol)协议访问路由表的策略来实现。在网络的拓扑发生变化时,MIB(ManagementInformationBase)的信息也会发生变化。SNMP协议的优点是整个拓扑图更新的速度非常快,可以在较小的网络开销下快速得到比较可靠的结果。

3.2子拓扑

SNMP协议只能发现在网络系统中的路由器和子网信息,对于子网内部的结构无法感知。为了实现子拓扑的自动探测,本系统采用ICMP(InternetControlMessageProtocol)协议实现了子拓扑的自动探测。ICMP协议是一种面向无连接的协议,用于传输错误报告。作为一种网络层的协议,使用ICMPechoreNy消息检测主机是否可达,主要用于在主机与路由器之间发送消息,包括报告错误、交换受限控制和状态信息等功能。当遇到IP数据无法访问目标或者IP路由器无法按当前的传输速率转发数据包时,会自动发送ICMP消息。

3.3自动发现

图1为根据SNMP协议和ICMP协议自动绘制的网络拓扑图。将拓扑数据封装为树形结构,在前端使用Antv-X6组件进行拓扑显示,后端将探测到的数据通过websocket发送到前端。前端渐进式地调用树形布局算法,并在前端重绘全网拓扑图。

4拓扑管理

4.1拓扑编辑

在第一次使用该系统时,会使用自动发现探测并绘制网络拓扑图。由于防火墙等网络配置的原因,系统自动探测的拓扑图很可能不完整,因此在自动发现完成后,系统还支持拓扑图形的编辑。系统支持在拓扑图中新建交换机、路由器、终端、工控防火墙、工控安全审计等资产,同时支持对资产的删除、资产连接关系的配置以及资产属性的定义。其中图形化数据结构存储在NebulaGraph图数据库中,资产的属性存储在Mysql数据库中,之间通过id进行关联。在资产管理模块中新增的资产和各个业务子系统中上报的资产,不直接放置到拓扑图中,而是显示在左边的已发现资产列表中,支持用户的拖拽和编辑。拓扑图编辑还支持拓扑图的导入、导出、放大、缩小、居中显示等基本功能。

4.2分层管理

在企业控制网络中,网络一般进行分层管理,包括生产管理层、企业管理层、过程监控层、现场控制层和现场设备层共五个层级。因此如果将自动探测的网络拓扑图直接通过树形布局或者力导图布局的形式显示,达不到分层显示的效果,因此本系统支持对拓扑图形的分层管理。每个资产都具有一个分层属性,通过分层将网络拓扑图的层次结构更加形象地表示出来,方便用户的管理,见图2。为了解决不同企业在不同场景下自定义分层的需求,本系统同时支持对拓扑分层的自定义配置。系统默认显示三个分层Layer1、Layer2、Layer3。系统支持修改图层的名称、显示位置和大小,图3显示了分层管理自定义配置的修改界面。

5拓扑资产统一监控

系统首页增加了仪表盘,可以很清晰地显示资产类型分布、资产创建趋势、资产安装的软件、资产重要性等级分布、告警趋势、告警类型统计,支持在拓扑图仪表盘中直接查看资产的属性,见图4。

6结论

本文在工控网络资产管理系统的基础上设计与实现了一款对拓扑数据管理的系统,解决了在中小型工业互联网中,网络拓扑的自动发现、手工编辑和拓扑分层问题,实现了拓扑和资产的联动,在实际的工业生产环境中具有重要的意义。

作者:宋恒嘉 仲伟炜 陈洁 单位:博智安全科技股份有限公司