Windows上でルーティングテーブルを確認すると、IPv4ブロードキャスト(255.255.255.255)に対するルーティングテーブルに同じメトリック値を持つインターフェースが2つ登録されていました。
この場合、メトリック値の一番小さいもののうち、最初に登録されているインターフェースのみにブロードキャストパケットは送信されるというのがルーティングの仕様でしょうか?それとも、同値のメトリック値のすべてのインターフェースにはブロードキャスト送信されるのが正解でしょうか?
また、ブロードキャストのルーティングにおいて、同じメトリック値のインターフェースが複数存在すること自体はあり得ることなのでしょうか?
> route print
IPv4 ルート テーブル
==============================
アクティブ ルート:
ネットワーク宛先 ネットマスク ゲートウェイ インターフェイ ス メトリック
: : (省略) : :
255.255.255.255 255.255.255.255 リンク上 192.168.56.1 281
255.255.255.255 255.255.255.255 リンク上 192.168.0.4 281
==============================
Windows上でブロードキャストを使ったアプリを作っていて以前は期待通りに動いていたのが、最近動かなくなっているのに気づいて調べ始めました。アプリから255.255.255.255に対して送信したブロードキャストパケットが相手に届いていなかったです(WireSharkでも送信されていないことを確認)。
上のテーブルのインターフェース=192.168.56.1はVirtualBoxのHost-Only Ethernet Adapterであり、192.168.0.4側は有線LANのインターフェースでした。今回のアプリではブロードキャストパケットを有線LAN(192.168.0.4)側のインターフェースに送信して欲しかったのですが、どうもVirtualBox側のI/Fにしか送信されていなかったようなのです。
試しに、VirtualBox側のインターフェースを止めるか、順序を入れ替えて有線LAN側が先になるようにしてみると、ブロードキャストパケットは有線LAN側に送信されました。アプリも期待通りに動き始めました。
質問をまとめると、
- ブロードキャスト用のルーティングテーブル内に同じメトリック値を持つインターフェースが2つ以上あるとき、最初のインターフェースのみに送信されるのは正しい動作なのか?
ということです。
ブロードキャストの場合はすべてのインターフェースに送信されるものと思っていたのですが、これは間違いでしょうか。
詳しい方、コメントをよろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。