二千年後の君へ
記事タイトルは 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の内容になるのか計算して教えてくれる。範囲合ってるかの確かめ算で使うと便利
調べればいろんなバリエーションあるので使い良いやつを見つけて愛用すると良い