質問: 前回の質問で、NICが複数ある環境でWOLのマジックパケットを送るNICを指定するには、ブロードキャストIPアドレスを指定するといいと聞きました。 マジックパケットの送信には以下のソフトを使っています。 このアプリケーションは引数にMACアドレスとブロードキャストアドレスを指定するのですが、 引数のブロードキャストアドレスからPCに複数あるNICの中からブロードキャストを送るNICをどうやって認識しているのでしょうか。 以前、違うフリーソフトを使っており、ブロードキャストが255.255.255.255で送っていた時は送りたいNICを判断できない状況でした。
回答: たぶんIPルーティングの仕組みによるものではないかと思います。 OSがルーティングテーブルをもっていて宛先アドレスと送信インターフェースの組み合わせを管理しています。 コマンドプロンプトで route print を実行すると確認できます。 1. ネットワーク宛先 : 宛先ネットワークのアドレス 2. ネットマスク : 宛先ネットワークのサブネットマスク 3. ゲートウェイ : ゲートウェイのIP 4. インターフェイス : パケットを送出するNICのIP 5. メトリック : 宛先ネットワークへの経路が複数ある場合小さいメトリック値の経路を選択 例えばNICが2つあり、それぞれ次のIP/サブネットマスクだとします。 NIC(1): 192.168.1.10/255.255.255.0 NIC(2): 192.168.2.20/255.255.255.0 IPとサブネットマスクからブロードキャストアドレスはそれぞれ次のようになります。 サブネット(1): 192.168.1.255 サブネット(2): 192.168.2.255 あとはルーティングテーブルからパケットを送信するNICを割り出せます。 この辺の処理をOSがやってくれてます。 (追記) > > 以前、違うフリーソフトを使っており、ブロードキャストが255.255.255.255で送っていた時は送りたいNICを判断できない状況でした。 > > > 憶測ですが ルーティングテーブルで 255.255.255.255 宛てのインターフェースがループバックアドレス (127.0.0.1) になっていると 自分宛てにしか送信されないのでそのせいかもしれません。