サブネットマスク

サブネットマスク（）とは、IPアドレスを分割して、どこがネットワークアドレス部分で、どこが端末を表すホストアドレス部分かを識別するために使う数値。

IPv4の場合は32ビット、IPv6の場合は128ビットの数値である。10進数又は16進数で表記する。10進数表記の場合は8ビット毎に.（ドット）で区切り、16進数の場合は区切らずに、先頭に0xを付加し16進数表記であることを示す。10進数表記はパソコンや小型のネットワーク機器、16進数表記は大型のネットワーク機器や古いネットワーク機器で使用される事が多い。

アドレス表記についてはIPv4、IPアドレスも参照。

ネットワークアドレス 
巨大なTCP/IPネットワーク（インターネットなど）は、多数のネットワーク（サブネット）に分けて管理される。ネットワークアドレスは、これらのネットワークを識別するためのアドレスである。

インターネット
各ネットワーク（インターネット・サービス・プロバイダなど）に決まった範囲が割り当てられている。日本では日本ネットワークインフォメーションセンター (JPNIC) によって、ネットワークアドレスが一意になるよう管理されている（詳細はインターネットを参照）。

イントラネット
通常はプライベートIPアドレスを指定する。クラスCの192.168.数値.数値で始まるアドレスを多く使用する（詳細はイントラネットを参照）。

ホストアドレス 
IPアドレスのうち、ネットワークアドレス部分以外を指す。個々のネットワーク内においてホストを定義する部分。定められたネットワークアドレスから外れなければ、どのホストアドレスもネットワーク内で自由に利用できる。

定義の仕方（IPv4の場合） 
IPv4のIPアドレス表記は32ビットの数値で、通常これを8ビット単位で4つに区切ったものを10進数表記して

192.168.1.1

のように書き表す。このIPアドレスを2進数で表すと、11000000 10101000 00000001 00000001(2進) である。このIPアドレスの「前方24ビットをネットワークアドレスとし、後方8ビットをホストアドレスとする」ことを

192.168.1.1/24

と表記し、この場合のサブネットマスクは24個の 1(2進) と8個の 0(2進) が並んだ 11111111 11111111 11111111 00000000(2進) となる。通常これを10進数で

255.255.255.0

もしくは16進数で FFFFFF00(16進) と表す。
サブネットマスクは、IPアドレス中のネットワークアドレス部分を1とし、ホストアドレス部分を0として表す。この例では、ネットワークアドレスは 192.168.1.0（2進数表記 11000000 10101000 00000001 00000000(2進)）まで、ホストアドレスは 1（8桁の2進数表記 00000001(2進)）となる。また、IPアドレス中ではネットワークアドレスの後にホストアドレスがくるため、サブネットマスクは、11111111 11111111 00000000 00001111(2進) のように、0(2進) が現れた後に再度 1(2進) が現れることはありえない。

IPv6の場合 
IPv6では、ネットワークアドレスとホストアドレスを区別するためにはサブネットマスクの代わりにプレフィクス長が使われることが一般的である。例えば 2001:db8::1/64 (省略しないで書くと 2001:0db8:0000:0000:0000:0000:0000:0001/64) は、「前方64ビットがネットワークアドレスであり、残りの64ビットがホストアドレスである」ことを表す。

脚注

関連項目 
 IPアドレス#アドレスクラス
 Classless Inter-Domain Routing（CIDR、サイダー） - IPアドレスのホスト部の割り当てをクラスに関係なく割り当てる方式
 マスク (情報工学)

外部リンク
IP Version 4 アドレスの 可変長サブネット表 - RFC1878日本語訳。

IPアドレス