NATの定義と目的

ネットワークアドレス変換(NAT, Network Address Translation)は、通信に使われるIPアドレス(必要に応じてポート番号も)を、あるネットワーク内の表現から別の表現へ置き換えるしくみです。代表的には、家庭や企業の内側で使うプライベートIPアドレスと、外側で使うグローバルIPアドレスとの間で変換を行います。これにより、内側の端末が外部と通信できるようになります。

仕組み:対応づけと変換の流れ

NATは単にIPアドレスを機械的に書き換えるだけでなく、「どの通信がどの端末に対応するか」を管理しながら転送します。一般的な流れは次のとおりです。

  1. 内側の端末が外部へ通信を開始する
  2. NATを行う機器(多くの場合ルータ)が、送信元のアドレス(およびポート番号)を、外側で使える形に変換する
  3. NAT機器は「変換前の情報」と「変換後の情報」の対応を表(対応づけ)として保持する
  4. 外部から返ってきた応答は、その対応表を参照して、元の内側端末へ転送する

このため、同じ外側側の宛先でも、接続の開始時に作られた対応関係に従って、応答先が正しく振り分けられます。

どの部分が変わるのか(IPだけではない)

NATというと「IPアドレスの変換」を連想しがちですが、実装や方式によってはポート番号もあわせて扱います。内側の端末はそれぞれ別のセッション(通信のまとまり)を持つため、変換後の組み合わせが重ならないようにする必要があります。

また、NAT機器は一度対応づけを作っても、その通信が終わったあとに一定の条件で対応表のエントリを削除することがあります。この「保持期間」や削除のタイミングは機器や設定によって異なり、結果として通信が途切れるように見えるケースもありえます。