クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

IPアドレスでネットワークを分ける(サブネット)

このレッスンのあとで: ネットワークをサブネットに分けることができる。

50分のレッスンコマンド3件スタティックルーティングのラボ:小さなネットワークの経路をブラウザーで作る

一つの事務所、三つの仲間

小さな会社の事務所に、六十台の機器があります。レジ、プリンター、社員のノートPC、来客用のスマホが、同じネットワークにつながっています。

社長は、レジと来客のスマホを分けたいと考えています。ケーブルを動かす前に、アドレスの大きな塊を小さな塊に切り分けなければなりません。

この切り分けが、今日のテーマです。

このレッスンのゴール

メモ

ネットワークをサブネットに分けることができる。

重要な言葉

ことばいみれい
IPアドレスネットワーク上の機器を一つ決める番号10.0.12.77
プレフィックススラッシュの後ろの数。ネットワークを表すビットの数/24
サブネットマスクプレフィックスを四つの数で書いたもの255.255.255.0
サブネット大きなネットワークを切って作る小さなネットワーク
ネットワークアドレス塊の最初のアドレス。塊そのものの名前になる
ブロードキャストアドレス塊の最後のアドレス。全員に呼びかけるときに使う

学生が入力するセルは、このプレビューでは空白です。

アドレスは32ビット

IPv4のアドレスは32ビットです。0から255までの数を四つ、点で区切って書きます。

四つの数は、それぞれ1バイトです。機械はビットで考え、人は点で区切った形で読みます。

例: アドレスをビットで見る

部分数ビット
1番目1000001010
2番目000000000
3番目1200001100
4番目7701001101

学生が入力するセルは、このプレビューでは空白です。

ラボのアドレスを見る

コマンド
netlab status

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ラボの表示を読む

機械ごとに、ケーブルと、10.0.12.1/24 のようなプレフィックス付きのアドレスが並びます。

r1 と r2 をつなぐ線の二つのアドレスを探しましょう。最初の24ビットが同じなので、同じネットワークです。

プレフィックスで二つに分ける

スラッシュの後ろの数がプレフィックスです。左から数えて、何ビットがネットワークを表すかを示します。

残りのビットが、機器を表します。10.0.12.77/24 なら、前の24ビットがネットワーク、後ろの8ビットが機器です。

プレフィックスが長いほど、機器に使えるビットは減ります。

例: よく使うプレフィックス

プレフィックスマスクアドレス数機器に使える数
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230
/28255.255.255.2401614
/30255.255.255.25242

学生が入力するセルは、このプレビューでは空白です。

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/26192.168.10.1192.168.10.62192.168.10.63
192.168.10.64/26192.168.10.65192.168.10.126192.168.10.127
192.168.10.128/26192.168.10.129192.168.10.190192.168.10.191
192.168.10.192/26192.168.10.193192.168.10.254192.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 で確かめましょう。最後に、残ったアドレスの数を答えます。

このラボとソースについて: スタティックルーティングのラボ:小さなネットワークの経路をブラウザーで作る

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。