在一个特定的盒子上,我无法收到对 (255.255.255.255) 的广播消息的响应。例如
发送 DHCPDISCOVER
wlan0 上的 DHCPREQUEST 到 255.255.255.255
甚至可以查看该网络上 DHCP 服务器的响应
从 10.0.1.1 开始的 DHCPOFFER
但实际接口没有接收到它。它适用于所有其他接口以及同一网络上的其他盒子。这个盒子有新鲜的最小的 Debian,没有防火墙。
会是什么?
PS:问题不仅仅在于 DHCP(即使客户端因此无法获取 IP)。但是发送到 255.255.255.255 并得到响应的任何消息都会到达框,但无法从界面读取。
这是该接口的 netstat -g 的输出
wlan0 1 224.0.0.251
wlan0 1 all-systems.mcast.net
更新1:根据此处的请求,该接口的路由表
**me@host:~ $ ip address show dev wlan0**
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether *[MAC]* brd ff:ff:ff:ff:ff:ff
inet 192.168.10.3/24 brd 192.168.10.255 scope global wlan0
valid_lft forever preferred_lft forever
**me@host:~ $ ip route show dev wlan0**
192.168.10.0/24 proto kernel scope link src 192.168.10.3
**me@host:~ $ ip route show dev wlan0 table local**
broadcast 192.168.10.0 proto kernel scope link src 192.168.10.3
local 192.168.10.3 proto kernel scope host src 192.168.10.3
broadcast 192.168.10.255 proto kernel scope link src 192.168.10.3
但是,当远程端点回复零网络广播(例如255.255.255.255或192.168.10.255)时,我看到数据包即将到来并且无法处理它(例如netcat-ul 192.168.10.3 68未响应)
IP (tos 0x0, ttl 64, id 11512, offset 0, flags [DF], proto UDP (17), length 76)
192.168.10.3.68 > 192.168.10.255.67: UDP, length 48
IP (tos 0x0, ttl 64, id 509, offset 0, flags [none], proto UDP (17), length 156)
192.168.10.1.67 > 192.168.10.3.68: UDP, length 128
答案1
好了,问题解决了。这实际上与某些事情有关,我不太明白。基本上,除了常规路由之外,出于某种原因,为了能够从单播端点读取,我应该添加默认路由、源和指标。因此以下完全解决了192.168.10.3/24网络的问题
ip route add default via 192.168.10.1 src 192.168.10.3 metric 303 dev wlan0
ip route add 192.168.10.0/24 via 192.168.10.1 src 192.168.10.3 metric 303 dev wlan0
但不确定为什么内核路由还不够......