ルータの経路決定の仕組み
前パートの通り、宛先が同一のネットワークにある場合はARPを用いた直接送信になるが、異なるネットワークへのパケットの中継はルータを介した間接送信になる(図3)。では、ルータはどのようにパケットを宛先のネットワークまで送っているのだろうか?
2つのネットワークが1台のルータで接続された構成を考えてみよう。この場合、ルータはパケットの配送経路を2つだけ知っていれば済む。次に、3つのネットワークが2台のルータで直列的に接続された構成を考えてみよう。2台のルータはそれぞれ端末からパケットを受け取ったら、宛先の端末に直接届けるのか、あるいは別のルータに再中継を依頼するのか、パケットの宛先IPアドレスを見て適切に判断しなければならない。
このように、ネットワーク全体の構成が複雑になると、ルータの仕事が増える。ルータは自分自身が直接つながっているネットワークだけでなく、ネットワーク全体のトポロジ※3を知っていなければならないことになる。
※3:トポロジ ネットワーク内でルータや端末がどのように接続され、全体構成がどのようになっているのかを示す言葉。「位相幾何学」を意味したが、ネットワークでは機器の位置関係や接続関係を表わす概念として使われるそれでは、複数のルータによってパケットが中継される場合、どのルータが最終目的地までの経路を決定するのだろう? この問題に対しては、2つの対策が考えられてきた。
1. ホップ・バイ・ホップ(hop-by-hop)ルーティング
中継点に位置するすべてのルータが独立して経路を判断する。それぞれのルータは、パケットの宛先アドレスを見て、個別に最適な経路を判断して次のルータに送る。
ソース(source)ルーティング
送信元の端末から最初にパケットを受け取ったルータ(エッジルータ)、あるいは送信元の端末が配送経路を決定し、その情報をパケットに付けて次のルータへ向けて送り出す。それ以降の中継ルータは、エッジルータまたは送信元の端末がパケットに付加した情報に従って、次の中継ルータに送る。
この両者のそれぞれに長所・短所があるが、IPネットワークでは歴史的にホップ・バイ・ホップルーティングが使われてきた。ルーティング処理が複数のルータに分散されるため、個々のルータの負荷が軽くなり、ネットワーク全体のコストが下がるというのが最大の理由だ。また、ネットワークが部分的に変更されたとき、変更箇所の近隣のルータを再設定するだけで対応できるという点も大きい。中央集権的な管理者がいないインターネットにも適している。
ただし、障害や設定ミスにより経路がループしたり、ネットワーク全体としては最適でない経路が選択される可能性もある。
ルーティングテーブル
では、ルータはどのように経路を決めているのだろうか? ルータは「ルーティングテーブル(経路表)」と呼ばれるデータベースをメモリに保持している。このデータベースは「宛先ネットワーク」をキーとして、「次の中継ルータ」や「パケットを送出するネットワークインターフェイス※4」などの情報を関連して記録している。ホップ・バイ・ホップルーティング方式では、ルータは以下のように動作する(図4)。
※4:ネットワークインターフェイス パケットやフレームが実際に送受信される出入口を指す用語で、Ethernetポートのほか、ISDN BRIポート、V.35ポートなどの物理インターフェイスがある- 端末やルータからパケットを受信
- パケットの宛先IPアドレスから宛先ネットワークアドレスを計算
- ルーティングテーブルを参照し「次の中継ルータ」等の情報を取得
- 次の中継ルータへパケットを送信
ここで、宛先ネットワークがルーティングテーブルにない場合は、あらかじめ「デフォルトゲートウェイ」として登録しておいたルータへ、パケットを送信する。この経路を「デフォルトルート」と呼ぶ。この動作は「自分が経路情報を持っていない宛先については、経路選択は別のルータに委ねる」という考え方に基づく。
(次ページ、「静的ルーティングと動的ルーティング」に続く)
この連載の記事
-
最終回
ネットワーク
アクセスルータの機能を知っていますか? -
第4回
ネットワーク
レイヤ3スイッチのさまざまな機能 -
第2回
ネットワーク
高価な企業向けスイッチはここがすごい! -
第1回
ネットワーク
ネットワーク機器の代表「スイッチ」の役割とは? -
ネットワーク
図で解剖!スイッチ&ルータ - この連載の一覧へ