IP 规则和路由不受尊重

IP 规则和路由不受尊重

我正在尝试packets根据他们的路线进行路由source address,并添加了以下内容:

# ip rule add from 10.10.10.0/16 dev eth0 table foobar
# ip route add default via 100.100.100.1 dev eth0 table foobar

然而,测试路由却给了我错误的via地址:

# ip route get 4.3.2.1 from 10.10.10.1
4.3.2.1 from 10.10.10.1 via 100.0.0.1 dev eth0

为什么这不被尊重?

这是我的常规routes

# ip route list
default via 100.0.0.1 dev eth0

# ip route show table foobar
default via 100.100.100.1 dev eth0

# ip rule list
0:  from all lookup local
32765:  from 10.10.10.0/16 iif eth0 lookup foobar
32766:  from all lookup main
32767:  from all lookup default

答案1

你的问题不是问题。在规则中,你不仅使用源地址,还使用输入接口匹配。因此,有两种方法可以解决你的“问题”:

  1. 不要dev eth0在规则中使用
  2. iif eth0在命令中添加ip route get...。该iif选项允许您在命令中使用非本地地址ip route get,因此您可以使用类似以下内容: ip route get 4.3.2.1 from 10.10.20.253 iif eth0

相关内容