NAT(ナット)はLANとインターネットを結ぶ重要なネットワーク技術です。
今回は「NAT」の仕組みとNATの応用技術である「NAPT」の仕組みに関して、その違いを解説します!
IPアドレスの枯渇問題
先ずはNATやNAPTの説明には欠かせない「IPアドレスの枯渇問題」に関して解説します。
ネットワークの世界において、IPアドレスは大きく「グローバルIPアドレス」と「プライベートIPアドレス」の二つに分けられます。
グローバルアドレスはインターネットで利用し、プライベートアドレスは企業内や組織内、個人の家の中で利用されています。
ここで大事なポイントですが、インターネット上のノード(機器)はグローバルのIPアドレスによって一意に区別されていることです。
つまり、グローバルIPアドレスが場所を特定する唯一の住所になります。
一般的にIPアドレスは「IPv4」というプロトコルを使っています、IPv4において、IPアドレスは「32ビット」、つまり「 4,294,967,296」の数だけしかアドレスを振り分けられないのです(実際はこの中にプライベートやマルチキャストアドレスもあるので、この数よりは少ないです)。
約40億という数は非常に大きな数に思えますが、インターネットの世界においては少な過ぎる数なのです。
個人や企業のLAN内の端末一台一台がインターネットに接続するために、グローバルIPアドレスを持っていたらあっという間にアドレスが無くなってしまいます。これがIPアドレス枯渇問題なのです。
その解決策として、プライベートIPアドレスを使うのですね。
そこで重要になってくるのが、LANとWANのアドレスを変換するための技術であるNATとNAPTになります!
NATとは?
NATは「Network Address Translation」の略ですが、ザックリ言うと以下の通りです。
IPアドレスを別のIPアドレスに変換する技術
もう少し詳しく説明すると、IPヘッダに含まれるIPアドレスを別のIPアドレスに変換する仕組みで、ローカルネットワーク(LAN)ではプライベートIPアドレスを使用し、インターネットに接続する時にグローバルIPアドレスに変換します。
変換するための機器としてはルータやFireWall、L3スイッチなどがあります。
これにより、個人や企業内における複数の端末用のIPアドレスは重複しても良いプライベートIPアドレスを使い、インターネット側にあるネットワーク機器には唯一のグローバルIPアドレスを使うことができ、IPアドレスの有効活用ができます。
そして、NATには「静的NAT」と「動的NAT」の二つのパターンがあります。
静的NAT
LAN 内部の プライベートIP アドレスを常に同一の外部(WAN側)の グローバルIP アドレスに「1対1」で変換する方式です。スタティックNATとも言います。
NATと言ったら通常はこの静的NATのことを指します。
動的NAT
NAT変換で使用するIPアドレスの蓄え(プール)をいくつか設定しておくことで、外部への通信が発生した時にそのプール内のIPアドレスを1つ使用してプライベートIPアドレスをグローバルIPアドレスに変換します。ダイナミックNATとも言います。
ダイナミックNATではプール内の小さい値のIPアドレスから順に割り当てていきますね。
LANからインターネット(WAN)に出ていくためのNATですが、この仕組みは結局LAN内の端末分、グローバルIPアドレスが必要になってくるので、IPアドレス枯渇問題の解決にはなっていません。
そのため、実際はNATを進化させた、NAPT(IPマスカレード)技術を使っています。
NAPTとは?
NAPTとは「Network Address Port Translation」のことで、IPマスカレードとも言われています。
IPアドレスに加えてポート番号の識別や変換をすることで、複数のホスト(プライベートIP)から同時にローカル外のネットワーク(グローバルIP)に接続できる技術
IPヘッダだけでなく、TCPヘッダやUDPヘッダのポート番号も付け替えることで、LAN内の複数の端末が同時にインターネット側へ出る時に一つのグローバルIPアドレスだけを使って通信することができる優れものです!
言葉だけだと分かり難いので以下に図にしてみました。
NATの仕組みを持っているルータやFireWall、L3スイッチには「NATテーブル」があり、ここで変換ルールを管理しています。
まとめ
今回はLANとWANを繋ぐための重要な仕組みであるNATとNAPT(IPマスカレード)に関して解説してきました。
普段当たり前のように使っているプライベートIPアドレスとグローバルIPアドレスですが、この仕組みに支えられていたのですね。
IPアドレス枯渇問題に関しては、実際はIPv6という128ビットのアドレス体系を使える(ほぼ無限のアドレス数)プロトコルがあるのですが、IPv4が常識的になっている現在、なかなかIPv6が広まっていかない現状があるようです。
ご興味ある方はIPv6仕組みに関しても調べてみることをおススメします!
余談ですが、IPマスカレードって言葉を聞くとTRFの名曲を思い出すのは私だけでしょうか...(笑)
以上です!
参考URL)
キャリアグレードNAT(NAT444)に関してはコチラの記事をご参照ください!