サブネットマスク

読み:さぶねっとますく / 英語表記:subnet mask

IPv4アドレスのうち、ネットワークを表す部分と機器を識別する部分の境界を示す32ビットの値。IPv4アドレスとビットごとのAND演算をすると、その機器が属するネットワークのアドレスを求められる。

イマシルちゃんの解説

IPv4アドレスには、どのネットワークに属するかを表す部分と、その中のどの機器かを表す部分があるんだ。
サブネットマスクは、その境界を示す値だよ。
アドレスと組み合わせて計算すると、ネットワークを表す部分を取り出せるの。
機器は自分と宛先のネットワークを比べて、直接届けられる相手なのか、別のネットワークへ中継するルータに任せる相手なのかを判断するんだ。
だから、同じように見えるアドレスでも、マスクの設定が違うと直接届けるかどうかの判断が変わることがあるよ。

より深い解説

定義

サブネットマスクは、IPv4アドレスと同じ32ビットの値で、ネットワーク部に当たるビットを1、ホスト部に当たるビットを0で表す。1は必ず左から連続して並ぶ。

IPアドレスとサブネットマスクをビットごとにAND演算すると、そのIPアドレスが属するネットワークのアドレス(ネットワークアドレス)が求められる。

プレフィックス長

サブネットマスクの1の個数を、/ の後に書いた表記をプレフィックス長(CIDR表記)という。255.255.255.0は1が24個なので /24 と書く。

よく使うサブネットマスク

プレフィックス長サブネットマスクアドレス数割り当てられるホスト数
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230
/28255.255.255.2401614
/29255.255.255.24886
/30255.255.255.25242

割り当てられるホスト数は「アドレス数 − 2」である。ホスト部がすべて0のアドレス(ネットワークアドレス)と、すべて1のアドレス(ブロードキャストアドレス)は、機器に割り当てられないためである。

計算のコツ

最後のオクテットのマスクの値から、ネットワークの区切りの幅(ブロックサイズ)がすぐにわかる。

ブロックサイズ = 256 − (最後のオクテットのマスクの値)

例:255.255.255.192(/26)なら、256 − 192 = 64。ネットワークは .0、.64、.128、.192 から始まる64個ずつの区切りになる。

特殊なプレフィックス長

ワイルドカードマスク

サブネットマスクの0と1を反転させた値をワイルドカードマスクという(/24なら0.0.0.255)。ルータのアクセスリスト(ACL)やOSPFの設定などで使われるので、サブネットマスクと取り違えないよう注意する。

ホスト部の値を取り出す

ホスト部だけを求める場合は、IPアドレスと、サブネットマスクの各ビットを反転した値とのANDを取る。ネットワークアドレスを求めるANDとは、使うマスクが逆になる。

例として192.0.2.77/27を考える。最後のオクテットでは77が01001101、マスクを反転した値が00011111なので、ANDの結果は00001101、すなわち13となる。ネットワークアドレスは192.0.2.64であり、ホスト部の値13や、元のIPアドレス全体とは区別する。

必要なネットワーク数から分割幅を決める

/pのアドレス範囲を同じ大きさに分けるとき、ネットワーク部へbビットを追加すれば、2のb乗個の/p+bの範囲になる。必要なネットワーク数以上になる最小のbを選べば、各範囲に残せるホスト用のビットを最大にできる。

独自の例として、192.0.2.0/24から同じ大きさのネットワークを6個使いたい場合を考える。2ビット追加では4個にしかならず、3ビットなら8個を作れる。そのうち6個を利用すればよいので、分割後は/27、サブネットマスクは255.255.255.224となる。通常のサブネットでは、1個当たり32アドレスのうち30個をホストに割り当てられる。

必要個数ちょうどに分けられるとは限らない。さらに細かく分けることは可能だが、各ネットワークに置けるホストは少なくなる。サブネットの個数と、各サブネットのホスト数を別々に計算する。

実際の試験ではここに出る!全25問

ネットワークスペシャリスト

午前Ⅱ
午後Ⅰ

テクニカルエンジニア(ネットワーク)

午前

この用語が出てくる記事

↑