APP下载

面向电力安全一区的数据传输方法研究和应用

2021-05-16郑宇泰黄刘松周明琴

科学技术创新 2021年13期
关键词:服务端下层报文

郑宇泰 张 飞 黄刘松 宋 坤 周明琴

(1、南京华盾电力信息安全测评有限公司,江苏 南京211100 2、安徽工业大学 信息化处,安徽 马鞍山243032 3、马鞍山师范高等专科学校 软件学院,安徽 马鞍山243041)

1 概述

在近期中央工作会议关于能源领域“四个革命、一个合作”战略和网络强国战略的重要论述指引下,2017 年发布的《中华人民共和国网络安全法》中对重点领域工业控制系统安全保护提出明确规定,同时《关键信息基础设施保护条例(征求意见稿)》、《网络安全等级保护条例(征求意见稿)》、《电力监控系统安全防护规定》(中华人民共和国国家发展和改革委员会令第14 号)、《电力行业网络与信息安全管理办法》(国能安全[2014]317 号)、《电力监控系统安全防护总体方案》(国能安全[2015]36号)、《国家能源局关于加强电力行业网络安全工作的指导意见》(国能安全[2018]72 号)等国家及行业相关要求中,均要求电力企业提升安全防护、应急响应与处置能力,从网络架构、通信传输、边界防护、访问控制、入侵防范、恶意代码防范、安全审计、集中管控等多方面保障网络架构安全。

边界防护方面,新能源远程集控平台采用统一建设标准,系统部署坚持“安全分区、网络专用、横向隔离、纵向认证”的原则,产控制大区网络与管理信息大区网络进行物理隔离,两网之间部署符合电力系统要求的单向隔离装置(下文简称为“网闸”),并确保单向隔离装置策略配置安全有效,禁止任何穿越边界的E-Mail、Web、Telnet、Rlogin、FTP 等通用网络服务。

市场拥有科东、南瑞正反向隔离装置,珠海鸿瑞正向隔离装置,正反向隔离装置的存在,使得信息的上送下达需要很多的限制。目前大部分使用隔离装置的厂家,在进行网闸间数据通信都需要自己封装数据通信模块,其中不乏与自己本身产品耦合度比较高。

由于正反向隔离装置,分布在场站测和集控侧的软件之间无法通过简单的TCP、UDP 等协议实现信息的上送和下达。本文提出一种屏蔽场站侧、集控侧之间的正反向隔离装置,实现场站侧、集控侧两侧部署的软件无需对正反向隔离装置进行改造,直接通过本文提出的方法进行控制指令的下发,指令反馈的上送,以及其它生产数据的上送,让上下层软件可以无感知连接。

2 系统简介

本文利用正反向网闸通信原理,面向电力安全I 区,设计出一个基于正反向网闸的数据通信方案。新设计的数据通信方案能够无缝衔接已成熟软件架构,主要用于完成控制指令的下发,指令反馈的上送,以及其他生产数据的上送功能。方案将控制指令与生产数据分开,控制指令因为存在上送和下达,主要基于控制转发中心和网闸适配程序完成;生产数据上送主要通过正向网闸上送,仅采用网闸适配程序完成。安全I 区的数据传输总架构如图1 所示。

图1 安全I 区的数据传输总架构

如图所示:安全I 区数据传输过程中,分为两种情况,一种是存在正反向隔离装置的线路,一种是没有网闸装置的线路;控制指令都是通过控制转发中心进行上送下达,经过正反向隔离装置的链路,在上层和下层都存在网闸适配程序,用于封装正反向隔离装置,实现上下层程序无缝通信,如同没有网闸装置的线路。

2.1 控制转发中心

控制转发中心根据一区建设需要主要完成将SCADA 程序中控制指令的转发到ECELL 中以及接收ECELL 反馈的控制指令的工作。其中SCADA 为集控建设中信息展示控制软件,ECELL 为电力信息采集控制指令转发软件,二者都为架构相对成熟的软件,这里对其建设原理不做描述。

控制转发中心上层与Kafka 总线相连,不予具体程序相连,屏蔽了对不同程序的差异性,下层通过TCP 服务端接收下层程序连接,在集控I 区建设中,就是于ECELL 和网闸适配模块相连接。

控制转发中心功能模块:

2.1.1 Kafka 操作模块

通过Kafka 消费者订阅Topic 与上层程序(SCADA)交互,接受SCADA 控制指令,以及通过Kafka 生产折将反馈指令(ECELL/网闸适配器模块服务端接收的指令)反馈给上层程序(SCADA)。

2.1.2 TCP 服务端(ECELL/网闸适配端)

以TCP 协议与下层程序(ECELL/网闸适配器程序)交互(分为无网闸、有网闸两种情况,即一个客户端存在无网闸、有网闸两种情况下两路地址)。将上层程序(SCADA)控制指令发送给ECELL/网闸适配器程序,以及接受ECELL 执行遥控指令的反馈信息。

2.1.3 双地址功能

为了适应双网络环境(不经正反向隔离网闸的链路、经正反向隔离网闸的链路两种情况),控制转发中心对于同一下层程序(ECELL)客户端,支持下层程序(ECELL)客户端地址以及屏蔽网闸的网闸适配器地址两个通道。

2.1.4 主备选择及心跳检测功能

控制转发中心定时与下层模块(已连接客户端模块)进行心跳检测(发送心跳报文),检测不通过,则主动断开客户端连接。

对于一个客户端的两个地址,如果主地址链路畅通,则主动断开从地址,并不接受从地址连接。若主地址心跳不通过,再接收从地址连接。

2.2 网闸适配模块

网闸适配模块的主要作用,是屏蔽正反向网闸对上下两层程序交互的影响。它的存在如同一根网线一样,将上下两层程序连接在一起,实现信息的直接通信,而不需要考虑信息隔离的影响。

2.2.1 组成部分

网闸适配模块分为网闸上层适配模块以及网闸下层适配模块两部分。

2.2.1.1 网闸上层适配模块。上层适配模块包括TCP 的客户端、TCP 的服务端、反向网闸客户端、正向信息缓存队列以及反向信息缓存队列。其中TCP 的客户端主要与上层的程序相连,此处为ECELL 和控制转发中心;TCP 的服务端主要用于接收穿越正向网闸过来的信息(主要为控制指令的反馈信息和电力数据信息);反向网闸客户端主要基于反向网闸通信规则,将上层程序下发控制指令发送到反向网闸另一端;正向信息缓存队列以及反向信息缓存队列主要用于暂存上送下达的信息。

2.2.1.2 网闸下层适配模块。下层适配模块包括TCP 的服务端、TCP 的客户端、反向网闸服务端、正向信息缓存队列以及反向信息缓存队列。其中TCP 的服务端主要用于接收下层程序上送/反馈的信息,TCP 的客户端主要基于正向网闸通信规则,将信息发送给正向网闸另一端;反向网闸服务端用于接收反向网闸客户端发送过来的控制指令;正向信息缓存队列以及反向信息缓存队列主要用于暂存上送下达的信息。

2.2.2 心跳检测功能

上层适配模块(A 侧)和下层适配模块(B 侧)需要检测链路的状态,来确保链路通畅,即定时B 侧模块向A 侧模块发送心跳报文(0X10 0X04 0X2A 0X16),A 侧收到心跳,利用正向网闸可回复1 字节特性,回复心跳确认帧0X00。

2.2.3 程序运行模式

2.2.3.1 程序运行时,首先上层适配模块启动TCP Server 端,用于等待连接。下层适配模块启动TCP Client 端,用于不断连接上层适配模块的TCP Server。

2.2.3.2 当下层适配模块的TCP Client 连接上服务端后,定时发送心跳报文检测。

2.2.3.3 上层适配模块在心跳超时时间内检测是否收到心跳报文,如果符合则去检测上层适配模块中TCP Client 的状态,如果TCP Client 处于断开状态,则不断去重新创建TCP Client连接;如果TCP Client 处于连接状态,则保持当前连接;当收到心跳报文且TCP Client 状态为连接时,利用正向网闸可回复1字节特性,回复心跳确认帧0X00,如果在心跳超时时间内没有检测到心跳报文,则主动断开上层适配模块中TCP Client 连接。

2.2.3.4 下层适配模块在心跳超时时间内检测到心跳回复报文,则去检测下层适配模块TCP Server 状态,如果TCP Server状态为未创建状态,则主动创建TCP Server;如果TCP Server 已经创建,则维持该状态。如果在心跳超时时间内没有检测到心跳回复报文,则主动销毁该TCP Server。

2.2.3.5 上下层适配模块中反向网闸模块根据需要可配置是否启用,如果不启动,则网闸适配模块不会进行控制指令的下达,启动状态下则会将接收的控制指令下达。

2.2.3.6 上层适配模块TCP Client 接收到控制指令后,会通过反向网闸客户端发送给下层反向网闸服务端,下层适配模块TCP Server 会将控制指令下发到下层程序。

2.2.3.7 下层适配模块TCP Server 端接受下层程序上送的电力数据及控制反馈指令。通过下层适配模块TCP Client 端发送给上层适配模块TCP Server 端,上层适配模块TCP Client 又会将TCP Server 端接收到信息发送给上层程序。

结束语

综上所述,本文提出的面向电力安全一区的数据传输方法,屏蔽正反向网闸的通信方式,内部封装了正反向网闸通信机制。能够实现自动检测网闸间网络链路和通信状态,并将链路状态模拟出通信中断或网络中断的状态,告知给上下层程序,实现上下层程序的无感知连接,并将控制指令单独抽离,形成控制转发中心,形成控制指令的统一上送下达,并考虑了包含双网络通信、故障切换等现实通讯状况。

猜你喜欢

服务端下层报文
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
基于报文类型的限速值动态调整
浅析反驳类报文要点
折叠积雪
多人联机对战游戏的设计与实现
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
积雪
有借有还