サブネットマスクの役割
サブネットマスクは、IPv4アドレスと同じ長さの32ビットの値で、1のビットが連続した後に0のビットが連続する構造になっています。1のビットは、アドレスのどのビットがそのアドレスが属するネットワークを識別するかを示し、0のビットはそのネットワーク内の特定のホストを識別するビットを示します。IPアドレスとそのマスクの間でビット単位のAND演算を行うと、ホストビットが取り除かれ、ネットワークアドレスだけが残ります。
例えば、マスク255.255.255.0を2進数で表すと11111111.11111111.11111111.00000000となり——24個の1ビットの後に8個の0ビットが続きます。これは最初の3オクテットがネットワークを識別し、最後のオクテットがそのネットワーク内の個々のホストを識別することを意味し、そのネットワーク内では最大256個(うち254個が使用可能)のアドレスを持てます。
CIDR表記:/24が実際に意味すること
CIDR(クラスレスドメイン間ルーティング、RFC 4632で規定)は、サブネットマスクをスラッシュに続けて1のビット数で表記します。そのため/24はマスク255.255.255.0の略記、/26はマスク255.255.255.192の略記になります。CIDRは、アドレスの先頭ビット(クラスA、B、C)によってネットワークサイズが厳格に固定されていた従来のクラスフルシステムに代わり、/0から/32までの任意のプレフィックス長を選ぶことでほぼ任意のサイズのネットワークを定義できる柔軟性をもたらしました。
プレフィックス長は、マスクと残りのホストビット数の両方を直接決定します:32ビットのIPv4アドレスでは、ホストビット数 = 32 − プレフィックス長です。/24ネットワークは8個のホストビットを持ち(2⁸ = 256個のアドレス)、/26ネットワークは6個のホストビットを持ち(2⁶ = 64個のアドレス)、/30ネットワークは2個のホストビットを持ちます(4個のアドレス)——ホストビット数が少ないほど、ネットワークは小さくなります。
計算例:192.168.1.10/26
アドレス192.168.1.10に/26のプレフィックスを適用してみます。/26マスクは26個の1ビットを持ち、最初の3オクテット(24ビット)全体に加えて4番目のオクテットの上位2ビットをカバーするため、マスクは255.255.255.192(192は2進数で11000000)になります。アドレスの4番目のオクテットである10は2進数で00001010です。これをマスクの4番目のオクテット(11000000)とANDすると、下位6ビットがゼロになり00000000 = 0となるため、ネットワークアドレスは192.168.1.0です。
4番目のオクテットに残る6個のホストビットは、サブネットあたり2⁶ = 64個のアドレスというブロックサイズを与えるため、.10を含むサブネットは.0から.63までの範囲になります。ブロードキャストアドレスはその範囲の最上位、192.168.1.63(すべてのホストビットが1)です。使用可能なホスト範囲はネットワークアドレスとブロードキャストアドレスの間のすべて、つまり192.168.1.1から192.168.1.62まで——ちょうど2⁶ − 2 = 62個の使用可能なホストアドレスです。
サブネッティングが存在する理由
サブネッティングはRFC 950で標準化され、実務上の問題を解決しました。数千から数百万台のデバイスからなる単一のフラットなネットワークは非効率で脆弱です。なぜなら、ブロードキャストドメイン内のすべてのデバイスが、そのドメイン内で送信されるすべてのブロードキャストパケットを受信し、あるセグメントの障害やブロードキャストストームがネットワーク全体に影響を及ぼす可能性があるからです。大きなアドレスブロックをより小さなサブネットに分割することで、ブロードキャストトラフィックを各サブネット内に閉じ込め、フロア、部署、データセンターのラックといった物理的または組織的な境界を軸にネットワークを構成できるようになります——アドレスの単一の分割されていないプールとしてではなく。
サブネッティングはアドレスの節約とルーティング効率もサポートします。組織は各サブネットを実際に必要とするデバイス数にほぼ合わせてサイズ設定できます(2台のルーター間のポイントツーポイントリンクには、/24のオフィスネットワークのように254個のアドレスは必要なく、/30で十分です)。また、CIDRの可変長プレフィックスにより、ルーターは多数の小さなサブネットを単一のルーティングテーブルエントリに集約できるため、RFC 4632に記述されているように、インターネット規模のルーティングテーブルが手に負えないほど大きくなるのを防ぎます。
CIDRプレフィックス早見表
下の表は、一般的なCIDRプレフィックス長を、対応するドット付き10進数のサブネットマスクと使用可能なホストアドレス数とともに一覧にしたものです。標準的なCIDRのホスト数計算ルールに従い、ネットワークアドレスとブロードキャストアドレスは予約されており、デバイスに割り当てることはできません。
| プレフィックス | サブネットマスク | 使用可能ホスト数 |
|---|---|---|
| /24 | 255.255.255.0 | 254 |
| /25 | 255.255.255.128 | 126 |
| /26 | 255.255.255.192 | 62 |
| /27 | 255.255.255.224 | 30 |
| /28 | 255.255.255.240 | 14 |
| /29 | 255.255.255.248 | 6 |
| /30 | 255.255.255.252 | 2 |
よくある質問
サブネットマスクとは何ですか?
サブネットマスクは、1のビットが連続した後に0のビットが連続する32ビットの値で、IPv4アドレスをネットワーク部とホスト部に分割するために使用されます。アドレスとそのマスクの間でビット単位のAND演算を行うとネットワークアドレスが得られます。例えばマスク255.255.255.0は、最初の24ビットをネットワーク部、残りの8ビットをホスト部として示します。
IPアドレスの/24とは何を意味しますか?
CIDR表記の/24は、アドレスの32ビットのうち最初の24ビットがネットワークを識別することを意味し、サブネットマスク255.255.255.0に相当します。残りの8ビットはそのネットワーク内の個々のホストを識別し、2⁸ = 256個の合計アドレスを与え、ネットワークアドレスとブロードキャストアドレスを予約した後、254個が使用可能になります。
192.168.1.10/26のネットワークアドレスとブロードキャストアドレスはどうやって求めますか?
/26マスクは255.255.255.192で、最後のオクテットに6個のホストビットが残り、ブロックサイズは2⁶ = 64個のアドレスです。10は0〜63のブロック内にあるため、ネットワークアドレスは192.168.1.0(すべてのホストビットがゼロ)、ブロードキャストアドレスは192.168.1.63(すべてのホストビットが1)です。使用可能なホスト範囲は192.168.1.1から192.168.1.62まで、つまり62個のアドレスです。
サブネッティングはなぜ存在するのですか?
サブネッティングは大きなネットワークをより小さく独立して管理できるセグメントに分割することで、ブロードキャストトラフィックが広がる範囲を制限し、障害や不要なトラフィックをネットワークのより小さな部分に閉じ込め、実際のデバイス数にほぼ合わせてアドレス空間を割り当てられるようにします。これにより小さなリンクに大きなブロックを無駄にすることもなくなります。また、ルーターが多数の小さなサブネットをより少ないルーティングテーブルエントリに集約できるようになり、これはインターネットのルーティングを拡張する上で不可欠です。
/26ネットワークには使用可能なホストがいくつありますか?
62個です。/26プレフィックスは6個のホストビットを残し(32 − 26 = 6)、サブネット内に2⁶ = 64個の合計アドレスを与えます。そのうち、オール0のアドレスはネットワークアドレスとして、オール1のアドレスはブロードキャストアドレスとして予約されるため、デバイスに割り当てられるのは2⁶ − 2 = 62個のアドレスです。
CIDRと従来のクラスフルアドレッシングシステムの違いは何ですか?
クラスフルアドレッシングは、アドレスの先頭ビットに基づいて数少ない厳格な選択肢(クラスA、B、C)のいずれかにネットワークサイズを固定していたため、固定サイズの中間を必要とする組織で大量のアドレス空間が無駄になっていました。RFC 4632で規定されたCIDRは、これをスラッシュ表記(例:/24、/26)で書かれる可変長プレフィックスに置き換え、ネットワークをほぼ任意の2のべき乗の境界にサイズ設定できるようにし、ルーターが複数のネットワークをより少ないルーティングテーブルエントリに集約できるようにしました。
参考文献
- Mogul J, Postel J. Internet Standard Subnetting Procedure. RFC 950, IETF, 1985.
- Fuller V, Li T. Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. RFC 4632, IETF, 2006.
- Postel J. Internet Protocol. RFC 791, IETF, 1981.
- Rekhter Y, Moskowitz B, Karrenberg D, de Groot GJ, Lear E. Address Allocation for Private Internets. RFC 1918, IETF, 1996.