😽

IPアドレスの計算法まとめ

に公開

IPアドレスの計算法まとめ

1. はじめに

この記事ではIPアドレスの数の求め方、ネットワークアドレス、ブロードキャストアドレスの求め方を書いていきます。自身が今現在研修で躓いているため、頭を整理させるために書くに至りました。同じく苦戦している人の参考になればと思います。

2. IPアドレスの数を求めるには

<例題> プレフィックス長が/28のIPアドレスの数を求めよ。
このような問題が出されたとき、やるべきことは

  1. /28 からホスト部の数を割り出す
  2. ホスト部分の数を2のべき乗する
  • 1 プレフィックス長とはIPアドレスのネットワーク部分の数を指しているので、/28とは32個ある数値のうち(IPv4の場合)28個がネットワーク部であることを指している。IPアドレスはネットワーク部とホスト部の二つで構成されているので、

32-28=4で、これがホスト部の数となる。

  • 2 ホスト部の数がわかったところでここに2のべき乗をしていく。つまり例題で言えば2の4乗ということになる。
    すると2の4乗=16になり、IPアドレスの数は16個ということになる。

A.16個

3. ネットワークアドレス、ブロードキャストアドレスを求めるには

まずここで、ネットワークアドレス、ブロードキャストアドレスとはいかなるものなのかを明らかにしていきたい。

  • ネットワークアドレス・・・IPアドレスのひとつであり、ネットワークそのものを表すアドレスのこと
  • ブロードキャストアドレス・・・IPアドレスのひとつであり、ネットワーク上のすべてのアドレスにデータを一斉に送信するためのアドレスのこと

ネットワークアドレスはホスト部が全て0で構成されているのに対し、ブロードキャストアドレスはホスト部が全て1で構成されている
その前提を踏まえて、実際にIPアドレスからネットワークアドレスとブロードキャストアドレスを求めていく。

<例題>
192.168.10.35/27 のネットワークアドレス、ブロードキャストアドレスを求めよ。
このような問題に対してやることは

  1. IPアドレスのホスト部のビット数を求める
  2. IPアドレスを二進数に直す
  3. ネットワークアドレス→IPアドレスの該当部分を全て0にする
     ブロードキャストアドレス→IPアドレスの該当部分を全て1にする
  4. 十進数に直す
  • 1 IPアドレスのホスト部のビットを求める
    ホスト部のビット数は、サブネットマスク又はプレフィックス長を見て求めることが出来る。例題の場合プレフィックス長から求めることとなる。

32-27=5 で5ビットとなる (32はIPアドレス全体のビット数であり、27はネットワーク部のビット数である為)
この値は3、4の過程で記述した該当部分の照合に使用される。

  • 2 IPアドレスを二進数に直す
    今回はホスト部の範囲が狭いため、第四オクテットの数だけを二進数に直していく。(ホスト部のビット数が9以上であれば第三オクテット、17以上であれば...という風に対応する)

35(10)=00100011(2)となる

  • 3 ネットワークアドレス→IPアドレスの該当部分を全て0にする
     ブロードキャストアドレス→IPアドレスの該当部分を全て1にする
    先ほど求めたホスト部のビット数はここで適応する。 5であれば右の末尾から五番目までの数字を全て0または1に変換する。
  • ネットワークアドレスの場合
    00100011の00011(右から五番目までの数字)を全て0にする
    0010000にする

  • ブロードキャストアドレスの場合
    001000111の00011(右から五番目までの数字)を全て1にする
    00111111 にする

  • 4十進数に直す
    3の過程で変換した二進数を十進数に再度変換する
  • ネットワークアドレスの場合
    00100000(2)=32(10)

  • ブロードキャストアドレスの場合
    00111111(2)=63(10)

ここで出てきた数字をIPアドレスに置き換えてあげることで、ネットワークアドレス及びブロードキャストアドレスを求めることが出来る。

A.ネットワークアドレス:192.168.10.32
ブロードキャストアドレス:192.168.10.63

4. まとめ

今回の学習でIPアドレスの計算方法について学習することができました。過程が多い部分も多く慣れるまで時間がかかりましたが、この記事の作成を通して改めてアウトプットが出来てよかったと思います。今後も計算方法を忘れぬよう、定期的に見返していきたいです。ありがとうございました。

Discussion