Linux

如何使用 iptables 通過 DNAT 將單播轉換為廣播?

  • February 27, 2020

如何通過 DNATiptables或其他方式將 UDP 單播數據包轉換為廣播地址?

除非您允許廣播流量傳遞到路由器(恕我直言,這是個壞主意),否則使用 iptables 是不可能的(AFAIK)。

DNAT 在 PREROUTING 中執行,數據包被 DNAT’ed 以在此鏈中廣播,當這些數據包到達路由決策時,它的廣播流量通常被阻止並且不會轉發。

其他選項是設置一個靜態 ARP 條目,將目標單播 IP 轉換為廣播乙太網地址。

實際上 iptables 不做任何廣播。當路由機制看到數據包有廣播目標地址時,它可能會這樣做

如前所述,預設情況下它會丟棄任何轉發的廣播

在最近的 Linux 核心(大約 5.0 版)中轉發定向 UDP 廣播成為可能

您需要修改廣播網路介面的 bc_forwarding 參數:

sudo sysctl -w net.ipv4.conf.eth1.bc_forwarding=1

(注意:似乎選項 net.ipv4.conf.all .bc_forwarding不起作用)

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