サブネット範囲の確認
通信の開始時は、同一サブネットか異なるサブネットかでフレームの送信先が異なります。これは、どうやって判断しているのでしょうか?
本項では、サブネット範囲の確認について実技を交えて説明します。
試験環境
試験環境はパソコンがあり、ルーターを介してインターネットに接続しているよくある一般家庭のネットワークを想定しています。
パソコンは、ルーターからDHCP(Dynamic Host Configuration Protocol)でIPアドレスを取得していて、インターネットへの接続は問題ない前提です。
試験
パソコンのIPアドレスは192.168.1.2です。1つはIPアドレスを変えずに、サブネットマスクだけを255.255.0.0に変更します。もう1つは、IPアドレスを192.168.2.2、サブネットマスクを255.255.0.0に変更します。
どちらのIPアドレスに設定しても、ルーターのIPアドレス192.168.1.1は同じサブネット内にあります。
この時の動作の違いを、以下のコマンドプトンプトでpingコマンドにより確認して下さい。
ラジオボタンでパソコンのIPアドレスを変更できます。コマンドは、pingコマンドだけ対応しています。
解説
ラジオボタンで192.168.1.2を選択した時は、ping 192.168.1.1を実行すると応答があります。192.168.2.2を選択した時は、「要求がタイムアウトしました。」と表示されて応答がありません。その理由を次から説明します。
パソコンのIPアドレスが192.168.1.2の場合も、192.168.2.2の場合も、サブネットマスクが255.255.0.0の場合は192.168.0.0をサブネットと認識します。このため、ルーターのIPアドレス192.168.1.1は同じサブネット範囲として認識します。
パソコンは同じサブネットの場合は、直接通信できると考えて192.168.1.1にARPを送信してMACアドレスを知った後、pingを送ります。
ルーターがpingを受信して送り返す際、自身のIPアドレスが192.168.1.1でサブネットマスクが255.255.255.0のため、パソコンのIPアドレスが192.168.1.2であれば同じサブネットと認識します。
このため、直接通信できると考えパソコンのMACアドレス向けに応答します。
つまり、互いに異なるサブネットマスクを設定しても、通信可能です(これは理論を説明するための例で、サブネットマスクが異なるのは推奨されません)。
パソコンのIPアドレスが192.168.2.2の場合、パソコンはルーターを同じサブネットと認識しますが、ルーターはパソコンのIPアドレスを異なるサブネットと認識します。
このため、デフォルトルートとして向いているインターネット側のルーターに応答を返してしまい、パソコン側にpingの応答が届かないためタイムアウトになります。
このように、通信する際は必ず同じサブネット範囲かどうかを判断した上で直接送信するか、ゲートウェイに送るのか判断しています。その判断は、自身に設定された内容に基づいているだけで、ネットワークとして正しい設定か(今回の例ではサブネットマスクが正しいか)どうかまで確認している訳ではありません。
自宅でも簡単にできる確認なので、実際にやってみると理解が深まると思います。その際は、設定を元に戻すのを忘れないようにしてください。
関連ページ
- 基本編「IPアドレスの設定」
- IPアドレスやサブネットマスクなどを簡単に説明しています。
- 応用編「サブネットとCIDRの計算方法」
- サブネットの計算を詳細に説明しています。