テクノロジ編

【応用情報】グローバルIPアドレスとプライベートIPアドレス、NATとNAPTを解説

この記事ではグローバルIPアドレスプライベートIPアドレスNATNAPT(IPマスカレード)について解説します。

IPアドレス

  • IPアドレスはネットワークにおける住所のような役割を果たす番号

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

  • グローバルIPアドレスはインターネットの世界で使われるIPアドレス
  • プライベートIPアドレスはLAN内だけで使われるIPアドレス

NAT

  • ルータはLANの中と外を繋ぐ役割を果たす
  • プライベートIPアドレスとグローバルIPアドレスを1対1で変換する技術をNATと呼ぶ
  • NATではルータはIPアドレスの変換を行う

NAPT(IPマスカレード)

  • 複数のプライベートIPアドレスと1つのグローバルIPアドレスを対応付けて変換する技術をNAPT(IPマスカレード)と呼ぶ
  • NAPTではルータはIPアドレスとポート番号の変換を行う

応用情報ではグローバルIPアドレスとプライベートIPアドレス、NATとNAPTに関する問題が出題されます。是非最後までご覧ください。

IPアドレスはネットワークの住所

現実世界の住所のように、インターネットに接続している全てのコンピュータにはIPアドレスが割り当てられています。IPアドレスはコンピュータを識別するために使うものなので、重複はありません。

現実世界で郵便物を届ける時に住所を使うように、インターネットの世界でデータを届ける時はIPアドレスを使ってどのコンピュータに送ればいいのかを判断します

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

IPアドレスにはグローバルIPアドレスプライベートIPアドレスがあります。
グローバルIPアドレスは、インターネットの世界で使われるIPアドレスで、
プライベートIPアドレスは、LAN内で使われるIPアドレスです。

NATとNAPT

LAN内でプライベートIPアドレスを使っているコンピュータもLAN外のコンピュータとやり取りするためには、グローバルIPアドレスが必要になります。ルータがLANの中と外を繋ぐ役割を果たしていることが多く、その際、NATNAPT(IPマスカレードとも呼ぶ)と言う技術を使います。ルータはLAN内ともLAN外ともやり取りをするので、プライベートIPアドレスとグローバルIPアドレスの両方を持ちます。

NATやNAPTを使うと、プライベートIPアドレスとグローバルIPアドレスを変換できます

NAT

NATはプライベートIPアドレスとグローバルIPアドレスを1対1で結び付けて変換します
どういう仕組みで変換するのかを見てみましょう。

  1. LAN内のコンピュータ(PC1)がLAN外のコンピュータ(PC2)にデータを送る時、PC1はLANの中と外を繋ぐ窓口であるルータにデータを送ります
    宛先IPアドレス:ルータのプライベートIPアドレス(192.168.1.2)
    送信元IPアドレス:PC1のプライベートIPアドレス(192.168.1.1)
  2. データを受け取ったルータがPC2にデータを送信します。ルータはLAN外のPC2とやり取りをするのでグローバルIPアドレスを使います
    宛先IPアドレス:PC2のグローバルIPアドレス(219.111.190.135)
    送信元IPアドレス:ルータのグローバルIPアドレス(219.111.187.135)
  3. PC2はデータを送ってきたルータに返答します。
    宛先IPアドレス:ルータのグローバルIPアドレス(219.111.187.135)
    送信元IPアドレス:PC2のグローバルIPアドレス(219.111.190.135)
  4. PC2から返ってきたデータをルータはPC1に返します。LAN内のやり取りになるので、プライベートIPアドレスを使います。
    宛先IPアドレス:PC1のプライベートIPアドレス(192.168.1.1)
    送信元IPアドレス:ルータのプライベートIPアドレス(192.168.1.2)

NAPT(IPマスカレード)

NAPTは複数のプライベートIPアドレスとグローバルIPアドレスを結び付けて変換します。NAPTはIPマスカレードと呼ばれることもあります。

NATではIPアドレスを変換しただけですが、NAPTはIPアドレスに追加でポート番号も変換することで、複数のコンピュータの接続が可能になります。

なぜ、ポート番号の書換えが必要なのでしょうか?もしポート番号を書き換えずにNATと同じようにIPアドレスだけを変換するとどうなるのか見てみましょう。

①から③の流れはNATと同じですが、④で困ったことが発生します
PC2から返ってきたデータをルータは元のPCに返さないといけないのですが、
複数のPCが繋がっているため、どのPCに返せばいいのか分かりません

ではポート番号を変換すればどうなるでしょうか。

②でデータを送る時に、送信元ポート番号をPC1に対応する1080に変換します。
こうすることで、LAN内のどのコンピュータにデータを返せばいいのかが分かるようになります。

応用情報技術者試験での出題例

令和5年度秋期問32

応用情報技術者
午前試験 令和5年度秋期問32

プライベートIPアドレスを割り当てられたPCがNAPT(IPマスカレード)機能をもつルータを経由して,インターネット上のWebサーバにアクセスしている。WebサーバからPCへの応答パケットに含まれるヘッダー情報のうち,このルータで書き換えられるフィールドの組合せとして,適切なものはどれか。ここで,表中の〇はフィールドの情報が書き換えられていることを表す。

正解と解説

正解は”イ”

NAPTではルータはIPアドレスとポート番号を変換します。
・プライベートIPアドレス⇔グローバルIPアドレスを変換
・プライベートIPアドレスに対応したポート番号に変換

今、LAN外からLAN内のコンピュータに送られる時のことを聞かれているので、
宛先コンピュータのIPアドレスとポート番号が変換対象です。

よって答えはイです。

令和3年度秋期問33

応用情報技術者
午前試験 令和3年度秋期問33

PCが,NAPT(IPマスカレード)機能を有効にしているルータを経由してインターネットに接続されているとき,PCからインターネットに送出されるパケットのTCPとIPのヘッダのうち,ルータを経由する際に書き換えられるものはどれか。

ア 宛先のIPアドレスと宛先のポート番号
イ 宛先のIPアドレスと送信元のIPアドレス
ウ 送信元のポート番号と宛先のポート番号
エ 送信元のポート番号と送信元のIPアドレス

正解と解説

正解は”エ”

NAPTではルータはIPアドレスとポート番号を変換します。
・プライベートIPアドレス⇔グローバルIPアドレスを変換
・プライベートIPアドレスに対応したポート番号に変換

今、LAN内からLAN外のコンピュータに送られる時のことを聞かれているので、
送信元コンピュータのIPアドレスとポート番号が変換対象です。

よって答えはエです。