Linux
如何使用 iptables 通過 DNAT 將單播轉換為廣播?
如何通過 DNAT
iptables
或其他方式將 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不起作用)