两个OpenVPN隧道之间的路由失败

我们有三个站点A,B和C.有一个从A到B和从A到C的OpenVPN链接。A是两个客户端。

Bnet Cnet | | BC \ / \ / V A | Anet 

Anet可以和Bnet和Cnet进行通讯。 Bnet和Cnet都可以和Anet通信。 问题是Bnet无法与Cnet通信。

B和C上的路由都是由openvpn.confconfiguration的:

 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和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 

根本没有防火墙规则,所有策略都是接受的。

有什么办法可以防止来自一个客户端隧道的数据包到另一个客户端隧道?

上面的“路由”命令是不够的,有一个

 client-config-dir client-configs 

导致一个子configuration文件的条目:

 iroute 192.168.208.0 255.255.255.0 

我加了这个:

 iroute 10.9.0.0 255.255.0.0 

现在它在VPN之间正确路由!