1. ホーム
  2. 記事一覧
  3. 【保存版】サブネット・サブネットマスク徹底解説

2023.03.20

【保存版】サブネット・サブネットマスク徹底解説

こちらの記事ではサブネット・サブネットマスクについて解説します。

まずはじめに、サブネットが誕生した理由からサブネットの概要を説明します。そして、サブネットの利点と欠点、サブネットマスクの仕組みや使い方を説明します。

また、こちらの記事はIPアドレスに関しての前提知識が必要となります。IPアドレスに関しては以下の記事をご覧ください。

https://envader.plus/article/51

サブネットが誕生した理由

初期のTCP/IPのIPアドレス(IPv4)は、IPアドレスの枯渇問題を抱えていました。この問題の対策として、IPアドレスの割り当てをクラスフルアドレッシングという仕組みが導入されました。

クラスフルアドレッシングにはユーザに割り当てられるアドレスクラスが3種類しかなく、いずれのアドレスクラスもユーザにとって「丁度良いアドレスクラス」ではありませんでした。そのため、「3種類の中では」大きすぎず、小さすぎないクラスBにユーザからのIPアドレスの割り当て要求が集中しました。クラスBの割り当てを受けたからといって、クラスBの接続可能最大数(65,534台)のホストが同時に接続することが稀なネットワークも存在し、IPアドレスが無駄に消費される結果となりました。

このように、クラスフルアドレッシングではIPアドレスの枯渇問題を解決することができませんでした。そのため、「サブネット」という概念が誕生しました。

「サブネット」とは、ネットワーク内の分割されたネットワークのことを指し、ネットワークを分割することを「サブネット化」と呼びます。

サブネット化とは

サブネット化は、ネットワークを分割し、収納するホストの台数に適したネットワーク(サブネット)を構築することができます。ネットワークを分割することで収納できるホスト数は減少しますが、より多くのネットワークを使用することができます。

上記の図のように従来のクラスフルアドレッシングのクラス(クラスA、クラスB、クラスC)のネットワークを分割することをサブネット化と表現することもありますが、クラスの定義に関わらず単にネットワークを分割することもサブネット化すると表現します

サブネット化の利点

サブネット化を行うと、IPアドレスの無駄な消費以外に、以下の利点があります。

  • 通信トラフィックの緩和
  • ネットワークの効率化
  • ネットワーク障害が起きた箇所を特定できる

通信トラフィックの緩和

例えば、ある企業がクラスフルアドレッシングで用いられるクラスBのプライベートIPアドレス「172.18.0.0~172.18.255.255」を使用してネットワークを構築し、クラスBの接続可能最大数である65,534台のホストが接続したと仮定します。

クラスBでは65,534台のホストを収容することは可能ではありますが現実的ではありません。なぜなら、1つのネットワークに65,534台のホストを収容した場合、通信トラフィックが多すぎてネットワークが飽和状態(データ処理が限界に達してそれ以上速度が出ない状態)になり、通信自体ができなくなる可能性もあります。また、ホストの台数が膨大になることで管理も増大します。

この問題は、クラスBのネットワークを更に分割し、それぞれのネットワーク間をルータで相互に接続する方法、つまりサブネット化を行うことで解決することができます。サブネット化を行うと、通信トラフィックを局所化して全体的な負担を緩和し、管理の手間も軽減することができます。

ネットワークの効率化

サブネット化されていないネットワークの場合、ホストの台数が増えるごとに余計な通信や通信の渋滞(輻輳)が発生します。

例えば、クラスBのネットワークでARP(IPアドレスからMACアドレスを調べるブロードキャストの1種)を送ったとします。この時、該当のホスト以外はARPで送られてきた通信を破棄します。これが余計な通信です。

サブネット化することでブロードキャストが送られる範囲を分割(縮小化)することができ、余計な通信自体の量を減らすことができます。また、輻輳も緩和され、全体的なネットワークのパフォーマンスが向上します。

ネットワーク障害が起きた箇所を特定できる

大規模ネットワークの場合、収納するホストの台数が数千から数万になるものもあります。この大規模ネットワークの中で障害が発生した場合、ホストの台数が多すぎることが原因でどの機器で障害が発生したかを特定しにくくなります。

サブネット化を行いネットワーク部を分割することにより、障害が発生した際にどの範囲で障害が発生したのかを容易に特定することができます

サブネットの欠点

サブネットに分割すると、様々な利点が得られますが、欠点も存在します。

1つのネットワークから分割したサブネットそれぞれに別々のネットワークアドレスを設定するため、ルータ等を介さずに直接通信することができなくなります。相互接続を行いたい場合、別途レイヤ3スイッチングハブかルータを設置する必要があります。

また、相互接続のための導入コストや機器の設定・管理をする必要があることが欠点です。

サブネットマスク

サブネットマスクとは、IPアドレスを分割して、どこがネットワークアドレス部分で、どこが端末を表すホストアドレス部分かを識別するために使う数値です。サブネットマスクをIPアドレスと組み合わせることで、サブネット化を行います。

サブネットマスクの仕組み

サブネットマスクは、一般的には「255.255.255.0」のような10進数とピリオドの組み合わせで表記します。このサブネットマスクを2進数で表記すると、「11111111.11111111.11111111.00000000」となります。これは、「1」の部分がネットワーク部で、「0」の部分がホスト部であることを示しています。また、サブネットマスクは左端から1つ以上の「1」が連続している必要があります。

該当のIPアドレスのネットワーク部を決めるためには、「IPアドレスとサブネットマスクの論理積(AND)」を取ります。

論理積の特性を利用し、サブネットのネットワーク部が決まる仕組みを以下の図にまとめました。

サブネットマスクを使ったサブネット化

サブネットマスクを使ったサブネット化の例を、CIDR(クラスレスアドレッシング)を用いて説明します。以下の図と表をご覧ください。

10進数表記2進数表記
IPアドレス126.129.182.001111110.10000001.10110110.00000000
サブネットマスク255.255.255.19211111111.11111111.11111111.11000000
サブネットマスク255.255.255.22411111111.11111111.11111111.11100000
サブネットマスク255.255.255.24011111111.11111111.11111111.11110000

ISP(Internet Service Provider:インターネットサービスプロバイダー)はサブネットマスクを使用することで、従来のクラスフルアドレッシングのアドレスクラスに該当するIPアドレスを割り当てるのではなく、①のようにユーザが必要なネットワーク規模に応じてIPアドレスを割り当てることができます。

また、ISPからIPアドレスの割り当てを受けたユーザは、サブネットマスクを使用することで最大62台が収納可能なネットワークを図の②、③、④のような複数のネットワークに分割することが可能です。

また、表を見て分かるように、IPアドレスのホスト部の一部をネットワーク部とみなして、IPアドレスの範囲に収容できるネットワークの数を増やすことでサブネット化を行います。

サブネットマスクはどんな時に設定する必要があるのか?

サブネットマスクは、グローバルIPアドレスとプライベートIPアドレスそれぞれで管理方法が異なります。それぞれの管理を以下の表にまとめました。

IPアドレスサブネットの管理
グローバルIPアドレスISPなどが管理・割り当てを行う(ユーザは自由に割り当てできない)
プライベートIPアドレス企業や一般家庭で管理・割り当てすることができる

上記の表のように、ユーザはプライベートIPアドレスのサブネットの管理や割り当てを行います。現在はルータに搭載されたDHCP機能により自動でIPアドレスが割り振られるので、手動でIPアドレスやサブネットマスクを設定することは少なくなりました。しかし、異なるネットワークはルータを介さずに直接通信できないことを利用し、以下のような場合にサブネットマスクを手動で設定します。

  • ①企業内の部署間でデータの参照を制限する場合
  • ②ホストやサーバの台数が多く、分割して管理する場合
  • ③開発環境と本番環境を分けるなど、環境を切り離す場合

ルータが参照するサブネットマスク

上の図のネットワークAとネットワークBが相互に通信を行いたい場合は、互いが異なるネットワークなのでルータを介して通信を行うことになります。この時、ルータがどのようにして宛先まで通信を届けるかを説明します。

ルータはまず、送られてきた通信の宛先が同一ネットワークか、異なるネットワークかを判断します。そこで、コンピュータ同士のデータのやり取りに使われる「IPパケット」の詳細構造を以下にまとめましたのでご覧ください。

図を見て分かるように、IPパケットの中にはネットワークマスクの情報は入っていません。つまり、送信元のサブネットマスクの情報を知ることができません。

そのため、送られてきた通信が同一ネットワークかどうか(宛先ネットワークアドレスの算出)を、「IPパケットの中の宛先IPアドレス」と「ルータ自身に設定されたサブネットマスク」の論理積を取ることで判断しています。

そして、送られてきた通信が同一ネットワークだった場合はネットワーク内のホストに通信を届け、異なるネットワークだった場合は次のルータに通信を任せます。

まとめ

こちらの記事ではサブネット・サブネットマスクについて解説しました。

普段生活しているだけではサブネットの構築をすることやサブネットマスクを変更する機会などあまりないかもしれません。しかし、企業などによっては部署ごとにサブネットを構築することや、開発環境・本番環境を分ける、といったことは珍しくありません。

そういった場合に対応・実装できるようになるためにも、サブネット・サブネットマスクの知識に限らず、IPアドレスやCIDR(クラスレスアドレッシング)に関する知識も合わせて学習していきましょう。

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事