葉志堅(jiān),司小冬,胡發(fā)國,江志鋼
(武漢船用機(jī)械有限責(zé)任公司,武漢 430084)
船海工程機(jī)電設(shè)備的安全互聯(lián)互通是實(shí)現(xiàn)智能化發(fā)展的關(guān)鍵技術(shù),對于存在IP地址沖突的多個設(shè)備,既要在不改變原設(shè)備IP地址的前提下構(gòu)建虛擬局域網(wǎng),還要保證通信安全加密。采用OpenVPN技術(shù)[1-3]建立安全加密的船海工程機(jī)電設(shè)備遠(yuǎn)程虛擬局域網(wǎng),可實(shí)現(xiàn)對船端監(jiān)控系統(tǒng)PLC程序的遠(yuǎn)程在線調(diào)試[4-5]、程序遠(yuǎn)程下載等操作,同時(shí)可進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸,并保證所有通信數(shù)據(jù)的安全性。
為了實(shí)現(xiàn)具有相同IP地址設(shè)備的互聯(lián)互通,需要進(jìn)行物理地址到虛擬地址的映射,將這些相同的物理地址映射成不同的虛擬地址,將所有設(shè)備構(gòu)成一個虛擬局域網(wǎng),并通過4G路由器及公網(wǎng)IP路由器連接到企業(yè)內(nèi)部的VPN服務(wù)器,與VPN服務(wù)器處于同一局域網(wǎng)下的調(diào)試PC,通過搭建好的基于VPN的遠(yuǎn)程虛擬局域網(wǎng),實(shí)現(xiàn)對船端現(xiàn)場設(shè)備的遠(yuǎn)程調(diào)試、遠(yuǎn)程下載,實(shí)現(xiàn)虛擬局域網(wǎng)內(nèi)所有終端(現(xiàn)場設(shè)備、調(diào)試PC等)的互聯(lián)互通,詳見圖1。
圖1 船海工程機(jī)電設(shè)備遠(yuǎn)程虛擬局域網(wǎng)構(gòu)建總體架構(gòu)Fig.1 Construction of the overall architecture of remote virtual LAN for electromechanical equipment in marine engineering
根據(jù)圖1中的總體架構(gòu),以某船海工程機(jī)電設(shè)備惰氣系統(tǒng)產(chǎn)品為例,采用如圖2所示的測試方案,構(gòu)建船海工程機(jī)電設(shè)備遠(yuǎn)程虛擬局域網(wǎng)。其中,4G路由器廠家為菲尼克斯,為TC ROUTER 3002T-4G;OpenVPN服務(wù)器采用Linux系統(tǒng),OpenVPN版本為openvpn-2.4.3。
圖2 基于openVPN的惰氣系統(tǒng)遠(yuǎn)程通信虛擬專用加密通道配置方案Fig.2 Virtual private encryption channel configuration scheme for remote communication of inert gas system based on open VPN
工作過程如下:惰氣系統(tǒng)船端監(jiān)控系統(tǒng)作為現(xiàn)場端(IP地址為192.168.0.15)接入4G路由器。4G路由器IP地址為192.168.0.254,作為OpenVPN客戶端接入公網(wǎng)(IP地址為27.17.51.10)并在4G路由器中做如下地址映射:
192.168.0.***為設(shè)備的實(shí)際物理地址,192.7.0.***為設(shè)備的虛擬地址。
公網(wǎng)路由器做如下映射(192.168.16.115為企業(yè)內(nèi)部OpenVPN服務(wù)器的IP地址):
UDP:27.17.51.10:56789->192.168.16.115: 56789
TCP:27.17.51.10:56789->192.168.16.115: 56789
企業(yè)內(nèi)部的OpenVPN服務(wù)器(IP地址為192.168.16.115)作為公網(wǎng)(IP地址為27.17.51.10)節(jié)點(diǎn)下的一個局域網(wǎng)節(jié)點(diǎn),與OpenVPN服務(wù)器在同一局域網(wǎng)調(diào)試PC機(jī)1和PC機(jī)2,將路由及DNS配置成OpenVPN服務(wù)器IP地址192.168.16.115。
圖3 4G路由器地址映射Fig.3 Address mapping of 4G routers
通過以上過程,實(shí)現(xiàn)企業(yè)內(nèi)部調(diào)試PC機(jī)對現(xiàn)場惰氣系統(tǒng)控制PLC的遠(yuǎn)程調(diào)試、遠(yuǎn)程下載及遠(yuǎn)程通信。
建立菲尼克斯openVPN服務(wù)器端配置文件,關(guān)鍵配置參數(shù)如圖4所示。
圖4 openVPN服務(wù)器端配置文件關(guān)鍵配置參數(shù)Fig.4 Key parameters of the openVPN server configuration file
在openVPN服務(wù)器端添加到4G路由器的路由。route 192.7.0.0 255.255.255.0,route 和 iroute 的多余重復(fù)設(shè)置是為了使iroute 控制從OpenVPN服務(wù)器到遠(yuǎn)程客戶端的路由;而route控制著從內(nèi)核到OpenVPN服務(wù)器(通過TUN接口)的路由。兩者都很重要。
在4G路由器端添加到openVPN服務(wù)器的路由。push “route 192.168.16.0 255.255.255.0”,添加路由route 192.168.16.0 255.255.255.0到openVPN客戶端,令客戶端服務(wù)器端的內(nèi)網(wǎng)使用 192.168.16.0/24 網(wǎng)段。設(shè)置后,openVPN客戶端可通過vpn訪問192.168.16.0/24 網(wǎng)段。
運(yùn)行openVPN客戶端之間的相互訪問。client-to-client,設(shè)置4G路由器客戶端網(wǎng)段(192.7.0.0/24),與OpenVPN服務(wù)器的其他客戶之間可以相互訪問。
openVPN服務(wù)器的IP地址為192.168.16.115。與openVPN服務(wù)器處于同一個局域網(wǎng)的PC機(jī),若想通過openVPN服務(wù)器訪問openVPN客戶端及其子網(wǎng),需在openVPN服務(wù)器系統(tǒng)中添加如下路由:
route add -net 10.8.0.0/24 gw 192.168.16.115。其中,10.8.0.0/24為openVPN虛擬專用網(wǎng)絡(luò)地址段,192.168.16.115為openVPN服務(wù)器地址。表示所有需要發(fā)往10.8.0.0/24地址段的IP數(shù)據(jù)包,全部由網(wǎng)關(guān)192.168.16.115路徑轉(zhuǎn)發(fā)。
圖5 openVPN服務(wù)器增加路由轉(zhuǎn)發(fā)功能Fig.5 Route forwarding function added to the openVPN server
可以看到,企業(yè)內(nèi)部的調(diào)試PC機(jī)(IP地址為192.168.16.126),ping通了船端現(xiàn)場設(shè)備惰氣系統(tǒng)(其實(shí)際物理地址為192.168.0.1)的虛擬地址192.7.0.1,測試通過。
圖6 虛擬局域網(wǎng)測試結(jié)果Fig.6 Results of virtual LAN test
提出并實(shí)現(xiàn)了基于開源框架OpenVPN+Linux構(gòu)建的私有加密虛擬局域網(wǎng),對于IP地址沖突但又需要安全互聯(lián)互通的多個設(shè)備給出了很好的解決方案。該安全通信通道的打通,為后續(xù)遠(yuǎn)程數(shù)據(jù)傳輸、遠(yuǎn)程監(jiān)測及遠(yuǎn)程控制奠定了良好的基礎(chǔ)。