在 Linux 中如何確保出站流量與入站流量使用相同的介面?

在 Linux 中如何確保出站流量與入站流量使用相同的介面?

我有一個 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 分割存取路由。

Linux 分割存取說明

Novell 的分割存取範例

首先,透過新增以下行來建立兩個路由表 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

相關內容