NATの定義と目的
NAT(Network Address Translation)とは、通信の途中(多くの場合ルータ)でIPアドレスを別のアドレスへ置き換える仕組みです。必要に応じてポート番号もあわせて変換し、内部ネットワーク側の複数端末を外部へまとめて見せたり、異なるアドレス設計のネットワーク同士をつなげたりする目的で使われます。
ざっくりした仕組み(通信の流れ)
NATでは、内部側の端末が外部へ通信を開始するとき、送信元(または宛先)の情報が変換されます。一般にNAT装置は、どの内部端末のどの通信(識別子)に対応する“変換結果”かを対応表(セッション情報のようなもの)に記録し、同じ通信の返信を正しい内部側へ振り分けます。
たとえば、外部から見ると「送信元はNAT装置の外側アドレス」に見え、内部から見ると「自分の送信元はそのままのように扱われる」形になります。ここで重要なのは、NATは“通信の見え方”を変える一方で、対応表が必要になるため、無制限に自由な通信ができるわけではない点です。
NATの代表的な種類と違い
代表的には次のような整理がよく使われます(呼び名や細部は実装で変わり得ます)。
- 静的NAT:内部の特定アドレスを外側の特定アドレスへ対応づける方式で、対応関係が固定されやすいです。
- 動的NAT:外側側の空きアドレスの中から対応を割り当てる方式で、接続ごとに外側で見えるアドレスが変わる可能性があります。
- PAT(Port Address Translation)/NAPTに相当する考え方:外側の同一アドレスを複数端末で共有し、ポート番号の組み合わせで区別します。このため外側のアドレス節約に有効ですが、ポート枯渇や特定トラフィックへの影響が出ることがあります。
これらの違いは、外部からの到達性や、内部端末ごとの識別方法、同時接続可能な範囲に関係します。
制限・つまずきやすいポイント(例外も含む)
NATには便利な面がある一方で、設計上の制約があります。
