ip 規則不應該擊敗 ip 路由

ip 規則不應該擊敗 ip 路由

我正在運行 CentOS,並使用ip routeip rule進行路由。

我目前有一個ip rule

from 10.8.23.0/28 table 1234

ip route

default via 10.8.23.254 eth1
10.10.10.10 via 10.10.10.1 eth1
10.0.0.0/14 dev test-interface table 1234

看來我的ip rule第二行成功了ip route,所以即使目標IP是10.10.10.10,test-interface如果來源IP是,我的資料包仍然透過發送10.8.23.0/28

10.10.10.10 via 10.10.10.1 eth1即使來源 IP 與規則匹配,我如何確保推翻“p 規則”?希望它有意義:)

測試ip route get 10.10.10.10給了我:

10.10.10.10 via 10.10.10.1 dev eth1  src 10.8.23.1

ip route get 10.10.10.10 src 10.0.0.13給了我:

10.10.10.10 via 10.10.10.254 dev test-interface  src 10.8.23.1

因此src IP優先於目標 IP。

答案1

你可以簡單地認為ip rule它是一種創建/擁有更多 ip 路由表(而不僅僅是預設路由表)的方法。

要解決您的問題,您需要新增另一個ip rule條目來處理您的特定路由情況。例如,您可以使用以下命令:

$ sudo ip rule add to 10.10.10.10/32 lookup 123 priority 10

在這裡,我假設10足夠小,可以成為第一個ip rule。這取決於 的輸出ip rule ls。它將根據優先順序顯示所有規則(值越小意味著優先順序越高,首先顯示)。

如果您需要在您的 中結合來源和目的地檢查ip rule,您可以使用:

$ sudo ip rule add from 10.8.23.0/28 to 10.10.10.10/32 lookup 123 priority 10

該表123應包含正確的路線,例如:

$ sudo ip route add 10.10.10.10/32 via 10.10.10.1 table 123

相關內容