ネットワークアドレス変換(NAT)はIP(インターネットプロトコル)のネットワークアドレス情報を変更することにより、あるアドレス空間を別のアドレス空間に再割り当てする方法。つまり、パケットヘッダーは、トラフィックルーティングデバイスを通過するときに変更されます。この方法は元々、各ホストの番号を付け直すことなく、IPネットワーク上のトラフィックを簡単にリダイレクトするために使用されていました。これは、IPv4アドレスの不足に直面して、グローバルアドレス空間を保存および配布するための人気のある重要なツールになりました。
放送網の本来の用途アドレスは、各アドレスを1つのアドレス空間から別の空間の対応するアドレスにマッピングすることで構成されます。たとえば、これはISPが変更され、ユーザーがネットワークへの新しいルートを公に発表できない場合に必要です。 IPアドレス空間の予測可能なグローバルな枯渇に伴い、NATは、1990年代後半からIP暗号化(複数のIPアドレスを1つの空間に渡す方法)と組み合わせて使用されることが増えています。このメカニズムは、ステートフル変換テーブルを使用して「非表示」アドレスを単一のIPアドレスにマッピングし、発信IPパケットをリダイレクトするルーティングデバイスに実装されています。したがって、それらはルーティングデバイスを離れているように見えます。リバースリンクでは、変換テーブルに格納されているルールを使用して、応答が元のIPアドレスにマップされます。次に、新しいトラフィックがその状態を更新しない場合、変換テーブルルールは短時間後にクリアされます。これが基本的なNATメカニズムです。これは何を意味するのでしょうか?
この方法により、接続が暗号化されたネットワーク上にある場合にのみルーター。これにより、変換テーブルが作成されます。たとえば、そのようなネットワーク内のWebブラウザーは、その外部のサイトを表示できますが、その外部にインストールされているため、そのネットワークでホストされているリソースを開くことはできません。ただし、今日のほとんどのNATデバイスでは、ネットワーク管理者が永続的に使用するために変換テーブルエントリを構成できます。この機能は、静的NATまたはポート転送と呼ばれることが多く、「外部」ネットワークに送信されるトラフィックが暗号化されたネットワーク上の指定されたホストに到達できるようにします。
IPv4アドレス空間を維持するために使用されるこの方法の人気により、NATという用語(これは実際にはそうです-上記のとおりです)は暗号化方法とほぼ同義になりました。
ネットワークアドレス変換が変更されたためIPパケットのアドレスに関する情報。これはインターネット接続の品質に深刻な影響を及ぼし、その実装の詳細に細心の注意を払う必要があります。
NATの適用方法は、ネットワークトラフィックへの影響に関するさまざまなケースでの特定の動作が互いに異なります。
最も単純なタイプのネットワークアドレス変換(NAT)IPアドレスの1対1の変換を提供します。 RFC 2663は、この翻訳の主なタイプです。このタイプでは、IPアドレスとIPヘッダーのチェックサムのみが変更されます。基本的なブロードキャストタイプを使用して、アドレス指定に互換性のない2つのIPネットワークを接続できます。
ほとんどのタイプのNATは複数のプライベートホストを1つの公的に指定されたIPアドレスにマップします。一般的な構成では、LANはサブネットに割り当てられた「プライベート」IPアドレスの1つを使用します(RFC1918)。このネットワーク上のルーターは、このスペースにプライベートアドレスを持っています。
ルーターはインターネットにも接続しますプロバイダーによって割り当てられた「パブリック」アドレスを使用します。トラフィックはローカルネットワークからインターネットに渡されるため、各パケットの送信元アドレスは、プライベートアドレスからパブリックアドレスにオンザフライで変換されます。ルーターは、アクティブな各接続に関する基本データ(特に、アドレスと宛先ポート)を追跡します。応答が返されると、アウトバウンドフェーズ中に保存された接続データを使用して、応答のルーティング先となる内部ネットワーク上のプライベートアドレスが決定されます。
この機能の利点の1つはこれは、IPv4アドレス空間の差し迫った枯渇に対する実用的なソリューションとして機能します。大規模なネットワークでも、単一のIPアドレスを使用してインターネットに接続できます。
IPネットワーク上のすべてのパケットデータグラムには2つありますIPアドレス-送信元と宛先。通常、プライベートネットワークからパブリックネットワークに移動するパケットでは、パブリックネットワークからプライベートネットワークへの移行中にパケットの送信元アドレスが変更されます。より複雑な構成も可能です。
NAT構成には、いくつかの特殊性があります。返されたパッケージの翻訳方法の問題を回避するには、さらに変更が必要です。インターネットトラフィックの大部分はTCPおよびUDPプロトコルを通過し、それらのポート番号は、データの逆方向のIPアドレスとポート番号の組み合わせが一致し始めるように変化します。
非TCPおよびUDPプロトコルには他の翻訳方法。インターネットメッセージ制御プロトコル(ICMP)は通常、送信されたデータを既存の接続と関連付けます。つまり、最初に設定したものと同じIPアドレスと番号を使用して表示する必要があります。
ルータでNATを設定すると、NATが許可されませんエンドツーエンド接続。したがって、このようなルーターは一部のインターネットプロトコルに参加できません。外部ネットワークまたはプロトコルのないユーザーからのTCP接続の開始を必要とするサービスは利用できない場合があります。 NATルーターがそのようなプロトコルをサポートするために特別な努力をしない限り、着信パケットは宛先に到達できません。一部のプロトコルは、参加ホスト間の単一の変換(FTP「パッシブモード」など)で動作し、アプリケーション層ゲートウェイを使用することもありますが、両方のシステムがNATを使用してインターネットから分離されている場合、接続は確立されません。ネットワークアドレス変換を使用すると、リクエストの整合性チェックと相互作用するヘッダーの値が変更されるため、IPsecなどのトンネリングプロトコルも複雑になります。
エンドツーエンド接続は基本です創業以来存在してきたインターネットの原理。ネットワークの現在の状態は、NATがこの原則に違反していることを示しています。 IPv6ネットワークアドレス変換の普及に関連して専門家の間で深刻な懸念があり、それを効果的に排除する方法について問題が提起されています。
テーブルの保存は短命であるためNATルーターの変換状態では、内部ネットワークデバイスは通常非常に短い時間内にIP接続を失います。ルーター内のNATとは、この状況を忘れてはなりません。これにより、コンパクトバッテリーと充電式デバイスの動作時間が大幅に短縮されます。
また、NATを使用する場合は、複数の同時接続を使用する内部アプリケーションによって迅速に排出できるポートのみ(たとえば、多数の埋め込みオブジェクトを含むWebページに対するHTTP要求)。この問題は、ポートに加えて宛先IPを追跡することで軽減できます(したがって、1つのローカルポートが多くのリモートホストによって共有されます)。
すべての内部アドレスは次のようにマスクされるため1つのパブリックでは、ファイアウォールで特別な構成を行わないと、外部ホストが特定の内部ホストへの接続を開始できなくなります(接続を特定のポートにリダイレクトする必要があります)。 IPテレフォニー、ビデオ会議、および同様のサービスなどのアプリケーションは、正しく機能するためにNATトラバーサル技術を使用する必要があります。
リターンアドレスと変換ポート(Rapt)により、ホームネットワークの固定IPアドレスを使用してサーバーとして到達可能な状態を維持するために、実際のIPアドレスが時々変更されるホスト。基本的に、これによりサーバーのセットアップで接続を維持できるようになります。これは問題の理想的な解決策ではありませんが、ルーターでNATを構成する方法の問題を解決するときに、ネットワーク管理者の武器庫にあるもう1つの便利なツールになる可能性があります。
CiscoRaptの実装はポートアドレスです複数のプライベートIPアドレスを1つのパブリックIPアドレスとしてマップする変換(PAT)。それぞれがポート番号を使用して追跡されるため、複数のアドレスをアドレスとして表示できます。 PATは、一意の内部グローバルIP送信元ポート番号を使用して、データ転送の方向を区別します。これらの数値は16ビット整数です。 1つの外部アドレスに変換できる内部アドレスの総数は理論的には65536に達する可能性があります。単一のIPアドレスを割り当てることができる実際のポート数は約4000です。原則として、PATは元のポートを保持しようとします。 "元の"。すでに使用されている場合、ポートアドレス変換は、対応するグループの先頭から最初に使用可能なポート番号(0-511、512-1023、または1024-65535)を割り当てます。使用可能なポートがこれ以上なく、外部IPアドレスが複数ある場合、PATは次のポートに移動して送信元ポートの割り当てを試みます。このプロセスは、使用可能なデータがなくなるまで続きます。
アドレスとポートのマッピングは、サービスによって実行されますシスコ。トランスレーションポートアドレスと、内部IPv6ネットワークを介したデータトンネリングIPv4パケットを組み合わせています。基本的に、これは、IPアドレス/ポート変換をサポートするCarrierGrade NATおよびDS-Liteの非公式な代替手段です(したがって、NATのカスタマイズがサポートされます)。したがって、接続のセットアップとメンテナンスの問題を回避し、IPv6展開の移行メカニズムを提供します。
翻訳を実装する方法はいくつかありますネットワークアドレスとポート。暗号化されたネットワーク上で実行されるIPアドレス指定アプリケーションを使用する一部のアプリケーションプロトコルでは、外部NATアドレス(接続のもう一方の端で使用される)を決定する必要があり、さらに、多くの場合、調査および分類する必要があります。送信のタイプ。これは通常、別々のNATの背後にある2つのクライアント間に直接通信チャネルを作成することが望ましいために行われます(サーバーを介してデータがスムーズに流れるようにするか、パフォーマンスを向上させるため)。
この目的(NATの構成方法)のために、2003年にはNATSを介した単純なUDPトラバーサルを提供するために、特別なプロトコルRFC3489が開発されました。今日、そのような方法は多くのデバイスの動作を正しく評価するには不十分であるため、今日では時代遅れです。新しいメソッドは、2008年10月に開発されたRFC5389で標準化されました。この仕様は現在SessionTraversalと呼ばれ、NATのユーティリティです。
各TCPおよびUDPパケットには、送信元IPアドレスとポート番号、および宛先ポートの座標が含まれています。
のような公的に利用可能なサービスを受けるためメールサーバーの機能、ポート番号は重要です。たとえば、ポート80はWebサーバーソフトウェアに接続し、25はSMTPメールサーバーに接続します。住所や電話番号など、パブリックサーバーのIPアドレスも不可欠です。これらのパラメータは両方とも、接続を確立しようとするすべてのノードに確実に認識されている必要があります。
プライベートIPアドレスはそれらが使用されるローカルエリアネットワーク、およびホストポート。ポートはホスト上の一意の通信エンドポイントであるため、ポートとIPアドレスのマッピングを組み合わせてNATトラバーサルがサポートされます。
PAT(ポートアドレス変換)により、同じ送信元ポート番号を使用して同時に一意の接続を確立する2つの異なるホスト間で発生する可能性のある競合。