【IPアドレスとは その4】プライベートIPアドレスとNAT IPアドレス枯渇問題とは

about-ip-address-part4

本サイトはPRが含まれています。

この記事のポイント
  • IPアドレスは約43億個→枯渇しそう

  • 重複してもOKなプライベートIPアドレスを活用

  • インターネットの出口でグローバルIPアドレスに変換(NAT)

IPアドレスってたくさんあるのね。サブネットの切り方を適切にすれば使い放題ね。

チャーチルさん

ポン先生

実はそんなことも無いよ。数には限りもあるし無制限に何でも・・・という訳には行かないのだよ。

本記事ではIPアドレスの枯渇問題とその対策について解説します。この記事を読むことでIPアドレスの現状を理解することができます。

IPアドレスの枯渇問題

IPアドレス枯渇の回避方法

IPアドレスの数

IPアドレスはどのくらいの数あるか知っているでしょうか。実はこれは簡単に計算できます。先に答えを言うと、232=4,294,967,296≒約43億個です。どうでしょうか。多い?少ない?人によって感覚は違うかもしれません。

※一応以下に計算方法を記載しておきます。そんなの分かってるよって人は読み飛ばして下さい。

——————————————————————————————————————-
IPアドレスの実態は「32bitの2進数」です。言い換えると1桁あたり2通りの数字が32桁あります。
1桁だったら:0 or 1の合計2個(2通り)
2桁だったら:00 or 01 or 10 or 11の合計4個(2×2通り)
3桁だったら:000 or 001 or 010 or 011 or 100 or 101 or 110 or 111の合計8個(2×2×2通り)


n桁だったら:2×2×2×2×2×・・・×2の合計2n個(2n通り)

つまり、32bitのIPアドレスは232=4,294,967,296≒約43億個あるということです。
——————————————————————————————————————-

また、この約43億個のIPアドレスは丸々利用出来る訳では有りません。IPアドレスには「クラス」と言う概念が存在し、範囲ごとに用途が決まっています。クラスD、Eは通常利用しないため実際に利用するのはクラスA~Cになります。

▼IPアドレスのクラスとは

【IPアドレスとは その3】クラスフル・クラスレス IPアドレスのクラス分け解説

IPアドレス数としては以下の通りです。

IPアドレス個数

  • クラスA:128ネットワーク×16,777,216ホスト=2,147,483,648個
  • クラスB:16,384ネットワーク×65,536=1,073,741,824個
  • クラスC:2,097,152ネットワーク×256=536,870,912個
  • クラスD:268,435,456個
  • クラスE:268,435,456個

つまり、クラスA~Cで利用可能なのは約37.6億個程度です。ただし上記は最大数であり、実際にはさらに細かくサブネット化して小さいセグメントで利用しますし、各セグメント毎にネットワークアドレス、ブロードキャストアドレス等端末が利用できないIPアドレスもあるので実際はもっと少なくなります。

ここではキリよく37億個としましょう。普段の生活を考えてみるだけでも分かりますが、IPアドレスが必要なのはPCやスマホだけではありません。プリンターやゲーム機はもちろん、今はIoTと言って冷蔵庫やエアコンもインターネットに繋がる時代です。1人あたりのIPアドレスを5個使う、というのも当たり前の時代ですね。

一方、世界の人口は2021年現在約76億人です。単純計算で人口の半分のIPアドレスしか無いのです。開発当初は十分賄えると考えられていましたが、インターネットの普及によってIPアドレスを使うデバイスが増え、現在はこのような状況です。

でも周りで「IPアドレスが足りなくてインターネットに繋がらない」って人は見たこと無いわね。本当にIPアドレスは不足しているのかしら?

チャーチルさん

ポン先生

実際はIPアドレスの不足を補う仕組みがあるんだよ。次はそれらの具体的な方法を見て行くよ。

IPアドレス枯渇の回避方法

IPアドレス枯渇の回避方法

グローバルIPアドレスとプライベートIPアドレス

まず、IPアドレスは主にグローバルIPアドレスとプライベートIPアドレスに分けられます。

☆グローバルIPアドレス
インターネット上で利用出来るIPアドレスです。例えばYahooやGoogle等インターネット上でサービス提供しているサーバはグローバルIPアドレスを持っています。

☆プライベートIPアドレス
会社内や家庭内など閉じられた範囲でのみ利用できるIPアドレスです。プライベートIPはインターネット上で利用することはできません。

具体的な値は以下となります。

クラスアドレスレンジグローバルIPレンジプライベートIPレンジ
クラスA0.0.0.0~
127.255.255.255
(1.0.0.0~
126.0.0.0)
0.0.0.0~9.255.255.255、
11.0.0.0~
127.255.255.255
10.0.0.0~ 10.255.255.255
クラスB128.0.0.0~
191.255.0.0
128.0.0.0~
172.15.255.255、
172.32.0.0~191.255.0.0
172.16.0.0~ 172.31.255.255
クラスC192.0.0.0~
223.255.255.0
192.0.0.0~
192.167.255.255、
192.169.0.0~
223.255.255.0
192.168.0.0~ 192.168.255.255

ここで重要なポイントは以下2点です。

  • グローバルIPアドレス:世界中で同じ値は一つしか存在してはいけない
  • プライベートIPアドレス:他の会社や家庭と重複しても良い

例えば192.168.1.0/24というセグメントは、会社Aと会社Bが直接繋がるようなことが無ければ、同時に利用できます。
※社内でネットワークが繋がっており拠点Xと拠点Yで同時に使うというパターンはNGです。互いに通信可能な範囲でアドレス帯が重複すると、どっちに送って良いか分からなくなってしまい、正しく通信できなくなります。

プライベートIPアドレスの重複

このように各会社で重複したIPアドレスを利用可能になるため、IPアドレスの枯渇問題を回避できるようになりました。プライベートIPアドレスを合計すると約1700万個強あります。これだけあれば会社内で利用するIPアドレスは十分賄えるでしょう。

IPアドレス変換(NAT)

ではなぜ重複しても問題無いのでしょうか?実はインターネット側から見るとプライベートIPアドレスは見えていません。インターネットへ通信する際はプライベート→グローバルIPアドレスへ変換されて出ていくのです。

NATとインターネットアクセス

例えば上図のように会社内のPCからYahoo(インターネット)へ通信する際の動作を見てみましょう。この時、インターネットへの出口のネットワーク機器(ルータ)で送信元IPアドレスの変換を行います。(構成や契約内容によりますが)上記の例ではインターネット回線の契約時にグローバルIPアドレス100.100.100.100を取得しています。ルータのポートには100.100.100.100を設定し、端末(192.168.1.1)からYahooへの通信が走った際に192.168.1.1→100.100.100.100へ変換しています。

今度はYahoo側(インターネット側)からの視点見てみましょう。Yahoo側から見ると送信元IPアドレスは100.100.100.100です。なので、何かしらの通信の応答は100.100.100.100へ返します。100.100.100.100はルータのIPアドレスなのでYahooとしてはルータと通信している感覚ですね。(PCの192.168.1.1は認識していない。)

最後に、Yahooから戻ってきた通信を再度ルータで100.100.100.100→192.168.1.1へ戻してあげることで端末⇔Yahooの間の通信が成立しているのです。
※当然、送信元IPアドレスを変換せず192.168.100.1のままインターネットへ出ていっても通信はできません。インターネット上ではプライベートIPアドレスを転送してはいけないルールになっているためです。

上記のIPアドレスの変換技術をNAT(Network Address Translation)と言います。NATは現在のインターネットアクセス技術を支える中核的な技術と言っても良いでしょう。NATは上記以外でも利用されるシーンが多く奥が深い技術です。詳細は改めて別記事を作成します。

いずれにしても、このように重複利用が許されているプライベートIPアドレスとアNATの合せ技によってIPアドレスの枯渇問題は現在回避できています。ただしこれは暫定回避と言うべきか、根本的な解決には至っていません。上記のような構成にしてもグローバルIPを消費していくのは事実で、いつかは使い果たしてしまう・・・という事実もあるので覚えておきましょう。

ネットワークエンジニアを目指すならCCNAを取得しよう!

CCNAとはCisco社のメーカ認定資格です。CCNAの取得はネットワークエンジニアの基本的な知識Cisco製品の理解の証明になります。

特定メーカの資格で役に立つの?実際には他メーカの機種も扱うんじゃないの?

チャーチルさん

ポン先生

確かに業務上Cisco以外の機器を扱うことはあるだろうけど、最初にCiscoを勉強しておくと他の機器も理解しやすくなるんだ。

Ciscoは数あるネットワーク機器メーカの内の1社ですがディファクトスタンダードと言われています。つまり業界標準として位置付けられており、他メーカ機種でもCiscoのコマンドライン等を参考にしている事が多いです。そのため初見の機器でもCiscoと設定方法が似ており、「大体は分かる」なんてケースも多々あります。ネットワークエンジニアとしてはCiscoの学習はむしろ必須と言えるレベルでしょう。

また、Ciscoの資格と言っても独自仕様や製品の話だけでなく、ネットワークの一般的な知識も必要です。Cisco製品と言えベースはネットワークの標準規格に基づいて設計されており、CCNA取得でネットワークの一般的な知識も習得可能です。

上記理由からCCNAは非常におすすめの資格です。ネットワークエンジニアとして本格的に活躍したいのであれば是非チェックすべきでしょう。

【CCNAとは】難しい?勉強は?Cisco資格の登竜門 基本解説

まとめ

ポイント
  • IPアドレスは約43億個→枯渇しそう

    • 実際は37億個程度しか使えない・・・
  • 重複してもOKなプライベートIPアドレスを活用
    • プライベートIPアドレスは1700万個自由に使える
  • インターネットの出口でグローバルIPアドレスに変換(NAT)
    • 出口のルータで送信元IPアドレスを変換

今回はIPアドレスが抱える枯渇問題をメインに解説しました。IP開発当初はここまでインターネットが爆発的に普及すると想定されていなかったが故の課題ではあります。根本解決にはIPv6という技術を使った方法がありますがそれはまた別の記事で。