OpenVPN的设置帮助 – 路由或桥接?

这是一个关于是否使用桥接或路由OpenVPN设置,以及如何build立连接的问题。

TLDR:

  • 一个主站点,多个卫星站点。 所有站点都在同一个子网上。
    • 如果使用桥接模式,如何防止VPN上不需要的stream量(带宽/数据使用是有限的)。
    • 如果使用路由模式,如何将各个IP地址(而不是子网)路由到特定的VPN端点?

背景:这个主题是一个有多个(3+)远程泵站的污水处理厂。 主要办公室运行我们的SCADA系统,并有多个PLC和工作站。

每个远程泵站都有一个或多个PLC / PanelView单元,目前所有的远程站点都利用150MHz的无线电信号将遥测数据发送回主要位置。

由于无线电信号质量差和带宽限制,我们希望切换所有站点来使用4G蜂窝数据调制解调器。

为了安全和简单,我认为最好的方法是在每个位置(目前使用运行DD-WRT最新版本的Linksys E1200)build立一个支持OpenVPN的路由器,并configuration它们连接到总部的OpenVPN服务器。

但是,有一个问题:所有远程站点使用与主站点相同的子网。 这是安装收音机的供应商设置的,显然是为了“保持简单”,但这只是我们头痛的问题。 我们不能更改IP地址映射,因为我们没有用于某些设备的编程软件,而且还需要在每个PLC中重新编程。 所以我们坚持所有的网站在同一个子网。 (192.168.100.X)

我的问题是:我应该使用路由或桥接模式进行此设置?

如果我使用桥接模式,我不希望OpenVPN网桥通过任何多余的stream量(广播等),因为蜂窝调制解调器有限的每月数据传输津贴。

如果我使用路由模式,如何强制OpenVPN只路由适用于远程站点的特定IP地址?

例如:主站点:使用192.168.100.1 – 30,也是40+

远程站点1:192.168.100.32-37远程站点2:192.168.1.31远程站点3:192.168.100.110-120,140

所以我们不能根据子网进行路由 – 但必须将各个IP路由到各个位置。

我将不胜感激这个设置的任何build议。

我尝试使用具有255.255.255.255子网掩码的指定路由的路由模式,但无法获取一个站点与主要位置之间的通信。 OpenVPN连接已成功build立,但无法ping通。

您需要使用桥接设置(除非您能够手动修改networking上所有主机/设备上的路由表)。

在正常的设置中,注定在同一本地子网中的IP地址不会通过默认网关进行路由,因为该地址在接口上可直接访问。 ARP将用于获取目标主机的MAC地址,IP数据报将直接使用具有此MAC地址的以太网帧发送到networking层2上的目的地。

这意味着一个路由的OpenVPN安装程序将无法解决您的问题。 VPN网关甚至不会“看到”任何stream量。 只有满足以下所有条件才能起作用:

  • a)vpn网关被定义为所有主机/设备上的默认网关
  • b)目的IP地址在另一个子网上
  • c)目的IP地址与另一个网关更具体的静态路由不匹配

虽然阻止广播是可能的,如果所有的广播都被阻塞,它将会破坏桥接networking,因为桥接networking依靠广播。 在以太网networking上,ARP用于广播networking中端点的MAC地址。

要阻止某些广播 ,可以使用带有模块 physdevpkttype iptables