如何DNAT广播数据包

我正在一个项目,我必须DNAT一些广播数据包到远程机器的IP地址。 到目前为止,我已经知道IP表只能使用DNAT单播数据包,而不能使用DNAT广播数据包。 我正在寻找一种可以在Ubuntu或Centos上侦听这些广播数据包的软件,然后将它们转换为单播数据包,以便将它们发送到不同networking上的远程机器。 我知道有几个像“多端口转发”和“AUTAPF”的选项,但我正在寻找一个类似的Linux实用工具。

基本devise

如果您的目标是在目的地再次接收广播包,则可以使用L2 VPN。 它不是DNAT,但将原始数据包隧道到隧道所在的位置,然后从最终目的地的隧道进行划分。

作为AUTAPF的替代品,可以使用socat 。

$ sudo socat UDP4-RECVFROM:139,broadcast,fork UDP4-SENDTO:10.1.1.255:139 

哪里10.1.1.255 – 广播转发目标

基于[ 与Matt Ryall的socat的UDP端口转发 ]和[ IP与Socat的多播 ]

只是妖魔化它。

或者portfwd

udp.cfg

 user nobody group nobody udp /* UDP packets */ { /* * All packets on port 10000 are forwarded to 127.0.0.1:11000. */ 10000 { => 127.0.0.1:11000 } }