如何通过 DNATiptables
或其他方式将 UDP 单播数据包转换为广播地址?
答案1
使用 iptables 是不可能的(据我所知),除非您允许广播流量传递到路由器(在我看来这是一个坏主意)。
DNAT 在 PREROUTING 中执行,数据包被 DNAT 以在此链中广播,并且当这些数据包到达路由决策时,它是广播流量,通常会被阻止并且不会转到 FORWARD。
其他选项是设置一个静态 ARP 条目,将目标单播 IP 转换为广播以太网地址。
答案2
实际上 iptables 不做任何广播。当路由机制看到数据包有广播目标地址时,它可能会这样做
如前所述,它默认丢弃所有转发的广播
在最近的 Linux 内核(大约 5.0 版)中,已经可以转发定向 UDP 广播
需要修改广播网络接口的bc_forwarding参数:
sudo sysctl -w net.ipv4.conf.eth1.bc_forwarding=1
(注意:似乎选项 net.ipv4.conf。全部.bc_forwarding 不起作用)