NAT

Definition:Network Address Translation

NAT(ネットワークアドレス変換)とは、IPネットワークにおいてパケットの送信元または宛先のIPアドレスを中継装置が動的または静的に書き換える技術である。一般的には、プライベートIPアドレスを使用する内部ネットワークと、グローバルIPアドレスを用いるインターネットとの間でアドレス変換を行うために利用される。

これにより、企業や家庭内の多数の端末が限られた数のグローバルIPアドレスを共有できるようになるため、IPv4アドレス資源の有効活用が可能となる。NATは主としてIPv4アドレス不足への対策として普及し、今日では家庭用ルータから大規模通信事業者のネットワークに至るまで広く利用されている。

NATは1990年代初頭、インターネットの急速な普及に伴い、IPv4アドレスの枯渇が現実的な懸念となったことを背景に登場した。当時、IPアドレスは32ビット空間に基づいて設計されており、約43億個のアドレスが理論上利用可能であったが、インターネットに接続する端末数の爆発的増加により、このリソースが逼迫しつつあった。この状況を受け、IETFはRFC 1918においてプライベートアドレス空間(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)を定義し、組織内部での自由な利用を可能にした。これらのアドレスはインターネット上でルーティングされないため、組織内で重複なく自由に使用できる。また1994年にはRFC 1631においてNATの概念が初めて標準文書化され、その後RFC 3022によって技術仕様が整理・発展され、現在広く普及しているNAT技術の基礎が形成された。当初はIPv6への移行が進むまでの暫定措置として考えられていたが、結果的には極めて有効な技術であることが判明し、今日に至るまで広く利用されている。

技術的には、NATはルータやファイアウォールに実装され、主に3つの方式に分類される。スタティックNATは、内部アドレスと外部アドレスの間で固定的な一対一の対応を提供し、サーバ公開などの用途に適する。ダイナミックNATは、内部アドレスが外部アドレスプールから動的に割り当てられる方式であり、同時接続数の制約を受けるが、複数のグローバルアドレスを保有する企業ネットワーク等で利用される。最も一般的なものはPAT(Port Address Translation)あるいはNAPT(Network Address Port Translation)と呼ばれる方式であり、複数の内部端末が一つのグローバルアドレスを共有し、ポート番号の違いによって通信を区別する。これにより数百台から数千台の端末が一つのグローバルIPアドレスを共有できる。なお「IPマスカレード」はこれと同様の機能をLinuxカーネルが実装した際の固有名称である。現在の家庭用ブロードバンドルータで「NAT」と呼ばれているもののほとんどは、厳密にはNAPTである。

OSI参照モデルの観点では、NATは主としてネットワーク層(Layer 3)で動作するが、NAPTではTCPやUDPのポート番号を扱うためトランスポート層(Layer 4)の情報も参照する。このためLayer 3とLayer 4の両方にまたがる技術とみなされる。NAT装置の動作はIPヘッダのアドレス書き換えにとどまらず、TCPヘッダおよびIPヘッダ双方のチェックサム再計算も伴う。また、FTPやSIPのようにアプリケーション層にアドレス情報を埋め込むプロトコルに対しては、ALG(Application Layer Gateway)による補正が別途必要となる場合がある。高速なルータやファイアウォールでは、これらの処理をASICやネットワークプロセッサによってハードウェア実装することで性能を確保している。

NATの普及に伴い、外部から内部ホストへの直接接続が困難になるという新たな問題も生じた。VoIP・オンラインゲーム・P2P通信・WebRTCなど端末間の直接通信を必要とするアプリケーションにおいては、STUN・TURN・ICE・UPnPといったNATトラバーサル技術が別途必要とされる。またNATはセキュリティ上の副次的効果として内部ネットワーク構成を外部から隠蔽できるが、本質的にはセキュリティ機構ではなく、アドレス空間の拡張を主目的とする技術であることに留意が必要である。

IPv4アドレス枯渇が深刻化した現代では、ISPがCGNAT(Carrier Grade NAT)を導入し、家庭用NATとISPのCGNATという二重NAT構成のもとで、多数の契約者が単一のグローバルIPアドレスを共有する形態も一般化している。これにより数百から数千の契約者によるアドレス共有が実現する反面、通信遅延の増加・P2P接続の困難化・ログ管理の複雑化といった課題も生じている。

NATにはエンドツーエンドの直接通信モデルを阻害するという根本的な問題点も存在する。特に新たな通信プロトコルの導入や双方向通信を前提とするサービスの実装において障壁となることがあり、NATテーブルの維持管理に必要な計算資源は大規模環境では性能のボトルネックとなる可能性もある。

なお、IPv6では128ビットアドレスを採用しており理論上はほぼ無尽蔵のアドレス空間を提供するため、その設計思想ではNATを前提とせずエンドツーエンド通信を復活させることが目標とされた。しかし現実にはIPv4資産の保護・既存インフラとの互換性・ネットワーク構成の隠蔽・ポリシー制御などの理由から、NATは今なお広範に利用され続けている。またIPv6環境においても、IPv4との相互接続を実現するNAT64や、プレフィックス単位で変換を行うNPTv6(Network Prefix Translation for IPv6)といったアドレス変換技術が利用されており、アドレス変換の概念そのものは依然として重要な役割を担っている。

Mathematics is the language with which God has written the universe.





















MPI-IO NIC OpenConfig マルチプレクサ Telcordia GR規格 1FINITY