ITパスポート講座

【初心者向け】NAPTとは?NATとの違いが良く分かる!

こんにちは、インフラエンジニアのryuです。

今回は、NAPTについて解説します。NAPTとは、ポート番号を使用してグローバルIPと複数のローカルIPアドレスを変換する技術のことです。NAPTの概要を初心者の方に分かりやすく解説します。仕組みやNATの違いが理解できます。

NAPTとは?

NAPTって何?NATと何が違うの?

NAPTとは、IPアドレスとportを合わせて変換する技術です!

良く分からない・・・?

今回の記事では、NAPTについて、詳しく説明します。

NAPTとは、Network Address Port Translationの略で、IPアドレスとportを変換します。それに対してNATはIPアドレスを変換するものでした。

なぜportも変換する必要があるのか?NAPTの必要性など分かりやすく解説します。

まだNATを理解していない方はこちらの記事を先にご覧ください。

NAPTはポートも合わせて変換する

NAPTとはIPアドレスとport番号を変換する技術です。これがどういうことなのか詳しく解説します。

まず前提知識として、下記の点を理解しておきましょう。

  • NAT→ローカルIPアドレスとグローバルIPアドレスを変換する
  • ポート→サービスを受け付ける窓口

NATは、ローカルIPアドレスとグローバルIPアドレスを変換する技術でした。ローカルのPCがインターネットへアクセスするときに、ローカルPCのアドレスをプロパイダーから取得したグローバルIPアドレスへ変換してインターネットへアクセスしました。

ポートはサービスを受け付ける窓口のことです。例えば、Webにアクセスしたいときは80番ポート、メールの送信をしたいときは、25番ポートなど、各サービスに番号が割り当てられています。

この2つを組み合わせたものがNAPTになります。

ただ、これだけでは、NAPTがどのような物なのかまだ分からないと思うので、次にNAPTの具体的な動きを確認してみましょう。

NAPTの仕組み

NATにポートを組み合わせたもの・・・

まだ分からない・・・

まだ分からないと思うので、NAPTの具体的な動きを確認してみましょう。

NAPTはNATにポート番号を組み合わせた技術です。先ほどポート番号はサービスを受け付ける窓口と言いました。これをサービスではなく、ローカル上のPCに置き換えたものだと思ってください。

では、通信の流れを説明します。

まず、2台のローカルPCからインターネット上のサーバーにアクセスすると想定します。もちろんNAPTをするためのルーターもあります。以下のような構成です。

NAPTはどのように動作するのかというと、PC1は「192.168.0.1」を「161.93.34.46の1000番ポート」PC2は「192.168.0.2」を「161.93.34.46の2000番ポート」のように変換します。

こうすることで、アクセスされたWebサーバーは、PC1に返答を返すときは、161.93.34.46の1000番ポートに通信を行いPC2に返答を返すときは2000番ポートに返す動作を行います

では、なぜことようなことをする必要があるのでしょうか?

NAPTが必要な理由をさらに解説します!

なぜNAPTを使う必要があるのか?

なぜNAPTを使う必要があるの?変換するだけならNATで十分なのでは?

それは、複数のPCを同時にインターネットにアクセスできるようにするためです!

なぜ、NAPTを使う必要があるのかというと、複数のPCを同時にインターネットにアクセスできるようにするためです。

NATの場合、1台のPCがインターネットにアクセスしているとき、その他のPCはインターネットへアクセスできなくなるからです。

この辺りの動きを詳しく解説します。

NAPTでは複数台のPCを同時に変換することができる

NATの場合、1対1でローカルIPアドレスとグローバルIPアドレスを変換します。

ローカルIPアドレスの「192.168.0.1」をグローバルIPアドレスの「161.93.34.46」に変換した場合、その他のPCはこのグローバルIPアドレスが使えなくなります。

しかし、NAPTでポートも使用することによって、同時に変換することができます。

なぜなら、ローカルIPアドレスの「192.168.0.1」を変換するときは、グローバルIPアドレス「161.93.34.46」の1000番ポート、グローバルIPアドレス「161.93.34.46」の2000番ポート、のように、送信元によってポートを分割することで同時アクセスできるようになりました。

参考:NAPTはIPマスカレードとも呼ばれる

ここからは、参考情報です。

NAPTはIPマスカレードとも呼ばれます。

IPマスカレードはLinuxで実装されています。Linuxサーバーを使う人はIPマスカレードという言葉も覚えておきましょう。

ちなみに、NAPTはRFCというインターネット関連の使用をまとめた技術書に定義されている言葉です。

一般的にはNAPTが多く使われています。現場でもIPマスカレードはあまり使われないですね。

NAPTとNATの違い

ここまで、NAPTの解説をしてきました。

NAPTとNATの違いをまとめておきましょう!

  • NAPT→ポート番号を使用してグローバルIPと複数のローカルIPアドレスを変換
  • NAT→グローバルIPとローカルIPアドレスを変換

つまり、この2つの違いは変換できるローカルIPアドレスが違います。NAPTはポート番号を使うことで、1つのグローバルIPアドレスで、複数のローカルIPアドレスを同時に変換することが可能です。

NAPTとは?まとめ

今回の記事では、NAPTについて詳しく解説しました。

NAPTとは、ポート番号を使用してグローバルIPと複数のローカルIPアドレスを変換する技術でした。

ネットワークの基礎知識のため、必ず覚えておきましょう。

以上でNAPTについての解説を終わります。

そのほかの基礎的な技術を知りたい方はこちらから。様々な技術について解説しております。

さらにネットワークを詳しく勉強したい方にオススメの参考書です。↓分かりやすさ重視です。

ABOUT ME
ryu
大手メーカのIT部門でインフラエンジニアやってます。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!