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