ニュースレターNo.9/1997年7月発行
3. 最新技術情報
3.2 Class A BlockからのIPアドレスのサブアロケーションについて
本題に入るまえに、現在のIPアドレスの割り当て機構について、簡単に説明しましょう。
インターネットでは、IANA (Internet Assigned Numbers Authority)より大きなブロックがそれぞれの地域NIC (InterNIC, RIPE-NCC, APNIC)に割り当てられ、その中の適当なブロックがローカルNIC(たとえばJPNIC)に割り当てられます。
JPNICの場合APNICの管轄になるので、JPNICで手持ちのブロックがなくなると、APNICに申請し、APNICから新たなブロックを割り当ててもらいます。JPNICに割り当てれたアドレスブロックをさらに細かく分けたものを、JPNIC会員を通じて、エンドユーザーに割り当てるという形をとっています。このように、日本のユーザーに今後どのようなIPアドレスが、割り当てられるのかは、APNICに割り当てられたアドレスブロックに依存することになります。
今までは、202.XXX.XXX.XXX, 210.XXX.XXX.XXXなど、従来でいうところのClassCのIPアドレスのブロックがJPNICに割り当てられていました。このためユーザーに割り当てられるアドレスもClass Cのブロック範囲になっていました。
しかしながら、最近になってIANAからAPNICや他の地域NICに、いわゆるClassAのブロックが割り当てられました。この割り当て範囲は次のようになっています。
地域NIC | ブロック | アドレス範囲 |
APNIC | 61/8 | 61.0.0.0 - 61.255.255.255 |
RIPE-NCC | 62/8 | 62.0.0.0 - 62.255.255.255 |
InterNIC | 63/8 | 63.0.0.0 - 63.255.255.255 |
Class Aのブロックを細かく分けて利用するという方法は、今回急に始まったわけではなく、すでに何年も前から検討されており、実際に39/8のブロックを使って、1995年の1月から11月にかけて運用実験が行われました。これについては、RFC1797にその実験でのアドレスの使用方法が、またその結果がRFC1797にまとめられています。
Class AのブロックはClass Cのブロックの4倍のアドレス空間があります。実際には過去にClass Aの単位で一部の組織に割り当てられ使用されているために、Class Aの範囲全部とはいきませんが、それでもClass Cよりはるかに広いアドレス空間を利用できるため、IPアドレスの枯渇を防ぐために、Class Aのブロックのサブアロケーションを行うことは、インターネットの運用上必須のものとなります。
本稿執筆時点では、まだAPNICからJPNICに対して61/8のブロックが割り当てになってはいませんが、すでにRIPE-NCCからは62/8のブロックからの割り当てが行われ、実際にエンドユーザーがClass Aの範囲に入るIPアドレスを利用しています。したがって、APNICからJPNICへ61で始まるブロックが割り当てられ、実際に日本のエンドユーザーが利用するようになるのも時間の問題と思われます。
このように,従来Class Aとよばれていたアドレスブロックを、分割して利用するためには、運用上注意しなければならない点があります。そのもっとも重要な点は、クラスレス(class-less)ルーティングの運用技術です。ここでクラスレスとクラスフル(class-fulつまりA、B、Cといったクラスに依存するかどうか)のルータの挙動について簡単に説明してみましょう。
以下のようにルータa、b、とホストcがつながっている例を考えます。
1 2 1 2
1が接続になっているネットワークが61.2.3/24で、a2とb1の間のネットワークは202.12.30/24だったとします。またb2の先にはいくつかのルータを経て、61.10.20/24というネットワークに接続になったcというホストがあったとします。
ここで、もしルータaがクラスフルだった場合、ルータaはおろか61.2.3/24に接続になったどのホストも、ホストcと通信することができません。これはルータaがクラスに依存したルーティングを行うため、a1とa2のネットワークのクラスが違うと(この場合Class AとClass C)、a1の自分のI/Fのアドレスの属するクラス(つまり61/8)をすべてa1側にあると判断してしまうためにbより先に接続になった61/8の一部のネットワークに対するルーティングを行うことができなくなるためです。
ルータaがクラスレスの場合は、a1側に接続になっているネットワークは61.2.3/24であると判断するため、この場合は問題なくホストCとのルーティングを確保できます。
この例は直接接続になっているネットワークでの例ですが、ISPの境界が、a1とb2にあり、a, bが同一ISPであった場合を考えてみましょう、このISPを通過するような通信において、aやbのルータがクラスフルであった場合は、深刻な通信不能の障害を起こすことが容易に想像できると思います。つまりClass Aのブロックから分割したIPアドレスの割り当てが行われた場合、クラスレスの運用技術が必須となります。
最近のワークステーションやルーターは、多くがクラスレスなルーティングに対応しつつあるとはいえ、一部には対応が不完全な製品があります。またクラスレスな機能をもっていながら、出荷状態ではクラスフルな挙動を示す製品もあります、これらの点を注意してクラスレスな運用を行えるよう心がける必要があります。この他に注意する点についてはRFC2036にありますので、そちらを参照されるのがよいでしょう。