はじめに
IPアドレスの種類
まず、IPアドレスは、2種類に分けられます。
「グローバルアドレス」
インターネットに接続するコンピューター等の通信機器にとって必要な情報で、インターネット上で重複しないようになっています。各通信機器は、このグローバルアドレスを使ってインターネット上のリソース(Webサイト等)にアクセスします。
「プライベートアドレス」
プライベートと言う名が示すように、プライベートなローカルネットワークで使われます。
グローバルアドレスだけでインターネットが成り立っていた時代が有りますが、急激にインターネットが普及した時期にIPアドレスの枯渇が問題とされました。
その時に、インターネットに直接つなぐ必要がないローカルなネットワークでは、そのネットワークだけで有効なプライベートアドレスを使うように取り決めがなされました。
ローカルなIPアドレスなので自由に設定できますが、無用なトラブルを避けるために、ガイドラインが用意されています。
通信機器からインターネットを利用する場合、グローバルアドレスが必要になりますが、グローバルアドレスをそのままローカルネットワークで使おうとすると不都合が発生する時があります。
- グローバルアドレスが足りない時がある。
- 外部からローカルネットワークの端末に攻撃される危険性がある。
1.についてですが、グローバルアドレスはインターネット上で重複してはいけないというルールのため、勝手にIPアドレスを決めることはできません。
ICANN(The Internet Corporation for Assigned Names and Numbers)という組織が管理していて、ここから配布されたIPアドレスのみグローバルアドレスとして使うことができます。
後述しますが、グローバルアドレスは既に新しく発行することができず、発行済みのアドレスでやり繰りしているのが現状です。
2.の意味するところは、攻撃者からみて、ユーザーの通信機器と直接通信出来ることを意味します。
セキュリティ対策によって、防護することは可能ですが、完璧に防げるかという問題と、
できれば無用なリスクは保有したくありません。
とはいえ、グローバルアドレスを使わなけばインターネットを利用することはできません。
そこで、次のような仕組みが作られました。
Network Address Translation「NAT」
これはIPアドレスを付け替える仕組みです。
ローカルエリアの通信端末がインターネット上のサイトにアクセスする際に、送信元のIPアドレスをグローバルアドレスに変換します。
応答は、変換した送信元のIPアドレス宛に戻ってきますが、これを元のプライベートアドレスに付け替えます。
こうすることで、ローカルネットワークの通信端末がインターネット上のリソースにアクセスすることが出来ます。
同時に、インターネット側からローカルネットワーク上の通信端末のIPアドレスが隠蔽されることになり、セキュリティ的に強度は増します。(増すだけであって、セキュリティ対策は別途必要)
ここで少し問題が発生します。
同時にインターネットにアクセスできる通信端末の最大数は、所持しているグローバルアドレス分までです。
グローバルアドレスとプライベートアドレスの変換が1対1で行われるためです。
上記の例は、ルーターが2個のグローバルアドレス「100.100.0.1」「100.100.0.2」を所持し、上段のPCを「100.100.0.1」に、下段のPCを「100.100.0.2」に変換しています。
Network Address Port Translation「NAPT」
NATでは変換できる端末数に制限がありました。これを解決するのが、NAPTという仕組みです。
これは、変換する対象をIPアドレスだけではなく、TCP/IPのポートまで対象にします。
まずは、NATと同じようにグローバルアドレスに変換します。同時に、送信元ポートも変換対象として空いているポートに変換します。
ポイントは、ポートは通信端末で重複しないように変換することです。
変換するグローバルアドレスは、重複していても構いません。極端に言えば、一個のグローバルアドレスをすべての通信端末の変換アドレスとしても問題ないです。
応答が返ってきたときは、送り返されてきたポートが分かれば、どの通信端末への応答なのかわかることを利用します。
このようにしてNAPTはグローバルアドレスを節約することができます。
NATとNAPTの仕組みはこのような違いがありますが、広い意味で、NAPTのことをNATと呼称することもあります。
上記の例は、ルーターは1個のグローバルアドレス「100.100.0.1」しか所持していません。
インターネットアクセス時は、上段のPCのポートを「10000」に、下段のPCのポートを「10001」に変換しています。
IPアドレスの枯渇
IPアドレスは、32ビットで表され、理論上約43億の機器を識別することが可能です。
先ほど説明したように、これは全世界で重複しないように設定しないといけません。
そのICANNより、2011年にIPアドレスの枯渇が発表されました。これ以降は新しいIPアドレスは 発行できないという意味です。
おわりに
今回は少ないグローバルアドレスの有効活用として、NATとNAPTを説明いたしました。
しかし、NATやNAPTを使っても、これ以上使えるグローバルアドレスを増やすことはできせん。
根本的な解決として、IPv6への移行が進めらています。これは、32ビットだったグローバルアドレスを128ビットに拡張する規格です。これにより、事実上グローバルアドレスに制限はなくなります。
一見いいことづくめのようですが、セキュリティを含めて難しい問題もあったりします。
機会があれば、IPv6について書いてみようと思います。
- 当ページの人物画像はNIGAOE MAKERで作成しました。