Networking

一個IP地址的雙界面PC

  • June 21, 2016

我想在以下設置中設置一台具有 2 個網路介面的機器:

LAN1 <—> PC <—> LAN2

棘手的部分是PC應該可以從具有相同IP地址的LAN1和LAN2訪問,並且應該連接LAN1和LAN2。到目前為止,我已經嘗試過:

1)在兩個介面上建立橋接;但是,橋樑通常旨在轉發流量,我不希望這種行為。

  1. 使用模式 3 設置綁定介面。這可行,但會在兩個介面上發送來自 PC 的任何回复。

你們知道有什麼替代方案嗎?

謝謝,

桑德

我自己在這裡找到了一個簡潔的工作解決方案,分享給有類似問題的人。

畢竟我需要一座橋。並且您可以使用 ebtables 很容易地操縱行為。為了確保網橋不轉發數據包,我需要做的就是將 ebtables 的“轉發”策略更改為“丟棄”。這樣一來,進入 eth0 的數據包永遠不會在 eth1 上發送出去,而您的盒子上仍然具有良好的網橋功能(兩側均可訪問 1 個 IP)。

PC 現在在兩個介面上偵聽同一 IP,並根據其 ARP 解析選擇在哪個介面上發送數據包。

程式碼:

ebtables -P FORWARD DROP
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1

我想你的意思是:

  • eth0連接到一個具有 192.168.0.0/24 的網路
  • eth1連接到另一個也有 192.168.0.0/24 的網路
  • 一側的網路與另一側的網路是不同的廣播域
  • 您的 PC 在兩個網路中具有相同的 IP 地址(例如:192.168.0.1/24)

是對的嗎?

這不是設置網路的正確方法。系統只能有一個介面來聯繫給定的子網。

假設您的系統 (192.168.0.1) 想要聯繫另一個系統 (192.168.0.2)。它應該使用哪個介面?沒有辦法說。如果該目標 IP 存在於兩個子網中,哪個是要聯繫的正確目標系統?沒有辦法說。

您需要對每個介面進行不同的編號,如下所示:

  • eth0- 192.168.0.1/24
  • eth1- 192.168.1.1/24

然後在介面上執行 SNAT 和 DNAT eth1,因此您的系統認為它正在與不同的網路通信,但 iptables 實際上正在使用不同的源/目標 IP 在進/出的過程中重寫數據包。

引用自:https://serverfault.com/questions/783180