用語辞典・IP・アドレス

サブネットマスク

サブネットマスクとは

サブネットマスクは、IPv4アドレスのどこまでをネットワーク部分として扱うかを示す32ビットの値です。英語ではsubnet mask(サブネット・マスク)と呼びます。

サブネットマスクは、IPv4アドレスのどこまでをネットワーク部分として扱うかを示す32ビットの値です。

マスクの2進数表現では、左から連続する1がネットワーク部分、続く0が端末を区別する部分を示します。IPアドレスを隠すものではなく、アドレスの区切り位置を示す型紙だと考えると役割をつかめます。

左から連続するネットワーク部分を型紙で抜き出す境界より右は、同じサブネット内の端末を区別する
32個のビット位置を左側のネットワーク部分と右側のホスト部分へ連続して分け、同じネットワークに属する端末をまとめるサブネットマスクの図解
図1マスクはIPアドレスの各ビットに重ねて使います。ネットワーク部分として残す位置を左から連続して指定し、その結果が同じ端末どうしを同じサブネットとして扱います。

255.255.255.0と/24は、同じ境界を表す

255.255.255.0を2進数にすると、先頭から1が24個、その後に0が8個並びます。そのため、プレフィックス長では/24と表します。

255.255.255.0
IPv4のIPアドレスと同じく、8ビットずつ十進数へ直してピリオドで区切った表記です。
/24
左から連続する1の個数だけを示す表記です。IPアドレスの後ろに付けて192.0.2.37/24のように書きます。

IPアドレスとマスクの論理積で、ネットワーク部分を取り出す

同じ位置のビットを一組ずつ比較するIPアドレスANDマスク = ネットワークアドレス
IPアドレス192.168.1.37端末に付いた値
サブネットマスク255.255.255.0先頭24ビットを残す
ネットワーク192.168.1.0所属するサブネットを示す
図2各ビットで、IPアドレスとマスクの両方が1の位置だけを1にする論理積を計算します。この例では192.168.1までが共通部分として残り、末尾は0になります。

同じサブネットかを判断するときに使う

端末は、自分のIPアドレスと宛先IPアドレスのそれぞれにマスクを適用します。得られたネットワークアドレスが同じなら同じサブネットとして直接送信し、異なればルーターへ渡します。

同じIPアドレスの並びでも、マスクが違えば所属範囲は変わります。たとえば192.168.1.37/24と192.168.2.10/24は別サブネットですが、より短いプレフィックスで設計されたネットワークでは、同じ大きな範囲に含まれる場合があります。

途中で0と1が交互になる値は使わない

現在一般に使うサブネットマスクは、2進数で左から1が連続し、その後は0が連続する形です。255.255.255.0は有効ですが、途中で1が再び現れるような値を自由に作るものではありません。

IPv4の通常のLANでは、ネットワークアドレスとブロードキャストアドレスを端末へ割り当てない設計が一般的です。ただし、2台のルーター間を結ぶ/31や、一つの宛先だけを示す/32には別の用途があります。「どのサブネットでも必ず2個を引く」と機械的に覚えないようにします。

IPv6では、通常はプレフィックス長を使う

IPv6でも、アドレスの先頭側をネットワークのプレフィックスとして扱います。ただし、255.255.255.0のような十進数のサブネットマスクは使わず、/64のようにプレフィックス長で表すのが通常です。

サブネットマスクはIPv4の設定値、プレフィックス長はIPv4とIPv6の両方で使える区切りの表し方と整理できます。

仕様の確認資料:RFC 950「Internet Standard Subnetting Procedure」、RFC 4632「Classless Inter-domain Routing」、RFC 3021「31-Bit Prefixes on IPv4 Point-to-Point Links」

関連用語