OpenVPN 站点到特定客户端的侧隧道

OpenVPN 站点到特定客户端的侧隧道

我有两个网络。

第一个网络:192.168.10.0/24(路由器 TP-LINK [192.168.10.10] 和 RPI [192.168.10.17])
第二个网络:192.168.15.0/24(只有一个 RPI [192.168.15.10])

我想要使​​用 2 个树莓派实现站点到站点的 OpenVPN。

在第一个网络上我安装了OpenVPN服务器,配置:

server 10.10.10.0 255.255.255.0
verb 3
<keys>
client-config-dir /etc/openvpn/ccd
key-direction 0
keepalive 10 60
persist-key
persist-tun

proto udp
port 1194
dev tun0

user nobody
group nogroup

### Route Configurations Below
route 192.168.15.0 255.255.255.0

### Push Configurations Below
push "route 192.168.10.0 255.255.255.0"
push "route 192.168.15.0 255.255.255.0"

名为 client3 的 ccd 文件(名称没问题,我在 openVpn 启动时在日志中看到了一行):

iroute 192.168.15.0 255.255.255.0
#push "route 192.168.10.10 255.255.255.0 vpn_gateway"

RPI 服务器路由表:

rafal@raspberrypi:~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.10.10   0.0.0.0         UG        0 0          0 eth0
10.10.10.0      10.10.10.2      255.255.255.0   UG        0 0          0 tun0
10.10.10.2      0.0.0.0         255.255.255.255 UH        0 0          0 tun0
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.15.0    10.10.10.2      255.255.255.0   UG        0 0          0 tun0
+ a lot of docker subnets like:
xxx.21.0.0      0.0.0.0         255.255.0.0     U         0 0          0
xxx.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 

在服务器端,我还配置了 TP-Link 路由器。我添加了路由:
网络目标 | 子网掩码 | 默认网关
192.168.15.0 | 255.255.255.0 | 192.168.10.17

在客户现场,我遇到了复杂的情况。RPI 有:

  • ppp0 连接(至互联网)
  • eth0 LAN [192.168.15.10] 和网络 192.168.15.0/24
  • eth0 WLAN [192.168.16.10] 和网络 192.168.16.0/24
  • OpenVPN 客户端

OpenVpnClient 配置:

client
nobind
dev tun
remote-cert-tls server

remote my_address 1194 udp

<keys>
key-direction 1

redirect-gateway def1

RPI 客户端路由表:

rafal@raspberrypi:~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 ppp0
10.10.10.1      10.10.10.5      255.255.255.255 UGH       0 0          0 tun0
10.10.10.5      0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.64.64.64     0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
192.168.10.0    10.10.10.5      255.255.255.0   UG        0 0          0 tun0
192.168.15.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.16.0    0.0.0.0         255.255.255.0   U         0 0          0 wlan0

我在 RPI 之间建立了连接。我可以从子网 192.168.10.0(从任何客户端)ping 到 192.168.15.0(任何客户端),但来自 192.168.15.0 的客户端只能 ping RPI(192.168.10.17)。RPI(192.168.15.10)只能 ping 到 192.168.10.17(rpi 服务器)。

应如何将路由添加到 RPI 路由表?出了什么问题?

答案1

我找到了解决方案:RPI 服务器上的 iptables 阻止包/连接。
我在 RPI 服务器上添加了:
sudo iptables -t nat -D POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

相关内容