サブネットマスクとは
IPアドレス枯渇問題への対策は、第1回で紹介したプライベートアドレスの制定とNATだけではない。IPアドレスの枯渇という事態が予測されるようになったのは1990年代初頭である。その原因ともなっていたのが、クラスによるIPアドレス空間の割り当てだった。特にクラスBは、割り当てを希望するユーザーが多かった。これは、クラスAの24ビットものホストアドレス空間を必要とするユーザーがほとんどいなかったことと、クラスCの254台という数は多くのユーザーにとって不足だったためだ。結局このクラスによる割り当てが、アドレス空間割り当ての非効率化の要因となってしまったのである。
そこで従来のクラスを基にしたアドレス範囲の割り当て(クラスフルアドレッシング)をやめ、クラスに関わらずユーザーのネットワーク規模に合わせて柔軟にアドレス範囲を割り当てられる「クラスレスアドレッシング」に移行することが考えられた。
クラスフルアドレッシングでは、IPアドレスの上位ビットのパターンでクラスを判別していた。しかし、クラスレスアドレッシングでは、サブネッティング(後述)で用いられていた「サブネットマスク」を使用する。サブネットマスクは、IPアドレスのどこまでがネットワークアドレスかを示すために導入された新しいパラメータである。
サブネッティングとは、もともとクラスAやクラスBのネットワークを複数に小分けする技術である。また、サブネッティングによって分割されたネットワークを「サブネット」という。
たとえば、図1に示すように1つのクラスBアドレス空間を割り当てられた場合、最大6万5534台のコンピュータを接続するだけのアドレス空間を独占することになる。これを、図のようにホストアドレス部の上位ビットを個々のサブネットを示す番号として割り当てれば、ホストアドレス空間の小さなネットワークを複数作ることができる。ここで用いられたのが、サブネットマスクというわけだ。
このホストアドレスの範囲で十分なユーザーであるならば、図1の例では従来1つしか割り当てられなかったアドレス空間が最大8つまで割り当て可能になる。逆に、連続した複数のクラスCやクラスBのネットワークを合併して、より大きなネットワークとして扱うことも可能である。こちらは「スーパーネッティング」と呼ばれる。
サブネットマスクの仕組み
サブネットマスクは、IPアドレスと同じように32ビット長で、8ビットずつ区切って10進数に変換した4つの数値で表わされる(図2)。ただし、サブネットマスクはIPアドレスと異なり、任意の番号を表わすものではなく、0または1の連続によりIPアドレスのネットワーク部とホスト部の範囲を表わす。
サブネットマスクは最上位ビットから、ネットワークアドレスとホストアドレスの境界までのビットをすべて“1”にし、ホストアドレスに対応するビットはすべて“0”に設定する。
これによって、クラスBやクラスAのアドレス空間を複数に分割し、より多くのユーザーに割り当てられるようにしたのである。
現在のIPv4アドレスは必ずサブネットマスクとともに表記されるようになっている。サブネットマスクの表記は、IPアドレスと同様の10進数に変換する方法のほか、サブネットマスクの連続している“1”の数をIPアドレスのうしろに“/nn”という形で付与する「プレフィックス表記」という方法もある。図2の例をプレフィックス表記で表わすと「172.16.33.160/19」となる。
(次ページ、「アプリケーションを識別するポート」に続く)
この連載の記事
-
第5回
ネットワーク
Windowsネットワークの名前と番号 -
第4回
ネットワーク
インターネットで使うドメイン名と名前解決 -
第3回
ネットワーク
EthernetでのID「MACアドレス」を理解する -
第1回
ネットワーク
TCP/IPで使われるIPアドレスとポート番号 -
ネットワーク
完全解剖「名前とアドレス」<目次> - この連載の一覧へ