NAPT【Network Address Port Translation】

広告

広告

NAPTとは

最終更新
2006-05-11T00:14:00+09:00
この記事のURI参照
https://www.7key.jp/nw/tcpip/tcp/napt.html#what

NAPTは1つのグローバルアドレスを複数のホストで共有する際に用いられ、NATの考えを更に発展させてよりグローバルアドレスの消費を抑えられる技術となっています。NATではIPアドレスのみを変換するのに対して、NAPTはIPアドレスとTCPUDPポート番号も変換するという特徴があります。これによって、1つのグローバルアドレスでプライベートアドレスを持つ複数のホストをサポートすることが可能となりました。変換後のポート番号は、コネクションを識別できるようにシステムが割り当てます。ただし、ポート番号の変換が行われるため、インターネット側からローカルネットワーク内部の端末に接続を開始するような使い方ができないというデメリットもあります。

NAPT変換テーブルの例
送信側受信側
変換前変換後
IPアドレスポート番号IPアドレスポート番号IPアドレスポート番号
192.168.10.1108720.2.2.2542010100.20.20.580
192.168.10.2108720.2.2.2542011100.20.20.580

更に特筆すべきは、ポート番号が動的に変換されるためNAPT変換テーブルにない接続は原理的に接続できないということでしょう。これによってプライベートネットワークを保護するというセキュリティ上の利点も生じます――積極的にセキュリティを向上させるものではなく、あくまで結果としてセキュリティが高まったものですが――。しかし、コネクションをはるためのパケット自体にプライベートアドレス等の情報を載せて出ていった場合、NAPT はそれに全く関知しないのでコネクションをはることができません。一部のアプリケーション――例えば、FTP――についてはNAPTが特別にアプリケーション層のプロトコルまで解釈することにより対応する場合もありますが、NAPTを実現する機器の独自の実装に委ねられている部分が大きいのが現状です。

グローバルポート番号

最終更新
2006-05-11T22:33:00+09:00
この記事のURI参照
https://www.7key.jp/nw/tcpip/tcp/napt.html#port

NAPT変換時のIPアドレスと対応ペアになるTCP/UDPポートTUポートと呼ばれ、NAPTモジュールは一般的に1,024〜65,535番を使用します。ただし例外もあり、これに必ずしも拘束される必要は無い旨がRFC2663に記載されています。ルータはTUポートのテーブルを持ち、各ローカルシステムのアプリケーションに空いている番号を割り当てます。これにより、グローバル側から出るデータのアドレスとポートは、異なるシステムの異なるアプリケーションでは一意に識別されることとなります。また、空いている番号は順次巡回するように使用されますので、UDPを使用するようなタイムラグがあるアプリケーションに対しても、複数のアプリケーションで番号が重複しないようにすることができます。

補足事項

最終更新
2006-05-11T01:01:00+09:00
この記事のURI参照
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社の文献ではNAPTPAT【Port Address Translation】と呼ぶこともあります。

広告

Copyright (C) 2006 七鍵 key@do.ai 初版:2006年05月11日 最終更新:2006年05月11日