【コンピュータネットワーク】IPv4 NAT

NAT 使用の背景

パブリック IPv4 アドレスだけでは、各デバイスにインターネット接続用の一意のアドレスを割り当てるのに十分ではありません。

これらのプライベート アドレスを企業またはサイト内で使用すると、デバイスがローカルで通信できるようになります。ただし、これらのアドレスは特定の企業や企業を識別するものではないため、プライベート IPv4 アドレスはインターネット経由でルーティングできません。プライベート IPv4 アドレスを持つデバイスがローカル ネットワーク外のデバイスやリソースにアクセスするには、まずプライベート アドレスをパブリック アドレスに変換する必要があります。
ここに画像の説明を挿入

NAT は、プライベート アドレスをパブリック アドレスに変換します。これにより、プライベート IPv4 アドレスを持つデバイスがプライベート ネットワークの外部のリソースにアクセスできるようになります。NAT とプライベート IPv4 アドレスを組み合わせると、パブリック IPv4 アドレスを節約する効果的な方法になります。単一のパブリック IPv4 アドレスを数百、さらには数千のデバイスで共有できますが、各デバイスには一意のプライベート IPv4 アドレスが設定されます。

NATの原則

ここに画像の説明を挿入

NAT にはさまざまな目的がありますが、主な目的はパブリック IPv4 アドレスを保存することです

NAT 対応ルーターは、1 つ以上の有効なパブリック IPv4 アドレスを使用して構成できます。これらのパブリック アドレスは、NAT アドレス プールと呼ばれます。内部デバイスがネットワーク外にトラフィックを送信すると、NAT 対応ルーターはデバイスの内部 IPv4 アドレスを NAT プール内のパブリック アドレスに変換します。外部デバイスにとって、ネットワークとの間のすべてのトラフィックは、提供されたアドレス プールから取得されたパブリック IPv4 アドレスを持っているように見えます。

NAT ルーターは通常、スタブ ネットワーク境界で動作します。スタブ ネットワークは、隣接するネットワークへの 1 つの入力と 1 つの出力を備えた単一の接続を持つネットワークです。図の例では、R2 が境界ルーターです。ISP の場合、R2 はスタブ ネットワークを構成します。

スタブ ネットワーク内のデバイスがネットワーク外のデバイスと通信したい場合、そのパケットはボーダー ルーターに転送されます。境界ルーターは、デバイスの内部プライベート アドレスを外部でルーティング可能なパブリック アドレスに変換する NAT プロセスを実行します。

NAT アドレスの種類

ここに画像の説明を挿入

NAT を使用する場合、異なる IPv4 アドレスは、アドレスがプライベート ネットワーク上にあるのか、パブリック ネットワーク (インターネット) 上にあるのか、またトラフィックが受信か送信かに応じて、異なる方法で呼び出されます。

使用するアドレスを決定するときは、NAT 用語は常に、変換されたアドレスを持つデバイスの観点から適用されることに留意することが重要です。

内部地址 - 经过 NAT 转换的设备的地址。

外部地址 - 目标设备的地址。

NAT では、アドレスに関してローカルまたはグローバルの概念も使用します。

本地地址 - 本地地址是在网络内部出现的任何地址。

全局地址 - 全局地址是在网络外部出现的任何地址。

したがって、NAT には次の 4 種類のアドレスが含まれます。

  • 内部ローカル アドレス - ネットワーク内部から見た送信元アドレス
  • 内部グローバル アドレス - 外部ネットワークから見た送信元アドレス
  • 外部ローカル アドレス - 外部ネットワークから見た宛先のアドレス
  • 外部グローバル アドレス - ネットワーク内部から見た宛先のアドレス

ここに画像の説明を挿入

この図では、PC1 の内部ローカル アドレスは 192.168.10.10 です。PC1 から見ると、Web サーバーの外部アドレスは 209.165.201.1 です。パケットが PC1 から Web サーバーのグローバル アドレスに送信されると、PC1 の内部ローカル アドレスは 209.165.200.226 (内部グローバル アドレス) に変換されます。外部デバイスのアドレスは、通常はパブリック IPv4 アドレスであるため、通常は変換されません。

PC1 は異なるローカル アドレスとグローバル アドレスを持っていますが、Web サーバーはローカル アドレスとグローバル アドレスの両方に同じパブリック IPv4 アドレスを使用していることに注意してください。Web サーバーの観点からは、PC1 から発信されるトラフィックは 209.165.200.226 (内部グローバル アドレス) から来ているように見えます。

NAT ルーター (図の R2) は、内部ネットワークと外部ネットワークの間、およびローカル アドレスとグローバル アドレスの間の境界点です。

静的 NAT と動的 NAT

NAT 変換には 3 つのタイプがあります。

静的アドレス変換 (静的 NAT) - ローカル アドレスとグローバル アドレス間の 1 対 1 のアドレス マッピング。

動的アドレス変換 (動的 NAT) - ローカル アドレスとグローバル アドレス間の多対多のアドレス マッピング。変換は可能な限り行われます。たとえば、内部ローカル アドレスが 100 個、内部グローバル アドレスが 10 個ある場合、一度に変換できるのは 100 個の内部ローカル アドレスのうち 10 個だけです。動的 NAT にはこの制限があるため、運用ネットワークのポート アドレス変換ほど実用的ではありません。

ポート アドレス変換 (PAT) - ローカル アドレスとグローバル アドレスの間の多対 1 のアドレス マッピング。この方法は、オーバーロード (NAT オーバーロード) とも呼ばれます。たとえば、100 個の内部ローカル アドレスと 10 個の内部グローバル アドレスがある場合、PAT はポートを追加パラメータとして使用して、10 個の内部グローバル アドレスのいずれかを最大 65,536 回再利用できるようにする乗数効果を提供します(これは、トラフィック フローは UDP、TCP、または ICMP に基づいています)。

NAT のメリットとデメリット

NAT には次のような多くの利点があります。

  • NAT によりイントラネットのプライベート アドレス指定が可能になり、法的に登録されたパブリック アドレス指定スキームが維持されます。
  • NAT により、パブリック ネットワークへの接続の柔軟性が向上します
  • NAT は、内部ネットワーク アドレス指定スキームに一貫性をもたらします (組織は内部クライアントを変更せずに ISP を変更できます)。
  • NAT はネットワーク セキュリティを提供します (ユーザーの IPv4 アドレスを非表示にします)

ただし、インターネット上のホストが、プライベート ネットワーク内の実際のホストではなく、NAT 対応デバイスと直接通信しているように見えるという事実により、いくつかの問題が発生します。

  • ネットワークパフォーマンスに影響を与える
  • エンドツーエンドのアドレス指定の喪失
  • エンドツーエンドの IPv4 トレーサビリティも失われる
  • トンネリングプロトコルの使用が複雑になる
  • ソース TCP1 接続が中断される可能性があります

静的 NAT を構成する

静的 NAT は、内部アドレスと外部アドレス間の 1 対 1 マッピングです。
ここに画像の説明を挿入上記のトポロジに示されているように、NAT が設定されていない場合、Web サーバーからクライアントへの ping は失敗しますが、R2 S0/0/0 インターフェイスへの ping は実行されます。ping コマンドは成功するはずです。

静的 NAT 変換を構成する場合、次の 2 つの基本タスクがあります。

ステップ 1. 最初のタスクは、内部ローカル アドレスと内部グローバル アドレス間のマッピングを確立することです。

Router(config)#ip nat inside source static local-ip global-ip

たとえば、図 1 の内部ローカル アドレス 192.168.10.254 と内部グローバル アドレス 209.165.201.5 は、スタティック NAT 変換用に設定されています。

Router(config)#ip nat inside source static 192.168.10.254 209.165.201.5

ステップ 2. マッピングを設定した後、(NAT ではなく)内部インターフェイスまたは外部インターフェイスとして変換に参加するインターフェイスを設定します。

Router(config)#interface 内部接口类型编号
Router(config)#ip nat inside
Router(config)#interface 外部接口类型编号
Router(config)#ip nat outside

この例では、R2 のシリアル 0/0/0 インターフェイスが内部インターフェイスであり、シリアル 0/1/0 が外部インターフェイスです。

Router(config)#interface Serial 0/0/0
Router(config)#ip nat inside
Router(config)#interface Serial 0/1/0
Router(config)#ip nat outside

NAT 変換を表示する

次のコマンドを使用して、静的 NAT 構成を確認します。

show running-config

show ip nat translations

show ip nat statistics

動的NATを構成する

スタティック NAT は内部ローカル アドレスと内部グローバル アドレス間の永続的なマッピングを提供しますが、ダイナミック NAT は内部ローカル アドレスから内部グローバル アドレスへの自動マッピングを可能にします。

静的 NAT と同様に、動的 NAT も、NAT に参加する内部インターフェイスと外部インターフェイスの設定を必要とします。ただし、静的 NAT は単一アドレスへの永続的なマッピングを作成しますが、動的 NAT はアドレスのプールを使用します

ここに画像の説明を挿入
ステップ 1. ip nat pool コマンドを使用して、変換に使用されるアドレス プールを定義しますアドレス プールは通常、パブリック アドレスのグループです。これらのアドレスは、プール内の開始 IPv4 アドレスと終了 IPv4 アドレスを示すことによって定義されます。ネットマスクまたはプレフィックス長のキーワードは、どのアドレス ビットがネットワークに属し、どのビットがそのアドレス範囲内のホストに属するかを示します。

ステップ 2.変換されるアドレスのみを識別(許可)するように標準 ACL を設定します。ACL が広すぎると、予期しない結果が生じる可能性があります。すべての ACL の最後には、暗黙的な Deny all ステートメントがあることに注意してください。

ステップ 3. ACL とアドレス・プールをバインドしますコマンド ip nat inside source list access-list-number pool pool name は、ACL とアドレス プールをバインドするために使用されます。ルーターはこの設定を使用して、どのデバイス (リスト) がどのアドレス (プール) を受け取るかを決定します。

ステップ 4. どのインターフェイスが NAT の内部であるか、つまり、内部ネットワークに接続されているインターフェイスを決定します。

ステップ 5. どのインターフェイスが NAT の外部であるか、つまり、外部ネットワークに接続されているインターフェイスを決定します。

ここに画像の説明を挿入
上の図は、トポロジの例と構成を示しています。この設定により、192.168.10.0 LAN および 192.168.11.0 LAN を含む 192.168.0.0/16 ネットワーク上のすべてのホストによって生成されたトラフィックが、S0/0/0 に出入りするときに変換されるようになります。これらのホストは、209.165.200.226 ~ 209.165.200.240 の範囲のアドレス プール内の使用可能なアドレスの 1 つに変換されます。

//使用池名称 PUBLIC-POOL,定义从 209.165.200.226 到 209.165.200.240的公有 IPv4 地址池。
R2(config)# ip nat pool PUBLIC-POOL 209.165.200.226 209.165.200.240 netmask 255.255.255.224

//配置 ACL 1 以允许 NAT 转换来自 192.168.0.0/24 网络的设备。
R2(config)# access-list 1 permit 192.168.0.0 0.0.0.255

//绑定 PUBLIC-POOL 与 ACL 2。
R2(config)# ip nat inside source list 1 pool PUBLIC-POOL

// 配置恰当的内部 NAT 接口。
R2(config)# interface Serial0/0/0
R2(config-if)# ip nat inside

//配置恰当的外部 NAT 接口。
R2(config)# interface Serial0/1/0
R2(config-if)# ip nat outside

ダイナミック NAT の検証

ここに画像の説明を挿入

パット

PAT(NAT オーバーロードとも呼ばれる)により、ルータは多数の内部ローカル アドレスに対して 1 つの内部グローバル アドレスを使用できるため、内部グローバル アドレス プール内のアドレスが節約されます。つまり、1 つのパブリック IPv4 アドレスを、数百または数千の内部プライベート IPv4 アドレスとして使用できます。このタイプの変換が設定されている場合、ルータは、内部グローバル アドレスを正しい内部ローカル アドレスに変換するために、上位層プロトコル(TCP または UDP ポート番号など)からの十分な情報を保存します。複数の内部ローカル アドレスが 1 つの内部グローバル アドレスにマップされる場合、各内部ホストの TCP または UDP ポート番号を使用して、異なるローカル アドレスを区別できます。

注: 理論上、1 つの外部アドレスに変換できる内部アドレスの総数は、IPv4 アドレスごとに 65,536 に達する可能性があります。ただし、1 つの IPv4 アドレスに割り当てられる内部アドレスの数は約 4000 です。

ISP がパブリック IPv4 アドレスを割り当てる方法に応じて、PAT を設定するには 2 つの方法があります。最初の割り当てでは、ISP は企業に複数のパブリック IPv4 アドレスを割り当てます。もう 1 つの割り当てでは、ISP への接続に使用する単一の IPv4 アドレスを企業に割り当てます。

PAT の設定

ここに画像の説明を挿入

上の図は、アドレス プールを使用して PAT を設定する手順を示しています。この設定と動的 1 対 1 NAT 設定の主な違いは、 overload キーワードの使用ですoverload キーワードにより PAT が有効になります。
ここに画像の説明を挿入

//使用池名称 NAT-POOL-OVERLOAD,定义从 209.165.200.226 到 209.165.200.240 的公有 IPv4 地址池。
R2(config)# ip nat pool NAT-POOL-OVERLOAD 209.165.200.226 209.165.200.240 netmask 255.255.255.224
//配置 ACL 1 以允许 NAT 转换来自 10.0.0.0/8 网络的设备。
R2(config)# access-list 3 permit 10.0.0.0 0.255.255.255
//绑定 NAT-POOL-OVERLOAD 与 ACL 3。
R2(config)# ip nat inside source list 3 pool NAT-POOL-OVERLOAD overload
//配置恰当的内部 NAT 接口。
R2(config)# interface Serial0/0/0
R2(config-if)# ip nat inside
//配置恰当的外部 NAT 接口。
R2(config)# interface Serial0/1/0
R2(config-if)# ip nat outside

NAT がなければ、IPv4 アドレス空間の枯渇問題は 2000 年よりずっと前に発生していた可能性があります。ただし、NAT にはいくつかの制限もあります。これについては、この章で後ほど説明します。IPv4 アドレス空間の枯渇と NAT の制限に対処するために、最終的には IPv6 への移行が必要になります。

おすすめ

転載: blog.csdn.net/weixin_45884316/article/details/123589085
NAT