我有两个网络。
第一个网络: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