CIDRとサブネットでIPアドレスの範囲指定を計算する方法 (プレフィックス長)

CIDRって知ってますか?
Classless Inter-Domain Routingの頭文字をとったもので「サイダー」と読みます。

CIDRは原則としてビット単位のプレフィックスに基づいてIPアドレスを解釈する規格である。これによりルーティングではルーティングテーブル上の1エントリにアドレスをグループ化して格納できる。このようなアドレスのグループをCIDRブロックと呼び、IPアドレスを二進法で表したときの先頭の何ビットかが共通になっている。IPv4のCIDRブロックは、IPv4アドレスの記法と似た文法で指定される。すなわち、アドレスをドットで4つに分け、それぞれを十進で書き、その後にスラッシュ記号をつけ、さらに0から32の数を付ける。A.B.C.D/N のような形式である。

Wikipediaできれいにまとまってました笑
https://ja.wikipedia.org/wiki/Classless_Inter-Domain_Routing

広告

プレフィックス長の計算方法

 
プレフィックス長の計算方法では
「IPアドレス範囲内のipアドレス数」
が必要になります。

計算手順は下記です。

  • log2(IPアドレス範囲内のipアドレス数)を求める。
  • それに -32 する。

Python3で簡単に出せる。

よく使うIP/CIDR

よく使うIP/CIDRのは書き溜めておく。

  • a.b.c.0/24
  • 合計256のホスト数

  • a.b.c.0/20
  • 合計4,096のホスト数

  • a.b.0.0/16
  • 合計65,536のホスト数

なんだかんだよく忘れる。


じゃあね〜〜。