1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

サブネットマスクとは - IPアドレスからネットワークアドレスを判別する

Last updated at Posted at 2019-04-11

IPアドレスは、前方がネットワーク1のアドレス、後方がそのネットワーク内のコンピューターや機器のアドレスになっています。
サブネットマスクは、IPアドレスの前方から何ビット目までがネットワーク部にあたるのかを区別するためにあります。

なぜIPアドレスのネットワーク部を知る必要があるのか?

宛先IPアドレスのコンピューターが、自身と同じネットワーク内に存在しているのか、それとも外に存在しているのかによって、パケットの送り先を変えなければいけないからです。

自身と同じネットワーク内に存在していれば直接2通信できます。
しかし、ネットワークの外にいるコンピューターと通信したいなら、パケットはルーターに向けて送らなければいけません。
外の世界、別のネットワークとつながっているのはルーターだからです。

例えば、MacとiPhoneを同じWi-Fiにつないでいれば、それらは同じネットワーク内に存在していますので、相手のIPアドレスを指定すれば直接通信できます。
しかし、Macがどこかのウェブサイトにアクセスするためには、Macはルーターに向かって通信しなければいけません。

送り先がネットワークの中にいるのか外にいるのかを、具体的にどのような手順で判別しているのか

ここにWi-FiにつないだiPhoneがあります。iPhoneの設定画面から、つないでいるWi-Fiの詳細情報を見てみました。

IPアドレス 10.0.2.2
サブネットマスク 255.255.255.0
ルーター 10.0.2.1

IPアドレスはiPhone自身に割り当てられたIPアドレスです。
このサブネットマスクは、IPアドレス10.0.2.2のうち、10.0.2までがネットワーク部であることを示しています。

このiPhoneから宛先10.0.2.4にアクセスするとします。

iPhoneは、宛先のコンピューターに設定されているサブネットマスクを知ることはできないため、判別には自身のサブネットマスクを使います。

自身のネットワークアドレスは、10.0.2.2と255.255.255.0の論理積により、10.0.2.0です。
宛先のネットワークアドレスは、10.0.2.4と自身のサブネットマスク255.255.255.0の論理積により、10.0.2.0と判断されます。
よって、自身と宛先は同じネットワークアドレスを持っている、すなわち同じネットワークにいると判断できます。
なので、iPhoneは直接10.0.2.4にパケットを送ります。

次に、このiPhoneから10.0.1.4にアクセスするとします。

先ほどと同様の論理積の結果、送り先は自身と同じネットワークにはいないと判断されます。
よってiPhoneは、ルーターである10.0.2.1に向けてパケットを送ります。
あとはルーターがネットワーク外との通信を成り代わってくれます。

ちなみに、このiPhoneに間違ったサブネットマスク255.255.0.0を設定してしまうと、宛先10.0.1.4にはつながらなくなってしまいます。
なぜなら、実際にはネットワークの外にいる10.0.1.4を、自身と同じネットワークにいると判断してしまい、iPhoneがルーターにパケットを転送しなくなるからです。

サブネットマスクを上手く使うと、ネットワークを好きなように分割できる(サブネット化)

サブネットマスクを上手く設定して、あるIPアドレス群が別のネットワークに存在するものとコンピューターに認識させれば、ネットワークを論理的に分割することができます。(サブネット化)

ここに、10.0.0.0 〜 10.0.255.255というIPアドレスの範囲を持ったネットワークがあるとします。
先頭16ビットがネットワーク部で、後方16ビットがホスト部です。

ここで、先頭24ビットがネットワーク部であるものとしてサブネットマスクを設定します。
すると、10.0.0.0のコンピューターから、10.0.1.0に向けて直接通信することはできなくなります。
ネットワーク部が異なるため、別々のネットワークに存在すると認識されるからです。

よって、最初のネットワークは、
10.0.0.0 〜 10.0.0.255
10.0.1.0 〜 10.0.1.255
10.0.2.0 〜 10.0.2.255
というように、ネットワークが論理的に分割されたことになります。

この、ネットワークの論理的な分割は、例えば以下のような目的で活用されます。

  • 同じ組織のネットワークでも経理部のネットワークは分離して、他の部署からアクセスできないようにする
  • クラウドでサービスを構築する時に、インターネットからアクセスできる箇所と、インターネットからはアクセスできない箇所に分離して、前者にWebサーバを、後者にデータベースサーバを設置する

参考

インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
スラスラわかるネットワーク&TCP/IPのきほん
IPアドレス - Wikipedia

  1. ここでいう「ネットワーク」とは、インターネット全体のことではなく、LANなどの閉じたコンピューターネットワークのことです。インターネットは、地球上の多数のネットワークを相互に接続したものです。

  2. 直接通信するといっても、コンピューターがコンピューターに向けて直にパケットを飛ばすのではなく、有線LANであればネットワークハブを、無線LANであれば親機を介して通信します。直接というのは、ルーターを介さずに通信できるという意味です。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?