192.168.1.10 というIPアドレスだけを見て、「同じネットワークにいる仲間」がどこまでの範囲か分かるでしょうか?
実は、IPアドレスだけを見ても分かりません。もう1つの情報と組み合わせて、はじめて「ここまでが同じネットワーク」という境界線が見えてきます。少し考えてから読み進めてください。
「どこまでが地域名か」を教えてくれる仕組み
住所を思い出してください。「東京都渋谷区神南1-2-3」という住所には、地域を表す部分(都道府県・市区町村)と、その中の具体的な場所を表す部分(番地)が混ざっています。でも、住所の文字列だけをパッと見ても、「どこまでが地域で、どこからが番地か」は、実は住所そのものには書かれていません。私たちは経験や知識で「東京都渋谷区」までが地域名だと知っているだけです。
IPアドレスも同じ問題を抱えています。前々回学んだクラスによる区分(クラスAは/8、クラスBは/16、クラスCは/24)は、実は「だいたいこのあたりで区切ってください」というざっくりした目安に過ぎません。しかし実際のネットワーク運用では、クラスの区切りだけでは細かい調整ができず不便です。
そこで登場するのがサブネットマスクです。サブネットマスクは、IPアドレスに添えられるもう1つの32ビットの数字で、「このIPアドレスは、どこまでがネットワーク部で、どこからがホスト部か」を明確に教えてくれる、いわばしおりのような役割を果たします。
サブネットマスクの見た目
サブネットマスクは、IPアドレスと同じく32ビットで、ドット付き10進表記で書かれます。代表的なものに 255.255.255.0 があります。
IPアドレス : 11000000.10101000.00000001.00001010 (192.168.1.10)
サブネットマスク: 11111111.11111111.11111111.00000000 (255.255.255.0)
サブネットマスクの中で1が並んでいる部分がネットワーク部、0が並んでいる部分がホスト部です。この例では最初の24ビット(3オクテット分)が1なので、「192.168.1」までがネットワーク部、最後のオクテットの「10」がホスト部ということになります。つまり 192.168.1.0 から 192.168.1.255 までが同じネットワークに属する、というわけです。
住所にたとえるなら、サブネットマスクは「この住所は、都道府県・市区町村・町名までが地域名で、それ以降が番地です」と明示してくれる注釈のようなものです。この注釈があるおかげで、IPアドレスだけを見たときの曖昧さがなくなります。
なぜホスト部が必要なのか
ホスト部は、同じネットワーク内にある個々の機器を区別するための部分です。ネットワーク部が「マンションの住所」だとすれば、ホスト部は「部屋番号」にあたります。同じマンション(同じネットワーク)に住む人たちは、部屋番号(ホスト部)だけが違い、住所(ネットワーク部)は共通しているのです。
同じネットワークに属する機器同士は、ルータを経由せず直接通信できます。一方、異なるネットワークの機器と通信するときは、必ずルータの手を借りる必要があります。サブネットマスクによって「ネットワーク部が同じか違うか」を判定できるからこそ、機器は「相手が同じネットワークにいるか、それとも別のネットワークにいるためルータに頼るべきか」を判断できるのです。
試験でのポイント
CCNA試験では、サブネットマスクの1の並びがネットワーク部、0の並びがホスト部という基本ルールをもとに、与えられたIPアドレスとサブネットマスクから「ネットワーク部は何ビットか」を素早く読み取れるかが問われます。また、サブネットマスクは必ず1が連続したあとに0が連続する形でなければならず、11111111.00001111.11110000.00000000 のように1と0が入り混じる不正なマスクは存在しません。この「1は必ず左に固まる」という性質は、次回学ぶCIDR表記(プレフィックス長)を理解するうえでも重要な前提です。
サブネットマスク 255.255.255.0 の場合、ネットワーク部は何ビットになるでしょう?
答えを見る
24ビットです。
255.255.255の3オクテット分、つまり8×3=24ビットがすべて1になっており、これがネットワーク部です。最後のオクテット(0)がホスト部で8ビット分、個々の機器を区別するために使われます。
サブネットマスクにおいて、次のうちありえないものはどれでしょう?「255.255.0.0」「255.0.255.0」「255.255.255.128」
答えを見る
「255.0.255.0」がありえません。
サブネットマスクは、2進数で表したときに1が連続したあとに0が連続する形でなければなりません。「255.0.255.0」を2進数にすると 11111111.00000000.11111111.00000000 となり、1の後に0、その後にまた1が現れてしまい、1と0が入り混じっています。これは正しいサブネットマスクとして成立しません。
サブネットマスクは、IPアドレスに「ここまでがネットワーク部だよ」って教えてくれるしおりみたいなもの。1の数がネットワーク部の長さだって覚えておいてね。次は、このマスクをもっとシンプルに書く「CIDR表記」を学んでいくよ。