【図解】初心者にも分かるサブネットマスクとデフォルトゲートウェイ

サブネットマスクとは?デフォルトゲートウェイとは?

サブネットマスクの説明として『ネットワーク部とホスト部を識別するための数値』というものがあります。これはある意味正しいですが、正確でもありません。情報処理系の試験でもたまに「出題者は本当にサブネットマスクの意味が明確なのか?」と疑問に思うような曖昧な問題文に出くわしたりします。

サブネットマスクは『サブネット』というIPアドレスの範囲を示すものですが、実は以下の2つの意味があります

  1. ルーティングテーブル上のサブネットマスクは、ルーティングテーブルのエントリ数を減らすための、IPアドレスをグループ化する表現方法です。
  2. Ethernet インタフェースに IP設定する際のサブネットマスクは (I と同様) IPアドレスをグループ化しますが、このアドレスグループのIPは互いにルーティング無しで直接IP通信可能であることを意味します。(逆にこの範囲外のIPアドレスへの通信はデフォルトゲートウェイへIPパケットを投げ、ルーティングをしてもらいます)

ルーティングテーブル上では主に "I" の解釈、Ethernet NIC上では主に "II" の解釈が為されます。ちなみに、 "I" の解釈は CIDR の意味と同じです。

補足として、サブネットの最初のIP (今回の例では 192.168.1.0) はNWアドレスであり『(ホストではなく)サブネットそのものを表すアドレス』として、ホストへの利用ができません。

また、サブネットの最後のIP (今回の例では 192.168.1.127) はディレクティッドブロードキャストアドレスであり『同一サブネットのIP全員へ放送(ブロードキャスト)するアドレス』であり、やはりホストへこのIPを割り当てることはできませんが、同一サブネットのIPを持つインタフェースは、この192.168.1.127宛の通信を受信し、CPUへ処理を回します。

デフォルトゲートウェイとは

デフォルトゲートウェイとは、上図で示した通り、自身のサブネット外のIPアドレス宛へ通信する場合の中継先のことです。

上図の例では、PC#1はPC#2(192.168.1.21) とは同一IPアドレスグループなので直接通信できますが、ルータ#2(192.168.23.2) と通信したい場合、同一IPアドレスグループ外ですのでデフォルトゲートウェイにIPパケットを投げます。あとはルータなりのNW機器が目的地までルーティングしてくれることを期待するのみです。

このあたりの挙動は以下ページも参考にして下さい。

【図解】ルーティングの流れ ~同一セグメント内通信とデフォルトゲートウェイによる別セグメント間通信
【図解】ルーティングの流れ ~同一セグメント内通信とデフォルトゲートウェイによる別セグメント間通信
今日のIP通信はEthernetがベースになっていることが多いので、この記事でも...

I と II が明確に使い分けされている例

I と II の使い分けを鮮明に表しているのが、ディレクティッド・ブロードキャストアドレスのルーティングです。前述の例において、ルータB が 192.168.1.127宛の通信を受信した場合、どうなるでしょうか?

ルータBのルーティングテーブルは "I" の意味なので 192.168.1.127 は普通のIPアドレスとして扱われます。つまり、ブロードキャストという識別はせず、ルータAにルーティングします

一方、ルータAは自身に192.168.1.0/25というEthernetインタフェースを持っていますので "II" の意味で解釈します。つまり、受信したパケット(宛先=192.168.1.127)がディレクティッドブロードキャストアドレスだと識別しますので、該当NWにブロードキャストします

スポンサーリンク

サブネットマスクの歴史

1985年の RFC950 では、クラスフルを扱いきれていない現状の打開策として、LANをサブネット化するいくつかのアイディアをアナウンスしています。その際のデメリットとして以下のような記述があります。

Each of these approaches has disadvantages. 
The first, although not requiring any new or modified protocols, 
results in an explosion in the size of Internet routing tables.

『サブネットを導入することでクラスAやBを効率的に使えるとする一方、ルーティングテーブルのサイズが大きくなる』と言っています(ちなみに当然ですがこのRFCは既に廃止になっています)。

また、RFC1519 では CIDR という概念が出ていますが、これは Classless Inter-Domain Routing の略で、ルーティングをする際にクラスの考え方を辞める、というものです。そしてRFC1519には以下の記述があります。

This plan is primarily directed at the first two problems listed above.
We believe that the judicious use of variable-length subnetting
techniques should help defer the onset of the last problem, 
the exhaustion of the 32-bit address space.

省略していますが『CIDR により 可変サブネッティングを使うことでIPアドレスの消費を抑え、ルーティングテーブルのサイズを抑えることができる』と言っています。これはどちらかというと後述するスーパーネットによるルート集約効果を述べています。

この RFC950 と RFC1519 を引き合いに出したのは『サブネットマスクはルーティングテーブル上でのIPアドレスをグループ化する表現方法』だという主張の根拠となるからです。

この根拠をさらに補足すると、Cisco の以下を含め様々なページにルーティング設定として mask という表現が為されています。

https://www.cisco.com/c/ja_jp/td/docs/sw/campuslanswt-access/cat2960swt/cg/002/swcfg/swipstatrout.html

なのでサブネットの本来の意味はルーティング時に扱うIPアドレスのグループ "I" であることは間違いなさそうです。Ethernetについては資料が乏しく、推測にはなりますが、おそらくこのサブネットの考えを Ethernet に適合させる際に "II" の意味が後付けされたのでは無いでしょうか。

ちなみに、クラスフルの時代は今のサブネットマスクに該当する言葉は「マスク」もしくは「ネットマスク」でした。クラスAのアドレスであれば「マスクは /8」といった感じです。

ですが CIDR の登場によってクラスレスの考え方が普及し、今までのマスクよりも下位(sub)のマスクが登場した(例えば今までは 10.0.0.1 は /8 のマスクでしたが、10.1.1.1/24 という下位のマスクが登場した)ため、『サブネットマスク』と呼ばれているのです。

さらに言うと、 192.168.0.0/16 というような、本来のマスクよりも上位(super)のマスクのことを『スーパーネットマスク』とも言うのですが、今ではクラスフルの考え方が薄れ、慣例的に全て『サブネットマスク』と呼ばれています。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする