サブネットマスクとは何か。わかりやすーく解説!

はじめに。ネットワーク初心者の方や、プログラマーだけどネットワークはちょっと、、という方向けの記事
CCNA取得の目指されている方にとってちょうどいい解説になると思う。
ちなみにわたしはCCNA試験に3回落ち、4回目でようやっと合格できた。

IPアドレスをご自身で手動設定された方も多いと思う。その際、「サブネットマスク」の設定項目が一番チンプンカンプンだったのではないだろうか。
「IPアドレス」は端末自身のアドレスだ。これは直感的にわかる。「ゲートウェイ」といえば、なんかルーターなりの装置のアドレス番号なんだろう。これも何となーく分かる。
だけど、「サブネットマスク」って?? 「なんかよーわからんけど、とりあえず、255.255.255.0 (もしくは/24)にしとけー!」という方もいらっしゃるでしょう。なんだかフワフワした存在でその役割がさっぱりわからない、、という方に向けの解説です。

では、最重要ポイントを説明しよう。
サブネットマスクは、端末が(パソコンが)自身の存在するアドレス空間の大きさを認識するために必要な値なのだ。
では、なぜ自身の存在するアドレス空間の大きさを認識する必要があるのか。
それは、通信相手の端末が自身と同じアドレス空間に存在するのか、もしくはちがう空間かによって最初のパケットをおくるときの動作メカニズムが異なるからだ。
前者のように同じ空間にあれば、ただちにレイヤー2ブロードキャストを送信して相手の端末のMACアドレスを取得する動作を開始する。
逆に、後者のようにちがう空間にあれば、自身でレイヤー2ブロードキャストを送信しても相手にはとどかない。よって、ゲートウェイのちからを借りる動作にうつる。
つまり、ゲートウェイの宛てにユニキャストフレームをおくり、あとはパケットの転送をおまかせする。

まとめると、通信相手が自分とおなじアドレス空間にあれば、レイヤー2ブロードキャストを送信する。逆にちがう空間にあればゲートウェイにユニキャストフレームを送信してあとはお任せだ。

ところで、なぜネットワークをサブネットに分割するのだろうか?
そのメリットは何か?
さまざまなポリシーやセキュリティ施策の実装、さらには柔軟な運用を可能たらしめることが最大の利点である。また、負荷の分散という現実的な問題もあるのだろう。

相手が自身と同じアドレス空間内にあるのか否か、それをサブネットマスクを利用してどのように判別するのだろうか。
これについてはどのような本にも解説されている。かいつまんで説明すれば、サブネットマスク部分のビットの並びを双方で比較すればよい。
ビットの並び、たとえば、「10110」と「10110」のように一致していれば同じアドレス空間に存在しているといえる。
よって、先述したとおり、ただちにレイヤー2ブロードキャストフレームを送出するわけだ。

もうひとつ。
ネットワーク技術を学ばれ始めた方に声を大にしてお伝えしたいことがある。
それは、論理的におなじサブネット内に存在するノード同士でかならずしもサブネットマスクの値が一致していなくとも双方向通信可能な場合があるということである。
このことがわかれば、より柔軟に環境構築をできるようになり、IPアドレスへの理解もふかまる。
インフラの相乗りや柔軟な思考によりさまざまアイデアがでてくるようになるとネットワークがさらにオモシロくなる。
それでは、ひとつクイズをだしておひらきとしよう。

クイズ
「192.168.7.9/28」のPC-Aと「192.168.7.10/30」のPC-BとをL2スイッチをはさんでLAN接続した。
L2スイッチにはこれら2台のPC以外の機器は接続されていない。
この場合、双方向通信は可能か?

.

CCNA取得のためにおススメしたい書籍
やっぱり黒本はいい。わたしはCCNAはもちろん、CCNPも黒本を中心として使用していた。
勤務先にむかう電車やバスのなかでもよく読んでいた。
定番だし、普遍的にもおすすめ。

技術ブログのトップページにもどる