全4826文字
PR

経路情報を集約して節約

 インターネットが抱える問題の1つがネットワークの増大である。正確な数は不明だが一説では百数十万あるといわれている。

 それに伴い、ルーターが経路を決めるために保持しているルーティングテーブルも増大の一途をたどっている。

 ルーティングテーブルには宛先ネットワーク1つごとに1つのエントリーが記載されている。このためネットワーク数が増えるにつれて、ルーティングテーブルのエントリー数が増えることになる。

 それにより、ルーティングテーブルから宛先ネットワークを見つけるための時間が長くなったり、ルーティングテーブルを保持するためのメモリー量が大量に必要になったりする。ルーター同士の経路情報の交換にかかる時間も長くなる。

 このルーティングテーブル増大の解決策の1つがCIDRによる経路集約である(図5)。経路集約とは、複数の経路を1つの経路として表現すること。これにより、複数のエントリーを1つにまとめてルーティングテーブルを圧縮させられる。

図5●経路集約でルーティングテーブルのエントリーを圧縮
図5●経路集約でルーティングテーブルのエントリーを圧縮
経路集約は複数の経路を1つの経路として表現すること。IPアドレスが連続していて次のルーターが同じネットワークは1つのエントリーにまとめられる。
[画像のクリックで拡大表示]

 例えば図5のルーターXのルーティングテーブルには、ルーターYの先の4つのネットワークが記載されている。192.168.40.0/24~192.168.43.0/24は上位22ビットが「11000000 10101000 001010」と共通しているので、プレフィックス長が22の1つのネットワークにまとめられる。

ネット君 経路をまとめる……?

インター博士 簡単な例で言えば「東京都港区虎ノ門4丁目」「東京都港区虎ノ門3丁目」「東京都港区台場1丁目」という住所があるとすると、これらをまとめて「東京都港区」と表現する感じだな。

究極の経路集約

 ルーティングでは、ルーティングテーブルに存在しないネットワーク宛てのパケットは廃棄されてしまう。とはいえ、すべてのネットワークをルーティングテーブルに記載するのは不可能だ。そこで、ルーティングテーブルにないネットワーク宛てのパケットの送り先(経路)を指定する方法が決められている。それがデフォルトルートである。

 ルーターは受信したパケットの宛先とルーティングテーブルを照合し、合致するエントリーがあれば記載された次のルーターに転送。合致するエントリーがなければ「その他すべて」を表すデフォルトルートのエントリーに従う。いわば、デフォルトルートはすべての宛先を示す特殊な経路情報であり、すべてのネットワークを集約した経路といえる。

 デフォルトルートは「0.0.0.0/0」と表記する。プレフィックス長が0ということは、「0.0.0.0と先頭から0ビット目までが一致している」ということであり、言い換えれば「0.0.0.0と1ビットも一致していない」ということになる。この条件にはすべてのネットワークが合致する(図6)。

図6●デフォルトルートはすべての経路を集約した経路
図6●デフォルトルートはすべての経路を集約した経路
デフォルトルートはすべての経路を表す特殊な経路。ルーティングテーブルにないネットワーク宛てのパケットが送られる。経路が1つしかないルーターはデフォルトルートだけを記載しておけばよい。
[画像のクリックで拡大表示]

 パケットの廃棄を防ぐため、デフォルトルートはルーティングテーブルに必ず記載する。外部への経路が1つしかないネットワークでは、どのネットワークに送る場合でも次のルーターは1つだけなので、デフォルトルートだけを記載すれば十分である。