将子网路由到 OpenVPN 客户端(tcpdump 没有显示 icmp)

将子网路由到 OpenVPN 客户端(tcpdump 没有显示 icmp)

我有一台 OpenVPN 服务器,网络为 172.24.24.0/29(IP:172.24.24.1)。Raspberry(172.24.24.2)已连接到此 OpenVPN 服务器。

Raspberry 可以访问我的本地网络 192.168.2.0/24,并且应该允许 OpenVPN 服务器通过 NAT 访问该网络。

两者均启用了内核转发。

  • 从 OpenVPN 服务器 Ping 到 Raspberry 反之亦然
  • 从 Raspberry 到本地 LAN 执行 ping 操作,反之亦然
  • 从 OpenVPN 服务器到本地 LAN 的 Ping 不通

OpenVPN 服务器:

[root@openvpn ~]# ip route
172.24.24.0/29 dev tun1  proto kernel  scope link  src 172.24.24.1
192.168.2.0/24 via 172.24.24.2 dev tun1

[root@openvpn ~]# ip route get 192.168.2.101
192.168.2.101 via 172.24.24.2 dev tun1  src 172.24.24.1

从 OpenVPN 服务器 ping 192.168.2.101。然而,在 Raspberry 上,界面上没有显示任何数据包tcpdump。但tcpdump显示传出的数据包:

[root@openvpn ~]# tcpdump -ni tun1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun1, link-type RAW (Raw IP), capture size 65535 bytes
20:10:00.610156 IP 172.24.24.1 > 192.168.2.101: ICMP echo request, id 3413, seq 1, length 64
20:10:01.616216 IP 172.24.24.1 > 192.168.2.101: ICMP echo request, id 3413, seq 2, length 64

覆盆子

  • VPN IP:172.24.24.2(tun0)
  • 本地局域网:192.168.2.101(eth0)

iptables:(所有链的策略均接受)

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 172.24.24.0/29 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -j ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE

路由表

default via 192.168.2.1 dev eth0
172.24.24.0/29 dev tun0  proto kernel  scope link  src 172.24.24.2
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.101

我最初以为这是由于 iptables 规则或 NAT 造成的。我发现没有数据包到达 Raspberry 的 tun0 接口非常不寻常,因此猜测是那里出了错误。

这个设置中哪里可能出错了?如果您能提供任何帮助,我将不胜感激。

答案1

我发现解决方案在德国 Synology 论坛中。
需要在 OpenVPN 服务器上进行进一步设置。配置可在此处找到:“使用路由 VPN (dev tun) 时在客户端包含多台机器”

相关内容