NATとNAPTについて解説していきます。ネットワーク構築や通信プログラミングをする人は知っておきましょう!
NATとは
NAT(読み方:なっと)はNetwork Address Translationの略で、インターネットで使用するグローバルIPアドレスと、ローカルネットワークで使用するプライベートIPアドレスを変換する技術のことを指します。インターネットとローカルネットの境に設置されるルータに実装される機能です。
通常の一般家庭であれば、インターネットを契約すると1つのグローバルIPアドレスが割り当てられます。しかしこのグローバルIPアドレスを1台のパソコンに設定してしまうと、ほかのパソコンがインターネットに接続できなくなってしまいます。
そこでルータに対してグローバルIPアドレスを設定し、接続したいパソコンにはローカルIPアドレスを設定します。接続したいパソコンは複数あってもよいです。

ルータはパソコンからインターネット宛ての通信パケットを受け取ると、そのパケットの送信元をローカルIPアドレスからグローバルIPアドレスに変換してから送出します。そしてインターネットから返信があれば、宛先をグローバルIPアドレスからローカルIPアドレスに変換して、送信元パソコンに送信します。これによって接続パソコンはローカルIPアドレスしか持っていないにも関わらず、グローバルIPアドレスを使ってインターネット接続ができます。
このような仕組みになっているため、NATによるIPアドレス変換は、グローバルIPアドレスとローカルIPアドレスが1対1の置き換えになってしまいます。つまり、ルータが所有するグローバルIPアドレスの数以上はパソコンが同時にインターネット接続できないという欠点があります。
NAPTとは
NAPT(読み方:なぷと)はNetwork Address Port Translationの略で、NATと同様にインターネットで使用するグローバルIPアドレスと、ローカルネットワークで使用するプライベートIPアドレスを変換する技術のことです。こちらもルータに実装されます。IPマスカレードとNAPTは同じ技術を指します。IPマスカレードとはLinuxにおける機能であり、この機能を呼ぶときはNAPTを使用したほうが一般的かと思います。
NAPTはNATの欠点である、グローバルIPアドレスの数しか同時にパソコンがインターネット接続できないという問題を解決しています。
NAPTでは、グローバルIPアドレス+ポート番号をローカルIPアドレスと紐づけます。グローバルIPアドレスを1つしか持っていない場合でも、ポート番号は自由に使用できますので、複数のパソコンが同時にインターネット接続できるようになります。

ルータはパソコンからインターネット宛ての通信パケットを受け取ると、そのパケットの送信元をローカルIPアドレスからグローバルIPアドレス+ポート番号に変換してから送出します。そしてインターネットから返信があれば、宛先をグローバルIPアドレス+ポート番号からローカルIPアドレスに変換して、送信元パソコンに送信します。
ただし、一部のアプリケーションやサービスでは通信に使用するポート番号を固定にしていることがあり、ポート番号を変換してしまうNAPTでは正常に動作しなくなる場合があります。通常の家庭でのインターネット接続に対してはNAPTを想定したサービス提供がされていますので、大きな問題にはなりませんが、あなたがサービス提供者側である場合は注意する必要があります。
まとめ
- グローバルIPアドレスとローカルIPアドレスの変換技術
- グローバルIPアドレスとローカルIPアドレスの対応は1対1
- 一度に通信できるパソコンはグローバルIPアドレス分
- グローバルIPアドレス+ポート番号とローカルIPアドレスの変換技術
- グローバルIPアドレスとローカルIPアドレスの対応は1対多
- 一度に複数のパソコンが通信できる
コメント