两个远程站点上有相同子网的 OpenVPN

两个远程站点上有相同子网的 OpenVPN

我在使用 TUN 设备时遇到了 OpenVPN 集中器的一些问题。情况如下:

OpenVPN Server
VPN Subnet: 10.10.10.1/24

PC1 OpenVPN Client
VPN IP: 10.10.10.50
PC Local subnet/IP: 192.168.20.100

PC2 OpenVPN Client
VPN IP: 10.10.10.60
PC Local subnet/IP: 192.168.30.100

RemoteSite1
VPN IP: 10.10.10.70
Local Subnet: 192.168.80.0/24

RemoteSite2
VPN IP: 10.10.10.80
Local Subnet: 192.168.80.0/24

PC1 连接到 RemoteSite1,PC2 连接到 RemoteSite2,但使用 iroute 时,其中一台 PC 到达了错误的远程站点。使用 TAP 设备时,此设置运行正常。为了避免 OpenVPN 服务器上的网络冲突,没有针对远程站点的路由规则,每个 PC 都有一个特定的查找路由表,如下所示:

root@openvpn~ # ip rule sh
0:  from all lookup local 
1:  from 10.10.10.50 lookup 1024
1:  from 10.10.10.60 lookup 1034
10: from all to 10.10.10.0/24 lookup main 

在每个表下:root@openvpn~# ip route show table 1024 192.168.80.0/24 via 10.10.10.70 dev tap0

root@openvpn~ # ip route show table 1034
192.168.80.0/24 via 10.10.10.80 dev tap0

如何使用 TUN 和 iroute 实现相同的设置?

答案1

我认为你不能这么做。

TUN 是路由的(OSI 第 3 层),不可能有两个完全相同的以这种方式为单个子网路由(您至少需要某种度量上的差异)。TAP 在 OSI 第 2 层运行,在此层可以进行 MAC 查找,这就是您的设置的工作方式(当它工作时)。

为了使 TUN 在这种情况下发挥作用,最好的办法可能是将 /24 分成两个 /25 网络,并将一侧分配给每个位置。

相关内容