我们有三个站点 A、B 和 C。从 A 到 B 和从 A 到 C 都有一个 OpenVPN 链接。A 是这两个站点的客户端。
Bnet Cnet
| |
B C
\ /
\ /
V
A
|
Anet
Anet 可以与 Bnet 和 Cnet 正常通信。Bnet 和 Cnet 都可以与 Anet 通信。问题是 Bnet 无法与 Cnet 通信。
B 和 C 上的路由都是从 openvpn.conf 配置的:
route 192.168.108.0 255.255.255.0
route 10.9.0.0 255.255.0.0
结果在“route -n”中可见。它适用于 192.168.108.x (Anet),但不适用于其他。
当我从 B ping C 时,在 B 和 A 上执行“tcpdump -i tun0 proto ICMP”时,我可以看到请求进入隧道但没有出来:
17:34:16.216271 IP 10.8.0.1 > 10.9.0.1: ICMP echo request, id 40798, seq 1, length 64
根本没有防火墙规则,所有策略都被接受。
有什么阻止数据包从一个客户端隧道到达另一个客户端隧道吗?
答案1
上面的“路由”命令还不够,还有一个
client-config-dir client-configs
进入子配置文件的条目:
iroute 192.168.208.0 255.255.255.0
我添加了这个:
iroute 10.9.0.0 255.255.0.0
现在它可以在 VPN 之间正确路由!