前回は、IPアドレスの役割やフォーマット、そしてネットワーク部とホスト部を分ける「クラス」について紹介した。続いては、クラスの弊害とそれを克服する技術などを見ていこう。
丸ごとは使えないクラスBを組織内でさらに分割
約1677万台の端末を接続可能なクラスAや、約6万5000台の端末を接続可能なクラスBのアドレスは、そのままでは実際には使えない。これだけの端末を持つ企業であれば、事業所や部署が多数あり、それぞれの拠点ごとにネットワークを分割する必要が生じるからだ。このネットワーク分割を行なうのが「サブネッティング(サブネット化)」である。
サブネッティングでは、ホストアドレスの何ビットかをネットワークアドレスとして利用し、それぞれのネットワークをいくつかの「サブネット」に分割する(図1)。たとえば、1つのクラスBのネットワークには6万5534台の端末を収容できるが、16ビットのホストアドレスのうち5ビットをネットワークアドレスに流用すれば、2048台の端末を収容可能な32のサブネットに分割できる(32等分割)。8ビットを流用すれば、254台の端末を収容可能な256のサブネットに分割できる(256等分割)。
つまり、サブネッティングを行なうと使用可能なネットワーク数は増えるが、個々のネットワークに収容可能な端末の台数は減るというわけだ。こうしてできたサブネットは、元のネットワークのネットワーク部+サブネット部で一意に識別され、この「ネットワーク部+サブネット部」がサブネットのネットワークアドレスとなる。
サブネッティングを行なった場合、ネットワークアドレスとして何ビット使うのかを「サブネットマスク」という32ビットの値で明示する必要がある。ネットワークアドレスが26ビットであれば、サブネットマスクは先頭26ビットがすべて“1”の値を取るので、255.255.255.192である。
このサブネットマスクを端末やルータに明示的に設定しなかった場合、RFC1878で規定された値が採用される。規定値はクラスAなら255.0.0.0(8ビット)、クラスBなら255.255.0.0(16ビット)、クラスCなら255.255.255.0(24ビット)である。サブネットマスクが適切に設定されていれば“クラスに基づくネットワーク”とサブネットの違いはなく、どちらも問題なくルーティングが可能である。
クラスレスなアドレス割り当てとは
クラスA、B、Cを単位とするIPアドレスの割り当てを「クラスフルな割り当て」という。初期のクラスフルな割り当てが行なわれていた頃、クラスCは端末を254台しか接続できないため需要がなく、多くの組織は6万5534台の端末を接続できるクラスBを取得していた。その結果、1990年代の初頭にはクラスBのグローバルアドレスを新規に割り当てることができなくなった。
そこで、多数のグローバルアドレスを必要とする組織には、連続したクラスCをいくつかまとめて与えるという方法「スーパーネッティング」が考案された。たとえば、IPアドレスを4000個必要とする組織には16個のクラスCを割り当てるといった具合だ。さらにクラスCも枯渇してきたので、クラスAの未割り当て領域から必要なアドレス数を含むサブネットを切り出して割り当てることも行なわれている。
このようなスーパーネッティングやサブネッティングによるIPアドレスの割り当てを「クラスレスな割り当て」という。そして、クラスレスな割り当てに対応したルーティング技術を「CIDR(Classless Inter-DomainRouting:サイダー)」と呼ぶ。CIDRは可変調のサブネットマスク(VLSM)を用いる。これは、ネットワークアドレスにとらわれず自由にサブネットマスクを設定し、IPアドレスを割り当てる方式である。これにより、数百個しかIPアドレスを必要としない組織にクラスBを割り当てても、6万4000個以上の遊休アドレスが生じるという無駄にはならない。効率的なグローバルアドレスの割り当てが可能になったのだ。
ネットワーク間の通信
通信プロトコルにIPを用いるネットワークでは、同じEthernetセグメントの端末には同一のネットワークアドレスに属するようIPアドレスを割り当てる。また、異なるEthernetセグメントにまたがって、同じネットワークアドレスに属するIPアドレスを割り当ててはならない。すなわち、1つのEthernetセグメントは1つのサブネット(IPネットワーク)と同意である。
そして、パケットを直接に送付できるのは、同じサブネットに接続された端末同士に限られる。接続されたサブネットが異なる場合は、ルータやL3スイッチ(レイヤ3スイッチ)にパケットを中継してもらう必要がある。そこで、端末に対して「デフォルトゲートウェイ」となる機器のIPアドレスを設定しておく。デフォルトゲートウェイとは、自分(端末)と異なるネットワークに接続された端末と通信する際に、最初にパケットの中継を依頼するルータのことである。このルータは、自分と同じサブネットに接続されていなければならない。
以上のルールに従って正しく構築されたネットワークでの通信を見てみよう。通信を行なう端末は、サブネットマスクと通信相手のIPアドレスの論理積から相手のネットワークアドレスを取り出す。それが自分と同じネットワークアドレスと一致すれば、パケットを相手に直接送り付ける。自分のネットワークアドレスと異なっていれば、パケットをデフォルトゲートウェイへ向けて送出して中継をお願いする。ルータは受け取ったパケットに格納された「宛先のIPアドレス」を見て、正しい宛先へ届ける(図2)。
ただし、送信元の端末からパケットを受け取ったルータが、宛先の端末に直接パケットを届けることができるとは限らない。大規模な組織やインターネットでは、複数のルータを経て届けられることもある。パケットを中継するルータは、宛先までの適切な経路を選択しなければならない。この経路を決定する動作が、本特集のテーマ「ルーティング(経路選択)」である。
それでは、次回より、端末間の通信とルーティングについて実際の動作を詳しく見ていこう。
この連載の記事
-
第13回
ネットワーク
OSPFを実際に設定してみよう! -
第12回
ネットワーク
OSPFの通信手順と代表ルータを理解しよう -
第11回
ネットワーク
大規模ネットワークでも使えるOSPFとは? -
第10回
ネットワーク
ルーティング情報を自動更新するルーティングプロトコルとは? -
第9回
ネットワーク
経路が複数あるときのルータ設定とその動作 -
第8回
ネットワーク
ルーティングの基礎「静的ルーティング」を試してみよう -
第7回
ネットワーク
ルータとルータを結ぶネットワークの仕組みを知ろう -
第6回
ネットワーク
ルーティングテーブルからパケットの経路を決める手順とは? -
第5回
ネットワーク
ルーティングの基本動作を見てみよう -
第4回
ネットワーク
IPアドレスからMACアドレスを導くARPの中身を見てみよう -
第3回
ネットワーク
TCP/IPの基本、IPアドレスで直接通信する仕組みを知ろう - この連載の一覧へ