使用設定檔而不是 ip 命令將靜態路由新增至虛擬接口

使用設定檔而不是 ip 命令將靜態路由新增至虛擬接口

我們使用 /etc/sysconfig/network-scripts/route-ethx 檔案靜態分配路由。這使得管理它們變得相當容易,因為我們在啟動過程中新增了路由(透過後腳本)。它們很少更改,如果需要更新,我們只需推出更改並更新建置腳本以包含新路線。

最近,我們有一位客戶要求提供具有唯一 IP 的虛擬介面 (eth0:0)。它需要專門連接到一個網路。 eth0 上第一個指派的 IP 將處理所有其他流量。

我所看到的所有內容都說明瞭如何使用 新增路由ip route add,但是我無法弄清楚如何指定前往特定 IP 或網路的任何內容都可以設定來源 IP。如果我使用 ip 命令,它會更新路由檔案還是將其儲存在其他地方以便在重新啟動後保持不變?如果我必須將 eth0:0 的條目新增至路由檔案中,該行應該是什麼樣子?

所以基本上:

如果存取 10.0.0.2,請使用 IP 10.0.1.3 作為來源。如果它去其他地方,請使用 IP 10.0.1.2 作為來源。

這可能嗎?我該如何實現它?

答案1

如果我清楚地理解你的問題,你可以嘗試如下

# ip route add 10.0.0.2 via xxx.xxx.xxx.xxx src 10.0.1.3
# ip route add default via yyy.yyy.yyy.yyy src 10.0.2.2

我還需要研究其他方法嗎?

您可以嘗試使用 iptables

# iptables -t nat -I PREROUTING -d 10.0.0.2 -j SNAT --to-source 10.0.1.3

答案2

最近一位做過同樣事情的同事澄清了這一點。

要輸入到route-eth0:0 檔案中的一條路由的格式為:

10.0.0.2/32 via 10.0.1.1 dev eth0:0 src 10.0.1.3

預設情況下,通過 eth0 的所有其他流量將被標記為來自 10.0.1.2。 10.0.1.1 是預設路由,但資料包將具有正確標記的來源 IP。

相關內容