💨

【ネットワーク基礎】サブネットマスクの書き方を理解しよう!

に公開

はじめに

サブネットを調べていく中で、サブネットはネットワークを効率的に分割し、IPアドレスを無駄なく使うために重要な仕組みであることがわかりました。しかし、解説を見ていると、255.255.255.0 のような表記や「/24」などのCIDR表記を見て、?と思う人も多いはずです。
本記事では、サブネットマスクの基本とCIDR表記への変換方法、そしてネットワークのサイズとの関係について、できるだけわかりやすく解説していきます。

サブネットマスクの形式

サブネットマスクとは、IPアドレスの中で「ネットワーク部」と「ホスト部」を区別するための値で、IPアドレスとセットで使用されます。

IPアドレス:192.168.1.10  
サブネットマスク:255.255.255.0

よく記事で上記のような表記を目にすると思います。
「255」が立っている部分はネットワーク部、「0」の部分はホスト部を意味します。
ということは、以下のようなことが成り立ちます。

サブネットマスク
255.0.0.0	// 最初の8ビットがネットワーク部(/8)
255.255.0.0	// 最初の16ビットがネットワーク部(/16)
255.255.255.0	// 最初の24ビットがネットワーク部(/24)

サブネットマスクのビット表現とその意味

サブネットマスクを 2進数(ビット)で書くと、どこまでがネットワーク部かがより明確になります。
上記の例を使用すると、以下のように表現できます。

例の2進数表記
255.255.255.0 → 11111111.11111111.11111111.00000000

1 の部分(24ビット)はネットワーク部、0 の部分(8ビット)はホスト部を意味します。
これにより、どこまでがネットワーク部分で、どこからがホスト部分か」を明確に判断できます。
つまりこの例では、IPアドレスの中の最初の24ビットがネットワークアドレスを表すことを意味します。

※ビットで表現することで、IPアドレスのどの部分を“共通のネットワーク”とみなすかを論理的に計算(ビット演算)することができます。

サブネットマスクをCIDR表記に変換する方法

CIDR(Classless Inter-Domain Routing)表記とは、サブネットマスクをスラッシュ(/)とビット数で表す方法です。サブネットマスクをビットに直すことによって表現できます。

// サブネットマスク → ビット表記
255.255.255.0 → 11111111.11111111.11111111.00000000

1 がいくつあるか数えると、ここでは24個となります。
そのため、/24 と表記します。
具体的には、192.168.1.0/24 のように表記すると、「192.168.1.0 というネットワークで、最初の24ビットがネットワーク部」という意味になります。

※CIDR表記は、サブネットマスクの中で連続する1のビットの数を示すものなので、最終的にはビット表現にしないと正確なCIDR表記はわかりません。

サブネットマスクのビット数とネットワークサイズの関係

サブネットマスクの 0 の数(ホスト部のビット数)によって、1つのネットワーク内で使えるIPアドレス数が決まります。

計算式: 使えるホスト数 = 2ⁿ - 2
※n = ホスト部のビット数
※-2 をするのは、ネットワークアドレスブロードキャストアドレスとして使用されることが決まっているためです。

例えば、CIDR表記/24は、2⁸からネットワークアドレスとブロードキャストアドレスの2つを引いた254このIPアドレスが使用できます。
他にも、/25の場合は2⁷ - 2 = 126個のIPアドレスが使用できる、といった具合に計算することができます。

ネットワークアドレス
そのIPネットワーク全体を識別するためのアドレスで、IPアドレスのホスト部をすべて「0」にしたもののことを指します。
これにより、「このIPアドレスはどのネットワークに属しているか」を示すことができます。

ブロードキャストアドレス
同じネットワーク上のすべてのホストに一斉にデータを送るときに使うアドレスです。
ホスト部分をすべて「1」にしたものがブロードキャストアドレスになります。

なお、ネットワークアドレスとブロードキャストアドレスはホストには割り当てられません。

まとめ

今回は、IPアドレスを理解する上で避けて通れないと言われている、サブネットマスクの表記方法について解説しました。サブネットマスクは、IPアドレスの中でネットワーク部とホスト部を区別するための情報であり、255.255.255.0 のような形式や、それをビットで表した「11111111.11111111.11111111.00000000」といった書き方やCIDR表記(例:/24)によって表現されます。

最後までお読みいただき、ありがとうございました。

参考・画像引用元URL

https://tech.pjin.jp/blog/2021/10/28/ccna_021/
https://tech.pjin.jp/blog/2021/09/29/ccna_019/
https://www.secuavail.com/kb/practical-post/ip-address-subnet-mask/
https://itmanabi.com/netword-broadcast-address/
https://beginners-network.com/ip_address_kind.html
https://ict-skillup.com/network/506/
https://envader.plus/article/53

Discussion