ネットワークアドレス変換(NAT)とは
ネットワークアドレス変換(NAT: Network Address Translation)は、インターネットプロトコル(IP)ネットワークにおいて、パケットヘッダに含まれる
IPアドレスを別の
IPアドレスに変換する技術です。
ルーターや無線LANアクセスポイントで広く使われ、家庭用、業務用を問わず、インターネット接続に不可欠な技術となっています。
特に、
IPアドレスとポート番号の両方を変換するNAPT(Network Address Port Translation、別名IPマスカレード)が一般的で、複数のデバイスが同じグローバル
IPアドレスを共有してインターネットに接続できます。
NATの基本
インターネット通信には、世界で一意なグローバル
IPアドレスが必要ですが、プライベートネットワーク内の機器にはプライベート
IPアドレスが割り当てられ、そのままではインターネットに接続できません。NATは、
ゲートウェイを通過するパケットの
IPアドレスをグローバル
IPアドレスまたはプライベート
IPアドレスに変換することで、LAN内の機器がインターネットにアクセスできるようにします。
NATとNAPTの違い
初期のNATは
IPアドレスのみを変換していましたが、これでは複数の機器が同時にインターネットに接続する際、機器数と同数のグローバル
IPアドレスが必要でした。そこで、NAPTが導入され、
IPアドレスだけでなくポート番号も変換することで、複数のプライベート
IPアドレスを一つのグローバル
IPアドレスで利用できるようになりました。NAPTはNATオーバーロード、PAT(Port Address Translation)、IPマスカレードなどの別名でも呼ばれます。
NAPTにより、複数のホストが異なるローカルアドレスを同一のグローバルアドレス配下の異なるポートとして表現でき、必要なグローバルアドレスの数を減らせます。動的NAPTは、ISPがユーザーにグローバル
IPアドレスを割り当てる際にも利用されます。
NATは、LAN内部のホストにプライベート
IPアドレスを割り当て、インターネット接続時のみグローバル
IPアドレスを利用する技術です。これにより、使用するグローバル
IPアドレスの数を減らすことができ、
IPアドレス枯渇問題の緩和に貢献しています。
動的NATと静的NAT
動的NAT: LAN内部のIPアドレスを、あらかじめ用意された外部IPアドレスの中から一つを選んで動的にマップする技術です。セキュリティやIPアドレス不足の解決に役立ちますが、IPアドレスが固定されないという問題点があります。
静的NAT: LAN内部の
IPアドレスを常に同一の外部
IPアドレスに静的にマップする技術です。これにより、外部から内部サーバにアクセスする際に常に同じ
IPアドレスを指定できます。
NATへの批判
NATは、インターネットが本来目指していたピアツーピア接続を妨げる可能性があると批判されています。また、FTPやSIPなどの
VoIPを機能させるには、特別な工夫が必要な場合があります。さらに、複数のローカル
IPアドレスからのアクセスを一つのグローバル
IPアドレスで共有するため、外部からローカルネットワーク内のどのノードがアクセスしたかを特定するのが困難になり、悪意のある利用者の特定が難しくなるという問題点もあります。
NATの様々な呼び方
NATには、以下のような様々な呼び方があります。
Source NAT: 送信元IPアドレス変換
NAPT: Network Address Port Translation
IPマスカレード: LinuxでのNAPT実装名
PAT: Port Address Translation (Cisco)
NATオーバーロード: Ciscoでの呼称
ダイナミックENAT: Enhanced NAT (アライドテレシス)
DIP: Dynamic IP (Juniper SSG)
DIPP: Dynamic IP and port (Palo Alto Networks)
Destination NAT: 宛先IPアドレス変換
ポートフォワーディング
スタティックENAT: アライドテレシスでの呼称
VIP: Juniper SSGでの呼称
バーチャルIP: Fortinetでの呼称
Source and Destination NAT: 送信元と宛先両方の
IPアドレスを変換
ダブルNAT: アライドテレシスでの呼称
MIP: Juniper SSGでの呼称
NATの分類
NATは、実装によって通信に異なる影響を与えるため、その種類を分類する必要があります。STUN(Session Traversal Utilities for NAT)プロトコルは、NATの実装をFull cone NAT、Restricted cone NAT、Port restricted cone NAT、Symmetric NATに分類し、その種類を特定しようとしました。しかし、これらの分類は不完全で、多くの機器を正しく評価するには不十分であると判明し、現在ではあまり使われなくなりました。多くのNATは複数の種類を組み合わせており、個々の振る舞いを評価することが重要です。RFC 4787では、動作に関する標準的な用語を導入して混乱の緩和を試みています。
関連技術
Connection Tracking: FTPやSIPなどのアプリケーションで、NATやNAPTがうまく動作しない問題を解決するための技術。Linuxのiptablesなどで実装されています。
GapNAT: 住友電工のADSLモデムに内蔵された
ルーターに実装された、DMZを実現する機能。一つのグローバル
IPアドレスしか提供されない環境下で、特定のコンピュータにグローバル
IPアドレスを割り当て、その他のコンピュータにはローカル
IPアドレスを割り当てます。
UPnP IGD: UPnPのインターネットゲートウェイデバイス仕様に準拠したNATルータは、対応アプリケーションからポートマッピングの作成や削除などの操作を受け付けます。
IPv4 IPv6間 NAT: IPv4と
IPv6が混在する移行期間において、両ネットワークを接続するNATが必要となります。
まとめ
NATは、現代のインターネット環境において、不可欠な技術です。
IPアドレス変換によるネットワーク効率化だけでなく、セキュリティや柔軟なネットワーク構成にも貢献しています。