第8回 アドレス・クラスとさまざまなIPアドレス基礎から学ぶWindowsネットワーク(2/3 ページ)

» 2003年01月17日 00時00分 公開

 以上のようなクラスA/B/CというIPアドレスの分類は、ネットワークの規模に応じてIPアドレスを使い分けるために決められたものである。だがIPアドレスの値による固定的なネットワーク・マスクでは、あまり柔軟にネットワークを構築することができないという問題点がある。例えば、複数あるネットワーク・セグメントのうち、そのほとんどは総ホスト数が250台以下だが、そうでないネットワーク・セグメントも幾つかあるとする。このような場合は、クラスCで全ネットワークを構成することはできず、幾つかはクラスBにしなければならない。管理する都合からいえば、すべてを同じクラスにして、系統立てて管理したいところだ。

 そこで、ユーザー自身が自由にネットワーク・アドレスとホスト・アドレスを決定できるようにするために、TCP/IPでは「サブネット分割」という手段が用意されている。これは、クラスごとのデフォルトのネットワークをさらに細かく分割して、より小さな「サブネット」として取り扱うという手法である。いままではIPアドレスを「ネットワーク・アドレス」と「ホスト・アドレス」の2つに分けていたが、サブネット対応のTCP/IPネットワークでは、新たに「サブネット・アドレス」部を設けている。つまりIPアドレスを「ネットワーク・アドレス」と「サブネット・アドレス」「ホスト・アドレス」の3つに分けるのである。

サブネット分割
デフォルトのアドレス・クラスだけでは柔軟性に欠けるので、さらにサブネットに分割することにより、より細かい単位のネットワークを構築できるようになる。172.16.0.1というアドレスはもともとはクラスBであり、ネットマスクは255.255.0.0である。サブネットに1byte分割り当てることにより、1ネットワークあたりのホスト数が250台程度と少なくなるものの、新たに256のサブネットワークが確保できるので、ネットワーク構築の自由度が高くなる。

 新たに用意される「サブネット・アドレス」は、もともとは「ホスト・アドレス」として使われていた部分である。ホスト・アドレスの上位何bitかをサブネットの番号として扱う(サブネット・アドレスは、ネットワーク・アドレスに隣接するように分ける)。元のネットワークをいくつのサブネットに分けるかはネットワークの構成に応じて自由に決めてよい。バイト単位で分けておくと、IPアドレスを10進数のドット区切り形式で表現した場合に分かりやすいというメリットがあるが、実際にはビット単位で任意に決めることができる。

 サブネット分割した場合のネットマスク値は、「ネットワーク・アドレス」と「サブネット・アドレス」の両方の部分を含むような形のマスクになる。例えばクラスBのデフォルトのネットマスクは「255.255.0.0」であるが、このネットワークをさらに256個のサブネットに分割するならば、最終的なネットマスクは「255.255.255.0」となる。

ネットマスク(2進数表記) ドット区切り表記
11111111 11111111 00000000 00000000 255.255.0.0
11111111 11111111 10000000 00000000 255.255.128.0
11111111 11111111 11000000 00000000 255.255.192.0
11111111 11111111 11100000 00000000 255.255.224.0
11111111 11111111 11110000 00000000 255.255.240.0
11111111 11111111 11111000 00000000 255.255.248.0
11111111 11111111 11111100 00000000 255.255.252.0
11111111 11111111 11111110 00000000 255.255.254.0
11111111 11111111 11111111 00000000 255.255.255.0
11111111 11111111 11111111 10000000 255.255.255.128
11111111 11111111 11111111 11000000 255.255.255.192
11111111 11111111 11111111 11100000 255.255.255.224
11111111 11111111 11111111 11110000 255.255.255.240
11111111 11111111 11111111 11111000 255.255.255.248
11111111 11111111 11111111 11111100 255.255.255.252
ネットマスクの例
クラスBのデフォルト・ネットマスク(255.255.0.0)を1bitずつ増加させた場合のネットマスクの値。クラスBのデフォルト・ネットマスクは16bitであるが、ホストの総数などに応じた小さなサブネットに分割することにより、IPアドレス空間を効率よく利用することができる。なお、表の右端の10進数表記における128や192、224、……という数値は、ネットマスクの表記時によく出てくる数値なので、そのマスク・パターン(ビット・パターン)とともによく覚えておいていただきたい。

   

グローバルIPアドレスのサブネット分割
 
現在では、組織内のホストにプライベートIPアドレス(後述)を割り当ててネットワークを構築するのが普通である。管理者は適当なクラスのプライベートIPアドレスを使って、ネットワーク全体を自由に構築すればよい。例えばクラスCのプライベートIPアドレス(192.168.0.0〜192.168.255.255/24)を使えば、サブネット分割を使わなくても256個のネットワーク・アドレスを使用することができる。

 だがいまから10年ほど前までは、インターネットに接続する場合は、各ホストにグローバルIPアドレスを割り当てて使うのが普通であった。インターネットに接続するホストの数を公式な機関に申請して、クラスBやクラスCのIPアドレスを“組織に対して”割り当ててもらうのである(現在ではプロバイダ経由でしか割り当てられず、プロバイダを変えるとIPアドレスも変わることになる)。そして組織内では、その公式なクラスBやクラスCのIPアドレスをサブネット分割して、各ネットワークやホストなどに割り当てていた。


 クラスごとのデフォルトのネットマスクではなく、ユーザー自身が決めた自由なネットマスク(正確には、デフォルトの「ネットマスク」と、サブネット・アドレスのための「サブネット・マスク」を合成したもの)を使うことにより、ネットワークの規模などに応じて、柔軟にネットワークを構築できるようになった。ホスト数の多いネットワークには大きなサブネットを割り当て、ホスト数の少ないネットワークには小さなサブネットを割り当てればよいからだ。

 ただし、TCP/IPの設定や管理を行う場合には、ネットマスクについても常に意識しておく必要がある。クラスのデフォルト・ネットマスクは、IPアドレスごとに固有なので間違うことはないが、サブネットを使ったネットワークでは、正しいネットマスクは環境ごとに異なるからだ。ネットマスクの値を間違えると、ブロードキャストやルーティングなどが正しく行えなくなる可能性がある。TCP/IPの設定やトラブルシューティングでは、IPアドレスだけでなく、必ずネットマスク(やデフォルト・ゲートウェイ、DNSサーバなど)についても確認する必要がある。

サブネット分割からCIDRへ

 サブネットを使うことによりネットワーク構成の柔軟性が増したが、「ネットワーク・アドレス」と「サブネット・アドレス」および「ホスト・アドレス」の3つを意識しなければならない。これに対して現在では、より汎用性の高い、「CIDR(Classless Inter-Domain Routing、サイダー)」というIPアドレスの管理方法が一般的になっている。

 CIDRは、もともとはネットワークを集約して(サブネットを集めてより大きなネットワークに変換すること)、ルーティング情報(ルーティング・テーブル)の圧縮を図るために考えられた機能である(詳細については次回のルーティングの項で解説)。すでに説明したように、現在のTCP/IPの仕様では、ネットマスクの値は最上位ビットから何ビット連続して1がセットされているかで表すことができる。例えばIPアドレスが172.16.0.1でネットマスクが255.255.240.0ならば、172.16.0.1/20と表現することができる。このようにCIDRでは、IPアドレスのうち、最上位の方から何bitをネットワーク・アドレス部に使うかという方法で管理している。サブネット分割の場合と違って、IPアドレスの「クラス」や「サブネット・アドレス部」というものを意識せずに(任意のIPアドレスと任意のネットマスク長を組み合わせることができる)、すべてのIPアドレスを「IPアドレス」と「ネットマスク(のビット数)」だけで統一的に管理している。

CIDRにおけるIPアドレスの扱い
デフォルトのIPアドレス・クラスやサブネットには関係なく、IPアドレスとネットマスクをシンプルに管理する。

 このようにしてネットワーク・アドレスを扱うことにより、自由にルートの集約や分割が可能になる。例えば172.16.0.0/20と172.16.16.0/20という2つのネットワークがあった場合、これをまとめて172.16.0.0/19と表現することもできる(上位から19bitが同じため)。このようにして、ルーティング・テーブルのエントリ数を節約することにより、ルータの負担を減らすことができるなどの効果がある(詳細は次回)。インターネットの世界では、このCIDRにより、世界的なルーティング情報の集約や管理などを行っている。またネットワークの規模に応じた適切なアドレス割り当てができるというメリットもある(例:ホスト数が1000台程度ならば、ホスト部が10bitのネットワーク・アドレスを割り当てればよい。従来ならばクラスBが必要だった)。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。