NATとNAPTの違い

プログラミング知識

NATとNAPTについて解説していきます。ネットワーク構築や通信プログラミングをする人は知っておきましょう!

NATとは

NAT(読み方:なっと)はNetwork Address Translationの略で、インターネットで使用するグローバルIPアドレスと、ローカルネットワークで使用するプライベートIPアドレスを変換する技術のことを指します。インターネットとローカルネットの境に設置されるルータに実装される機能です。

通常の一般家庭であれば、インターネットを契約すると1つのグローバルIPアドレスが割り当てられます。しかしこのグローバルIPアドレスを1台のパソコンに設定してしまうと、ほかのパソコンがインターネットに接続できなくなってしまいます。

そこでルータに対してグローバルIPアドレスを設定し、接続したいパソコンにはローカルIPアドレスを設定します。接続したいパソコンは複数あってもよいです。

NATによるアドレス変換

ルータはパソコンからインターネット宛ての通信パケットを受け取ると、そのパケットの送信元をローカル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つしか持っていない場合でも、ポート番号は自由に使用できますので、複数のパソコンが同時にインターネット接続できるようになります。

NAPTによるアドレス変換

ルータはパソコンからインターネット宛ての通信パケットを受け取ると、そのパケットの送信元をローカルIPアドレスからグローバルIPアドレス+ポート番号に変換してから送出します。そしてインターネットから返信があれば、宛先をグローバルIPアドレス+ポート番号からローカルIPアドレスに変換して、送信元パソコンに送信します。

ただし、一部のアプリケーションやサービスでは通信に使用するポート番号を固定にしていることがあり、ポート番号を変換してしまうNAPTでは正常に動作しなくなる場合があります。通常の家庭でのインターネット接続に対してはNAPTを想定したサービス提供がされていますので、大きな問題にはなりませんが、あなたがサービス提供者側である場合は注意する必要があります。

まとめ

NAT
  • グローバルIPアドレスとローカルIPアドレスの変換技術
  • グローバルIPアドレスとローカルIPアドレスの対応は1対1
  • 一度に通信できるパソコンはグローバルIPアドレス分
NAPT
  • グローバルIPアドレス+ポート番号とローカルIPアドレスの変換技術
  • グローバルIPアドレスとローカルIPアドレスの対応は1対多
  • 一度に複数のパソコンが通信できる

コメント

タイトルとURLをコピーしました