ネットワークの教科書NETWORK

第3章 データが届くしくみ3-1コース全体 19回中9本目

入門読了 約9分

デフォルトゲートウェイ ― 宛先が「外」かどうかをどう判断するか

PCは通信のたびに、宛先が自分と同じネットワークか外かを判定しています。判定の手順と、外向けの通信をデフォルトゲートウェイに預けるしくみを、具体例で確認します。

結論

同じネットワークなら直接渡す。違えばゲートウェイに預ける

PCが何かを送るとき、必ず最初に1つの判定をしています。宛先は自分と同じネットワークにいるか、それとも外にいるかという判定です。

この記事の核心宛先が同一ネットワークなら、相手に直接フレームを渡します。宛先がなら、 自分では届けられないのでデフォルトゲートウェイ(家庭ではルータ)に預けます。 この1つの判定が、すべての通信の入口にあります。
手順

判定のしかた

判定は次の1行に尽きます。自分のIPアドレスと宛先のIPアドレスに、それぞれ同じサブネットマスクを当ててネットワークアドレスを求め、一致すれば同一ネットワーク、違えば外です。 サブネットマスクからネットワークアドレスを求める計算は2-3 サブネットマスクの計算のやり方と同じです。

例1:同一ネットワークになる場合

自分のPCが 192.168.1.10/24、宛先が 192.168.1.200 の場合です。

項目自分のPC宛先
IPアドレス192.168.1.10192.168.1.200
サブネットマスク/24(255.255.255.0)(自分と同じマスクを当てる)
ネットワークアドレス192.168.1.0192.168.1.0
どちらも 192.168.1.0一致。宛先は同一ネットワークです。

例2:外になる場合

今度はサブネットマスクを /26 に変えます。自分のPCが 192.168.1.10/26、 宛先が 192.168.1.130 の場合です。

項目自分のPC宛先
IPアドレス192.168.1.10192.168.1.130
サブネットマスク/26(255.255.255.192)(自分と同じマスクを当てる)
ネットワークアドレス192.168.1.0192.168.1.128
192.168.1.0192.168.1.128不一致。先頭3オクテットが同じ192.168.1.x でも、宛先は外です。

例2が示す通り、先頭のオクテットが同じかどうかを目で見て判断するのは危険です。マスクが/24とは限らないので、 必ず自分に設定されているサブネットマスクを当てて計算する必要があります。

同一ネットワーク

同一ネットワークのとき:相手に直接渡す

判定の結果、宛先が同一ネットワークだと分かれば、話は単純です。ゲートウェイを経由せず、宛先の機器へ直接フレームを渡します。

ただし、直接渡すには宛先のMACアドレスが必要です。IPアドレスは分かっていてもMACアドレスは分からないので、ARPという仕組みで調べます。ARPの詳しい流れは、次回(3-2)で扱います。

外のとき:デフォルトゲートウェイに預ける

宛先が外だと分かれば、自分ではそこまで届けられません。そこでデフォルトゲートウェイ(家庭ではルータ)にフレームを預け、 その先の中継を任せます。

ここが混同しやすい点ゲートウェイに預けるとき、宛先IPアドレスは最終目的地(相手)のまま変わりません。書き換わるのは宛先MACアドレスだけで、 ゲートウェイのMACアドレスになります。IPとMACの役割の違いは2-1 MACアドレスとIPアドレスの違いで、ARPが実際にどちらのMACアドレスを 尋ねているかは3-2 ARPで詳しく扱っています。

つまりPCから見ると、外向けの通信はすべて「宛先MACをゲートウェイにして渡す」の一言で片付きます。 本当の宛先がどこにあるかをPC自身が気にする必要はなく、その先の経路はゲートウェイ(ルータ)に任せます。

注意

デフォルトゲートウェイが設定されていないと、どうなるか

デフォルトゲートウェイは「外」向け通信の預け先です。設定されていなければ、預ける相手がいないので外への通信はできません

一方、同一ネットワーク内の通信はゲートウェイを経由しないため、そのまま可能です。 「同じ部屋の中の人とは会話できるが、部屋の外には出られない」状態だとイメージすると分かりやすいはずです。

実践

自分の設定を確認する

自分のPCに設定されているデフォルトゲートウェイを見てみましょう。

ip routeデフォルトゲートウェイを見る(Linux)
$ ip route
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10 metric 100

# 「default via」の行がデフォルトゲートウェイ。ここでは 192.168.1.1 です。
ipconfigデフォルトゲートウェイを見る(Windows)
> ipconfig
イーサネット アダプター イーサネット:

   IPv4 アドレス . . . . . . . . . . . . . . : 192.168.1.10
   サブネット マスク . . . . . . . . . . . . : 255.255.255.0
   デフォルト ゲートウェイ . . . . . . . . . : 192.168.1.1

# 「デフォルト ゲートウェイ」の行に表示されます。家庭ではルータのIPアドレスであることがほとんどです。
練習

練習問題(全5問)

選んでから「採点する」を押すと、解説つきで答え合わせができます。

Q1デフォルトゲートウェイの役割として正しいものは?
Q2宛先が同一ネットワークか外かを判定するには、何を比較する?
Q3自分のPCが 192.168.1.10/24、宛先が 192.168.1.200 のとき、これは同一ネットワーク?
Q4自分のPCが 192.168.1.10/26、宛先が 192.168.1.130 のとき、これは同一ネットワーク?
Q5デフォルトゲートウェイが設定されていないPCで起こることは?
次の回

コースを読み進める