コンピューティングでは、ルーターが一意でない内部 IP アドレスと一致し、多くの場合、イントラネットから一意のルーティング可能な外部アドレスのセットにルーティングできない場合に、ルーターがネットワーク アドレス変換 (NAT)を実行すると言います。このメカニズムにより、特に、インターネット上に表示される単一のパブリック外部アドレスをプライベートネットワークのすべてのアドレスと照合することが可能になり、インターネット上のIPv4アドレスの不足を補うことができます。
図
キャンパスは4 つのサブネットに分散された 1,000 台のホスト (コンピューター、プリンターなど) で構成されます。 NAT を使用しない場合、このようなキャンパスでは、約 1,000 個の一意のルーティングされた IPv4 アドレスを割り当てる必要があります。

NAT を実装するルーターを介してそのようなキャンパスをインターネットに接続することにより、内部のアドレス指定計画を変更し、非固有のアドレス (世界中の他の場所で使用されている) やインターネット上でルーティング不可能なアドレスを使用することができます ( RFC 1918を参照)。また、パブリックアドレス (世界で一意) とプライベート アドレス(プライベート ネットワーク内でのみ一意) についても説明します。 NAT の目的の 1 つは、プライベート アドレスをインターネットから見えないようにすることです。

プリンタ (およびその他の特定の機器) が外部と永続的に通信する必要がないことを認識しているため、NAT のすべての外部アドレスに数百のアドレスのみを割り当てます (したがって、プリンタのアドレスを変換する必要はありません)。
したがって、NAT を使用すると、使用される一意の IP アドレスの数を大幅に減らすことができます。
NATの実装
内部アドレスを外部アドレスのグループと照合するには、テーブルを使用します。これにはペア (内部アドレス、外部アドレス (変換) ) が含まれます。内部アドレスが NAT ルーターを通過するフレームを送信すると、TCP/IP パケット ヘッダー内のこのアドレスは外部IP アドレスに置き換えられます。この外部アドレスへのフレームを内部 IP に変換する必要がある場合、逆置換が行われます。
また、これらのアドレスのトラフィックが一定時間(構成可能) ルーターを通過しなかった場合、NAT対応テーブルのエントリを再利用できます。
| 内部IP | 外部IP | 期間 | 再利用可能ですか? |
|---|---|---|---|
| 10.101.10.20 | 193.48.100.174 | 1200 | いいえ |
| 10.100.54.251 | 193.48.101.8 | 3601 | はい |
| 10.100.0.89 | 193.48.100.46 | 0 | いいえ |
たとえば、ここでは簡略化された NAT テーブルを示します。翻訳が 3,600 秒を超えて使用されなかった場合、エントリを請求できると想定されます。
最初の行は、IP アドレス 10.101.10.20 の内部マシンが外部と通信するときに 193.48.100.174 に変換されることを示しています。 1200 秒間パケットを送信していませんが、制限は 3600 であるため、このテーブル エントリはまだ割り当てられています。 2 番目のマシンは 3600 秒以上アイドル状態であり、電源がオフになっている可能性があります。別のマシンがこのエントリを引き継ぐことができます (同じ内部 IP を持たないため、最初の列を変更することで)。最後に、最後のマシンは現在外部と通信中であり、 Durationフィールドは 0 です。
現在、ほとんどのファイアウォールとルーターにこの機能が搭載されています。たとえば、単一の回線で複数のコンピュータを接続する ADSL 加入者によって使用されます。
NAT の利点
内部アドレスは、 RFC 1918で定義されているアドレスから選択できます。したがって、複数のサイトが同じ内部アドレスを持ち、このメカニズムを使用して相互に通信できます。内部アドレスを再利用するため、IPv4では占有が飽和状態となっているIPアドレスを節約できます。
未使用のアドレスを一定期間後に回復できるメカニズム (これをリースと呼びます) を導入すれば、ネットワーク内の IP アドレスよりも、変換されたアドレスのセット内のアドレスを少なくすることができます。より正確には、変換テーブル内のエントリが一定期間使用されなかった場合 (ネットワークの DHCP サーバーで構成可能)、このエントリは再利用できます。つまり、内部アドレスを持つ別のマシンが外部アドレスを取得します。
NAT は内部マシンの IP アドレスをマスクするため、サイトのセキュリティに貢献します。
固有の問題
大きな問題は、通信プロトコルがパケットで送信元ホストの IP アドレスを送信するときに発生します。このアドレスは NAT ルーターを通過すると無効になるため、宛先マシンでは使用できません。これらのプロトコルは、IP レベル (アドレスの交換) または TCP レベル (ポートの交換) からアプリケーション レベル (FTP) で情報を交換するため、「ダーティ コンテンツ」または「ファイアウォールを通過するのが難しい」と呼ばれます。ネットワーク層の分離の原則。
一部の「ダーティ コンテンツ」プロトコル: パッシブ モードの FTP、H.323、ピアツーピアプロトコル (IRC-DCC)、ネットワーク管理プロトコル (DNS、特定の ICMP メッセージ、traceroute)、SIP。
この欠点を克服するには、NAT ルーターは通過するパケットの内容を検査し、指定された IP アドレスを変換されたアドレスに置き換える必要があります。これには、プロトコル形式を知り、チェックサムとパケット長を再計算する必要があることに注意してください。
NAT はサイトのセキュリティ ポリシーに参加するだけであり、これはその主な目的ではありません。変換が確立されると双方向になります。
さまざまな種類の NAT
静的NAT
内部アドレスのセットが同じサイズの外部アドレスのセットに変換される場合。これらの NAT は、内部アドレスとそれに対応する外部アドレス間の関連付けが静的であるため (最初の内部アドレスと最初の外部アドレスなど)、静的と呼ばれます。関連テーブルは非常に単純な 1 対 1 タイプで、アドレスのみが含まれます。これらの NAT は、外部から内部サーバーへのアクセスを提供するために使用されます。
静的NAT には 3 つのタイプがあります。
- 外部から内部への接続のみを変換する単方向静的NAT (戻りパケットも変換されることに注意してください)。ほとんどの場合、内部マシンが外部接続を開始すると、その接続は別の動的NAT によって変換されます。
- 接続を両方向に変換する双方向静的NAT。
- 静的 NAT PAT (サーバーポートのポート アドレス変換)。一方向または双方向の静的NAT とサーバー ポートの変換の組み合わせ。 PATという名前は、サーバー/宛先ポートが変更されることに由来しています。動的 NAT PATと混同しないでください。
ダイナミックNAT
内部アドレスのセットが、より小さな外部アドレスのセットに変換される場合。これらの NAT は、内部アドレスとそれに対応する外部アドレスの間の関連付けが接続の開始時に動的に作成されるため、動的と呼ばれます。これらは、適切な変換を識別できるようにするポート番号です。送信元ポート番号 (内部マシンのポート番号) はルーターによって変更されます。内部マシンを識別するために使用されます。

動的NAT にはいくつかのタイプがあります。
- 動的 NAT PAT (クライアント/送信元ポートのポート アドレス変換)。外部アドレス (ほとんどの場合、アクセス プロバイダーが割り当てたアドレス範囲) は関係ありません。 PATという名前は、送信元ポートが変更されることに由来しています。静的 NAT PATと混同しないでください。
- ルータの IP アドレスのみを外部アドレスとして使用するマスカレード。したがって、マスカレードはPAT ダイナミクスのサブケースです。
- NATソース プールは最も古い NAT です。内部からの最初の接続は最初の外部アドレスを取得し、次は 2 番目のアドレスを、外部アドレスがなくなるまで取得します。この例外的なケースでは、送信元ポートは変更されません。このタイプの NAT は現在使用されていません。
- NAT宛先プールにより、複数のサーバー間で負荷を分散できます。したがって、サーバーの内部アドレスに関連付けられている外部アドレスはほとんどありません。ファイアウォールは、異なるサーバー間で接続を分散します。
NAT を分類する別の方法
- 送信元のみが変換される送信元NAT。したがって、送信元NAT は次のようになります。
- ダイナミックNAT PAT 、
- 動的NATマスカレード、
- ダイナミック NAT ソース プール
- 宛先のみが変換される宛先NAT。したがって、宛先NAT は次のようになります。
- 一方向静的NAT (まれにソースNAT になることもあります)、
- 動的NAT宛先プール
- NATサービスまたはポートを使用すると、接続のサーバー ポートを変更できます。このタイプの NAT は、他のタイプの NAT と混合されることがよくあります。
いくつかの微妙な点:
- 送信元タイプと宛先タイプの場合、接続の最初のパケットの方向のみが考慮されます (戻りパケットは無視します)。
- 双方向静的NAT ルールは送信元と宛先の両方を行うため、どちらかに分類することはできません。
- 3 種類の NAT を組み合わせることができ、4 つの可能性 (S+D、S+P、D+P、S+D+P) が可能です。送信元と宛先が混在している場合、二重NAT と呼ばれます。
