私はアドレス解決プロトコルと、それがサブネット上のすべてのデバイスにブロードキャストして宛先の MAC アドレスを見つける仕組みを理解しています。コンピューターが ARP を通じて宛先を見つけられない場合、宛先は別のサブネット上にあると判断され、ルーターに送信されることも知っています。
宛先が実際に地球の反対側にあり、ルータが ISP のルータにホップする必要がある場合、ルータはまずどのようにしてデフォルト ゲートウェイの IP アドレスを見つけるのでしょうか。
答え1
最初の段落は正しくありません。逆です。
ARP は、宛先が現在のネットワーク上にあることがわかっている場合に使用されます。シーケンスは次のようになります。
宛先のルーティングテーブルを確認する
ルーティング テーブルは、特定性の順にテストされるため、エントリ 192.0.0.0/8 と 192.168.0.0/16 は両方とも 192.168.1.1 と一致しますが、2 番目のエントリの方がより特定的に一致します。0.0.0.0/0 はすべてと一致し、デフォルト ルートです。
接続済みですか、それともルーティング済みですか?
一致したルートは、接続されたネットワーク (送信デバイスが同じネットワーク上の IP アドレスを持つ) であるか、そうでないかのいずれかになります。接続されている場合、ARP が発行され、MAC アドレスが取得され (デバイスが存在すると想定)、パケットはレイヤー 2 (イーサネット) に渡されて送信されます。
ネットワークが接続されていない場合は、ゲートウェイIPアドレスが設定されます。そのIPアドレスはしなければならない接続されたネットワーク上にある必要があります。したがって、再度、MAC アドレスが取得されたゲートウェイ IP アドレスに対して ARP が発行され、パケットはレイヤー 2 に渡されてゲートウェイ IP に送信されます。
次のホップで
そこに到達すると、まったく同じプロセスが実行されます。ゲートウェイは接続されたインターフェイス上に宛先 IP アドレスを持っているか、それを別のルーターに渡します。
ルーティングテーブルの作成
ルーティング テーブルにデータを入力する方法は多数あります。接続されたネットワークのルートは、常にインターフェイス アドレスに基づいて OS によって構成されます。DHCP が使用される環境では、インターフェイスに IP アドレスが発行され、通常はそれにデフォルト ゲートウェイが付随します。そのため、DHCP が完了すると、デバイスには接続されたネットワーク ルートとデフォルト ルートが設定されます。
より基本的な設定は静的です。デバイスには、設定内に静的に割り当てられた IP アドレス、デフォルト ゲートウェイ、および場合によってはいくつかの静的ルートがあります。これらはすべて、デバイス自体で手動で設定されます。
動的ルーティング
明らかに、インターネットのように複雑なものを扱う場合、手動で静的ルートを追加することは困難な提案です。いくつかのレベルではまだ発生しますが、すべては動的ルーティング プロトコルによってサポートされています。これは、実質的にルータが IP アドレス範囲のセットを「所有」し、これを他のルータに伝える場所です。すべてのルータは、お互いからルーティングを学習します。
つまり、ISP は新しい IP 範囲を取得し、それを設定に追加してネットワーク外にアドバタイズすることができ、インターネットの残りの部分は追加の設定を必要とせずにそれを学習します。
免責事項
この説明全体は、実際に起こることの簡略版であり、プロセスの展開方法を変える可能性のある多くの例外、警告、およびさまざまなテクノロジーがありますが、これが基本的なレベルでの動作方法です。
答え2
ここで DHCP サーバーが登場します。DHCP サーバーは、IP 255.255.255.255 を使用してネットワーク上で検出要求を送信します。送信元 IP は 0.0.0.0 ですが、これは自身の IP がまだわからないためです。
ただし、ここで MAC アドレスが関係してきます。また、Discover パケットは、ターゲット MAC アドレス FF:FF:FF:FF:FF:FF へのデータ リンク層イーサネット フレームにカプセル化され、ソースはネットワーク インターフェイスの MAC アドレスになります。
FF:FF:FF:FF:FF:FF のパケットを受信した最初のスイッチは、その検出パケットを、送信元のポートを除くすべてのスイッチ ポートに転送します。これは、DHCP サーバーがそれを確認するまで、FF:FF:FF:FF:FF が誰であるかがわからないためです。DHCP サーバーが最初のスイッチである場合、スイッチは DHCP サーバーであるため、要求を転送しません。スイッチはこのフレームを受信し、IP 255.255.255.255 に情報を送り返します。これは、送信元 IP が 0.0.0.0 であるため、誰が接続しているかがわからないためです。ただし、接続した MAC アドレスはわかっているため、送信元 MAC が DHCP サーバー、宛先 MAC が検出パケットを送信したデバイスであるオファー パケットがカプセル化され、ブロードキャストではなくユニキャストとして送信されます。
デバイスはこのオファーを受信し、リースを要求し、DHCPサーバーはリースを承認します。
また、デフォルト ゲートウェイによって通信が他のデバイスを経由する必要がある場合、通常はルートが静的に設定されているか、つまり手動で配置されていることを意味します。これは、特定の設定により、どのデバイスが実際にデフォルト ゲートウェイであるかをデバイスが認識できなくなるため、動的ルートとは対照的です。
答え3
インターネット接続の大部分は、DSL の場合は PPPoA、ケーブルの場合は PPPoE など、何らかの形式の PPP を使用します。
PPP はポイントツーポイント プロトコル (結局のところ、それが名前の由来です) であり、そのため、デフォルト ゲートウェイは常に PPP 接続のもう一方の端にあるものになります。
これは、現状のままなので、何らかの方法で検出する必要はありません。唯一の問題は、通常はそうであるように、PPP 接続のリモート エンドをデフォルト ゲートウェイとして積極的に使用するかどうかです。