• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:winsockにて複数NIC環境でのBC送受信)

複数NIC環境でのBC送受信

このQ&Aのポイント
  • 複数のNICがある環境でのUDPブロードキャスト送受信についての疑問です。
  • パソコンAからのブロードキャスト送信では複数のNICに同じパケットが届くが、パソコンBからの送信では優先NICからのみ届く
  • 1つのIPアドレスからの複数のNICによる送信処理の実装は必要であり、他のIPアドレスからの送信は考慮しなくてよいかどうかについて知りたい

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どのような目的でこのようなおかしなネットワーク構成が 必要になっているのかよくわからないので、以下、的確な 回答になってないかもしれません。 > 192.168.1.1 には 192.168.2.2 と 192.168.3.3 の両方から > 同じパケットが届くものかと思っていたのですが、 > 優先NICからのみ届くというのが正常な動作なのでしょうか? 検証したことはないですが、ありうる動作と考えてよいと思います。 メトリックの低いアドレスだけブロードキャストしたのかもしれないし、 もしかすると、両方のNICから同時ブロードキャストしているので、 どちらかのパケットが衝突により破棄されたのかもしれません。 基本的には両方のNICにブロードキャストしたかったら、 255.255.255.255宛ではなく192.168.1.255宛と192.168.2.255宛の 両方にそれぞれディレクテッドブロードキャストをします。 ただ、それでパケットが届いている保証はない(LAN内で衝突破棄される 可能性がある)ので、通常は相手の反応を見てリトライします。 > 違うIPアドレスから同じパケットが届くケース > (相手のパソコンが複数NICかどうか)は考えなくても > 良いということでしょうか? 違うIPアドレスから同じパケットが届くかどうかは、 複数NICかどうかだけでなく、ネットワークの構成や 送信元の処理方法によって、いろいろありうると思います。 どのような目的でこのような確認をしているのかわかりませんが、 違うIPアドレスから同じパケットが届くケースはないという前提で システムやプログラムを設計するのはやめた方がよいと思います。

tunamelt
質問者

お礼

ご返答頂きありがとうございます。 補足で書かせて頂いた通り、簡単なメッセンジャーソフトを作成しています。 ログインしたことをブロードキャストで相手に知らせ、通知を受けた相手は送信元のIPアドレスで相手先を特定するように設計していたのですが、相手が複数のNICを搭載していた場合にどうなるのだろうと思いテストをしてみました。 当初は 192.168.1.0/24 でテストをしており、当然複数のIPアドレスから通知が来てしまうものだと覚悟していたので、IPアドレスで管理するのは最適ではないと感じ始めていたのですが、実際にやってみると優先NICからしかパケットが届かず疑問に思ってしまいました。 同じアドレス帯であるのが原因かと思い、質問内容のような特殊な環境でテストを行ってみたのですが、それでも結果が変わらずに困惑してしまい質問をさせて頂きました。 > 違うIPアドレスから同じパケットが届くケースはないという前提で > システムやプログラムを設計するのはやめた方がよいと思います。 ご指摘頂いた通り、今回の動作が正常であるかどうかに関わらず、違うIPアドレスから同じパケットが届くケースはありうることだと思いました。 色々なケースを考慮し、IPアドレスでユーザを管理するのではなく、ユニークIDなどを持たせて個々を判断するように構築し直そうと思います。 お忙しい中ご返答頂きありがとうございました。

tunamelt
質問者

補足

簡単なメッセンジャーソフトのようなものを作成していて、複数のNICが搭載されているPCでどのような挙動になるのかをテストしています。 色々な環境(例えば、192.168.1.0/24 と 192.168.2.0/24 が混在していたり、DHCPサーバがなくIPアドレスに統一性がない場合など)でも動作するようにしたいためリミテッド ブロードキャストを利用しています。 ディレクティッド ブロードキャストを行えばルーティングテーブルから自動でNICが選択されると認識はしているのですが、リミテッド ブロードキャストの場合は複数のNICから同じパケットが送信されると思っていたので、今回のような結果を疑問に思い質問させて頂きました。

関連するQ&A