サブネットマスクとは?IPアドレスの範囲を初心者向けに解説
IPアドレスを学ぶと、ほぼ必ず一緒に登場するのがサブネットマスクです。
255.255.255.0 のような数字を見て、「IPアドレスと何が違うの?」と思った人もいるかもしれません。
今回は、サブネットマスクが何のためにあるのかを基礎から学びます。
サブネットマスクとは?
サブネットマスクは、IPv4アドレスのどこまでがネットワーク部で、どこからがホスト部なのかを判断するために使われる情報です。
たとえば次のような設定があります。
IPアドレス 192.168.1.10
サブネットマスク 255.255.255.0
IPアドレスだけでは、ネットワーク部とホスト部の境界を判断できません。
そこでサブネットマスクを組み合わせます。
ネットワーク部とホスト部
IPアドレスは、考え方として次の2つに分かれます。
- ネットワーク部:どのネットワークなのかを表す部分
- ホスト部:そのネットワーク内のどの機器なのかを表す部分
たとえば 192.168.1.10/24 では、先頭24ビットがネットワーク部です。
192.168.1 | 10
-----------+---
ネットワーク ホスト
これは理解のために簡略化した表現です。
255.255.255.0 は何を意味する?
IPv4アドレスとサブネットマスクは、内部では2進数で扱われます。
255.255.255.0 を2進数にすると、
11111111.11111111.11111111.00000000
となります。
1が連続している部分がネットワーク部を示します。
この例では1が24個あるため、CIDR表記では /24 と表せます。
CIDR表記とは?
CIDRでは、IPアドレスの後ろに /24 のような数字を付けます。
192.168.1.0/24
/24 は、先頭から24ビットがネットワーク部であることを表します。
代表例を見てみましょう。
| CIDR | サブネットマスク |
|---|---|
| /8 | 255.0.0.0 |
| /16 | 255.255.0.0 |
| /24 | 255.255.255.0 |
CIDRについては、より細かなサブネット分割を学ぶときに改めて詳しく扱います。
同じネットワークかどうか
端末はIPアドレスとサブネットマスクを利用して、通信相手が自分と同じIPネットワークにいるかを判断します。
たとえば、どちらも /24 の場合、
192.168.1.10/24
192.168.1.20/24
は同じ 192.168.1.0/24 のネットワークに属します。
一方、
192.168.1.10/24
192.168.2.20/24
は異なるネットワークです。
異なるネットワークへ通信するときには、通常ルーターなどを経由します。
ネットワークアドレスとは?
ネットワークそのものを表すアドレスをネットワークアドレスと呼びます。
たとえば、
192.168.1.0/24
では 192.168.1.0 がネットワークアドレスです。
ブロードキャストアドレス
IPv4では、同じサブネット内の全ホストへ送信するために使われるブロードキャストアドレスがあります。
192.168.1.0/24 なら、
192.168.1.255
がブロードキャストアドレスです。
そのため、一般的な /24 のサブネットでは .0 と .255 を通常のホストアドレスとして割り当てません。
/24なら何台使える?
/24 ではホスト部が8ビットあります。
8ビットでは256通りを表現できますが、一般的なIPv4サブネットではネットワークアドレスとブロードキャストアドレスを除くため、通常は254個のホストアドレスを利用できます。
ただし、クラウドサービスなどではサービス側が一部アドレスを予約する場合もあります。
サブネットを分ける理由
大きなネットワークを小さく分けることをサブネット化と呼びます。
ネットワークを適切に分割することで、
- ネットワークを整理しやすくする
- ブロードキャストの範囲を分ける
- 部署や用途ごとにネットワークを設計する
- セキュリティ設計を行いやすくする
といったメリットがあります。
🍯 はちみつメモ
今日覚えることは1つだけ!
サブネットマスク = IPv4アドレスのネットワーク部とホスト部の境界を判断するための情報
まとめ
- サブネットマスクはIPv4アドレスと組み合わせて使う
- ネットワーク部とホスト部の境界を判断できる
255.255.255.0は/24と表現できる- 同じネットワークかどうかの判断にも使われる
- IPv4ではネットワークアドレスやブロードキャストアドレスがある
- ネットワークを小さく分けることをサブネット化と呼ぶ
次におすすめ
次は**「DNSとは?」**を学びます。