NAT変換によるインターネット通信

目次
ITシステムにおいて、ネットワークは必ず必要になるシステムの根幹です。

どういう仕組みで私たちは、Webページや社内システムへアクセスできるのかといったネットワークの仕組みを学びましょう。

NAT(Network Address Translation)とは?

多くのネットワークでは、インターネットとつなぐためにNATという技術が使われています。

NATはルーターの機能で、プライベートネットワーク内の複数のデバイスが1つのパブリックIPアドレスを共有してインターネットにアクセスすることを可能にします。

例えば、あなたの家のWifi(ルーター)には複数のデバイス(スマートフォン、パソコン、タブレットなど)が接続されていて、それぞれに192.168.1.xというプライベートIPアドレスが割り当てられているとします。

これらのデバイスがインターネットにアクセス使用とするときにWifi(ルーター)はNATを使用して、複数の機器からのリクエストを単一のパブリックIPアドレスに変換します。

インターネットからの応答が戻ってくると、ルーターは再びNATを使用して、応答を適切なプライベートIPアドレスを持つデバイスに戻します。

複数のデバイスで1つのパブリックIPアドレスを共用利用するイメージです。
NAT変換イメージ

NATが必要な理由

個人や企業において、インターネットに接続したい機器は大量にあります。

例えば、あなたの家で考えても、スマホ、PC、タブレット、スマートTV、ゲーム機など、最近だと洗濯機もインターネットに繋がります。
これら全てに1つずつパブリックIPアドレスが必要になったとしたらどうでしょうか?

企業において、何万人という従業員が使用する業務パソコン1台ずつにパブリックIPアドレスを設定する必要があるとしたらどうでしょうか?

現在、一人当たり平均5台以上のインターネット接続機器を持つ時代ですが、世界人口80億人×5台で単純計算すると400億のアドレスが必要になります。

パブリックIPアドレスは世界中で、約43億個あるというのプライベートIP/パブリックIPを説明したと思いますが、こう聞くと全く足りないことがわかると思います。

そこで解決作となるにのが、NATという1つのパブリックIPアドレスを共有する方法だったのです。

これは企業においても代わりません。
これだけ枯渇している状況ではパブリックIPアドレスを1つ買うのにも高額な値段がします。

そこでシステム構築においても、NAT変換をうまく活用したインターネットと通信可能なシステム構築・ネットワーク設計が必要となるのです。

NATの変換イメージ

NATという仕組みは、一見すると複雑に思えますが、「手紙」に例えて説明してみようと思います。

刑務所に収容されているAさんが、外にいる知人に手紙を出すとします。

差出人が「牢屋番号001」だと郵便屋さんも困ってしまうので、刑務官が刑務所の住所に書き直します。

この時、Aさんが出したことを管理するために住所にIDを振りつつ、管理簿に記録します。

投函された手紙の差出人住所も問題ないので、郵便屋さんは相手に届けることができます。

NAT変換イメージ
手紙を受け取った人は、返事の手紙の宛先に差出人住所の場所を記載して、返送します。
この住所は刑務所のものなので、郵便屋さんは問題なく届けることができます。

手紙が届いた刑務官は、IDと管理簿をみて、「牢屋101号室」のAさん宛てだと判断して、Aさんに渡してあげます。

NAT変換イメージ
このようにAさんは住所(=パブリックIP)ではなく、牢屋番号という刑務所内でしか伝わらない差出人情報(=プライベートIP)にも関わらず、刑務官(=NAT変換ルーター)のおかげで外の知人と手紙を送りあうことができました。

これがNAT変換のイメージです。
もちろん、牢屋102号室のBさんが出しても仕組みは代わりません。
NAT変換イメージ
刑務所の1つの住所だけで、複数の差出人情報を変換することができるのです。
また、セキュリティ面においてもメリットがあります。
外部からは刑務所の住所しかわからず、牢屋の番号がわかりません。

実際のネットワークでいうと、プライベートIPアドレスが秘匿されたまま通信が可能なため、外部からの攻撃を受けづらいという意味になります。

また新しく囚人が増えても(=新しいデバイスを追加しても)、同じように刑務官が変換をするだけなので大きな変更も不要で通信が可能です。

まとめ

この記事では、インフラエンジニアを目指す初学者の方に向けて、NATの仕組みについて解説しました。

NATと聞くと難しいイメージを持ってしまいますが、やっていること自体は単純です。

この記事では、刑務所という特殊な例で示しましたが、わかりやすかったでしょうか?

ネットワークの仕組みを理解することは、現代のIT環境で働く上で非常に重要です。
この記事が皆さんのネットワーク学習の出発点となれば幸いです。