Iptables

iptables DNAT 廣播地址

  • February 1, 2016

我在使用 iptables 更改廣播數據包的目標地址時遇到問題。我已經閱讀了幾個 iptables/Linux 不會轉發廣播數據包的地方,所以我正在尋找替代方案。

我的網路設置為 /30,因此廣播流量在 xxx3 發送給我。我嘗試在本地機器上打開子網,使 xxx3 不再是我的廣播地址,但數據包的目標 MAC 地址是 ff:ff:ff:ff:ff:ff:xx:xx:xx:xx: xx:xx:xx:xx,所以我相信它仍然被解釋為廣播包。

有沒有辦法更改數據包的目標 MAC 地址?

除了 iptables 之外,還有其他工具可以執行此操作嗎?

如果我找不到解決這個問題的方法,我想我會在本地接受這個數據包並編寫一個程序,將數據包數據發送到所需的接收者。有什麼不應該工作的理由嗎?

謝謝!

如果我想將所有流量從一個介面傳遞到另一個介面,那麼使用網橋就可以了,但是,我需要將一些流量保留在本地。

據我所知,使用 iptables 轉發廣播數據包是不可能的。我最終只是編寫了一個程序,在不同的介面上重新傳輸接收到的數據包。

您希望連接兩個相同的網路。您需要執行 SNAT 和 DNAT,以便網路 A 將網路 B 視為具有不同的地址。但是為什麼要轉發廣播包呢?如果要使 SMB 和自動發現協議等協議工作,那麼當它們從廣播到的網路外部獲得回复時,它們可能無論如何都無法工作。

如果您想擁有唯一的地址,而不是 NAT,那麼您想要的就是所謂的網橋。十五年前,我使用 OpenBSD 做到了這一點。我想在同一子網中的兩組電腦之間插入防火牆。這很容易而且效果很好。當時 Linux 無法做到這一點(橋接是,但沒有防火牆),今天我認為它應該是可能的。

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