船海工程机电设备远程虚拟局域网的设计及实现
2023-06-04叶志坚司小冬胡发国江志钢
叶志坚,司小冬,胡发国,江志钢
(武汉船用机械有限责任公司,武汉 430084)
0 引言
船海工程机电设备的安全互联互通是实现智能化发展的关键技术,对于存在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 船海工程机电设备远程虚拟局域网总体方案
根据图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的远程调试、远程下载及远程通信。
2 船海工程机电设备远程虚拟局域网构建
2.1 openVPN服务器设置
建立菲尼克斯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服务器的其他客户之间可以相互访问。
2.2 运行openVPN服务器的Linux系统增加路由转发功能
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
3 测试结果
可以看到,企业内部的调试PC机(IP地址为192.168.16.126),ping通了船端现场设备惰气系统(其实际物理地址为192.168.0.1)的虚拟地址192.7.0.1,测试通过。
图6 虚拟局域网测试结果Fig.6 Results of virtual LAN test
4 结束语
提出并实现了基于开源框架OpenVPN+Linux构建的私有加密虚拟局域网,对于IP地址冲突但又需要安全互联互通的多个设备给出了很好的解决方案。该安全通信通道的打通,为后续远程数据传输、远程监测及远程控制奠定了良好的基础。