サブネット
サブネット(subnet)とは、IPネットワークを論理的に細分化したもののことである。1つのネットワークを2つ以上のネットワークに分割することをサブネット化(subnetting)という 。
同一のサブネットに属するコンピュータは、IPアドレスの上位のビットが同じになっている。これにより、IPアドレスは2つの部分に分けられ、サブネット内で共通の部分をネットワークアドレスまたはルーティングプリフィックス(routing prefix)といい、それ以外の個々のコンピュータによって違う部分のことをホストアドレスまたはホスト識別子(host identifier)という。ホストアドレスは、特定のホストまたはネットワークインタフェースの識別子である。
ネットワークアドレスはCIDR表記で表すことができる。これは、ネットワークアドレスの後にスラッシュ(/)とネットワークアドレスのビット数を表記するものである。例えば、198.51.100.0は、所定のアドレスから始まるIPv4ネットワークのプレフィックスで、24ビットがルーティングプレフィックス用に割り当てられ、残りの8ビットがホストアドレス用に予約されている。198.51.100.0から198.51.100.255までの範囲のアドレスがこのサブネットに属する。IPv6アドレス2001:db8::は、296個のアドレスを持ち、32ビットのルーティングプレフィックスを持つ大きなアドレスブロックである。
IPv4の場合、サブネットの大きさはサブネットマスクで表すこともできる。これは、サブネット内の任意のIPアドレスとサブネットマスクのビット単位のAND演算を適用すると、ルーティングプレフィックスが生成されるビットマスクである。サブネットマスクもIPアドレスのようにドット区切りの10進表記で表される。例えば、255.255.255.0はプレフィックス198.51.100.0のサブネットマスクである。
送信元アドレスと宛先アドレスのルーティングプレフィックスが異なる場合、トラフィックはルータを介してサブネットワーク間で交換される。ルータはサブネット間の論理的または物理的な境界として機能する。
既存のネットワークをサブネット化することの利点は、適用する状況により異なる。CIDRを使用したアドレス割り当てアーキテクチャや大規模な組織では、アドレス空間を効率的に割り当てる必要がある。サブネットがより大きな組織内の異なるエンティティによって管理上制御されている場合には、サブネット化により、ルーティング効率が向上したり、ネットワーク管理に利点をもたらす可能性がある。サブネットは、組織のネットワークアドレス空間をツリー状のルーティング構造に分割し、階層的アーキテクチャで論理的に配置することができる。
インターネットなどのIPネットワークに参加しているコンピュータは、少なくとも1つのIPアドレスを持っている。通常、このアドレスは各デバイスに固有のもので、ネットワークサーバによってDHCPを使用して自動的に、あるいは管理者によって手動で、またはステートレスアドレス自動構成によって自動的に構成できる。
アドレスは、ホストを識別し、ネットワーク上でそれを見つけるという機能を果たす。最も一般的なネットワークアドレッシングアーキテクチャはInternet Protocol version 4(IPv4)であるが、その後継であるIPv6も2006年頃から普及してきている。IPv4アドレスは32ビットで構成されるが、読みやすさのために
1オクテット(8ビット)ごとに区切ってそれぞれを10進数表記し、ドットで区切る表記が行われる。これをドット数値記法という。IPv6アドレスは128ビットで構成されるが、16ビットごとに区切って16進数表記し(これをヘクステットという)、コロンで区切る表記が行われる。IPアドレスは、ネットワークプレフィックスとホスト識別子の2つの論理部分に分けられる。サブネット上の全てのホストは、同じネットワークプレフィックスを持つ。このプリフィックスはアドレスの上位のビットである。ネットワーク内でプレフィックスに割り当てられるビット数は、ネットワークアーキテクチャによってはサブネット間で異なる場合がある。ホスト識別子は固有のローカル識別子であり、ローカルネットワーク上のホスト番号またはインターフェース識別子のいずれかである。
このアドレス構造により、発信元と宛先のネットワークプレフィックスが異なる場合は、ルータと呼ばれる特別なゲートウェイコンピュータを介して、複数のネットワークにまたがるIPパケットを宛先ホストに選択的にルーティングできる。発信元と宛先のネットワークプレフィックスが同じである場合は、宛先ホストに直接送信することができる。ルータはサブネット間の論理的または物理的な境界を構成し、それらの間のトラフィックを管理する。各サブネットは、指定されたデフォルトルータによって処理されるが 、内部的にネットワークスイッチによって相互接続された複数のイーサネットセグメントで構成されている場合がある。
アドレスのルーティングプレフィックスは、IPアドレスに使用されるのと同じ形式で記述されたサブネットマスクによって識別される。例えば、IPv4アドレスの最上位24ビットで構成されるルーティングプレフィックスのサブネットマスクは255.255.255.0となる。ネットワークプレフィックスの仕様の最新の標準形式は、IPv4とIPv6の両方に使用されるCIDR表記である。アドレスの後にスラッシュ(/)とプレフィックスのビット数を表記する。IPv6では、これがネットワークプリフィックスやルーティングプレフィックスを表すための唯一の形式である。
例えば、サブネットマスクが255.255.255.0のIPv4ネットワーク192.0.2.0は192.0.2.0と表記され、IPv6表記2001:db8::はアドレス2001:db8::とそのネットワークプレフィックスが上位32ビットであることを表す。
IPv4において、CIDRが導入される前のクラスフルネットワークでは、ネットワークプレフィックスはその上位ビットの範囲によってクラスA、B、Cが決定され、そこからサブネットマスクが決定された。CIDRの導入以来、ネットワークインターフェースへのIPアドレスの割り当てには、アドレスとサブネットマスクという2つのパラメータを必要となる。
IPv4送信元アドレスと、それに関連付けられたサブネットマスク、および宛先アドレスが与えられると、ルータは宛先がオンリンク(on-link)かオフリンク(off-link)かを判断できる。宛先のサブネットマスクは必要ではなく、一般にルータには知らされない。しかし、IPv6の場合は、オンリンクの決定方法が異なり、近隣探索プロトコル(NDP)を必要とする。ネットワークインタフェースへのIPv6アドレス割り当ては、オンリンクプレフィックスの一致の要件を持たず、逆もまたそうである(リンクローカルアドレスを除く)。
ローカルに接続された各サブネットは、接続された各ルータのルーティングテーブル内の個別のエントリで表される必要があるため、サブネット化によってルーティングが複雑になる。ただし、ネットワークを慎重に設計することで、ツリー階層のブランチ内にあるより遠いサブネットの集合へのルートをスーパーネットに集約し、単一のルートで表すことができる。
IPv4のサブネットマスクは32ビットで構成されている。これは、上位ビットからの1の連続と、それに続く0の連続である。1はネットワークプレフィックスに使用されるアドレス内のビットを示し、末尾の0はその部分がホスト識別子として指定されることを示す。
次の例は、アドレス(192.0.2.130)とそれに関連付けられたのサブネットマスク(255.255.255.0)からネットワークプレフィックスとホスト識別子を分離する方法を示している。
IPアドレスとサブネットマスクをビット単位でAND演算した結果、ネットワークプレフィックスは192.0.2.0となる。ホスト識別子130は、アドレスとサブネットマスクの1の補数のビット単位のAND演算によって得られる。
サブネット化は、ホスト部の上位ビットをネットワークプレフィックスの一部として指定し、サブネットマスクを適切に調整するプロセスである。これにより、ネットワークをより小さなサブネットに分割する。次の図は、上記の例のホスト部分からネットワークプレフィックスに2ビット移動して、以前の4分の1のサイズの小さいサブネットを形成した例である。
IPv4は、特別なアドレス機能の認識を容易にするために、特別に指定されたアドレスフォーマットを使用する。大きなネットワークをサブネット化することによって作られるサブネットのうち最初と最後のものは伝統的に特別な指定を持ち、そして早い時期から特別な使用法の意味合いを持っていた。さらに、IPv4は、リンク上の全てのホストへのブロードキャスト送信に、全ビットが1のホストアドレス、つまりネットワーク内の最後のアドレスを使用する。
大きなネットワークをサブネット化して得られる最初のサブネットは、サブネットビットグループ内の全てのビットが0に設定されている。そのため、これを「サブネットゼロ (subnet zero)」という。大きなネットワークをサブネット化して得られる最後のサブネットは、サブネットビットグループ内の全てのビットが1に設定されている。そのため、これを「オールワンサブネット (all-ones subnet)」という。
IETFは元々、これら2つのサブネットの実運用上での使用を推奨していなかった。プレフィックス長が利用できない場合、分割前の大きなネットワークと最初のサブネットは同じアドレスを持つため、混乱を招く可能性がありる。同様の混乱は、最後のサブネットの終わりのアドレスとして指定されるブロードキャストアドレスでも起こる。そのため、パブリックインターネット上で全て0と全て1で構成されるサブネット値を予約することが推奨され、サブネットごとに利用可能なサブネットの数が2つ減ることになる。この非効率性は取り除かれ、1995年にその慣行は廃止されたと宣言され、現在ではレガシーな機器を扱うときにのみ関係がある。
全て0のホスト値と全て1のホスト値は、それぞれサブネットのネットワークアドレスとそのブロードキャストアドレス用に予約されている。CIDRを使用するシステムでは、サブネットの可用性ではなくホストの可用性のために、2の数が減算され、2n個のサブネット全てが使用可能になる。例えば、CIDRでは、ネットワークの16個のサブネット全てが使用可能である。各ブロードキャストアドレス、つまり*.15, *.31, …, *.255は、各サブネットワークのホスト数のみを減らす。
利用可能なサブネットの数、およびネットワーク内の可能なホストの数は、容易に計算できる。下記の例は、サブネットを作成するために2ビットが借用され、4 (22)個のサブネットを作成した場合である。
サブネットを表すビットの後の残りのビットは、サブネット内のホストのアドレス指定に使用される。上記の例では、サブネットマスクは26ビットで構成され、ホスト識別子に6ビットが残される。これにより、62(26−2)個のホストの組み合わせが可能になる。
一般に、サブネット上で使用可能なホストの数は 2h−2 である(hはアドレスのホスト部分に使用されるビット数)。使用可能なサブネットの数は 2n である(nはアドレスのネットワーク部分に使用されるビット数)。
サブネットマスクが31ビットの場合は規則が当てはまらない。これは、ホスト識別子が1ビットで、2つのアドレスしか許容されないことを意味する。このようなネットワークは通常はポイント・ツー・ポイントのリンクであり 、2つのホスト(エンドポイント)しか接続できないので、ネットワークとブロードキャストアドレスの指定は不要である。
のネットワークは、サブネットマスクを1ビットずつ増やすことによって、次のサブネットに分割できる。これは、ネットワークでアドレス指定できるホストの総数に影響する。
IPv6アドレス空間の設計は、IPv4とは大きく異なる。IPv4でサブネット化する主な理由は、特に企業で、利用可能な比較的小さいアドレス空間の利用効率を向上させることだった。IPv6にはそのような制限はない。エンドユーザでさえも大きなアドレス空間が利用可能であり、制限要因とはならないからである。
IPv4と同様に、IPv6のサブネット化も可変長サブネットマスキング(VLSM)およびCIDRの概念に基づいている。これは、グローバル割り当て空間の間、および、サブネットとインターネット全体のカスタマーネットワーク内のトラフィックのルーティングに使用される。
IPv6サブネットは、常にホスト識別子に64ビットのアドレスを使用する。アドレスサイズが128ビットなので、ルーティングプレフィックスは/ 64となる。より小さなサブネットを使用することも技術的には可能であるが、ステートレスアドレス自動設定には64ビットが必要であるため、イーサネットテクノロジに基づくローカルエリアネットワークには実用的ではない。Internet Engineering Task Force(IETF)は、2つのホストしかないポイント・ツー・ポイントリンクにはサブネットの使用を推奨している。
IPv6はブロードキャストトラフィックやネットワーク番号に対して特別なアドレスフォーマットを実装していないため、サブネット内の全てのアドレスをホストのアドレス指定に使用できる。オール0のアドレスは、サブネットルータエニーキャストアドレスとして予約されている。
過去には、IPv6カスタマーサイトに推奨される割り当ては、48ビット()プレフィックスを持つアドレス空間だった。この勧告は、例えば56ビットのプレフィックスを使うなど、より小さなブロックを推奨するために修正された。住宅用カスタマーネットワークのもう1つの一般的な割り当てサイズは64ビットのプレフィックスである。