ネットワークに割り当てられたIPアドレスは基本的に一意なもので変わらないものであるが、IPv4アドレスの枯渇問題により、IPアドレス節約のためにアドレスを変換することが一般的になった。
インターネットなど外部と通信する際に使われるグローバルIPアドレスと、社内LANなど内部でしか使用できないプライベートIPアドレスがアドレス変換の代表的な例である。
プライベートIPをグローバルIPに(またはグローバルIPをプライベートIPに)変換するための技術として、次のものが挙げられる。
NAT(Network Address Translation)
主にルーターに搭載されている機能だが、プライベートIPが割り当てられたコンピューターがインターネット上のWebサーバーにアクセスしようとした時に、ルーターが保持するグローバルIPに変換してリクエストを送信する。
また、Webサーバーはルーターが持つグローバルIPにレスポンスを返し、ルーターが受け取ったレスポンスデータを、プライベートIPに変換したコンピューターを宛先として送信する。
この仕組みをNATといい、LAN内のコンピューターとインターネット間の通信を実現させている。
ただしNATは、プライベートIPとグローバルIPの変換が1対1で行われるので、複数のコンピューターで同時にNATを利用することができない。
NAPT(Network Address Port Translation)
NAPTはIPアドレスだけでなく、ポート番号も合わせて変換する仕組みだ。
一つのIPアドレスに対して、異なるポート番号を用いることで、1対多の通信を実現させている。
NAPTはIPマスカレードと呼ばれることもある。
プロキシサーバー・リバースプロキシサーバー
プロキシサーバーは、クライアントコンピューターとサーバー間の通信を中継するサーバーで、過去にやり取りしたデータのキャッシュ保持機能、コンテンツのフィルタリング、アクセスの記録など、様々な機能を持っていることが多い。
プロキシサーバーはクライアント側に設置されるのに対し、Webサーバー側に設置されるリバースプロキシサーバーというものがある。
クライアントからアクセスする際は1台のサーバーに見えるが、リバースプロキシの機能によりサーバー側で複数のサーバーに分散して処理を行なっている。
これがリバースプロキシの仕組みだ。