興味を持った理由
ネットワークの設定でIPアドレスを確認する際や技術書を読む時によく登場するのが192.168.x.x
といったアドレスです。なぜこのような中途半端な数字を使っているのか疑問に思ったため、今回調べてみました。
IPアドレスとは?
インターネット上の機器を識別するためには、IPアドレスが必要です。これは「0.0.0.0」から「255.255.255.255」までの範囲の数字4つで構成されています。
IPアドレスはインターネット上で相手を識別するために使われる、住所の役割をしています。すべてのコンピュータは他と被らないIPアドレスを割り当てられており、一元管理されている。このIPアドレスのことをグローバルIPアドレスと呼びます。
一方、IPの技術はインターネットに接続してない社内ネットワークや家庭内ネットワークでも使用できます。その全てにグローバルIPアドレスを割り当てるのは非常に大変で、管理コストやグローバルIPアドレスの無駄遣いになり得る。そのため、外部のインターネットに接続されてない機器にはユーザーが自由に設定しても良いローカルIPアドレスが割り当てられます。
ならば今インターネットに接続しているこのPCにはローカルIPアドレスが割り当てられているはずですが、全世界には同じローカルIPアドレスのPCが何百といそうです。実際通信する際にはIPアドレスはどうなっているのでしょうか。
IPアドレスのクラス分け
IPアドレスは5つのクラスに分けられています。クラスA、B、Cは一般的なネットワークで使用され、クラスDはマルチキャスト、クラスEは将来の使用のために予約されています。
クラスA
- 範囲:
0.0.0.0
から127.255.255.255
- 形式:
0xxxxxxx | xxxxxxxx xxxxxxxx xxxxxxxx
- ネットワーク数: 126
- ホスト数: 最大1677万7216
クラスB
- 範囲:
128.0.0.0
から191.255.255.255
- 形式:
10xxxxxx xxxxxxxx | xxxxxxxx xxxxxxxx
- ネットワーク数: 1万6384
- ホスト数: 最大6万5534
クラスC
- 範囲:
192.0.0.0
から223.255.255.255
- 形式:
110xxxxx xxxxxxxx xxxxxxxx | xxxxxxxx
- ネットワーク数: 209万7152
- ホスト数: 256
クラスD(マルチキャスト)
- 範囲:
224.0.0.0
から239.255.255.255
クラスE(予約済み)
- 範囲:
240.0.0.0
から255.255.255.255
バイナリ表記
IPアドレスはバイナリで表すことができます。例えば、192.168.0.1
はバイナリで11000000 10101000 00000000 | 00000001
となります。
プライベートIPアドレス
プライベートIPアドレスはRFC 1918
という規格で決められています。参考サイト欄に載せておりますので、興味のある方はぜひリンクから飛んでみてください。ここではクラスごとのプライベートIPアドレスを記載します
- クラスA:
10.0.0.0
から10.255.255.255
- クラスB:
172.16.0.0
から172.31.255.255
- クラスC:
192.168.0.0
から192.168.255.255
ルータのローカルIPアドレス
多くのルータでは、プライベートIPアドレス範囲内で覚えやすい192.168.1.1
がデフォルトアドレスとして設定されることが多いです。
なぜ192.168.0.0
や192.168.1.0
じゃないかと言えば、ホスト部のビットがすべて0のアドレスはネットワーク自体を示すネットワークアドレスとして設定されているからですね。ちなみにホスト部のビットがすべて1のアドレスはブロードキャストアドレスという、すべてのホストにパケットを送信するアドレスとして設定されています。
クラスAやBを使ってルータのアドレスを設定してもいいじゃないかと思いますが、おそらくクラスAやクラスBを使用すればホスト部の大部分が無駄になるからだと思います。例えばクラスBはホスト数を最大6万5534設定できますが、自宅で使うネットワークにそれだけの機器が接続される可能性は低いですよね。
20台のPCを接続したとしても65534 - 20 = 65514
のホストアドレスが無駄になるわけです。
まとめ
なぜローカルIPアドレスで192.168.x.xが使われるかというのは、RFC 1918
で決められている且つネットワーク部とホスト部とのバランスによりクラスCのIPアドレスが設定されるためです。
正確には、現在クラスでIPアドレスを判別するというより、サブネットマスクを使うことが多いです。しかし、この記事の知識が無駄になることはないでしょう。サブネットマスクが導入されても基本的な考え方は変わりません
参考サイト