这是关于是否使用 Bridged 或 Routed OpenVPN 设置以及如何设置连接的问题。
总结:
- 一个主站点,多个卫星站点。所有站点都位于同一子网中。
- 如果使用桥接模式,如何防止 VPN 上不必要的流量(带宽/数据使用受到限制)。
- 如果使用路由模式,如何将单个 IP 地址(而不是子网)路由到特定的 VPN 端点?
背景:该主题是一个污水处理厂,拥有多个(3+)远程泵站。主办公室运行我们的 SCADA 系统,并拥有多个 PLC 和工作站。
每个远程泵站都有一个或多个 PLC/PanelView 单元,目前所有远程站点都利用 150MHz 无线电信号将遥测数据发送回主位置。
由于无线电信号质量差和带宽限制,我们希望所有站点都改用 4G 蜂窝数据调制解调器。
为了安全和简单起见,我认为最好的方法是在每个位置设置一个支持 OpenVPN 的路由器(当前使用运行 DD-WRT 最新版本的 Linksys E1200)并将它们配置为连接到总部的 OpenVPN 服务器。
但是,存在一个问题:所有远程站点都使用与主站点相同的子网。这是由安装无线电的供应商设置的,显然是为了“保持简单”,但这对我们来说只是头疼。我们无法更改 IP 地址映射,因为我们没有某些设备的编程软件,而且这需要在每个 PLC 中重新编程。所以我们只能让所有站点都位于同一个子网中。(192.168.100.x)
我的问题是:对于此设置我应该使用路由模式还是桥接模式?
如果我使用桥接模式,我不希望 OpenVPN 桥传递任何多余的流量(广播等),因为蜂窝调制解调器的每月数据传输量有限。
如果我使用路由模式,如何强制 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 路由到各个位置。
我将非常感激针对此设置的任何建议。
我尝试使用子网掩码为 255.255.255.255 的指定路由的路由模式,但无法让流量在一个站点和主要位置之间通过。OpenVPN 连接已成功建立,但无法在它们之间 ping 通。
答案1
您需要使用桥接设置(除非您能够手动修改网络上所有主机/设备上的路由表)。
在正常设置中,位于同一本地子网中的 IP 地址不会通过默认网关路由,因为该地址在接口上可直接访问。ARP 将用于获取目标主机的 MAC 地址,并且 IP 数据报将使用带有此 MAC 地址的以太网帧直接发送到网络层 2 上的目的地。
这意味着路由 OpenVPN 设置无法解决您的问题。VPN 网关甚至不会“看到”任何流量。只有满足以下所有条件时,它才会发挥作用:
- a)VPN 网关被定义为所有主机/设备上的默认网关
- b)目标 IP 地址位于另一个子网
- c) 目标 IP 地址与通向另一个网关的更具体的静态路由不匹配
虽然可以阻止广播,但如果所有广播都被阻止,桥接网络就会中断,因为桥接网络依赖于广播。在以太网上,ARP 用于广播网络中端点的 MAC 地址。