はじめに
今回は、IPプロトコルが絶対に必要な『IPアドレス』について解説していきます。
では、よく聞く『IPアドレス』とは何なのでしょう?
結論から言えばIPアドレスとは『数値のみで表した、ネットワークを繋げるための住所』ということになります。
TCP/IPモデルでは絶対に必要な『IPアドレス』
あなたがインターネットでWebサイトを見ようとする際、それは実際にはサーバーにアクセスすることになるわけですが、そのサイト(サーバー)がどこにあるかを知らないとアクセスできません。
つまり、普段の生活上と同じ、インターネットにも住所が必要なのが必然であることが分かります。
そこで『IPアドレス(Internet Protocol Address)』という、ネットワーク内のサーバーやコンピューターを特定するための住所が生まれました。
IPアドレスは、コンピューター用に表した数列であり、たったそれだけで世界中のネットワークへとアクセスが行えるものです。
住所を特定し、インターネット通信を可能にするには『TCP/IPモデル』という通信方式を用い、IPアドレスの担当プロトコルは『IPプロトコル』が使われます。
この通信方法は、まずデータを送る際に、TCP/IPモデルによってデータが細かく分割されパケット化されます。
そして、それらパケットに送信元と送信先のIPアドレスをヘッダ情報として付けて、ネットワーク上に送信するわけです。
送信されたパケットは、IPアドレスのおかげで送信先の機器を特定することができ、相互のデータ通信が可能になります。
では、IPアドレスというものがどんなものか、もう少し深掘りしていきましょう。
『IPアドレス』の見方
まずは、IPアドレスの見方を確認していきます。
現在もまだまだ主流である、『IPv4』というIPアドレスの形式は以下のような数列になっています。
『160.150.140.130』
このように3つの数列をドットで区切り、4つのパートにしています。
これらの数列自体は10進法であり、元々は2進法で作られた8桁の数列からなっています。
計算の仕方はこのようになります。
10進法を2進法にするには、10進法の数字を2でずっと割り続け、その時のあまりの数字を下から読んでいくように見るわけです。
つまり、『160.150.140.130』の2進法は以下のようになるわけです。
10進法 | 160.150.140.130 |
2進法 | 10100000.10010110.10001100.10000010 |
10進法側の各3桁の数字は、『0〜255』までを最大の数値として表されます。
これは、上記にも書きましたが10進法の数字を2進法にした場合に、8桁(8ビット)までを範囲内にしているからです。(10進法の256から2進法は9桁になる)
つまり、IPアドレスの最大範囲は『0.0.0.0』〜『255.255.255.255』というものになります。
最大数で見れば大きな数字ですが、この数を全てを使えるわけではありません。(これは後述します)
ちなみに、ドットで区切った各パートを『オクテット』と呼び、左から『第1オクテット』〜『第4オクテット』と表します。
『IPアドレス』の数列は『ネットワークアドレス』と『ホストアドレス』に分けられる
現在、インターネットで利用されるIPアドレスは上記に書いたように『IPv4』というものが主流で、今後普及が進むであろう『IPv6』というものもあります。
IPv4のIPアドレスは分解して見ることができ、2つのアドレスという見方になっています。
1つが『ネットワークアドレス』というもので、ネットワークを識別するアドレスであり、もう1つが『ホストアドレス』というもので、コンピューターや各機器を識別するアドレスになります。
ネットワークアドレスはネットワーク用のアドレスであり変更できないもので、ホストアドレスは自由に変更が可能なアドレスです。
例えばですが、『160.150.140.130』のアドレスの内、『160.150』までがネットワークアドレスで、『140.130』までがホストアドレスという見方ができます。
『IPアドレス』には5種類の『クラス』がある
さらにIPアドレスには、その用途やネットワークの規模によってクラスというものが指定されており、『A-Eまでの5種類のクラス』があります。
普通に利用する際に使えるクラスとしてはABCの3つであり、『Aが大規模ネットワーク』『Bが中規模ネットワーク』『Cが小規模ネットワーク』という指定になっています。
残りの2つは特殊な形態で、『Dはマルチキャストアドレス』『Eは実験用アドレス』というもので、マルチキャストアドレスとは、ネットワーク内の特定のグループのコンピューターや接続機器にデータを送信するアドレスです。
余談ですが、ブロードキャストアドレスというものもあり、この場合はネットワーク内のすべてのコンピューターや機器に一斉にデータを送信することができるアドレスです。
そのアドレスは、ホストアドレス部分が全て2進法で1の場合になります。
『クラス』による『IPアドレスの』指定方法
IPアドレスの10進法の数字を2進法にして全体を足し合わせると『32ビット』になります。
この場合、上記に記述したABCのクラスに当てはめると、『クラスAが先頭から8ビット分』『クラスBが先頭から16ビット分』『クラスCが先頭から24ビット分』という構成でネットワークアドレスが割り当てられることになります。
そして、各クラスの残りの部分がホストアドレスという割り当てになるわけです。
こうした割り当ての仕方を『クラスフルアドレッシング』と呼びます。
このようにアドレスを2つに分ける理由は、先述のネットワークの規模によって分けられるからです。
クラスAの場合で考えると、クラスAは大規模なネットワークとして構築されていて、ネットワークアドレス分は多く必要なく、それよりも多くの接続機器を利用するためにホストアドレスの方を多くしなければなりません。
一方クラスCで考えると、クラスAとは対照的に小規模なネットワークをいくつも構築しなければならず、その代わりにホストアドレスは少なくても良いという考え方になります。
そして、クラスBはその中間にあたるというわけです。
ところが、利用者にとってはクラスAほどネットワークアドレスはいらず、かと言ってクラスCのホストアドレスでは足らないという状況が生まれてしまいました。
そのため、クラスBを利用したいという要望が多くなり、割り当てを多くしたところ今度はクラスBのアドレス自体が少なくなるという皮肉な状況になってしまいました。
今はそれに対する改善方法が生まれ、その方法が多く採用されています。
IPアドレスの『クラス』における分け方
クラスA大規模ネットワーク | |
---|---|
10101010 | 10101010.10101010.10101010 |
第1オクテット | 第2オクテット.第3オクテット.第4オクテット |
8ビット | 24ビット |
ネットワークアドレス | ホストアドレス |
クラスB大規模ネットワーク | |
10101010.10101010 | 10101010.10101010 |
第1オクテット.第2オクテット | 第3オクテット.第4オクテット |
16ビット | 16ビット |
ネットワークアドレス | ホストアドレス |
クラスC大規模ネットワーク | |
10101010.10101010.10101010 | 10101010 |
第1オクテット.第2オクテット.第3オクテット | 第4オクテット |
24ビット | 8ビット |
ネットワークアドレス | ホストアドレス |
『グローバルIPアドレス』と『プライベートIPアドレス』
IPアドレスそのものには2つの種類があります。
1つはローカルなネットワークで利用するIPアドレスで、『プライベートIPアドレス』と呼びます。
もう1つはインターネットで利用するための、世界に一つだけのIPアドレスで、『グローバルIPアドレス』と呼びます。
プライベートIPアドレスは、ネットワーク管理者が各通信機器に自由に付けることができ、方法はプライベートIPアドレス用の範囲内のアドレスを使用してアドレスが重複していなければいいだけです。
プライベート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アドレスの利用可能範囲
クラス | 利用可能範囲 |
---|---|
クラス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アドレスはインターネット用なので、世界中で重複しないようにインターネットレジストリと呼ばれる『ICANN』という公的組織が管理しています。
実際のところは、ICANNが世界中のすべてのグローバルIPアドレスの管理はできなため、ICANNから委託された各国の組織が受け持っています。
日本では『JPNIC(日本ネットワークインフォメーションセンター)』という組織が管理業務を行なっています。
もしグローバルIPアドレスを利用したい場合は、JPNICに申請してIPアドレスを取得する形になります。
基本的には各プロバイダー業者が申請しているので、私たちは特に気にする必要はなく、契約したプロバイダーが取得しているグローバルIPを借りる形で家庭のルーターがそれを受け持っています。
ただ、プロバイダーから割り当てられたIPアドレスは、動的IPアドレスというもので、機器の電源を切ったり一定期間が経過すると自動的に変更されるものです。
もし固定化されたIPアドレスが必要なら『固定IPアドレス』というサービスを利用する必要がでてきます。
一方プライベートIPアドレスは、PCやスマホなどに割り当てられるIPアドレスで、ルーターが自動的に『DHCP』という技術で割り当ててくれます。
必要なら自分で割り当てることも可能です。
仮の場合ですが、コンピューターをルーターに介さないで直接インターネットに接続すれば、そのコンピューターにはグローバルIPアドレスが当てられます。
ただしこの場合、ルーターのファイアウォールが存在していない状態なので、裸で戦場に立つのと同じくらい危険な状況になります。
もし、そのPCに何が起こっても、どんなに大切で重要な情報が漏れても自己責任になることだけは覚えておいてください。(やらないとは思いますがw)
『IPv4』に変わり『IPv6』が今後の普及IPアドレス
上記でも書いていますが、現在広く普及しているIPアドレスとは『IPv4(Internet Protocol Version4)』というものです。
IPv4は2進法の数列を全て足して、32ビットの数列にしたものをIPアドレスとして割り当てており、その数は約43億個です。
しかし、43億個もあったこのアドレス数には既に限界が来ていて、実際には枯渇し始めています。
そこで、この問題を解消するために『IPv6(Internet Protocol Version6)』という規格が定められ、現在各機器の移行が進められています。
IPv6は、IPv4の32ビットよりも遥かに大きい128ビットという数列であり、IPv4の約43億個に対し、IPv6では約340澗(かん)個という、よく分からない単位の個数が作れるようになっています。
これだけの個数であれば、さらにサーバーが多く増え、コンピューターだけでなくあらゆる電化製品にグローバルIPアドレスが割り当てられても問題なく利用できるようになるはずです。
そうなれば、ますますIoTの普及、またはそれに変わる新しい技術が加速していくのは間違い無いでしょう。
また、IPv6の利点として、IPレベルでのセキュリティが強化されているので、暗号化と複合化機能を持たせられており、ヘッダ構造も見直され効率の良い通信を可能にしているメリットがあります。
まとめ
住所としてのIPアドレスはよく知られたところですが、改めて考えてみると色々と取り決めやルールが多いですよね。
また、IPアドレスが作られた当時に枯渇の懸念はあったにせよ、まさか本当にこれだけのアドレスでも足りなくなるとは思ってもみなかったに違いありません。
まだまだIPv6の移行はゆっくりですが、そのうちIPv6が当たり前になり、IPv4は過去のものになっていくのでしょうね。