4.2 クラスを用いない新しい考え方 -- CIDR

前の節の最後に触れたように、ルーティング情報の肥大化がインターネット 全体の問題としてクローズアップされ、クラスを用いたクラスフルルーティング の限界が明らかとなってきました。そこで、IPv4の枠組みを大きく変えない 範囲での新しい方法が、Classless InterDomain Routing(CIDR)と呼ばれる 方法です。CIDR の考え方は実はサブネットとほぼ同じであると言えます。 違いは、それをインターネット全体で使えるようにした点にあります。 クラスを用いたルーティングでは、IPのみを見ればネットワーク部を取り出す ことが出来ました。一方、サブネットはサブネットの長さを知っている必要 があります。これはクラスフルのルーティングに比べて、記憶量が増えます が、経路をまとめることでテーブルの容量を減らすことが可能になります。

例えば、 次のように4 つのクラスCへのルーティングを考えると、それが同じところへの ルーティングであっても、全てのの行き先(202.11.103.1) を記憶する必要があります。

        202.11.96.0   ->    202.11.103.1
        202.11.97.0   ->    202.11.103.1
        202.11.98.0   ->    202.11.103.1
        202.11.99.0   ->    202.11.103.1

ここで、3byte目の 96,97,98,99 に着目しましょう。これを2進数で表現すると、


\begin{displaymath}
96 = 64 + 32 = 2^{6} + 2^{5}
\end{displaymath}

であることから、

        96 = ( 0110 0000 )
        97 = ( 0110 0001 )
        98 = ( 0110 0010 )
        99 = ( 0110 0011 )

となります。これを良く見ると、頭の 6bit は変化しておらず ( 0110 00 の部分は同じ)、変化している のは最後の 2bit のみです。つまり、4つを一度に 96/6 ( (0110 0000) が 96 なので)と表現できることが 分かります。従って、最初の4つのルーティング情報は、次のようにまとめる ことが出来ます(最初の16bitプラス6bit分がネットワーク部であることに 注意して下さい)。

        202.11.96.0/22   ->    202.11.103.1

このようにして、複数のネットワークセグメントへのルーティング情報をひとつ にまとめることで、ルーティング情報を減らすことが可能になっています。

一方、サブネットのように既にあるネットワーク区分を細分化する方向でも CIDRを使うことが出来ます。これは、プロバイダーなどが個別にIPを貸し出す 場合などの手法として使われることもありますし、より大きなクラスAやBを 細分化して使う方法として利用が可能になっています。

また、CIDRでネットワークに分割する際に、同じ大きさに分割する必要 はありません。任意の大きさに分割することは出来ませんが、区別出来れば どのように分割するかは自由です。この場合、注意しなければならないのは、 ネットワーク部でネットワークは区別されるという点です。 例えば、192.168.0.0/24を以下のように分割します。

         192.168.0.0/25     大きさ 128
         192.168.0.128/26   大きさ 64
         192.168.0.192/27   大きさ 32
         192.168.0.224/27   大きさ 32

この場合について、より明確にするためにアドレスの4byte目を二進表記で 書いてみましょう。

         192.168.0.(0000 0000)/25
         192.168.0.(1000 0000)/26
         192.168.0.(1100 0000)/27
         192.168.0.(1110 0000)/27

ルーティングにおいては、マスク長が長いものから順に検索されていきます。 最も長いものは /32 で、これは一台のホストへのルーティングを 意味しますし、最も短いものは /0 で、この場合どんな IP アドレス を適用しても 0.0.0.0 に必ずなるために、常に一致することになり、 通常 デフォルトルーティング と呼ばれます。

つまり、上の例では、/27 から適用され、その際に 24 + 3 bit がネットワーク部として参照されます。従って、最後の2つの 例では、4byte目の先頭3bitが (110) と (111) となるので、区別できる 訳です(当然、他のIPでも、(000) や (101) とは区別できます)。 一方、192.168.0.128/27192.168.0.160/27 をひとつに まとめたものが 192.168.0.128/26 なのであり、 192.168.0.0/27 , 192.168.0.32/27, 192.168.0.64/27, 192.168.0.96/27 をまとめたものが 192.168.0.0/25 になる訳です。 従って、 192.168.0.0/27, 192.168.0.32/27, 192.168.0.64/27 をひとつにまとめ、192.168.0.96/27 を別のネットとして運用することは出来ないことになります。

このようにして、IPの危機のルーティング情報の肥大化は当面回避されたのでした。 では、もう一方のIPの枯渇に関してはどうなったのかと言うと、プライベートアドレス とそれを変換する技術である NAT (Network Address Translation) や NAPT (Network Address and Port Translation)によって当面回避されていますが、 後者については後程勉強することにしましょう。

以下はプライベートアドレスとして利用が可能なもので、プライベートアドレス とは通常のIPとは違い、インターネット上の各サイト内部で自由に使えるアドレス です。従って、同じプライベートアドレスがあちこちで利用されていることに なるために、サイトの外部に出すことも、サイトの外から内に向かってくる パケットを受け入れることも禁止されています。

                   10.0.0.0/8
                   172.16.0.0/12
                   192.168.0.0/16



Noriyo Kanayama