为什么 Linux 会吃掉来自 0.0.0.0 的广播响应?

为什么 Linux 会吃掉来自 0.0.0.0 的广播响应?

我正在 Linux 中编写一个实用程序来管理 LAN 上尚未分配 IP 地址的设备。如果设备使用源 IP 1.0.0.0 响应 UDP 广播,则工作正常。但是,如果设备使用 0.0.0.0 响应(类似于 DHCP 的工作方式),则 Linux 会在以下位置看到响应tcpdump

13:01:38.388851 IP 192.168.1.36.57950 > 255.255.255.255.5005: UDP, length 5
13:01:38.389190 IP 0.0.0.0.5005 > 192.168.1.36.57950: UDP, length 0

但来自 0.0.0.0 的响应不会返回到我的实用程序(即使它以 root 身份运行,这不是必需的 - 如果我可以作为普通用户进行广播,我应该能够获得响应)。

是什么导致来自 0.0.0.0(实际上是整个子网 0/8)的响应丢失? 1.0.0.0 好多少? (我需要配置该值吗?或者我们可以依赖 1.0.0.0 工作吗?)

相关内容