Networking

來自多播 255.255.255.255 的響應

  • October 13, 2017

在一個特定的盒子上,我無法收到對(255.255.255.255)廣播消息的響應。例如

發送 DHCPDISCOVER

wlan0 到 255.255.255.255 上的 DHCPREQUEST

甚至可以看到來自該網路上 DHCP 伺服器的響應

來自 10.0.1.1 的 DHCPOFFER

但實際介面沒有收到它。它適用於所有其他介面,也適用於同一網路上的其他盒子。這個盒子有新鮮的最小 Debian,沒有防火牆。

會是什麼?

PS:問題不僅在於 DHCP(即使客戶端因此沒有獲得 ip)。但是任何發送到 255.255.255.255 並得到響應的消息都會到達 box,但無法從介面讀取。

這裡是這個介面的 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

嗯,問題解決了。它實際上與一些我不太了解的東西有關。基本上,除了正常路由,出於某種原因,為了能夠從單播端點讀取,我應該添加預設路由、源和指標。因此,以下完全解決了 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

不過不確定,為什麼核心路由還不夠…

引用自:https://unix.stackexchange.com/questions/397810