搭建IPsec VPN隧道解决PLC设备与主控上位机无法使用公网IP进行通信的问题

本文主要是介绍搭建IPsec VPN隧道解决PLC设备与主控上位机无法使用公网IP进行通信的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

按照初设规定,每个工程点位都要安装一条具有独立公网IP的光纤专线,供该点位的视频监控设备、水质监测设备及PLC设备与外界进行通信。而在项目开发前期并没有意识到,组态软件(上位机)无法通过公网IP地址连接PLC,导致在交付后期PLC设备无法与主控进行通信。

后经过了解得知可以在控制室网络与各PLC所属网络之间搭建VPN隧道,使得两个网络之间可以像局域网那样相互访问。

VPN技术

VPN(虚拟专用网络,Virtual Private Network)是一种通过在公共网络上建立专用网络的技术,它可以让分散在不同地理位置的设备安全地相互通信,仿佛它们处在同一个局域网内。VPN技术最初主要用于远程办公和保护数据隐私,但如今已广泛应用于各种网络环境中,包括工业自动化领域中的PLC设备和主控上位机的安全通信。

如表所示目前流行的有以下几种协议:

协议类型安全性性能兼容性配置复杂性典型应用场景工作层级
IPsec VPN非常高,支持强加密和认证较好,但加密开销较大需要支持IPsec的客户端中等,通常需要配置路由和防火墙企业间通信,保护敏感数据传输网络层(第3层)
SSL VPN高,基于SSL/TLS加密较好,依赖网络延迟高,支持浏览器或轻量级客户端较低,使用方便远程访问,适合移动办公和远程用户传输层(第4层)
PPTP VPN低,已知安全漏洞较多高,较少的加密开销高,几乎所有平台都支持非常低,易于设置小型网络,不涉及敏感数据的场景数据链路层(第2层)
L2TP/IPsec非常高,结合L2TP和IPsec的优势较好,但隧道开销较大中等,需安装客户端软件中等,配置较复杂提供强加密的企业级网络连接数据链路层(第2层)和 网络层(第3层)
OpenVPN高,支持多种加密算法较好,依赖网络延迟和加密设置中等,需安装客户端软件中等,需要一定的配置开源解决方案,适合多种应用场景传输层(第4层)

详细解决方案

IP重新划分

由于控制室和各个点位配备的都有工业级路由器且支持IPsec VPN的搭建,所以直接在路由器上进行VPN搭建。

由于IPsec VPN要求各个隧道两端的网络是不同网段的,因此将整个工程的网络IP地址按照下表进行划分,使得主控和各个位置可以互相连通。

点位公网独立IP局域网网络
控制室111.xxx.xxx.xx1192.168.1.0/24
位置1#111.xxx.xxx.xx2192.168.2.0/24
位置2#111.xxx.xxx.xx3192.168.3.0/24
位置3#111.xxx.xxx.xx4192.168.4.0/24
位置4#111.xxx.xxx.xx5192.168.5.0/24
位置5#111.xxx.xxx.xx6192.168.6.0/24

采用站点到站点VPN部署模式,网络架构图如下图所示:
在这里插入图片描述

主控路由器配置(总部)

锐捷工业路由器为例演示总部的配置

需要注意以下几个点:

  1. 总部和分部在两个阶段的加密算法以及预共享密钥要保持一致。
  2. 总部和分部都需要配置隧道两端的网段。

在这里插入图片描述

其他点位路由器配置

TP-LINK工业级路由器为例演示分部的配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这篇关于搭建IPsec VPN隧道解决PLC设备与主控上位机无法使用公网IP进行通信的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127909

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.