NATの仕組みを図解で説明
〜NATとNAPTの違い〜

「NAT」知っていますか?「NAPT」との違いを説明できますか?

どちらもアドレスを変換する技術、くらいの理解の人も多いと思います。

NATとNAPTの仕組みと違いについて、図を使って説明していきます。

NATとは?

NAT(Network Address Translation)は、プライベートIPアドレスとグローバルIPアドレスを変換する技術です。

主にルータが、この変換を行っています。

まずは、2種類のIPアドレスについて簡単に説明します。

プライベートIPアドレスとグローバルIPアドレス

IPアドレスには、「グローバルIPアドレス」と「プライベートIPアドレス」があります。

グローバルIPアドレスは、インターネットで使用するアドレスです。世界中で重複しないように管理されています。

プライベートIPアドレスは、家庭や会社のLANの中で自由に使用できるアドレスです。

プライベートIPアドレスの範囲は、次のように決まっています。

  • 10.0.0.0 〜 10.255.255.255
  • 172.16.0.0 〜 172.31.255.255
  • 192.168.0.0 〜 192.168.255.255

自宅のパソコンのIPアドレスを確認すると、「192.168」で始まっていることが多いと思います。

ただし、プライベートIPアドレスのままではインターネットの相手と通信できません。

そこで、インターネットの出入り口にあるルータがアドレスを変換します。これがNATです。

NATの動き

NATは①〜④の流れで通信を行います。

①パソコンがWebサーバにデータを送信

②ルータが送信元をプライベートIPアドレスからグローバルIPアドレスに変換

③WebサーバがルータのグローバルIPアドレス宛に返信

④ルータが宛先をプライベートIPアドレスに戻してパソコンへ転送

NATの動きの図。ルータが、パソコンの送信元192.168.1.10を203.0.113.1に変換してWebサーバへ送り、返信の宛先を元に戻す

この時ルータは、どのパソコンの通信を変換したのかを変換表に記録しています。

そのため、返ってきたデータを正しいパソコンに届けることができます。

ただし、NATは基本的にプライベートIPアドレスとグローバルIPアドレスを1対1で変換します。

グローバルIPアドレスが1つしかなければ、同時にインターネットへ接続できるパソコンは1台だけになってしまいます。

この問題を解決するのが、NAPTです。

NAPTとは?

NAPT(Network Address Port Translation)は、IPアドレスに加えてポート番号も変換する技術です。

ポート番号は、パソコンの中でどのアプリの通信かを見分けるための番号です。

このポート番号を使って見分けることで、1つのグローバルIPアドレスを複数のパソコンで共有できます。

Linuxでは、同じ仕組みを「IPマスカレード」と呼ぶこともあります。

NAPTの動き

パソコンA、Bの2台が、同じWebサーバに接続する場合を考えます。

①2台のパソコンが、それぞれ自分のポート番号でデータを送信

②ルータが送信元のIPアドレスを同じグローバルIPアドレスに変換し、ポート番号は重ならない番号に変換

③Webサーバが、ルータのグローバルIPアドレスとそれぞれのポート番号宛に返信

④ルータが変換表を見て、宛先を元のパソコンのIPアドレスとポート番号に戻して転送

NAPTの動きの図。パソコンAとBの送信元ポート50000を、ルータが同じグローバルIPアドレスの60001と60002に変換する。下に変換表がある

図の例では、どちらのパソコンも送信元のポート番号は50000です。

ですが、ルータがポート番号を60001と60002に変換しているので、返信がどちらのパソコン宛か見分けることができます。

自宅のルータでも、スマホやパソコンを何台もインターネットに接続できています。

一般的に「NAT」と呼ばれていても、家庭用のルータで実際に動いているのはNAPTであることがほとんどです。

NATとNAPTの違い

2つの違いを簡単に説明すると、

・NATは、IPアドレスだけを変換する。基本は1対1

・NAPTは、IPアドレスとポート番号を変換する。複数台で共有できる

になります。

NATとNAPTの比較表。NATはIPアドレスを基本1対1で変換し、NAPTはIPアドレスとポート番号を変換して複数台で共有する

試験では、ポート番号まで変換するのがNAPTと覚えておけば迷いにくくなります。

外からの通信はどうなる?

NAPTでは、パソコンから通信を始めた時に変換表が作られます。

そのため、インターネット側からいきなりパソコンへ接続しようとしても、ルータはどのパソコン宛なのか分かりません。

外からの接続が届きにくいので、結果として家庭や会社のパソコンが守られている面もあります。

ただし、NATはセキュリティのための技術ではありません。ファイアウォールの代わりにはならないので注意してください。

内部のサーバを外部に公開したい場合は、ルータに転送のルールを設定します。これを「ポートフォワーディング」といいます。

ポートフォワーディングの図。外部のパソコンからルータのポート8080に届いた通信を、内部サーバのポート80へ転送する

図の例では、ルータの8080番ポートに届いた通信を、内部のサーバの80番ポートへ転送しています。

ポートフォワーディングで公開したサーバは、インターネットから攻撃を受ける可能性があります。公開する場合は、更新や認証などの対策を忘れないようにしましょう。

NATは他の技術にも影響しています。

FTPのアクティブモードは、サーバからクライアントへ接続するため、NATの環境でうまく動かないことがあります。詳しくはFTPの仕組みを図解で説明の記事で説明しています。

また、外から会社のパソコンに直接つながらない理由の1つもNATです。テレワークで会社に接続する仕組みは、テレワークはどうやって会社に繋がってるの?で説明しています。

まとめ

今回はNATとNAPTの仕組みと違いについて説明しました。

NATは、プライベートIPアドレスとグローバルIPアドレスを変換する技術です。NAPTは、そこにポート番号の変換を加えて、1つのグローバルIPアドレスを複数台で使えるようにした技術です。

少し難しく見えますが、普段のインターネットの通信でも当たり前に使われています。

基本情報技術者試験の勉強でも、ネットワークの分野を理解する上で大切な考え方になるので、しっかり押さえておきましょう。

自宅のルータの設定画面を見ると、グローバルIPアドレスやポートの転送の設定を確認できることがあります。一度見てみると、理解が深まると思います。

IPアドレスのネットワーク部とホスト部の考え方は、サブネットマスクの計算を図解で説明の記事で説明しています。