広告
広告
https://www.7key.jp/nw/tcpip/tcp/napt.html#what
NAPTは1つのグローバルアドレスを複数のホストで共有する際に用いられ、NATの考えを更に発展させてよりグローバルアドレスの消費を抑えられる技術となっています。NATではIPアドレスのみを変換するのに対して、NAPTはIPアドレスとTCPやUDPのポート番号も変換するという特徴があります。これによって、1つのグローバルアドレスでプライベートアドレスを持つ複数のホストをサポートすることが可能となりました。変換後のポート番号は、コネクションを識別できるようにシステムが割り当てます。ただし、ポート番号の変換が行われるため、インターネット側からローカルネットワーク内部の端末に接続を開始するような使い方ができないというデメリットもあります。
送信側 | 受信側 | ||||
---|---|---|---|---|---|
変換前 | 変換後 | ||||
IPアドレス | ポート番号 | IPアドレス | ポート番号 | IPアドレス | ポート番号 |
192.168.10.1 | 1087 | 20.2.2.254 | 2010 | 100.20.20.5 | 80 |
192.168.10.2 | 1087 | 20.2.2.254 | 2011 | 100.20.20.5 | 80 |
更に特筆すべきは、ポート番号が動的に変換されるためNAPT変換テーブルにない接続は原理的に接続できないということでしょう。これによってプライベートネットワークを保護するというセキュリティ上の利点も生じます――積極的にセキュリティを向上させるものではなく、あくまで結果としてセキュリティが高まったものですが――。しかし、コネクションをはるためのパケット自体にプライベートアドレス等の情報を載せて出ていった場合、NAPT はそれに全く関知しないのでコネクションをはることができません。一部のアプリケーション――例えば、FTP――についてはNAPTが特別にアプリケーション層のプロトコルまで解釈することにより対応する場合もありますが、NAPTを実現する機器の独自の実装に委ねられている部分が大きいのが現状です。
https://www.7key.jp/nw/tcpip/tcp/napt.html#port
NAPT変換時のIPアドレスと対応ペアになるTCP/UDPポートはTUポートと呼ばれ、NAPTモジュールは一般的に1,024〜65,535番を使用します。ただし例外もあり、これに必ずしも拘束される必要は無い旨がRFC2663に記載されています。ルータはTUポートのテーブルを持ち、各ローカルシステムのアプリケーションに空いている番号を割り当てます。これにより、グローバル側から出るデータのアドレスとポートは、異なるシステムの異なるアプリケーションでは一意に識別されることとなります。また、空いている番号は順次巡回するように使用されますので、UDPを使用するようなタイムラグがあるアプリケーションに対しても、複数のアプリケーションで番号が重複しないようにすることができます。
https://www.7key.jp/nw/tcpip/tcp/nat.html#supplement
NAPTはナプトと読みます。
NAPTはLinuxでの実装が最も有名なために、その実装名であるIPマスカレードとも呼ばれますが、IPマスカレードはあくまでも実装名であって、機能の名前ではありません。また、NAPTという名前も、近年古典的なNATとの区別のために言われ始めたもので、機能的にはNAPTでありながらNATと呼ばれている例もあります。そういう意味では、広義のNATと狭義のNATがあると言えるでしょう。
ENAT【Enhanced Network Address Port Translation】と表現される場合もあります。イーナットと読みます。
Cisco Systems社の文献ではNAPTをPAT【Port Address Translation】と呼ぶこともあります。
広告