一つの事務所、三つの仲間
小さな会社の事務所に、六十台の機器があります。レジ、プリンター、社員のノートPC、来客用のスマホが、同じネットワークにつながっています。
社長は、レジと来客のスマホを分けたいと考えています。ケーブルを動かす前に、アドレスの大きな塊を小さな塊に切り分けなければなりません。
この切り分けが、今日のテーマです。
このレッスンのゴール
メモ
ネットワークをサブネットに分けることができる。
重要な言葉
| ことば | いみ | れい |
|---|---|---|
| IPアドレス | ネットワーク上の機器を一つ決める番号 | 10.0.12.77 |
| プレフィックス | スラッシュの後ろの数。ネットワークを表すビットの数 | /24 |
| サブネットマスク | プレフィックスを四つの数で書いたもの | 255.255.255.0 |
| サブネット | 大きなネットワークを切って作る小さなネットワーク | |
| ネットワークアドレス | 塊の最初のアドレス。塊そのものの名前になる | |
| ブロードキャストアドレス | 塊の最後のアドレス。全員に呼びかけるときに使う |
学生が入力するセルは、このプレビューでは空白です。
アドレスは32ビット
IPv4のアドレスは32ビットです。0から255までの数を四つ、点で区切って書きます。
四つの数は、それぞれ1バイトです。機械はビットで考え、人は点で区切った形で読みます。
例: アドレスをビットで見る
| 部分 | 数 | ビット |
|---|---|---|
| 1番目 | 10 | 00001010 |
| 2番目 | 0 | 00000000 |
| 3番目 | 12 | 00001100 |
| 4番目 | 77 | 01001101 |
学生が入力するセルは、このプレビューでは空白です。
ラボのアドレスを見る
netlab statusここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ラボの表示を読む
機械ごとに、ケーブルと、10.0.12.1/24 のようなプレフィックス付きのアドレスが並びます。
r1 と r2 をつなぐ線の二つのアドレスを探しましょう。最初の24ビットが同じなので、同じネットワークです。
プレフィックスで二つに分ける
スラッシュの後ろの数がプレフィックスです。左から数えて、何ビットがネットワークを表すかを示します。
残りのビットが、機器を表します。10.0.12.77/24 なら、前の24ビットがネットワーク、後ろの8ビットが機器です。
プレフィックスが長いほど、機器に使えるビットは減ります。
例: よく使うプレフィックス
| プレフィックス | マスク | アドレス数 | 機器に使える数 |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /30 | 255.255.255.252 | 4 | 2 |
学生が入力するセルは、このプレビューでは空白です。
Pythonにマスクを聞く
python3 -c "print(__import__('ipaddress').ip_network('10.0.12.0/24').netmask)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
「/24 には機器が256台つながる」と思う人が多いです。256個あるのはアドレスで、機器の数ではありません。最初はネットワークの名前、最後はブロードキャストに使うので、機器に渡せるのは254個です。
塊をサブネットに切る
塊を切るには、プレフィックスを長くします。1ビット足すごとに、サブネットの数は2倍、一つの大きさは半分になります。
/24 を2ビット分切ると、/26 のサブネットが四つできます。それぞれ64個のアドレスを持ちます。
新しいネットワークは、64の倍数の0、64、128、192から始まります。
例: 四つのサブネット
| ネットワーク | 最初の機器 | 最後の機器 | ブロードキャスト |
|---|---|---|---|
| 192.168.10.0/26 | 192.168.10.1 | 192.168.10.62 | 192.168.10.63 |
| 192.168.10.64/26 | 192.168.10.65 | 192.168.10.126 | 192.168.10.127 |
| 192.168.10.128/26 | 192.168.10.129 | 192.168.10.190 | 192.168.10.191 |
| 192.168.10.192/26 | 192.168.10.193 | 192.168.10.254 | 192.168.10.255 |
学生が入力するセルは、このプレビューでは空白です。
Pythonに塊を切らせる
python3 -c "print(list(__import__('ipaddress').ip_network('192.168.10.0/24').subnets(new_prefix=26)))"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
発展: 大きさの違うサブネット
実際のグループは、同じ大きさとは限りません。192.168.20.0/24 を、レジ60台、社員のノートPC25台、来客のスマホ10台に分けましょう。
一番大きいグループから先に塊を渡し、次に大きいグループへ進みます。塊は、その大きさの倍数で空いている最初の位置から始めます。
それぞれのネットワーク、最初の機器、最後の機器、ブロードキャストを書き、自分の calculate で確かめましょう。最後に、残ったアドレスの数を答えます。