サブネットマスク

サブネットマスク

 サブネットマスク(subnet mask)とは、IPアドレスをネットワーク部とホスト部に分割するために使用される数値のことです。IPアドレスは、ネットワークに接続されたコンピューターを一意に特定するために使用されますが、サブネットマスクを使用することで、IPアドレスのうち、どの部分がネットワーク部で、どの部分がホスト部であるかを示すことができます。

 サブネットマスクは、通常、32ビットのバイナリ値で表されます。ネットワーク部とホスト部の区切りを示すために、1が連続して並んでいるビットの数を表します。たとえば、サブネットマスクが255.255.255.0の場合、最初の24ビットがネットワーク部、残りの8ビットがホスト部になります。この場合、同じネットワーク内にあるコンピューターは、24ビットまでが一致している必要があります。

 サブネットマスクを使用することで、ネットワークを複数の小さなサブネットに分割することができます。これにより、ネットワークの管理が容易になり、ネットワーク上のトラフィックを制御することができます。たとえば、異なる部署が使用するコンピューターを別々のサブネットに割り当てることができます。

 また、サブネットマスクを使用することで、IPアドレスの枯渇を遅らせることができます。IPv4では、32ビットのアドレス空間がありますが、インターネットの急速な拡大に伴い、このアドレス空間が不足しているため、サブネットマスクを使用してアドレス空間をより効率的に使用することが求められています。

 サブネットマスクの計算には、二進数とビット演算が必要になります。以下に、サブネットマスクを計算する方法を示します。

  1. サブネットを分割したいIPアドレスのクラスを特定します。IPアドレスの先頭のビットを見ることで、Aクラス、Bクラス、Cクラスのいずれかを特定できます。
  2. サブネットを分割する際の必要なサブネットの数を決定します。サブネットの数をnとした場合、nの値によって必要なビット数を決定します。以下の表に、nの値と必要なビット数の例を示します。
nの値必要なビット数
21
42
83
164
325
  1. サブネットマスクを計算します。サブネットの数によって必要なビット数を決定したら、そのビット数に対応する2進数の値を求めます。その後、残りのビットをすべて0にします。例えば、nが8の場合、必要なビット数は3なので、2進数で「11100000」になります。
  2. サブネットマスクを10進数に変換します。2進数で表されたサブネットマスクを10進数に変換するには、それぞれの8ビットごとに変換を行います。たとえば、「11100000」の場合、最初の8ビットは「11100000」=224、次の8ビットは「00000000」=0となります。したがって、サブネットマスクは「255.255.255.224」となります。

 以上の手順に従って、サブネットマスクを計算することができます。ただし、現在はCIDR(Classless Inter-Domain Routing)が広く使用されており、CIDR表記を用いてネットワークを表現することが一般的です。CIDR表記では、IPアドレスとサブネットマスクのビット数を「IPアドレス/サブネットビット数」の形式で表します。たとえば、「192.168.0.0/24」という表記は、192.168.0.0から192.168.0.255までのアドレス範囲が、24ビットのサブネットマスクで分割されていることを示します。