Linux
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
你的問題不是問題。在規則中,您不僅使用源地址,還使用輸入介面匹配。因此,有兩種方法可以解決您的“問題”:
- 不要
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