X界隈で、ネットワーク機器の設定の際に、IPアドレスを教えてくれと言われたので、「xx.xx.xx.xx/21」と教えたら、先方の設置業者に意味を分かってもらえず大変困った旨のポストを見かけました。
ネットワーク関係の仕事に従事する人も、意外とこういった些細なトラブルが多いのではないかと思います。
ネットワーク初心者が恥を書かないよう計算方法を習得してもらうため今回ブログ記事にまとめてみたので、ぜひ参考にしてくださいね!
どうしてトラブルになった?
ネットワーク機器では、一部を除き、まだまだIPアドレス(192.168.x.xのようなもの)とサブネットマスク(255.255.255.0などのようなもの)を別々に入力するようになっているケースが多いように思います。
設置するのはネットに詳しい人ではなく、疎い人かも知れません。
誰が設定するのかが分からないので、依頼する側は、「IPアドレス192.168.x.x(サブネットマスク255.255.x.x)に設定して」とはっきり言う方が親切ではないだろうかと思っています(これが一番)。
業者の質問の内容から、業者はネットリテラシーのない人というのが分かるので、恐らくポスト主は業務遂行のため、それ相応の対応をしたかと思いますが、ネットに疎い人に
「こんな当たり前のこと知らんのか!計算すれば分かるだろ!
空気読め!」
というのは、大変酷な話なのです。
私は、こんなお下品な物言いはしませんことよ。
ねぇ、旦那。
す、すんません!!
(後が怖いな…)
「/〇〇」っていったい何よ? CIDRの基本とその重要性
Xのポストの内容を理解するには「/〇〇」が何たるかを理解しなくてはなりません。
「/〇〇」というのは、CIDR(Classless Inter-Domain Routing)と呼ばれるものに登場する「プレフィックス」というものです。
CIDR=サイダーと呼ばれているよ。炭酸飲料じゃないけどね。
CIDRは、IPアドレスを効率的に割り当てる技術で、ネットワーク設計の柔軟性を高め、IPアドレスの枯渇問題への対応が目的。
この技術は1993年に導入されて以来、ネットワーク管理の効率化と拡張性の向上に貢献しています。
ネットワークの成長と多様化に伴い、従来のクラスベースのIPアドレス割り当てでは対応しきれなくなった問題を、CIDRは解決します。
この技術を利用することで、企業や組織はより多くのネットワークとデバイスを効率的に接続し、インターネットリソースを最適に活用できるようになるのです。
CIDR表記の計算方法の詳細
だから何?と言われてしまいそうですが、CIDR表記では、IPアドレスを「ネットワーク部」と「ホスト部」に分割する方法を定義しています。
例えば、「192.168.0.200/25」という表記では、最初の25ビットがネットワークアドレスを指定し、残りの7ビットがホストアドレスを指定。
CIDR表記法は、ネットワークのサイズを柔軟に調整し、具体的なホスト数に応じてサブネットを効果的に管理することを可能にしています。
サブネットマスクは、どの部分がネットワークアドレスでどの部分がホストアドレスかを区分し、これによりネットワークの境界が明確にされるのです。
これを理解するには物理系でよく出てくる2進数が役に立つのだけれど、苦手な人も当然いるかと思うし、早く解き方を知りたいという人もいるでしょう。
「計算なんて嫌じゃ。鳥肌が立ってしまう!」と我慢ならない人だけ、このリンクを押して、読み飛ばしてください。
時間のある人は、もう少しお付き合いを。
まず、「/25」とは何かというのは、上の画像の通り、サブネットマスクを2進数に変換した際、1桁目から25桁目までが有効桁(つまり1となる)ですよと簡単に(簡単なのか?)表したものです。
これを10進数に直せば、「255.255.255.128」となる。
後述する計算では、サブネットマスクを10進数にする話は、取り合えず置いといて話を進めるよ。
実際のCIDR計算例と算出方法
簡単な例「192.168.0.200/25」
例の「192.168.0.200/25」を読み解く場合、先頭から25桁目までが1とすると、「/25」
「11111111 11111111 11111111 10000000」
のように2進数で表すことができます。
続いて、「192.168.0.200」を2進数で表すと、
「11000000 10101000 00000000 11001000」
以上のようになり、これを論理積で計算すると、
「11000000 10101000 00000000 10000000
これを10進数に直すと、「192.168.0.128」となる。しかし、約束事で
- 下1桁の数字の始まりの数字は使えない。「0」の場合は1から、「128」の場合は129から使える。
- 下1桁の数字が「0」より大きい場合、算出したIPアドレスの下1桁の数字に+1した数のIPアドレスからしか使えない。
- IPアドレスの最後にあたる下1桁の数字は使えない(ブロードキャストに割り当てられる)。128の場合は127まで、255の場合は254まで使える。
以上のようになっているので、このネットワークでは、「192.168.0.129」から「192.168.0.254」まで使えるという意味になります(なぜ、最後が254なのかは、後述する理由)。
難しい例1「192.168.0.200/21」
今度は、「192.168.0.200/21」にしたらどうなるのでしょう。
先頭から21桁目までが1とすると、「/21」は、
「11111111 11111111 11111000 00000000」
のように2進数で表すことができます。
続いて、「192.168.0.200」を2進数で表すと、
「11000000 10101000 00000000 11001000」
以上のようになり、これを論理積で計算すると、
「11000000 10101000 00000000 00000000」
これを10進数に直すと、「192.168.0.0」となります。
それなら、このネットワークでは、「192.168.0.1」から「192.168.0.254」まで使えるという意味になるんだろう?というお方もいるかと思いますが、それは×。
なんと「192.168.0.1」から「192.168.7.254」になるのです!?
その理由は、プレフィックスにあるのです。
使えるIPアドレスの範囲は、プレフィックスによって決まっており、使えない数字を含めて「/25」の場合は128個、「/21」の場合は2048個となります。
必読!【その理由】はここに!(アコーディオンコンテンツになっています)
なぜそうなるかは、プレフィックスを反転させると分かる。まず、「/25」の場合、
「/25」→「11111111 11111111 11111111 10000000」
となるので、これを反転させると、
「00000000 00000000 00000000 0111111」→127
127+1=128個となる。だから、前出した問題の答えは「192.168.0.129」から「192.168.0.254」までとなる。
難しい例1の「/21」の場合は、
「/21」→「11111111 11111111 11111000 00000000」
となるので、これを反転させると、
「00000000 00000000 00000111 1111111」→2047
2047+1=2048個となる。
2048個から1引いた数である「2047」を2進数に直せば、「00000111 11111111」。
ビット毎に10進数に直すと、「7 255」となる。IPアドレスの最後にあたる下1桁の数字「255」は使えないことを考慮すると、「7 254」となります。
頭に付く「192 168」を付ければ、「192.168.7.254」の完成というわけです。
難しい例2「192.168.0.1/25」
今度は「192.168.0.1/25」に変えて計算をしていきます。
先頭から25桁目までが1とすると、「/25」は
「11111111 11111111 11111111 10000000」
のように2進数で表すことができます。
続いて、「192.168.0.1」を2進数で表すと、
「11000000 10101000 00000000 00000001」
以上のようになり、これを論理積で計算すると、
「11000000 10101000 00000000 00000000
これを10進数に直すと、「192.168.0.0」となります。
先の約束事を加味すると、このネットワークでは、「192.168.0.1」からスタートするのが分かります。
さらにプレフィックスが「/25」なので、使えるIPアドレスの範囲は128個。
128ー1=127となり、127はブロードキャストに割り当てられるので、「192.168.0.126」までとなります。
ネットにはCIDR計算ツールがあるので、わざわざこのような計算をする必要はないので、計算式を覚えておかなくてよいのですが、CIDR計算ツールを作る人には、以上の説明が役立つはずです。
ネットワーク系の試験にCIDRが出るかはわかりませんが、もし出るならば、考え方は知っておいた方がいいかも。
サブネットマスクとは?
ところで、サブネットマスクって何?という人も多いことかと。
簡単に言ってしまうと、ルーターに「IPアドレスをここからここまで使うよ」というのを明示的に教えてあげているものです。
この指定をしておかないと、
ルーターに適当なIPアドレスを割り振られてしまい、機器同士が接続できないなどネットワークが大混乱になってしまうんだ。
ルーターによっては、IPアドレスの始まりと割り当て個数を指定する場合もあるので、CIDR表記は必須ではありません。
では、CIDRは覚えなくてもよいかというと、そうではなく、ネットワーク関連のお仕事をする場合は、言葉くらいは覚えておかないと、「ハズイ!」と言われること必至。
「指定した範囲で決められた個数だけIPアドレスが設定できる」ことを簡単に表したのがCIDR表記ということね。
でもさぁ、偉い人は、もう少し簡単に表す方法を考えなかったのかなぁ。パッと見でも分からないし、計算が面倒なんだよねぇ…(ウルウル)。
結論:IPアドレスはキチンと決めよう!
CIDR表記を提示すると、IPアドレスのここからここまで使用できるよということになります。
つまり、受け取った側は「xx.xx.xx.xx/21」というのを見ると、IPアドレスは「どこでもいい」ということになるので、非常に困ってしまうのです。
ネットワーク機器の設定を他人に依頼する場合は、IPアドレスはできることならキチンと決めてあげようねというのが、今回の結論。
そうそう、仕事を受ける方は、「xx.xx.xx.xx/21」なるアドレスをクライアントから受け取った場合は、
「IPアドレスにスラッシュはないよ(ドヤ)」
ではなく、
「機器のIPアドレスを固定したいので、IPアドレスを決めてもらえませんか?」
と言うが正解なのかも知れないね。