傅雷揚 朱 軍 饒 元
(安徽農業大學 合肥 230036)
?
一種跨網閘數據傳輸系統的設計與實現*
傅雷揚朱軍饒元
(安徽農業大學合肥230036)
電力系統生產環境下,不同安全區域間的數據傳輸有著嚴格的要求,一方面保障了生產環境的安全,另一方面又給數據傳輸和共享帶來制約。設計并實現了一個基于網閘的數據傳輸系統,可以將結構化數據序列化后傳輸,在UDP傳輸協議的基礎上自定義了通信協議,保障了通信的實時性和數據的完整性,整個過程中不產生任何磁盤文件。對于各種不同結構的數據傳輸需求,只需要改變序列化和反序列化模塊,系統具備通用性。該系統已經部署到某發電企業的數據采集現場,實際運行結果驗證了該系統的穩定性和可靠性,替代了原先的文件搬運方式,解決了頻繁讀寫磁盤導致的系統故障。
網閘; 物理隔離裝置; 數據傳輸系統; 序列化; UDP傳輸
Class NumberTP311.5
2015年12月23日,烏克蘭至少三個區域的電力系統遭到網絡攻擊,伊萬諾-弗蘭科夫斯克地區部分變電站的控制系統遭到破壞,造成大面積停電,電力中斷3~6小時,約140萬人受到影響。曾幾何時,黑客還只是潛伏在網絡世界竊取信息的影子。而步入“互聯網+”時代,技術與產業融合激發創新活力的同時,也給信息安全帶來更大挑戰[1]。
根據電力二次系統的特點,為了防范黑客及惡意代碼等對電力二次系統的攻擊侵害及由此引發電力系統事故,建立了電力二次系統安全防護體系,以保障電力系統的安全穩定運行。將電力安全區劃分為生產控制大區和管理信息大區,生產控制大區又分為控制區(Ⅰ安全區)和非控制區(Ⅱ安全區),信息管理大區分為生產管理區(Ⅲ安全區)和管理信息區(Ⅳ安全區)[2]。各種防護與隔離措施也被廣泛使用,如防火墻技術、多重安全網關、網閘、交換網絡等[3~4]。這些防護措施在保護了電力系統的同時,又給數據傳輸和共享帶來了阻礙。本文在電力系統常用的網閘設備基礎上,設計并實現了一個基于網閘的數據傳輸系統,采用UDP傳輸協議,可以將任意結構性數據進行序列化傳輸,整個過程中不產生任何磁盤文件。從網閘與傳統的文件搬運、跨網閘數據傳輸系統設計、測試等幾個方面來分別進行闡述。
網閘又叫安全隔離與信息交換系統[5],是位于內部網絡與外部網絡之間的一個安全防護裝置,它可以識別非法請求并阻止超越權限的數據訪問和操作,從而有效地抵御病毒、黑客等的惡意破壞和攻擊活動,保護網絡的安全。網閘技術在物理隔離技術基礎上,實現了網絡間物理層和網絡協議斷開的同時進行數據交換。
網閘是由軟件和硬件組成,其硬件設備由三部分組成:外部處理單元、內部處理單元、專用隔離與交換控制單元,如圖1所示[6]。內網和外網通過網閘連接起來,其中,內部處理單元連接內網,外部處理單元連接外網。專用隔離與交換控制單元由硬件開關和數據交換區組成,硬件開關從硬件層面上實現了數據交換區在任一時刻只與內部處理單元或外部處理單元相連,這樣便能保證在任一時刻內網與外網沒有物理上的直接連通,從而實現了物理隔離。

圖1 網閘內部原理
當有數據需要從內網傳輸到外網時,硬件開關S首先與內部處理單元的A點連接,進行第一次數據擺渡。此時,專用隔離交換單元的數據交換區與內網連通,與外網斷開,內網中需要交換的數據被通過命令寫入到數據交換區。之后,硬件開關S斷開與A點的連接,轉而與外部處理單元的B點連接,外部就可以從數據交換區中讀取數據,從而實現由內網向外網的數據傳輸。反之,由外網向內網的數據傳輸,過程剛好相反。內外網之間所有的 TCP/IP 連接在經過網閘時都要進行協議剝離,即在網閘的一端將數據剝離至原始數據,然后根據用戶制訂的規則對原始數據進行強制檢查,再以格式化數據塊的形式擺渡至網閘的另一端,另一端的主機系統在發送前需完成逆向的數據封裝工作,即實現“協議落地、內容檢查”,這樣能夠實現最高級別的安全。
網閘傳輸數據的常用形式是文件搬運,即將數據保存在文件中,傳輸到網閘一側,由網閘搬運到另一側,如圖2所示。

圖2 網閘文件搬運
文件搬運的優點是文件具有通用性,任何應用系統產生的數據文件,都可以通過網閘搬運,無須針對性地定制開發,只要有網閘設備和通用的搬運程序,配置后就可以實現跨網閘數據傳輸。但文件搬運也存在較多不足:如果有大量文件需要搬運(例如實時采集系統,7*24小時不間斷產生數據文件),則存在頻繁讀寫內外網主機磁盤的問題,時間久了容易導致磁盤損壞。另外,文件搬運通常是在成功搬運后才刪除源文件,一旦網閘或網絡出現故障,則可能導致內網主機磁盤被寫滿而影響正常運行。因此,有必要改進傳統的文件搬運方式,采用內存緩存數據(無文件)、收發雙方直接通信的方式(經網閘隔離)跨網閘傳輸數據。
3.1總體設計
本文設計開發的跨網閘數據傳輸系統是汽輪發電機組振動在線監測系統[7]的數據采集部分,如圖3所示。支持振動量數據、過程量數據(PI,eDNA)跨網閘,實現網閘兩端的鏡像服務器與前端服務器數據實時同步。設計上借鑒了國內外網閘數據傳輸研究領域里的一些先進技術方案[8~12]。
3.2跨網閘設計與處理流程
圖4給出了振動量跨網閘的設計結構圖,過程量跨網閘結構相似,區別僅在于數據結構不同,數據來源不同(過程量直接讀實時數據庫PI和eDNA)。網閘兩端的服務器上分別運行了跨網閘傳輸客戶端程序(圖4中的saPro Client)和服務端程序(圖4中的saPro Server)。客戶端程序將要傳輸的數據通過UDP協議直接發送到網閘內網端口,網閘擺渡數據到外網,由服務端程序接收并寫入MySQL數據庫。

圖3 振動在線監測系統數據流圖

圖4 振動量跨網閘設計結構圖
客戶端程序處理流程:
1) 從交換緩沖區(與信號分析線程共享的)中讀一組數據,無數據可讀則阻塞;
2) 序列化,將結構數據轉換為一維數組;
3) 構造開始報文,發送;
4) 循環構造若干數據報文(根據具體的數據量),發送;
5) 構造結束報文,發送;
6) 轉1)。
服務端程序處理流程:
1) 監聽指定的若干個端口,每個端口對應一個客戶端(saPro Client);
2) 收到開始報文,暫存,無數據則阻塞;
3) 循環收到若干個數據報文,暫存;
4) 收到結束報文,觸發解析,重組數據報文,保存到一維數組中;
5) 反序列化,將一維數組轉換為結構數據,并保存到交換緩沖區中(供數據庫線程來讀取);
6) 轉2)。
3.3主要數據結構
// 振動量數據結構
typedef struct {
long long timestamp; // 時間戳
int millisecond; // 毫秒
float speed; // 轉速
// PARAM 段
float gap; // 間隙電壓
float direct; // 通頻值
float amplitude_1X; // 1倍頻幅值
float phase_1X; // 1倍頻相位
float amplitude_2X; // 可選倍頻幅值
float phase_2X; // 可選倍頻相位
float amplitude_3X; // 可選倍頻幅值
float phase_3X; // 可選倍頻相位
// WAVE段
int waveLength; // 壓縮后的波形長度
byte* pWave; // 壓縮后的波形動態值
// SPECTRUM段
int spectLength; // 壓縮后的頻譜長度
byte* pSpect; // 壓縮后的頻譜動態值
// 采集參數
int sampleRateOrder; // 階比數
float deltaOrder; // 階比分辨率
} VibraData;
3.4自定義通信協議
為保障通信的實時性,傳輸協議選擇了UDP,在專用設備上運行(無其它任務干擾),UDP的丟包問題基本可以忽略不計。在UDP通信的基礎上,數據傳輸采用了自定義的通信協議,包括:開始報文、數據報文、終止報文,其收發流程即3.2節的客戶端和服務端處理流程。服務端接收到報文時,將對報文頭、發送序號、MD5校驗碼進行檢查,確保報文的完整性和數據的正確性,即便小概率的UDP丟包導致的報文丟失,也將會被識別出來。

表1 開始報文

表2 數據報文

表3 終止報文
網閘設備采用了南瑞信息的SysKeeper-2000網絡安全隔離設備,網絡拓撲結構如圖5所示。三臺采集器分別運行saPro Client程序,鏡像服務器運行saPro Server程序。采集器的數據寫入前端服務器,同時將數據發送到網閘內網端口,網閘轉發數據到外網,寫入鏡像服務器。

圖5 系統測試網絡拓撲結構圖
網閘配置如圖6所示。客戶端與服務端的通信,是通過虛擬IP地址來進行的。圖6的配置中,客戶端網卡的IP地址是10.144.1.1,目標(鏡像)服務器的地址是10.144.1.4(虛擬IP地址),鏡像服務器網卡的真實IP地址是202.102.1.4。端口設置為0,表示允許所有端口數據通過,協議類型為UDP。

圖6 網閘配置
圖7同時給出了網閘客戶端和服務端程序的運行狀態。

圖7 網閘客戶端和服務端運行狀態
系統測試表明,本文設計的網閘傳輸系統可以實時地跨網閘傳輸數據,無須存盤和文件交換,最大程度地減少了磁盤的讀寫,也無須擔心磁盤被寫滿,從而解決了傳統的文件搬運存在的弊端。同時,對于各種不同的待傳輸數據,只需要改變序列化和反序列化模塊,因而具備一定的通用性。本文系統已經部署在電廠的數據采集現場,實踐表明,系統運行穩定、可靠,取代了原先的文件搬運方式。
本文系統目前解決的是正向數據傳輸,即數據都是從內網發往外網,客戶端只發送數據而不接收服務端的反饋,因此無法判斷服務端是否在運行中。可以考慮增加心跳數據包,如圖8所示,收發雙方都可以感知對方的狀態。

圖8 網閘心跳設計
[1] 中國電力網.烏克蘭電網遭遇黑客攻擊有何警示意義?[EB/OL]. http://www.chinapower.com.cn/information&jzqb/2016022215629.html,2016-02-22.
[2] 李樹斌,王函弘,曹祥飛,等. 2種實時數據庫跨不同安全區的數據遷移工具實現與應用[J]. 浙江電力,2014(6):32-35.LI Shubin,WANG Hanhong,CAO Xiangfei,et al. Implementation and Application of Data Migration Tool Crossing Diffident Security Regions of Two Real-time Databases[J]. Zhejiang Electric Power,2014(6):32-35.
[3] 孟衛東.電力系統常用的網絡隔離技術比較[J].云南水力發電,2008,24(3):104-106.
MENG Weidong. Comparison of Network Isolation Techniques Used in Power System[J]. Yunnan Water Power,2008,24(3):104-106.
[4] 于華楠,武云瑞,胡緒超.正向隔離網閘在電力系統中的應用[J].計算機與數字工程,2014,42(10):1817-1818,1874.YU Huanan,WU Yunrui,HU Xuchao. Application of Positive-isolation Gap in Electricity System[J]. Computer & Digital Engineering,2014,42(10):1817-1818,1874.
[5] 王博.基于物理隔離技術的網閘系統的設計與實現[D].西安:西安電子科技大學,2014.
WANG Bo. Design and Implementation of Gateway System Based on Physical Isolation[D]. Xi’an:Xi’an Electronic and Science University,2014.
[6] 白燕.基于網閘的雙機熱備系統的設計與實現[D].北京:北京理工大學,2015.
BAI Yan. The Design and Implementation of Hot-standby System Based on the Netgap[D]. Beijing:Beijing Institute of Technology,2015.
[7] 傅雷揚,汪江,朱軍,等.汽輪發電機組振動在線監測系統的設計與實現[J].中國電力,2013,46(4):1-5.FU Leiyang,WANG Jiang,ZHU Jun,et al. Design and Implementation of Online Vibration Monitoring System for Turbine-Generator Sets[J]. Electric Power,2013,46(4):1-5.
[8] S. Yu,Y. Zhan,Q. L. Cai,et al. A Reflective NetGAP Logic Framework Design[J]. Power Electronics and Intelligent Transportation System,2008(1):565-568.
[9] Y. Songsen,P. Yun,Z. Yiju. A Design of Message Transferring Based on Mailbox in NetGAP[J]. Computational Intelligence and Industrial Application,2008(1):571-574.
[10] S. Yu,Y. Peng,Y. Zhan,et al. Session Mechanism Research Based on Agent in NetGAP[J]. Intelligent Information Technology Application Workshops,2008(1):395-398.
[11] 周亮,劉開培,李俊娥.基于PowerPC的嵌入式協議隔離設備在電力系統中的實現[J].電力自動化設備,2008,28(9):82-88.
ZHOU Liang,LIU Kaipei,LI Jun’e. Implementation of Embedded Protocol Isolation Equipment Based on PowerPC[J]. Electric Power Automation Equipment,2008,28(9):82-88.
[12] 樓平,史英杰,陳軍,等.一種適用于電力系統的實時數據遷移方法[J].華東電力,2014,42(3):496-499.
LOU Ping,SHI Yingjie,CHEN Jun,et al. Real-Time Data Transferring Method for Electric Power System[J]. East China Electric Power,2014,42(3):496-499.
Design and Implementation of An Across Netgap Data Transmission System
FU LeiyangZHU JunRAO Yuan
(Anhui Agriculture University, Hefei230036)
Under the environment of power system production,there are strict requirements on the data transmission between different safety areas. On the one hand,it ensures the safety of the production environment,on the other hand,it also brings the restriction of data transmission and sharing. Design and implementation of a netgap data transmission system,which can serialize structured data is conducted. By designing a custom communication protocol based on the UDP transport protocol,real-time communication and data integrity can be guaranteed. Also,the whole process does not produce any disk files. For the data transmission requirement of different structure,it only needs to change the serialization and deserialization modules,so the system has the versatility. The system has been deployed to a power plant on the data collection spot,instead of the original file handling way. It proves that the system has the stability and reliability,and system failure caused by frequently reading and writing disk has been solved.
netgap, physical isolation device, data transmission system, serialization, UDP transmission
2016年4月7日,
2016年5月19日
傅雷揚,男,講師,研究方向:旋轉機械狀態監測和基于網絡的軟件技術。朱軍,男,副教授,研究方向:網絡安全、自組網路由。饒元,男,副教授,研究方向:網絡安全、物聯網技術。
TP311.5
10.3969/j.issn.1672-9722.2016.10.028