IP 规则似乎在 CentOS-6.6 上不起作用

IP 规则似乎在 CentOS-6.6 上不起作用

我在 CentOS-6.6 服务器上的基于策略的路由方面遇到了一些奇怪的困难。我有一个设置,需要将所有来自的数据包路由到目的地172.25.0.0/16172.24.0.0/16一些数据XXX.155.106.50包通过 VPN 隧道后面的某个网关 ( 10.4.20.5)。我只是在做我一直做的事情。

1)我zone2在/etc/iproute2/rt_tables中定义了表:

255     local
254     main
253     default
0       unspec
25      zone2

2)我添加了一些规则,因此我得到的回复如下ip rule show

0:      from all lookup local
32762:  from all to 172.25.0.0/16 lookup zone2
32763:  from 172.25.0.0/16 lookup zone2
32766:  from all lookup main
32767:  from all lookup default

3)最后,我在表中添加了一些路线,因此ip route show table zone2我得到了以下回复:

XXX.155.106.50 via 10.4.20.5 dev tun0
172.25.64.0/24 dev cloudbr0  scope link
172.25.65.0/24 dev cloudbr0  scope link
172.24.0.0/16 via 10.4.20.5 dev tun0

一切看起来都很合法,对吧?但是,这些规则似乎不起作用,因为 tcpdump 显示所有数据包172.25.0.0/16都不是通过我的隧道发送的,而是直接发送的。

最有趣的是:当我执行类似操作时ping -I 172.25.65.254 XXX.155.106.50,一切都正常,数据包正在通过隧道路由。但如果数据包来自网络(顺便说一下,网络接口是桥接的) - 所有这些规则似乎都被忽略,数据包直接通过。 :(

如能提供任何线索或提示我们将非常感激!

相关内容