如何对广播包进行 DNAT

如何对广播包进行 DNAT

我正在做一个项目,需要将一些广播数据包 DNAT 到远程机器的 IP 地址。到目前为止,我了解到 IP 表只能 DNAT 单播数据包,而不能 DNAT 广播数据包。我正在寻找一种可以在 Ubuntu 或 Centos 上监听这些广播数据包,然后将其转换为单播数据包的软件,以便将它们发送到不同网络上的远程机器。我知道 Windows 上有几个选项,如“多端口转发器”和“AUTAPF”,但我正在寻找适用于 Linux 的类似实用程序。

基本设计

答案1

作为 AUTAPF 的替代方案,索卡特可以使用。

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

其中 10.1.1.255 - 广播转发目标

基于 [使用 socat 进行 UDP 端口转发(作者:Matt Ryall)] 和 [使用 Socat 进行 IP 多播]

只是妖魔化它。

或者端口转发

udp配置文件

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 }
}

答案2

如果您的目标是在目的地再次接收广播的数据包,那么您可以使用 L2 VPN。它不进行 DNAT,而是将原始数据包通过隧道传输到隧道所指向的位置,然后在最终目的地与隧道划定界限。

相关内容