电力调度数据网厂站侧网络监测装置设计与开发
发布时间:2022-04-19 22:07:19来源:
根据调度控制系统数据传输规范,不同类型的调度业务数据的流向应当是确定的,即包含了调度信息的数据报文的发送源地址和接收目的地址都应当是合法且对应的调度终端或主站前置机的IP地址。而非法的通信行为必定会产生包含非法IP地址的數据报文,这类报文的检测对于厂站排查非法通信异常具有重要的参考价值。例如目前常见的资源消耗型DoS网络攻击通常采取持续不断地向主站SCADA服务器或数据中心发送无用的大体积数据包的做法,引起短时间内数据量的急剧升高;若某条数据传输隧道发生故障,则该条链路上的数据量会迅速降至一个极低的数值甚至归零。因此厂站需要通过监测数据量来初步判断是否发生网络异常。通过以上分析,将解决的问题归纳为:获取厂站侧调度数据网各节点的流量信息,并根据异常流量的特征判断是否有网络故障或异常行为的发生。
2电力调度数据网厂站侧网络监测装置设计与开发
2.1监测装置部署位置的选择
根据调度数据在厂站局域网内的传输流程,可以将调度数据在厂站局域网内流经的各个物理设备网络端口的工作状况总结如下:(1)RTU大多仅具备一路以太网通信物理端口,用于接收和发送调度业务数据帧;(2)交换机具有多个物理端口,与承接不同调度业务的RTU相连接,明文状态下的遥控、遥测、遥信等信息在交换机处汇集并被转发;(3)纵向加密认证装置的上行链路物理端口与路由器相连,输出加密过后的调度数据报文。下行链路端口与交换机连接,输出解密之后的调度数据报文;为实现厂站网络安全事件的快速处置能力及响应效率,满足厂站自身安全监视管理的要求,对于省调直调厂站,网络监测装置最合理的试验性部署位置应当是安全Ⅰ区交换机处,装置连接至交换机的镜像端口。
2.2网络监测程序设计
2.2.1操作系统移植
通常情况下,向嵌入式硬件设备中移植Linux操作系统需要经过交叉编译、Boot Loader移植、内核移植和文件系统移植等步骤。由于本次使用的Raspberry-Pi3B型嵌入式计算机属于商业化产品,其底层Boot Loader以及BCM2837处理器的相关核心数据并不开源,因而无法按照通常的做法进行操作系统的移植。在Linux的众多发行版当中,UbuntuMATE专门针对使用ARMv7及其以上芯片架构的嵌入式计算机开发了相应的操作系统UbuntuMATE16.04.2。本次将使用其安装镜像ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img进行操作系统移植。通过读卡器将micro SDHC连接至一台Windows操作系统环境下的台式计算机当中,在该台式机上安装并运行开源软件Win32DiskImager。在其运行界面中的映像文件路径栏中输入预先下载好的Linux操作系统镜像文件ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img的路径,写入设备选择Micro SDHC卡,维持软件其他的默认设置,点击“写入”即可开始将映像文件写入Micro SDHC卡。写入过程结束后,将Micro SDHC卡接回主板中并上电运行,按照系统的提示完成后续的相关配置,操作系统移植完毕。
2.2.2旁路监听方法
由于嗅探器安装在监测装置当中,而监测装置即使与交换机建立了网络连接,但因其本身并不参与调度,端口上没有任何调度数据流过,故而嗅探器也无法进行调度数据帧的抓取和解析,流量监测更无从谈起。因此必须设置某种方式,在不影响到调度业务正常进行的前提下,使得调度数据流过监测装置的端口。旁路监听是一种在小型局域网当中较为常见的网络监测方法,将端口镜像技术和网络嗅探器相结合,形成一条独立于正常数据传输路径的监听专用“旁路”。为了实现对整个局域网的监测,通常这一“旁路”仅连通监测专用主机和局域网内的一台交换机。
2.2.3端点状态描述机制
由于“节点”这一术语通常用于网络拓扑结构研究,自本节开始,在论述与数据帧监听和分析相关的研究内容时将使用TCP术语“端点”一词,描述由一个IP地址和一个TCP端口号形成的组合。依照调度机制的设定,通常情况下接入层厂站内的一台调度终端设备仅被分配一个固定的IP地址并且仅使用某一个特定的端口号收发数据,而在调度主站的前置系统当中同样如此。因此,在调度厂站内,对一台调度终端设备而言,“节点”与“端点”是同等概念。
2.2.4数据链路状态检测模块
在进行数据流量监测之前,首先需要检测调度数据网内的端点与调度主站的端点之间的数据链路的通断状态。监测装置对各调度终端、安全交换机、纵向加密装置、路由器和调度主站前置机进行Ping通测试,根据测试结果以及通信链路的结构推断出当前厂站调度数据网内是否存在数据链路中断的情况。
2.2.5数据帧监听模块
监听模块的主要功能是针对厂站调度数据网内每一个需要被监听的端点进行持续一段时间的监听,并在监听过程结束后生成监听结果报告,这一报告将交由监听结果分析模块进行处理。(1)监听模块开始运行后,首先初始化监听计时器,该计时器用于控制单次监听过程的最大许可时长;(2)监听模块读取当前监听队列中处于队首位置的端点的IPv4地址,并将该端点的状态变更为正在监听状态;(3)设置报文过滤规则和监听终止条件。过滤规则为滤除所有与当前正在被监听的端点无关的报文,这里的“无关”指报文的源IPv4地址与目的IPv4地址均与当前正在被监听的端点的IPv4地址不同,而监听终止条件则设置为已经监听到了一定数量的与被监听端点相关的报文;(4)监听过程正式开始后,Tcpdump软件将完成报文的监听和解析工作,并在每次报文内容解析完毕后自动判断监听终止条件是否已经满足。
2.2.6监听结果分析模块
(1)分析模块的程序(以下简称分析程序)开始运行后,首先读取ipv4_addr_list文件中第一个端点的IPv4地址号并查看其所处状态是否为“结果分析态”。若是,则进行第(2)步,否则对文件中的下一个端点重新开始本步骤;(2)分析程序按照该端点的地址号,访问存储在指定目录下的该端点相应的监听结果记录;(3)监听结果记录成功读取后,分析程序鉴别这份记录中出现的所有其他通信端点的IPv4地址,并分别统计这些端点在与该端点通信时双向数据流上的总数据量与总持续时长。(4)分析程序将上一步所得到的分析结果以固定书写格式输出至一个新的文本文件当中,供用户通过上位监测界面进行调取查看;(5)在ipv4_addr_list中将该端点的状态变更为“监听就绪态”并对下一个端点重新开始步骤(1)。