28bitなど中途半端なサブネットマスク(8,16,24bitなどではないもの)のIPアドレスから、ネットワークアドレスやブロードキャストアドレスを算出する場合、第1から第4オクテットのいずれかを2進数に変換して、0 と 1 をいじってからまた10進数に戻す、といった手間が必要になることがあります。今回はその方法をご紹介します。
手順の概要は次のとおりです。
1. サブネットマスクが切れるオクテットを特定する。
2. そのオクテットの10進数を2進数に変換する。
3. 変換した2進数のホスト部をすべて、ネットワークアドレスなら 0、ブロードキャストアドレスなら 1 にする。
4. ホスト部を変更した2進数のオクテットを10進数に戻す。
5. 元のIPアドレスとつなげる。
では具体的にIPアドレス 172.16.198.1 を例にとってみていきましょう。
1. サブネットマスクが切れるオクテットを特定する。
サブネットマスクが8,16,24bitなどでないとき、第1から第4オクテットのいずれかで、ネットワークアドレス部とホスト部の境目が現れます。例えば 172.16.198.1/20 というIPv4アドレスであれば、サブネットマスクは20bitなので境目は第3オクテットにあります。この考え方によりまずは境目のあるオクテットを特定します。
172 . 16 . 198 . 1
第1オクテット 第2オクテット 第3オクテット 第4オクテット
<- 8bit分 ->
<———– 16bit分 ——–>
<—————— 20bit分 ———–>
<————————— 24bit分 ————>
2. そのオクテットの10進数を2進数に変換する。
境目のあるオクテットを特定したら、そのオクテットの10進数を2進数に変換します。ここでは例として 198 を次のように2進数に変換します。
198 ⇒ 1100|0110
※変換方法が不明な方はこちらの記事をご覧ください。
3. 変換した2進数のホスト部をすべて、ネットワークアドレスなら 0、ブロードキャストアドレスなら 1 にする。
変換した2進数のうち、サブネットマスクの値によりネットワーク部とホスト部に分けます。サブネットマスクが20bitの場合、今第3オクテットの数値をいじっているので、20bit – 16bit(第1,2オクテット分)= 4bit分がネットワーク部になります。
1 1 0 0 | 0 1 1 0
<— ネットワーク部 4bit ——-><— ホスト部 4bit ————–>
このホスト部を、ネットワークアドレスであればすべて 1 に、ブロードキャストアドレスであればすべて 0 にします。
[ネットワークアドレス] 1 1 0 0 | 0 0 0 0<— ネットワーク部 4bit ——-><— ホスト部 4bit ————–> [ブロードキャストアドレス] 1 1 0 0 | 1 1 1 1
<— ネットワーク部 4bit ——-><— ホスト部 4bit ————–>
4. ホスト部を変更した2進数のオクテットを10進数に戻す。
ホスト部を変更した2進数を10進数にします。
5. 元のIPアドレスとつなげる。
元のIPアドレスのうち、ホスト部との境目がないネットワーク部の値をそのまま流用すればネットワークアドレスやブロードキャストアドレスの出来上がりです。境目がないホスト部を、ネットワークアドレスではすべて 0 に、ブロードキャストアドレスではすべて 1 にすることを忘れないようにしましょう。今一度IPアドレス 172.16.198.1 をながめて次のように値を流用します。
第1オクテット 第2オクテット 第3オクテット 第4オクテット
↓(流用) ↓(流用) ↓(変更) ↓(すべて 0 に)
172 . 16 . 192 . 0 [ブロードキャストアドレス] 172 . 16 . 198 . 1
第1オクテット 第2オクテット 第3オクテット 第4オクテット
↓(流用) ↓(流用) ↓(変更) ↓(すべて 1 に)
172 . 16 . 207 . 255
結果だけ見ると次のようになります。
IPアドレス:172.16.198.1/20
ネットワークアドレス:172.16.192.0/20
ブロードキャストアドレス:172.16.207.255/20
ぶっちゃけ管理しづらいのであんまりややこしいサブネットマスクを使用しているところは少ないです。
限られたアドレス資源を有効に活用したり、CCNAを受かるためには必要になりますので、その際はお役にたちますと幸いです。
written by 伊藤豪朗
新課程対応のCCNA対策講座 連載リンク
ネットワーク学習の登竜門・・
ゼロからのCCNA独学講座