我有一個 Linux 盒子,有兩個介面:一個用於數據,另一個用於管理。如果兩者位於同一網路上,我會為兩個介面新增一條路由。
假設路由表是:
192.168.132.0 255.255.255.0 eth0
192.168.132.0 255.255.255.0 eth1 ( management interface)
問題是,即使發起到 mgmt IP ( eth1
) 的連接,返回流量也將開啟eth0
。
如何確保連線上的回傳流量使用與轉送流量相同的介面?
答案1
理想情況下,兩個介面都應該是不同 IP 子網路的一部分,但如果您確信只需要走這條路,那麼您應該使用 Linux 分割存取路由。
首先,透過新增以下行來建立兩個路由表 T1 和 T2,用於傳送到這些 NIC 或從這些 NIC 傳送的封包
252 T1
251 T2
到 /etc/iproute2/rt_tables。
接下來,設定路由規則以透過這些表路由傳入和傳出資料包:
ip route add 10.105.16.0/24 dev eth0 src 10.105.16.100 table T1
ip route add default via 10.105.16.2 dev eth0 src 10.105.16.100 table T1
ip rule add from 10.105.16.100 table T1
ip route add 10.105.16.0/24 dev eth1 src 10.105.16.101 table T2
ip route add default via 10.105.16.2 dev eth1 src 10.105.16.101 table T2
ip rule add from 10.105.16.101 table T2