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