ネットワーク技術者にとってIPアドレスの計算は必須です。Ciscoの資格であるCCENTやCCNAでよく出題されます。
■例題1
IPアドレス「206.158.58.25/30」のサブネットマスク、および、このIPアドレスが属するネットワークのIPアドレスの範囲を求めなさい。
上記の例題をもとに、サブネットの繰り上がりを利用した解き方を書いてみようと思います。
まず例題のIPアドレスがクラスA、クラスB、クラスCのどのアドレスクラスに属するかを判断します。アドレスクラスを見分けるにはIPアドレスの第一オクテットを見て判断します。第一オクテットとは、IPアドレスを10進数表記してドット区切りした場合の一番先頭の数値を指します。「206.158.58.25」の第一オクテットは「206」になります。ちなみに第二オクテットが「158」、第三オクテットが「58」、第四オクテットが「25」です。
クラスA、B、C それぞれの第一オクテットの範囲は以下のようになります。
クラスA・・・1〜126
クラスB・・・128〜191
クラスC・・・192〜223
「206」は 192〜223 の範囲に入りますのでクラスCということになります。
この例題ではクラスCのアドレスを「/30」としてサブネット化しています。サブネット化とはもともとあるネットワークをもっと小さなネットワークに分割することです。クラスA、B、Cのネットマスク(ナチュラルマスクと言う)は以下のようになっています。
クラスA・・255.0.0.0 ネットワーク部は8ビット
クラスB・・255.255.0.0 ネットワーク部は16ビット
クラスC・・255.255.255.0 ネットワーク部は24ビット
サブネット化ではホスト部のビットを借用してネットワークを分割します。クラスCでは第4オクテットのホスト部(8ビット)の一部を借用することになります。「/30」とはネットワーク部が30ビットということなので、ナチュラルマスクのネットワーク部(24ビット)とホスト部から借用した6ビットで30ビットのネットワーク部とします。
ここで以下の表を覚えてください。
覚え方は、一番左端の「128」を覚えます。上段は右に行くごとに半分にしていきます。下段は上の数値と左隣の数値の和を書きます。例えば下段の「192」の場合は、上の数値「64」と左隣りの数値「128」の和となります。
この表から「/30」の場合のサブネットマスクを簡単に知ることができます。クラスCでホスト部から6ビットを借用するイメージを以下に示します。
6ビット借用したときの下段の数値は「252」ですので、IPアドレス「206.158.58.25/30」のサブネットマスクは「255.255.255.252」となります。
次に、このIPアドレスが属するネットワークのIPアドレスの範囲を考えます。先程の表の上段を見てください。6ビットを借用したときの上段の数値は「4」です。すなわち「/30」でサブネット化したときにネットワークアドレスは4づつ繰り上がることを表しています。
1番目のネットワーク・・206.158.58.0
2番目のネットワーク・・206.158.58.4
3番目のネットワーク・・206.158.58.8
:
7番目のネットワーク・・206.158.58.24
8番目のネットワーク・・206.158.58.28
:
(※)1番目のネットワークの範囲は 206.158.58.0 〜 206.158.58.3、2番目のネットワークの範囲は 206.158.58.4 〜 206.158.58.7 という具合です。
こう見てみるとIPアドレス「206.158.58.25」は7番目のネットワークに属することがわかります。これよりIPアドレスの範囲は、206.158.58.24 〜 206.158.58.27となりますが、先頭の「206.158.58.24」はネットワークアドレスであり、最後の「206.158.58.27」はブロードキャストアドレスとなるため通常のアドレッシングでは使えません。ネットワークアドレスとはホスト部のビットがすべて「0」となるアドレス、ブロードキャストアドレスとはホスト部のビットがすべて「1」となる特殊なアドレスです。
よって、ネットワークアドレスとブロードキャストアドレスを除いた 206.158.58.25 〜 206.158.58.26 がIPアドレスの範囲となります。
■例題2
IPアドレス「49.133.176.9/15」のサブネットマスク、および、このIPアドレスが属するネットワークのIPアドレスの範囲を求めなさい。
同様に例題2を解いてみます。第一オクテットが「49」であるためこのIPアドレスはクラスAということになります。クラスAのIPアドレスを「/15」でサブネット化するには、ネットワーク部(8ビット)とホスト部から借用した7ビットで15ビットのネットワーク部を作ります。クラスAでホスト部から7ビットを借用するイメージが以下です。
表の下段の数値は「254」なのでIPアドレス「49.133.176.9/15」のサブネットマスクは「255.254.0.0」となります。次にIPアドレスの範囲ですが、表の上段の数値よりこのネットワークの繰り上がりは「2」ということがわかります。
1番目のネットワーク・・49.0.0.0
2番目のネットワーク・・49.2.0.0
3番目のネットワーク・・49.4.0.0
:
n番目のネットワーク・・49.132.0.0
m番目のネットワーク・・49.134.0.0
:
何番目かは数えていませんが「49.133.176.9」は「49.132.0.0」のネットワークに属することだけはわかります。このネットワークの範囲は 49.132.0.0 〜 49.133.255.255 です。先頭の「49.132.0.0」はネットワークアドレス、最後の「49.133.255.255」はブロードキャストアドレスとなるため、このネットワークで使用できるIPアドレスの範囲は 49.132.0.1 〜 49.133.255.254 ということになります。
■例題3
「169.40.0.0」のネットワークにおいてサブネットを最大80個作りたい。どのようなサブネットマスクにすればよいか?
例題3は内容を変えてみました。これを解いてみます。例題3のネットワーク「169.40.0.0」は、第一オクテットが「169」のためクラスBに該当します。クラスBのナチュラルマスクは「255.255.0.0」でネットワーク部が16ビット、ホスト部も16ビットです。サブネットを80個作るにはホスト部からいくつかのビットを借用する必要があります。
1ビット借用・・2の1乗=2
2ビット借用・・2の2乗=4
3ビット借用・・2の3乗=8
:
6ビット借用・・2の6乗=64
7ビット借用・・2の7乗=128
:
80個作るには7ビット借用する必要があることがわかります。クラスBでホスト部から7ビットを借用するイメージが以下です。
表の下段の数値は「254」なのでサブネットマスクは「255.255.254.0」となります。ちなみにこのネットワークではネットワーク部に ナチュラルマスク16ビット+借用した7ビット=23ビット 使用していますので、ホスト部のビットは残りの9ビットとなります。よって、2の9乗=512 からネットワークアドレスとブロードキャストアドレスを引いた 510 がこのネットワークのホスト数となります。
■まとめ
サブネットの計算は以下の手順で行います。
- どのアドレスクラス(クラスA or B or C)に属するかを求める。
- ナチュラルマスクをもとにサブネットマスクを求める。
- ネットワークのアドレスの範囲を求める。
- ネットワークアドレス、ブロードキャストアドレスを求める。
- アドレッシング可能なアドレス範囲がわかる。