放送255.255.255.255に対する回答

放送255.255.255.255に対する回答

特定のボックスで(255.255.255.255)のブロードキャストメッセージに対する応答を受信できません。例えば

送信DHCP発見

wlan0から255.255.255.255までのDHCPREQUEST

そのネットワーク上のDHCPサーバーからの応答を表示することもできます。

10.0.1.1で始まるDHCPOFFER

ただし、実際のインターフェイスはこれを受信しません。同じネットワーク上の他のすべてのインターフェイスとは異なるボックスで動作します。このボックスにはファイアウォールのない最新の最小 Debian があります。

それは何ですか?

PS:問題はDHCPにしかありません(クライアントが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

しかし、なぜカーネルルーティングだけでは十分ではないのかわかりません...

関連情報