Inoi's blog

新人インフラエンジニアの日々の記録

サブネットマスクとCIDR表記

cloudpack猪井です。今回はCIDR(Classless Inter-Domain Routing)についてみていきます。

 

CIDRとは

この方法では、IPアドレスのネットワーク部とホスト部の境界を8ビット単位に固定せず、サブネットマスクでネットワーク部の長さを決めます。

 

サブネットマスク

サブネットマスクは、IPアドレスと同じく32ビットで表記し、ネットワーク部を全部1、ホスト部を全部0で書きます。

例)

2進数表記だと、 11111111.11111111.11111111.0000
10進数表記だと、255.255.255.240

 

CIDR表記

一般的には、IPアドレスの後ろにスラッシュで区切ってネットワーク部の1の数を書き、サブネットマスクを表す方法が主流になっています。

例えばIPアドレスが135.77.98.32でサブネットマスクが 255.255.255.240のとき、
「135.77.98.35/28」のように表記します。(これをCIDR表記といいます。)

 

どのネットワークに属しているか

サブネットマスクによってネットワーク部が決まり、グループ分けが行われています。
例えば上の例のIPアドレスがどのネットワークに属するかを調べるには、IPアドレスサブネットマスクを2進数に変換してAND演算を行うとわかります。

IPアドレス         10000111 01001101 01100010 00100011  (135.77.98.35)
サブネットマスク      11111111 11111111 11111111 11110000    (255.255.255.240)

ネットワークアドレス 10000111 01001101 01100010 00100000


「135.77.98.32」が ネットワークアドレスで、「135.77.98.35」は、
「135.77.98.32~135.77.98.63」のネットワークに属することが分かります。

 

〜雑感〜

この「サブネットマスクでネットワーク部分/ホスト部分の長さを調整できる」という仕組みはすごく合理的ですね〜。ネットワークにつなぐ必要がある機器の数に合わせて柔軟に割り当てられる。

そのぶん尚更、前エントリの「クラス分け」がとても不便なものに感じられます。1ネットワーク数あたりのホスト数がクラスA、B、Cの16777214,65534,254の三択しかないというのは選択肢が少なすぎますね。

 8ビット(1バイト)で分けるということにそんなに意味があるんでしょうか。よくわかりません。。。

 

 今回はここまでです。