我正在尝试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
你的问题不是问题。在规则中,你不仅使用源地址,还使用输入接口匹配。因此,有两种方法可以解决你的“问题”:
- 不要
dev eth0
在规则中使用 iif eth0
在命令中添加ip route get...
。该iif
选项允许您在命令中使用非本地地址ip route get
,因此您可以使用类似以下内容:ip route get 4.3.2.1 from 10.10.20.253 iif eth0