ITパスポート講座

【初心者向け】NAPTとは?NATとの違いは?【NAPTの概要や用途を詳しく解説】

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

今回は、NAPTについて解説します。NAPTとは、ポート番号を使用してグローバルIPと複数のローカルIPアドレスを変換する技術のことです。NATとNAPTの違いを理解して、NAPTについて理解を深めましょう。NATとNAPTの用途や概要の違いを分かりやすく解説します。

関連【おすすめ】コマンドを打ちながらLinuxが学べるサイトInfraAcademy

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

NAPTとは?NATとの違いは?

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

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

良く分からない・・・?

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

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

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

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

NATとは?”なぜPCはインターネットに接続できるのか”【ネットワーク基礎講座】

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が必要な理由をさらに解説します!

NATと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の設定方法について解説します。NAPTはIPアドレスを変換する機能です。これは、RouterやLinuxで設定を行います。NAPTの設定方法ネットワークに詳しくなりたい人だけご覧ください!

RouterへNAPTの設定

Routerで設定を行う場合は以下のように設定します。

(config)#ip nat pool pool1 123.123.1.1 123.123.1.5 netmask 255.255.255.0
(config)#access-list 1 permit 172.161.0.0 0.0.255.255
(conifg)#ip nat inside source list 1 pool pool1 overload

(config)#int gi 0/0
(config-if)#ip nat inside
(config)#int gi 0/1
(config-if)#ip nat outside

NAPT設定解説

NAPTを設定する場合は、まずpoolの定義を行います。poolには変換後のIPアドレスを設定します。つまりグローバルIPアドレスです。

access-listは、変換前のローカルIPを定義します。その後、各インターフェースに内部ネットワーク(inside)、外部ネットワーク(outside)の定義を行います。

PacketTracerというシュミレーターを使うと簡単に確認できるのでお試しください!

ネットワーク構築の練習をする方法解説!【実機を買う?シュミレーターを使う?】

NAPTとは?NATとの違いまとめ

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

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

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

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

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

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

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
InfraAcademyというインフラエンジニア向けの学習サービスを運営しております。 インフラエンジニアからフルスタックエンジニア、PdM サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。
RELATED POST