IPアドレスとサブネットマスクの各ビットの論理積を取ったものがネットワークアドレスである(サブネットマスク、CIDR表)

二千年後の君へ

記事タイトルは https://wa3.i-3-i.info/word11975.html から引用

記事タイトルは理解するとめっちゃシンプルに表現しててわかりやすいけど、理解してないとマジで意味わからん。実は第一話に隠されていた最終話の伏線みたいなもん。

IPアドレスフィルタリングしなきゃいけなくなって65536 * 5 + 1048576 * 3 + なんかいっぱい個くらいのIPをホワイトリストに入れる必要があって、そのためにサブネットマスク勉強しなおして真面目に実践した時の思い出。

(念のため添えておきますが数は適当です。多いってことを表現するための記述)

サブネットマスクでまとめてIPを登録したい

なんかいっぱい個のIPを片っ端からホワイトリストに入れるのは嫌です。

プログラマーがそんなのやるわけないだろ。という事でサブネットマスクでまとめて設定します。

サブネットマスクは読んで字の通りネットワークをマスクしてサブネットワークに分割します。つまりなんかいっぱい個のIPの表現に出来ます。

具体例、以下は等価

162.168.255.44\30
162.168.255.44
162.168.255.45
162.168.255.46
162.168.255.47

確かめ算

\30部分がサブネットマスクのCIDR形式やらプリフィクス形式というもので、ここでネットワークの範囲を表現する。

この値はIP表現にすると255.255.255.252 、これを2進数にすると11111111.11111111.11111111.11111100

先に例に出した162.168.255.44-47、これを2進数にすると

10100010.10101000.11111111.00101100
10100010.10101000.11111111.00101101
10100010.10101000.11111111.00101110
10100010.10101000.11111111.00101111

下の2進数それぞれを上のサブネットマスクのそれと論理積(AND)を取ると全てIP表現で162.168.255.44になる。

範囲外のIPの確かめ算がしたい人向けの末尾43と48の2進数表現も置いとく。サブネットマスク重ねると40、48になるはず

10100010.10101000.11111111.00101011
10100010.10101000.11111111.00110000

これが記事タイトルの「IPアドレスサブネットマスクの各ビットの論理積を取ったものがネットワークアドレスである」の伏線回収

飛んできたIPをホワイトリストにあるサブネットマスク表現付きIPとこのルールで計算して、ホワイトリスト内とマッチするかみたいな使い方ができる

CIDRの種類とその範囲は以下のCIDR表で説明する。

CIDR表

https://note.cman.jp/network/subnetmask.cgi

このページの下部の\30みたいなのとIPっぽい表記、IPアドレス数の表がそれ

1から32まである中の良さそうなの使えば良い

不安なら下のCIDR電卓で確かめ算

調べればいろんなバリエーションがあるので使い良いやつを見つけて控えとくと良い

CIDR電卓

https://note.cman.jp/network/subnetmask.cgi

CIDR表と同じページの使ってる。

CIDR表記が実際どの範囲のIPの内容になるのか計算して教えてくれる。範囲合ってるかの確かめ算で使うと便利

調べればいろんなバリエーションあるので使い良いやつを見つけて愛用すると良い