「NAT 」はこの項目へ転送 されています。輸血製剤の検査法については「核酸増幅検査 」をご覧ください。
プライベートネットワークとインターネットとの間のネットワークアドレス変換 この記事は検証可能 な参考文献や出典 が全く示されていないか、不十分です。 出典を追加 して記事の信頼性向上にご協力ください。(このテンプレートの使い方 ) 出典検索? : "ネットワークアドレス変換" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2021年3月 )
ネットワークアドレス変換 (ネットワークアドレスへんかん)、NAT (Network Address Translation)とは、インターネットプロトコル によって構築されたコンピュータネットワークにおいて、パケットヘッダに含まれるIPアドレス を、別のIPアドレスに変換する技術である。
業務用、家庭用を問わず、インターネットに接続するために使用されるルータ や無線LAN のアクセスポイント において標準的に利用されている。
IPアドレスに加え、ポート番号 の変換も行うものをNAPT (Network Address Port Translation、またはIPマスカレード )と呼ぶ。今日では、NATと言えばNAPTのことを指すのが一般的である(#NATとNAPT も参照)。
概要
インターネットに接続し通信を行うためには、世界で唯一のIPアドレス(グローバルIPアドレス)を使用する必要がある。よって、プライベートネットワーク 環境下において、プライベートIPアドレスを割り当てられている機器は、そのままではインターネットに接続することができない。NATを利用することにより、ゲートウェイを通過するIPパケットの送信元または宛先のIPアドレスは、グローバルIPアドレスまたはプライベートIPアドレスに変換される。こうして、LAN 内の機器が、ルータ等のゲートウェイ を通してインターネットにアクセスできるようになる。
NATとNAPT
元来のNATは、送受信するパケットの送信元・宛先IPアドレスだけを識別して変換するものであったため、複数の機器が同時に外部ネットワークに接続する場合は、その機器数と同数のグローバルIPアドレスが必要であった。そこで現在では、プライベートIPアドレスとグローバルIPアドレスの1対1の変換に加え、ポート番号 も変換してプライベートIPアドレスとグローバルIPアドレスを1対多に変換するNAPTが用いられることが多い。NATオーバーロード、オーバーロード変換、PAT (Port Address Translation、Cisco Systems による呼称)、IPマスカレード (Linux におけるNAPTの実装名から。マスカレード(masquerade)は、仮面舞踏会 の意味)などとも呼ばれる。
NAPTでは、IPアドレスに加えてポート番号の識別や変換をすることで、複数のホストからローカル外のネットワークに接続する際、異なるローカルアドレスを同一のグローバルアドレス配下の異なるポートとして表現し、必要なグローバルアドレスの数を減らすことができる。動的NAPTは、インターネットプロバイダ から利用者に対するグローバルIPアドレスの割り当て等でよく用いられる。
NATは、LAN内のホストにはプライベートIPアドレスを割り当て、インターネットに接続するときだけグローバルIPアドレスを使用する技術であるため、NATを活用することにより、使用するグローバルIPアドレスの数を減らすことができる。
動的 NAT
動的 NAT(ダイナミック NAT)とは、LAN 内部の IP アドレスをあらかじめ用意された外部 IP アドレスの中の 1 個を選択してその IP アドレスに動的にマップする技術のことである。動的 NAT はセキュリティや不足する IP アドレスの問題解決に役に立つが、IP アドレスが固定されないという問題点がある。例えば、LAN 内部のサーバをインターネットなど、外部から参照する必要が生じた場合、外部から参照するためにはグローバル IP アドレスが必要だが、動的 NAT では解決できない。
静的 NAT
静的 NAT(スタティック NAT)とは、LAN 内部の IP アドレスを常に同一の外部の IP アドレスに静的にマップする技術のことである。この技術を使用すれば、LAN の外部から常に同一の IP アドレスを指定することによって内部サーバにアクセスすることができる。
非難
その一方、インターネットが本来掲げていたピア・ツー・ピア での接続に対する障害になりうると非難する意見もある(エンドツーエンド接続性 )。 [要出典 ] また、FTP や、SIP などのVoIP を機能させるためには工夫が必要な場合もある。
また、複数のローカルIPアドレスからのアクセスを、1つのグローバルIPアドレスで共有しているため、外からはローカルネットワーク内のどのノードがアクセスしたのかまでを特定することはできない。このためインターネットカフェなどの不特定多数の人が利用するアクセス端末からの、悪意のある利用(SPAM 行為や掲示板荒らし 、ネット犯罪 など)がなされた場合、匿名性が高く特定がより困難になる。
NATの色々な呼ばれ方
Source NAT (送信元IPアドレス変換)
NAPT(Network Address Port Translation)
IPマスカレード(Linux)
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アドレスと宛先IPアドレスの両方を変換する)
ダブルNAT(アライドテレシス)
MIP (Juniper SSG)
NATの分類
NATはアドレスやポート番号を変換する様々な仕組みに実装されている。そして、それぞれのアプリケーションの通信プロトコルに異なった影響を及ぼす。IPアドレスの情報を使用するいくつかのアプリケーションプロトコルはマスカレードに用いられる外部のアドレスを決定する必要がある。そしてさらに、しばしば与えられたNAT機器に用いられるマッピングの種類を発見し、分類する必要がある。このために、Simple traversal of UDP over NATs (STUN)protocol は開発された。STUNはNATの実装をFull cone NAT 、Restricted cone NAT 、Port restricted cone NAT 、もしくはSymmetric NAT に分類し、この分類に応じて機器を検査するための1つの手法を提案した。しかしながら、その後これらの手順はスタンダードステータスから除外された。なぜならこれらの方法は不完全で、多くの機器を正しく評価するには不十分であると判明したからである。新しい方法はRFC 5389 (2008)に記述されており、STUNの頭文字は現在、この仕様の新しいタイトルを表すSession Traversal Utilities for NAT である 。
この用語は多くの混乱を招く原因であった。なぜならそれは現実のNATの振る舞いを記述するには不適切であると判明したからである。
多くのNATの実装はこれらの種類を組み合わせている。従ってCone/Symmetricという用語を使う代わりに、それぞれ固有のNATの振る舞いに言及する方がよい。特に、大抵のNAT変換装置は外部に出て行く方向への接続に対するSymmetricNAT と静的ポートマッピング とを組み合わせている。外部アドレスとポートに入ってくるパケットは特定の内部アドレスとポートにリダイレクトされる。いくつかの製品は、例えば何台かのサーバの間に負荷を分散するために、複数の内部ホストにパケットをリダイレクトできる。しかしながら、これは多くの相互接続パケットが存在するような、より複雑な通信の場合に問題を引き起こす。従って滅多に使われることはない。RFC 4787 では、観測された動作に関する標準的な用語を導入することで、混乱の緩和を試みている。
多くのNATの実装はポート維持 設計に従う。 ほとんどの通信において、NATは内部と外部のポート番号として同じ値を使う。 しかしながら、2つの内部ホストが同じポート番号を使って同じ外部ホストと通信しようとするならば、2番目のホストによって使われる外部ポート番号はランダムに選ばれる。このようなNATは、時にはRestricted cone NAT のように見え、別の時にはSymmetric NAT のように見える。
関連技術
Connection Tracking機能
NATやNAPTではFTP やSIP などのVoIP などうまく動作しないアプリケーション があるため、さらにコネクションとトラッキングすることでそれらに対処した技術。Linux のiptables などで実装されている。
GapNAT機能
住友電工製のADSLモデムに内蔵のルータに実装されたDMZ を実現する機能の名称 。 1つのグローバルIPアドレスしか提供されないIP接続サービス環境下において、DHCP によりローカルの一つのコンピュータにグローバルIPアドレスを割り当て、それ以外のコンピュータにはローカルIPアドレスを割り当てる。これによって、グローバルIPアドレスを割り当てられたコンピュータは、グローバルIPアドレスを直接使用しなければならないネットワークアプリケーションを動作させることができる。
UPnP の規定するInternet Gateway Device(IGD)
UPnP のインターネットゲートウェイデバイス(IGD)仕様に準拠したNATルータは,それに対応したアプリケーションから様々な操作(Action)を受け付けることが可能である。この動作の中に、ポートマッピングを作成・削除・情報取得を行う操作(Action)がある。UPnP NAT Traversalとも呼ばれる。
これにより、使用するアプリケーションがポートマッピングを要求する場合、従来はユーザーがNATルータに例えばwebブラウザからアクセスするなどして、手動で設定を加えなければならなかったものが、アプリケーション自身が直接ルーターにアクセスしポートマッピングのエントリーを追加・削除できるようになった。
市場に出回る「ブロードバンドルータ」などの商品名のもので「UPnP機能搭載」や「UPnP NAT Traversal対応」などと書かれている製品がこれに当たる。
IPv4 IPv6間 NAT
2007年現在、IPアドレス枯渇問題で足りないとされているIPv4 のIPアドレスであるが、将来的にはIPv6 のIPアドレス体系に移行すれば、枯渇問題は解決すると見られている。しかし、その移行期間においてはIPv4とIPv6の双方のネットワークが混在することになり、両ネットワークを接続するNAT(プロトコル変換も行うためゲートウェイ と呼ぶのが妥当)が必要となる。実際のゲートウェイの実装方法がRFC 2766 によって提案されている。
脚注
関連項目
外部リンク
RFC 1631 - The IP Network Address Translator (NAT)
RFC 2766 - Network Address Translation - Protocol Translation (NAT-PT)
RFC 3022 - Traditional IP Network Address Translator (Traditional NAT)
RFC 3235 - Network Address Translator (NAT)-Friendly Application Design Guidelines
RFC 4787 - Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
RFC 5902 - IAB Thoughts on IPv6 Network Address Translation
LinuxのConnection Tracking機能説明