前の記事では、 IPv4アドレスは32ビットで構成され、ネットワーク上の通信相手を識別する ことを学びました。
また、IPアドレスには 「ネットワークを識別する部分」と 「そのネットワーク内の機器を識別する部分」があることも紹介しました。
しかし、たとえば次のIPアドレスだけを見ても、
どこまでがネットワークを表し、 どこからが端末を表しているのかは判断できません。
この境界を判断するために利用するのが サブネットマスク(Subnet Mask)です。
「255.255.255.0を暗記する」のではなく、 サブネットマスクを使うことで、 IPアドレスのネットワーク部とホスト部を区別できる ことを理解するのが目標です。
サブネットマスクとは?
サブネットマスクとは、 IPv4アドレスのどの部分がネットワーク部で、 どの部分がホスト部なのかを示す32ビットの値 です。
たとえば、次のような組み合わせがあります。
IPアドレスだけを見るのではなく、 IPアドレスとサブネットマスクをセットで確認する ことでネットワークの範囲を判断できます。
IPv4アドレスだけでは、 ネットワーク部とホスト部の境界を判断できません。 サブネットマスクとセットで考える必要があります。
255.255.255.0にはどんな意味がある?
サブネットマスクもIPv4アドレスと同じ 32ビットの値です。
代表的な 255.255.255.0 を2進数へ変換すると、次のようになります。
サブネットマスクでは基本的に、
として考えます。
つまり、 255.255.255.0であれば、 最初の24ビットがネットワーク部、 残り8ビットがホスト部です。
IPアドレスとサブネットマスクを重ねて考えよう
次の例を見てみましょう。
この例では、 サブネットマスクの最初の24ビットが1なので、 IPアドレスの最初の24ビットがネットワーク部になります。
したがって、イメージとしては、
と考えられます。
実際にはネットワークアドレスを求める際に 2進数でAND演算を行います。 ただし、初級のこの段階ではまず 「1がネットワーク部、0がホスト部」 という仕組みを理解してください。
ネットワークアドレスとは?
IPアドレスとサブネットマスクから、 その端末が属している ネットワークそのものを表すアドレス を求めることができます。
これを ネットワークアドレス と呼びます。
この例では、 端末192.168.1.10は 192.168.1.0というネットワークに属しています。
サブネットマスクを使うと「同じネットワークか」を判断できる
サブネットマスクの非常に重要な役割が、 通信相手が自分と同じネットワークにいるか判断すること です。
たとえば、次の2台があるとします。
192.168.1.10
255.255.255.0
192.168.1.20
255.255.255.0
どちらもネットワークアドレスを求めると、
同じ 192.168.1.0 になります。
したがって、この2台は 同じIPネットワークに属している と判断できます。
ネットワークが違う場合はルーターへ通信を渡す
次は通信相手が 192.168.2.20 だった場合を考えてみましょう。
192.168.1.10
Network:192.168.1.0
192.168.2.20
Network:192.168.2.0
ネットワークが異なるため、 PC-Aは相手へ直接L2通信するのではなく、 別ネットワークへ転送できるルーターへ通信を渡します。
端末はIPアドレスとサブネットマスクを使って、 通信相手が同一ネットワークかどうかを判断します。 別ネットワークなら、通常はデフォルトゲートウェイへ通信を渡します。
「/24」とサブネットマスクは何が違う?
ネットワークの記事や設定画面を見ると、
のように、 IPアドレスの後ろへ /24 と書かれていることがあります。
これは CIDR表記(プレフィックス長) と呼ばれる表現です。
/24は、 先頭から24ビットがネットワーク部 であることを表しています。
つまり、 255.255.255.0と/24は同じ境界を表しています。
| サブネットマスク | CIDR表記 |
|---|---|
| 255.0.0.0 | /8 |
| 255.255.0.0 | /16 |
| 255.255.255.0 | /24 |
サブネット計算では、 /25、/26、/27なども頻繁に登場します。
ただし今回は サブネットマスクの役割を理解すること が目的なので、 複雑な分割計算までは扱いません。
ここで実際に試してみよう:同じネットワークか判断する
サブネットマスク 255.255.255.0(/24) を使って、 通信相手が同じネットワークか判断してみましょう。
同一ネットワーク判定
通信したい相手を選択してください。
同じネットワークです
自分の192.168.1.10と相手の192.168.1.20は、 /24ではどちらも192.168.1.0ネットワークに属します。 そのため同じネットワークとして判断できます。
理解度チェック:サブネットマスクとCIDRを対応させよう
代表的なサブネットマスクをクリックして、 CIDR表記を確認してみましょう。
2進数にしたとき、先頭から連続する1の数がプレフィックス長です。
同じネットワークと分かったら、次に何が必要?
ここまでで、 端末はIPアドレスとサブネットマスクを使って 通信相手が自分と同じネットワークにいるか 判断できることが分かりました。
たとえば、
この2台が同じネットワークだと判断できたとします。
しかし、Ethernetで実際にフレームを送信するには、 前の記事で学習した 宛先MACアドレス が必要です。
でも、その端末のMACアドレスはどうやって調べるの?」
この問題を解決するのが、 次の記事で学習する ARP(Address Resolution Protocol) です。
確認問題:サブネットマスクの役割を理解できたか確認しよう
最後に3問の確認問題へ挑戦してみましょう。
サブネットマスクの主な役割として適切なものはどれですか?
サブネットマスクは、 IPv4アドレスのどのビットがネットワーク部で、 どのビットがホスト部なのかを判断するために利用します。
255.255.255.0をCIDR表記で表したものはどれですか?
255.255.255.0を2進数にすると、 先頭から24ビットが1になるため /24 と表します。
192.168.1.10/24と192.168.1.20/24の関係として正しいものはどれですか?
/24では最初の24ビットがネットワーク部なので、 どちらも192.168.1.0ネットワークに属します。
3問に挑戦してみましょう。
まとめ
今回は、サブネットマスクの役割について解説しました。
サブネットマスクは、 IPv4アドレスのネットワーク部とホスト部の境界を示す
サブネットマスクを2進数で見ると、 1がネットワーク部、0がホスト部を表す
255.255.255.0は /24と表すことができる
IPアドレスとサブネットマスクから、 同じネットワークにいるか判断できる
同じネットワークへEthernet通信するにはMACアドレスが必要で、 IPからMACを調べる仕組みがARP
次は「ARPとは?IPアドレスからMACアドレスを調べる仕組み」を学びましょう
サブネットマスクを使って通信相手が同じネットワークにいると判断できても、 Ethernetフレームを送信するには相手のMACアドレスが必要です。 次はARP RequestとARP Replyを使って、 IPアドレスからMACアドレスを調べる仕組みを学びます。
次のレッスンへ進む →
