こんにちは、インフラエンジニアのryuです。
今回は、NAPTについて解説します。NAPTとは、ポート番号を使用してグローバルIPと複数のローカルIPアドレスを変換する技術のことです。NATとNAPTの違いを理解して、NAPTについて理解を深めましょう。NATとNAPTの用途や概要の違いを分かりやすく解説します。
目次
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についての解説を終わります。
そのほかの基礎的な技術を知りたい方はこちらから。様々な技術について解説しております。
さらにネットワークを詳しく勉強したい方にオススメの参考書です。↓分かりやすさ重視です。