ネットワークアドレス変換(NAT)の定義

ネットワークアドレス変換(NAT)は、あるネットワーク内で使われる「プライベート側のIPアドレス(多くの場合内部IP)」を、外部側で扱うための「公開側のIPアドレス(グローバルIP)」に変換する仕組みです。目的は、(1) 内部の端末にプライベートアドレスを使いつつ、(2) 外部インターネットなどとの通信を成立させることにあります。なお、NATはアドレスだけでなく、通信の種類や実装によってはポート番号も同時に扱って対応づけを行います。

仕組み:変換の考え方(簡単なモデル)

NATを「住所録」に例えると理解しやすいです。内部の端末が外部の宛先へ通信を開始すると、NAT装置(ルータ等)が次のような対応を作ります。

  • 内部端末の送信元アドレス(必要に応じて送信元ポート)
  • 外部に送るときの送信元アドレス(必要に応じて送信元ポート)
  • その対応が有効な間の「通信(セッション)」

通信が始まるときに変換情報(変換表のようなもの)が作られ、通信が続く間はその情報を参照して、戻り方向のパケットを正しい内部端末へ届けます。通信が終わる、または一定時間データが流れないと、変換情報は削除される(タイムアウトする)ことがあります。

ここで重要なのは、NATが「常に一覧的に自由に通信を中継できる装置」ではなく、作られた対応(セッション)に沿って戻り通信を成立させる、という点です。したがって、通信がどのように開始されるか(内部からのアウトバウンドか、外部からの着信か)で挙動が変わりやすくなります。

NATの主な種類と、向き不向き

NATの呼び名は実装や目的で分かれますが、利用者の観点では「どこまでを変換し、どの方向の通信を想定しているか」を押さえるのが実用的です。

  • 基本的な利用(一般的な外向き通信) 内部端末が外部へアクセスする場合、NATの変換表が作られ、戻り通信が成立しやすい構成になっていることが多いです。

  • 外部から内部への着信が必要な場合 外部から特定の端末・サービスへ到達させたいとき、NATだけでは自動的に内部へ振り分けできないことがあります。そこで一般に、NAT越しの着信を許可・転送するための仕組み(例:ポートフォワーディングのような考え方)が必要になります。

  • 変換表(状態)に依存する点 NATはセッションを管理します。そのため、アプリケーションやプロトコルによっては、タイムアウトやセッションの張り直しが影響し、思ったより不安定に見えるケースがあります。

※ここでの整理は一般的な理解のための枠組みであり、具体的な挙動はNAT装置の実装(ルータの設定、ファイアウォール連携、サポートする機能)で変わり得ます。不確実な部分は、手元環境での確認が前提になります。