サブネットマスクと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バイト)で分けるということにそんなに意味があるんでしょうか。よくわかりません。。。
今回はここまでです。