サブネット分割とCIDR表記の解説(例付き)
IPAddress-Lookup.com ·
もし、次のようなアドレスをじっと見つめたことがあり、 192.168.1.0/24 といったアドレスをじっと見つめ、あのスラッシュや数字が一体何を意味するのかと疑問に思ったことがあるなら、ここはまさにあなたにぴったりの場所です。サブネット分割とCIDR表記は、現代のネットワークの設計、セキュリティ、ルーティングの中核をなしていますが、このトピックは難解だと考えられがちです。しかし、必ずしもそうである必要はありません。 IPアドレスが実際には単なるビットの列であり、サブネットマスクが単に「ネットワーク」部分と「ホスト」部分の境界を示すものであると理解できれば、他のすべてが自然に理解できるようになります。 このガイドでは、基本原理から概念を構築し、いくつかの実際の例を詳細に解説し、キーボードの横に置いておけるチートシートも提供します。学習の過程では、当社の「サブネット計算ツール」を使って、すべての計算を自分で確認することができます。
サブネットとは何か、そしてなぜサブネット分割を行うのでしょうか?
サブネット(subnetworkの略)とは、大規模なIPネットワークを論理的に分割したものです。すべてのデバイスを1つの巨大なフラットネットワーク上に配置する代わりに、エンジニアはそのアドレス空間を、より小さく独立したブロックに分割します。 各ブロックはサブネットであり、独自のアドレス範囲、ネットワークアドレス、およびブロードキャストアドレスを持っています。ルーターはサブネット間でトラフィックを転送しますが、単一のサブネット内のデバイス同士は、ルーターを介さずに直接通信することができます。
サブネット分割は単なる手間ではありません。ネットワークがこのように分割されるのには、いくつかの具体的な理由があります:
- 効率性とアドレスの節約。組織に1つの巨大なアドレスブロックを割り当てることは、アドレスの浪費につながります。サブネット分割を行うことで、部門、フロア、または支店が実際に必要とするアドレス数を正確に割り当てることができ、最も近い巨大なクラスに切り上げる必要がなくなります。
- ブロードキャストドメインの縮小。ARPリクエストなどの特定のトラフィックは、サブネット上のすべてのホストにブロードキャストされます。数千台のデバイスが接続されたフラットなネットワークでは、こうした通信がネットワークの足を引っ張ることになります。サブネットに分割することで、各ブロードキャストドメインを小さく保ち、ネットワークの高速性を維持できます。
- セキュリティ上のセグメンテーション。サーバー、ゲスト用Wi-Fi、社内ワークステーションを別々のサブネットに配置することで、それらの間でファイアウォールルールやアクセス制御リストを適用できます。ゲスト用デバイスが侵害された場合でも、データベースサーバーとゲスト用デバイスが隔離されたサブネット上に存在していれば、ゲスト用デバイスはデータベースサーバーにアクセスできません。
- ルーティングの簡素化と高速化。ルーターはネットワークプレフィックスに基づいて判断を行います。適切に設計されたサブネットは単一のルートに集約できるため、ルーティングテーブルを縮小し、インターネット全体での転送判断を高速化できます。
バイナリの基礎を簡単に復習:ビット、オクテット、マスク
IPv4アドレスの長さは32ビットです。これは、ドットで区切られた4つの10進数で表記されます(例: 192.168.1.10ですが、これらの各数字は実際には「オクテット」と呼ばれる8ビットの2進数グループです。1オクテットあたり8ビット、4オクテットで、合計32ビットとなります。8ビットは2^8 = 256個の異なる値を表現できるため、各オクテットは0から255までの値を保持できます。
オクテット内のビット位置には、128、64、32、16、8、4、2、1という位値が割り当てられています。変換するには、1が設定されているビット位置の合計を求めます。例えば、オクテット 11000000 は 128 + 64 = 192 となり、 10101000 は 128 + 32 + 8 = 168 となります。したがって 192.168.1.10 2進数では次のようになります:
- 192 =
11000000 - 168 =
10101000 - 1 =
00000001 - 10 =
00001010
サブネットマスクも32ビットの値ですが、これは特別なもので、常に「1」の連続に「0」の連続が続く形式になっています。「1」はアドレスのネットワーク部分を、「0」はホスト部分を示します。マスク値 255.255.255.0 は 11111111.11111111.11111111.00000000 は、2進数で表すと24個の1に続いて8個の0となります。 アドレスが属するネットワークを特定するには、アドレスとマスクのビット単位のAND演算を行います。マスクが1である箇所ではアドレスのビットが保持され、マスクが0である箇所ではビットが0になります。このAND演算は、サブネット分割において最も重要な計算です。
クラスフルアドレッシング:簡単な歴史の解説
インターネットの黎明期、アドレスは最初のオクテットの値に基づいて固定された「クラス」ごとに割り当てられていました。これはクラスフル・アドレッシングと呼ばれ、現在では廃止されていますが、これを理解することで、CIDRがなぜこれほど大きな進歩であったのかが説明できます。
- クラスAは最初のオクテットが1から126までの範囲をカバーし、8ビットのネットワーク部分(マスク
255.0.0.0)、/8)を使用し、各ネットワークに約1,670万台のホストを割り当てました。 - クラスBは最初のオクテットが128から191の範囲をカバーし、16ビットのネットワーク部分(マスク
255.255.0.0、a/16)を使用し、ネットワークごとに約65,000台のホストを割り当てました。 - クラスCは192から223までをカバーし、24ビットのネットワーク部分(マスク
255.255.255.0、a/24)を使用し、利用可能なホスト数はわずか254台でした。
問題は、その柔軟性の欠如でした。2,000個のアドレスを必要とする組織は、クラスC(254ホスト)では規模が大きすぎましたが、クラスB(65,000ホスト)を割り当てざるを得ず、60,000個以上のアドレスが無駄になっていました。 インターネットが指数関数的に成長する中、この無駄により、IPv4アドレス空間が完全に枯渇する恐れがありました。より柔軟な仕組みが必要とされました。
CIDRの登場:表記法をビット単位で解説
CIDR(クラスレス・ドメイン間ルーティング)は、この硬直的なクラス制に代わるものとして1993年に導入されました。CIDRでは、ネットワークのサイズを最初のオクテットに縛るのではなく、ネットワークとホストの境界を32ビット内の任意の位置に設定できるようになりました。 これは、現在ではお馴染みのスラッシュ表記、いわゆる「CIDRプレフィックス」を用いて表現されます。
スラッシュの後の数字は、単にサブネットマスク内の1ビットの数を表しており、言い換えれば、ネットワークに割り当てられるビット数を示しています。つまり:
/8はネットワークビットが8ビットであることを意味し、マスク255.0.0.0(旧クラスAのサイズ)となります。/16はネットワークビットが16ビット、マスク(旧クラスBのサイズ)を意味します。255.255.0.0(旧クラスBのサイズ)を意味します。/24はネットワークビットが24ビット、マスク255.255.255.0(旧クラスCのサイズ)。/26は、ネットワークビット数26、マスク255.255.255.192となり、ホストビットは6ビットのみとなります。
プレフィックスに含まれるアドレス数の計算式は 2^(32 − n) であり、ここで n はプレフィックス長です。IPv4 アドレス空間全体は 32 ビットであるため、ネットワークビットを差し引くとホストビットが残り、その指数に 2 を累乗することで、そのブロック内のアドレス総数が得られます。 /24 この場合、2^(32−24) = 2^8 = 256個のアドレスとなります。 /26 の場合、2^(32−26) = 2^6 = 64個のアドレスとなります。プレフィックス番号が大きいほど、サブネットは小さくなります。
サブネットの主要な値の計算
どのサブネットにも、特定する必要があるいくつかの特別なアドレスがあります。それぞれの意味と、その見つけ方を以下に示します。
- ネットワークアドレス。ブロック内の最初のアドレスです。すべてのホストビットが 0 です。これはサブネット自体を識別するものであり、デバイスに割り当てることはできません。
- ブロードキャストアドレス。ブロック内の最後のアドレスです。ホストビットはすべて1です。ここに送信されたトラフィックはサブネット上のすべてのホストに届くため、ホストアドレスとしても使用できません。
- 最初の使用可能なホストアドレス。ネットワークアドレスの1つ上のアドレス(ネットワークアドレス + 1)です。
- 最後の使用可能なホスト。ブロードキャストアドレスより1つ下のアドレス(ブロードキャスト − 1)。
- アドレス総数。2^(32 − n)。
- 使用可能なホスト数。ネットワークアドレスとブロードキャストアドレスは予約されているため、総数から2を引いた値となります。計算式は 2^(32 − n) − 2 です。
知っておくべき値がもう一つあります。それはワイルドカードマスクです。これはサブネットマスクの逆数であり、すべてのビットを反転させる(各オクテットを255から引く)ことで得られます。例えば、サブネットマスクが 255.255.255.0 がネットワークを選択するのに対し、そのワイルドカード 0.0.0.255 はホストの範囲を指定します。ワイルドカードマスクは、Ciscoのアクセス制御リストやOSPFの設定で頻繁に登場するため、理解しておく価値があります。
演習例 1: 192.168.1.0/24
まずは最も分かりやすいケースから始めましょう。 /24 はオクテットの境界できれいに終わっているため、複雑な二進数の操作は必要ありません。ネットワークビットが24ビットあるため、ホスト部分は最後のオクテット全体となります。
| 特性 | 値 |
|---|---|
| CIDR表記 | 192.168.1.0/24 |
| サブネットマスク | 255.255.255.0 |
| ワイルドカードマスク | 0.0.0.255 |
| ネットワークアドレス | 192.168.1.0 |
| ブロードキャストアドレス | 192.168.1.255 |
| 最初の利用可能なホスト | 192.168.1.1 |
| 最後の利用可能なホスト | 192.168.1.254 |
| アドレスの総数 | 256 (2^8) |
| 利用可能なホスト数 | 254 |
これは、典型的な家庭や小規模オフィスのネットワークです。 .1 から .254 までの範囲がデバイス用に利用可能で、 .0 がネットワーク名となり、 .255 がブロードキャストアドレスです。
例題 2: 10.0.0.0/26
次に、オクテットの境界に一致しないプレフィックスについて見てみましょう。A /26 はネットワークビットが26であることを意味するため、最後のオクテットは分割されます。その最初の2ビットはネットワークに属し、残りの6ビットはホストビットとなります。ホストビットが6ビットあるため、サブネットあたり2^6 = 64個のアドレスが割り当てられます。つまり、 /26 サブネットは最終オクテットにおいて64ずつ増分します:0、64、128、192。
最初のブロックに焦点を当てると 10.0.0.0/26に焦点を当てると、ネットワークマスクは 255.255.255.192 となる。これは 11000000 最後のオクテットが192に等しいためです。
| プロパティ | 値 |
|---|---|
| CIDR表記 | 10.0.0.0/26 |
| サブネットマスク | 255.255.255.192 |
| ワイルドカードマスク | 0.0.0.63 |
| ネットワークアドレス | 10.0.0.0 |
| ブロードキャストアドレス | 10.0.0.63 |
| 最初の利用可能なホスト | 10.0.0.1 |
| 最後の利用可能なホスト | 10.0.0.62 |
| アドレスの総数 | 64 (2^6) |
| 利用可能なホスト数 | 62 |
このシーケンスの次のサブネットは 10.0.0.64/26 (ホスト .65 ~ .126、ブロードキャスト .127)、次に 10.0.0.128/26、そして最後に 10.0.0.192/26となります。ブロックサイズである64が、各サブネットの開始位置を決定する「マジックナンバー」と完全に一致している点に注目してください。
演習例 3: 172.16.5.0/28
最後の例では、サブネットをさらに小さく圧縮しています。 /28 には28ビットのネットワーク部分とわずか4ビットのホスト部分があり、これにより2^4 = 16個のアドレスが割り当てられ、使用可能なホストはわずか14台となります。最後のオクテットは 11110000 が使用され、その値は240に等しいため、マスクは 255.255.255.240となります。サブネットは16ずつ増分します。
| 特性 | 値 |
|---|---|
| CIDR表記 | 172.16.5.0/28 |
| サブネットマスク | 255.255.255.240 |
| ワイルドカードマスク | 0.0.0.15 |
| ネットワークアドレス | 172.16.5.0 |
| ブロードキャストアドレス | 172.16.5.15 |
| 最初の利用可能なホスト | 172.16.5.1 |
| 最後の利用可能なホスト | 172.16.5.14 |
| アドレスの総数 | 16 (2^4) |
| 利用可能なホスト数 | 14 |
A /28 は、小規模なポイント・ツー・ポイント・ネットワークや、ごく少数のアドレスしか必要としない厳密に管理されたサーバーセグメントにおいて、よく使われるサイズです。たとえば、2台のルーター間のリンクのように、ホストが2台しか必要ない場合は、 /30まで縮小することも可能です。これにより、利用可能なアドレスはちょうど2つになります。
サブネット分割のチートシート
毎回2の累乗を計算し直すよりも、以下の表を暗記するか、ブックマークしておくことをお勧めします。この表には、 /24 まで /30までの最も一般的なプレフィックスを網羅しており、マスク、ワイルドカード、ブロックサイズ(アドレス総数)、および使用可能なホスト数が示されています。
| CIDR | サブネットマスク | ワイルドカード | アドレス総数 | 利用可能なホスト数 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 0.0.0.255 | 256 | 254 |
| /25 | 255.255.255.128 | 0.0.0.127 | 128 | 126 |
| /26 | 255.255.255.192 | 0.0.0.63 | 64 | 62 |
| /27 | 255.255.255.224 | 0.0.0.31 | 32 | 30 |
| /28 | 255.255.255.240 | 0.0.0.15 | 16 | 14 |
| /29 | 255.255.255.248 | 0.0.0.7 | 8 | 6 |
| /30 | 255.255.255.252 | 0.0.0.3 | 4 | 2 |
この洗練されたパターンに注目してください。プレフィックスが 1 ビット増えるごとにホスト数は半分になり、最後のオクテットのマスク値は 128、192、224、240、248、252 のいずれかになります。 これらは、最後のマスクオクテットが取り得る唯一の有効な値です。
VLSM:異なるサイズのサブネット
従来のサブネット分割では、ネットワークを均等な大きさのブロックに分割していましたが、部署ごとにニーズが大きく異なる場合、これは無駄が生じます。可変長サブネットマスキング(VLSM)は、同じネットワーク全体の中で異なるプレフィックス長を適用できるようにすることで、この問題を解決します。実質的に、サブネットをさらにサブネット分割するのです。
たとえば、 192.168.10.0/24 100ホストの部署が1つ、50ホストの部署が1つ、そしてそれぞれ2ホストずつからなるルーターリンクが2つをサービスする必要があるとします。VLSMを使用する場合、次のように割り当てます:
- A
/25(126ホスト)を大規模な部署に割り当て:192.168.10.0/25. - A(62ホスト)を中規模の部署に割り当てます:
/26(62ホスト)を中規模の部署に割り当てます:192.168.10.128/26. - 2
/30ブロック(各2ホスト)をルーターリンク用に、残りのスペースから割り当てます。
VLSMの鉄則は、まず最大のサブネットを割り当て、そこから順次小さいものへと割り当てることです。そうすることで、ブロックが重複することなくきれいにネストされます。これが、実際のアドレス計画において、無駄を省きつつも将来の拡張余地を残す方法です。
IPv6プレフィックスに関する注記
上記のすべては IPv4 に関するものですが、CIDR 表記法は IPv6 にもそのまま適用されます。ただ、数値がはるかに大きくなるだけです。IPv6 アドレスは 32 ビットではなく 128 ビットであるため、プレフィックスは /128まで広がります。知っておくべき最も重要なものは /64 です。長年の慣例により、単一の IPv6 サブネットは /64であり、最初の64ビットをネットワークプレフィックスに、最後の64ビットをホスト(または「インターフェース識別子」)に割り当てます。 これにより、サブネットごとに2^64個のアドレスが利用可能となり、これはほぼ想像を絶する数です。そのため、IPv6では、IPv4のサブネット分割で主流となっているような、アドレス節約のための複雑な工夫を行う必要がほとんどありません。これら2つのプロトコルのより詳細な比較については、IPv4とIPv6の比較ガイドをご覧ください。
まとめ
サブネット分割は、次の3つの概念に要約されます。IPアドレスは32ビットであり、マスクがネットワークの境界を決定し、式 2^(32 − n) が各ブロックの大きさを示します。これらを習得すれば、あとは単純な算術計算です。 まずプレフィックスを特定し、それをブロックサイズに変換して、ネットワークアドレスとブロードキャストアドレスを求めれば、その間に利用可能なアドレス範囲が現れます。いくつかの例で練習すれば、このプロセスは自然と身についていきます。計算結果を即座に確認したい場合は、任意のアドレスとプレフィックスを当社の「サブネット計算ツール」に入力し、その結果を自分の計算結果と比較してみてください。
よくある質問
なぜ、利用可能なホスト数を算出するために、総アドレス数から2を引くのでしょうか?
すべてのIPv4サブネットには、デバイスに割り当てることができない2つのアドレスが予約されています。1つはサブネットを識別するネットワークアドレス(ホストビットがすべて0に設定されているもの)、もう1つはすべてのホストに同時に到達するために使用されるブロードキャストアドレス(ホストビットがすべて1に設定されているもの)です。 これら2つを差し引くと、実際にホストに割り当て可能なアドレスの数が得られます。したがって、2^(32 − n) − 2となります。
サブネットマスクとCIDRプレフィックスの違いは何ですか?
これらは、まったく同じ情報を2つの形式で表現したものです。例えば、次のようなサブネットマスク 255.255.255.0 は32ビットのドット区切り10進数ですが、CIDRプレフィックス /24 は、単にそのマスクに含まれる1ビットの数を表しています。どのマスクもプレフィックスとして記述でき、その逆も同様です。CIDR表記は単に簡潔で、入力ミスが起きにくいという利点があります。
IPアドレスの「/24」は実際には何を意味するのですか?
スラッシュの後の数字はプレフィックス長であり、アドレスの32ビットのうち、ネットワークを定義するビット数を意味します。A /24 は最初の24ビットをネットワーク用に予約し、8ビットをホスト用に割り当てます。これにより、合計256個(2^8)のアドレスが生成され、そのうち254個が使用可能です。これはサブネットマスク 255.255.255.0.
なぜCIDRがクラスフルアドレッシングに取って代わったのでしょうか?
クラスフル・アドレッシングでは、ネットワークの規模が254ホスト、次に65,000ホスト、さらに1,600万ホストといったように、大きな段階を飛び越えて増加せざるを得ず、その間の段階が存在しませんでした。 組織には必要以上に多くのアドレスが割り当てられることが常であり、限られたIPv4アドレス空間が無駄にされていました。CIDRでは、ネットワーク境界を任意のビットに設定できるため、ブロックサイズを必要に応じて調整でき、またルートの要約も可能になり、ルーティングテーブルを縮小できます。
ワイルドカードマスクは何に使われるのですか?
ワイルドカードマスクは、サブネットマスクのビット単位の補数であり、各オクテットから255を引くことで求められます。サブネットマスクがネットワーク部分を特定するのに対し、ワイルドカードマスクはどのビットが変動可能かを指定します。これは主に、Ciscoのアクセス制御リストやOSPFなどのルーティングプロトコルにおいて、アドレスの範囲を簡潔に記述するために使用されます。
IPv6にも同じサブネット分割のルールが適用されますか?
CIDRの概念は同じです。スラッシュの後に続くプレフィックス長がネットワークの境界を示します。違いは規模にあります。IPv6アドレスは32ビットではなく128ビットであり、標準的なサブネットサイズは /64であり、サブネットごとに2^64個のホストアドレスを提供します。アドレス空間が非常に広大であるため、IPv6のサブネット分割では、アドレスを極限まで絞り込むことよりも、構造と階層に重点が置かれています。