
転送先を決定するために使われる論理
ネットワーク上のすべてのデバイスが、メモリ上のルーティングテーブルを維持しています。
このテーブルの維持は、低機能の PC では簡単でしょうし、高機能ルータでは複雑なものでしょう。
テーブルは IP アドレスのペアでできています。「どこへ送りたいのですか?」を示すアドレスが「そこへ行き着くために、本当はどこへ送ればよいのですか?」というアドレスに結び付けられています。
たとえば、ルーティングテーブルに、「ネットワーク 160.6.0.0 向きのすべてのフレームは IP アドレス 36.0.0.1 に送る」ということが書かれているかもしれません。
隣接した宛先へは、必ず直接送ることができます。この場合は自分自身が、ネットワーク 36.0.0.0 にいるに違いなく、最終目的 160.6.0.0 に送信しようとしているということです。
ルーティングテーブルは、デバイスに対し、フレームをどうやって送ったらよいのか告げるための情報を提供します。
興味深い例外が2つあります。一つは、直接送ることができるような場合です。この場合、フレームは指定された IP アドレスの宛先に直接送られます。
フレームをルータに送る必要はありません。つまり宛先が自分と同じサブネットにあることを知っているということです。
もう一つは、マスク処理後の宛先アドレスをテーブルの中の有効なエントリと比較しても、一致する値がないという場合です。
この場合はデフォルトゲートウェイアドレスという特別な値を使うことになります。
「0.0.0.0」というアドレスと、ルータの DLC アドレスがペアになっているものです。
テーブルの中に宛先アドレスが見つからなかったとき、そのフレームをルータに送ることになるのですが、これがそのアドレスです。
フレームは以下の決定に従って行われます。
- 宛先 IP アドレスをマスクします。自分の IP アドレスをマスクします。結果が同じなら宛先は同じネットワークにあることになします。
フレームを宛先データリンクアドレスに直接送ります。
- 宛先が同じサブネットになければ、正確で完全な 32 ビットの宛先アドレスがルーティングテーブルの中にあるかどうかを調べます。
これはホスト指定経路と呼ばれるものです。このような経路が指定されていれば、テーブルの指し示す宛先 IP へフレームを送ります。
これは、この宛先が隣りのルータであることを暗示しています。このルータは目的地までの経路上にあります。
- ルーティングテーブルにホスト指定経路がなければ、テーブルの中を探す検索キーとして使えるよう計算をした、マスク処理後のアドレスを使います。
つまり、テーブルの中にネットワークやサブネットが指定されているかどうかを調べるのです。
見つかれば、テーブルで指定された IP アドレスにフレームを送ります。これも、この IP アドレスが隣のルータのアドレスであるということを暗示しています。
- ホスト指定経路のアドレスも、ネットワークやサブネットワークのアドレスもなければ、デフォルトゲートウェイのアドレスにフレームを送ります。
- 指定されたデフォルトゲートウェイがなければ、「指定のないすべての宛先へ直接送ることができる」とみなされます。
宛先 IP アドレスの物理アドレスを見付け、フレームを直接宛先に送ります。この場合「代理 ARP 」が動作していることもあります。
「代理 ARP 」に関しては、別項目で説明します。