NATの定義と目的

NAT(Network Address Translation)とは、通信の途中(多くの場合ルータ)でIPアドレスを別のアドレスへ置き換える仕組みです。必要に応じてポート番号もあわせて変換し、内部ネットワーク側の複数端末を外部へまとめて見せたり、異なるアドレス設計のネットワーク同士をつなげたりする目的で使われます。

ざっくりした仕組み(通信の流れ)

NATでは、内部側の端末が外部へ通信を開始するとき、送信元(または宛先)の情報が変換されます。一般にNAT装置は、どの内部端末のどの通信(識別子)に対応する“変換結果”かを対応表(セッション情報のようなもの)に記録し、同じ通信の返信を正しい内部側へ振り分けます。

たとえば、外部から見ると「送信元はNAT装置の外側アドレス」に見え、内部から見ると「自分の送信元はそのままのように扱われる」形になります。ここで重要なのは、NATは“通信の見え方”を変える一方で、対応表が必要になるため、無制限に自由な通信ができるわけではない点です。

NATの代表的な種類と違い

代表的には次のような整理がよく使われます(呼び名や細部は実装で変わり得ます)。

  • 静的NAT:内部の特定アドレスを外側の特定アドレスへ対応づける方式で、対応関係が固定されやすいです。
  • 動的NAT:外側側の空きアドレスの中から対応を割り当てる方式で、接続ごとに外側で見えるアドレスが変わる可能性があります。
  • PAT(Port Address Translation)/NAPTに相当する考え方:外側の同一アドレスを複数端末で共有し、ポート番号の組み合わせで区別します。このため外側のアドレス節約に有効ですが、ポート枯渇や特定トラフィックへの影響が出ることがあります。

これらの違いは、外部からの到達性や、内部端末ごとの識別方法、同時接続可能な範囲に関係します。

制限・つまずきやすいポイント(例外も含む)

NATには便利な面がある一方で、設計上の制約があります。