ネットワーク アドレス変換の設定

ネットワークアドレス変換の制約事項

  • Flexible NetFlow とネットワークアドレス変換(NAT)がインターフェイスで設定されている場合:

    • Flexible NetFlow は、実際のフローの詳細を表示およびエクスポートしますが、変換されたフローの詳細は対象にしません。アプリケーションレベル ゲートウェイ(ALG)フローの詳細は、エクスポートされる実際のフローの詳細には含まれません。

    • ALG トラフィックが CPU を介して変換されると、Flexible NetFlow は、ALG トラフィック用に変換されたフローの詳細を表示してエクスポートします。

ネットワークアドレス変換に関する情報

ここでは、ネットワークアドレス変換(NAT)について説明します。

ネットワーク アドレス変換

NAT は、IP アドレスを保護するように設計されています。NAT によって、未登録 IP アドレスを使用するプライベート IP ネットワークをインターネットに接続できます。NAT はデバイス(通常、2 つのネットワークを接続するもの)上で動作し、別のネットワークにパケットを転送する前に、内部ネットワークのプライベート(グローバルに一意ではない)アドレスをグローバルにルート可能なアドレスに変換します。

NAT では、外部にアドバタイズするアドレスをネットワーク全体で 1 つだけにする機能を備えています。この機能により、そのアドレスの後ろにある内部ネットワーク全体を効果的に隠すことができ、セキュリティが強化されます。NAT には、セキュリティおよびアドレス節約の二重の機能性があり、一般的にリモート アクセス環境で実装されます。

NAT は、エンタープライズ エッジでも使用され、内部ユーザーのインターネットへのアクセスを許可し、メール サーバーなど内部デバイスへのインターネット アクセスを許可します。

ネットワークアドレス変換の設定の利点

  • IP が枯渇する問題を解決します。

    組織が NAT を使用すると、既存のネットワークを持っていてインターネットにアクセスする必要がある場合に、IP アドレスが枯渇する問題を解決できます。ネットワーク インフォメーション センター(NIC)に登録された IP アドレスをまだ持っていないサイトは、IP アドレスを取得する必要があります。255 以上のクライアントが存在する、またはそのような環境を予定している場合は、Class B アドレスの不足が深刻な問題になります。NAT はこのような問題に対応するために、隠された数千の内部アドレスを、取得の容易な Class C アドレスの範囲にマップします。

  • クライアント IP アドレスを外部ネットワークから隠すことで、セキュリティ レイヤも提供します。

    内部ネットワークのクライアントの IP アドレスをすでに登録しているサイトでも、ハッカーがクライアントを直接攻撃できないように、これらのアドレスをインターネットから隠すことができます。クライアント アドレスを隠すことにより、セキュリティがさらに強化されます。NAT により LAN 管理者は、インターネット割り当て番号局の予備プールを利用して、Class A アドレスを自由に拡張することができます。Class A アドレスの拡張は組織内で行われ、LAN またはインターネット インターフェイスでアドレッシングの変更に配慮する必要はありません。

  • Cisco ソフトウェアは、選択的、または動的に NAT を実行できます。この柔軟性により、ネットワーク管理者は RFC 1918 アドレスまたは登録したアドレスを使用することができます。

  • NAT は、IP アドレスの簡略化や節約のためにさまざまなデバイス上で使用できるように設計されています。また、NAT により、変換に使用できる内部ホストを選択することもできます。

  • NAT は、NAT を設定する若干のデバイス以外には、何ら変更を加えずに設定できるという大きな利点があります。

ネットワークアドレス変換の仕組み

NAT が設定されたデバイスには、内部ネットワークと外部ネットワークのそれぞれに接続するインターフェイスが少なくとも 1 つずつあります。標準的な環境では、NAT はスタブ ドメインとバックボーン間の出口デバイスに設定されます。パケットがドメインから出て行くとき、NAT はローカルで意味のある送信元 アドレスをグローバルで一意の アドレスに変換します。パケットがドメインに入ってくる際は、NAT はグローバルに一意な宛先アドレスをローカル アドレスに変換します。複数の内部ネットワークをデバイスに接続でき、同様にデバイスから外部ネットワークへと複数の出口となる点が存在する場合があります。アドレスが足りなくなって、パケットにアドレスを割り当てられなくなった場合、NAT はそのパケットを破棄し、Internet Control Message Protocol(ICMP)ホスト到達不能パケットをその接続先に送信します。

変換および転送は、ハードウェアのスイッチング プレーンで実行され、全体的なスループットのパフォーマンスが改善されます。パフォーマンスの詳細については、「NAT のパフォーマンスとスケール数」を参照してください。

図 1. NAT
次の図は、NAT の仕組みを示しています。

ネットワークアドレス変換の使用

NAT は次のような場合に使用できます。

  • ホストのごく少数しかグローバルな一意の IP アドレスを持っていない状況でインターネットに接続する場合。

    NAT はスタブ ドメイン(内部ネットワーク)と、インターネットなどのパブリック ネットワーク(外部ネットワーク)との境界にあるデバイス上に設定されます。NAT はパケットを外部ネットワークに送信する前に、内部のローカル アドレスをグローバルに一意の IP アドレスに変換します。接続性の問題への解決策として NAT が役立つのは、スタブ ドメイン内の比較的少数のホストが同時にドメインの外部と通信する場合のみです。この場合、外部との通信が必要なときに、このドメインにある IP アドレスのごく一部をグローバルに一意な IP アドレスに変換する必要があります。また、これらのアドレスは再利用できます。

  • 番号付け直し:

    内部アドレスの変更には相当の工数がかかるため、変更する代わりに NAT を使用して変換することができます。

ネットワークアドレス変換の内部アドレスおよび外部アドレス

NAT において、内部という用語は、変換が必要な組織が所有するネットワークを表します。NAT が設定されている場合、このネットワーク内のホストは、別の空間(グローバル アドレス空間として知られている)にあるものとしてネットワークの外側に現れる 1 つ空間(ローカル アドレス空間として知られている)内のアドレスを持つことになります。

同様に、外部という用語は、スタブ ネットワークの接続先で、通常、その組織の制御下にはないネットワークを表します。外部ネットワーク内のホストを変換の対象にすることもできるため、これらのホストはローカル アドレスとグローバル アドレスを持つことができます。

NAT では、次の定義が使用されます。

  • 内部ローカル アドレス:内部ネットワーク上のホストに割り当てられた IP アドレス。このアドレスは、多くの場合、NIC やサービス プロバイダーにより割り当てられたルート可能な IP アドレスではありません。

  • 内部グローバル アドレス:外部に向けて、1 つ以上の内部ローカル IP アドレスを表すグローバルなルート可能な IP アドレス(NIC またはサービス プロバイダーにより割り当てられたもの)。

  • 外部ローカル アドレス:内部ネットワークから見た外部ホストの IP アドレス。必ずしもルート可能な IP アドレスでありません。内部でルート可能なアドレス空間から割り当てられたものです。

  • 外部グローバル アドレス:外部ネットワークに存在するホストに対して、ホストの所有者により割り当てられた IP アドレス。このアドレスは、グローバルにルート可能なアドレス、またはネットワーク空間から割り当てられます。

  • 内部送信元アドレス変換:内部ローカル アドレスを内部グローバル アドレスに変換します。

  • 外部送信元アドレス変換:外部グローバル アドレスを外部ローカル アドレスに変換します。

  • スタティック ポート変換:内部/外部ローカル アドレスの IP アドレスとポート番号を、対応する内部/外部グローバル アドレスの IP アドレスとポート番号に変換します。

  • 特定のサブネットのスタティック変換:指定された内部/外部ローカル アドレスの範囲のサブネットを対応する内部/外部グローバル アドレスに変換します。

  • ハーフ エントリ:ローカルおよびグローバル アドレス/ポート間のマッピングを表し、NAT モジュールの変換データベースで維持されます。ハーフ エントリは、設定されている NAT ルールに基づいて、静的または動的に作成できます。

  • フル エントリ/フロー エントリ:特定のセッションに対応する一意のフローを表します。ローカルからグローバルへのマッピングに加えて、指定したフローを完全修飾する接続先情報も維持されます。フル エントリは常に動的に作成されて NAT モジュールの変換データベースで維持されます。


(注)  


interface port-channel コマンドを使用して、レイヤ 3 マルチシャーシ EtherChannel(MEC)で NAT を有効にできます。


VRF 対応ネットワークアドレス変換

NAT は通常、デフォルトまたはグローバル ルーティング ドメインで動作するように設定されます。この機能により、内部および外部の NAT ドメインはデフォルトの VRF スペースに関連付けられ、適宜変換が行われます。ただし、NAT が VRF 設定で実行される必要がある特定のシナリオがあります。一般的なシナリオの 1 つには、重複するアドレス空間を持つプライベートネットワークの共有サービスアクセスを有効にすることが含まれます。こうしたシナリオでは、特定のプライベートネットワークを異なる VRF に配置し、重複するプライベートアドレスを一意のグローバルアドレスにマッピングする VRF 対応 NAT ルールを設定することで、グローバルサービスアクセスを実現できます。VRF が認識されることにより、プライベートネットワークの VRF が考慮に含められ、結果として NAT がアドレスおよびポートの変換を実行できるようになります。

VRF 対応 NAT は、IP アドレスの VRF からグローバルへの変換のみをサポートします。VRF からグローバルへの変換は、特定の VRF に関連付けられている NAT 内部インターフェイスと、グローバル VRF に関連付けられている NAT 外部インターフェイスとの間で行われます。VRF 内 NAT 変換(同じ特定の VRF の NAT 内部インターフェイスと NAT 外部インターフェイスを含む)と VRF 間 NAT 変換(異なる VRF に関連付けられている NAT 内部インターフェイスと NAT 外部インターフェイスを含む)はサポートされていません。サポートされていない上述のシナリオでは、NAT の動作は定義されません。VRF からグローバル NAT への変換のみをネットワークで展開することを推奨します。

ルートマップベースのネットワークアドレス変換

ルートマップはアクセス制御リスト(ACL)に似ており、ユーザーは一連の一致基準と関連アクションを定義できます。ルートマップはより汎用性が高く、ACL で処理できない特定の使用例に対処できる付加的な機能を備えています。ルートマップは、ポリシーベースルーティング(PBR)やルート再配布など、さまざまな用途で広範に使用されます。ルートマップの詳細については、『Cisco IOS XE IP Routing Configuration Guide』の「Route Maps to Redistribute Routing Information」セクションを参照してください。

NAT のコンテキストでは、ルートマップを使用して宛先ベースの変換が実行されます。この変換では、フローの宛先に基づいて同じローカルアドレスが異なるグローバルアドレスに変換されます。ルートマップベースの静的および動的変換がサポートされており、次の図に示すように、同じルートマップを複数のルールに関連付けることができます。

図 2. NAT ルートマップ
NAT ルートマップ

ルートマップには複数の permit/deny 句が含まれる場合があり、対応するアドレスの一致基準は ACL を介して指定されます。ルートマップの評価により、行われる変換の決定に基づいて、許可または拒否の判定が下されます。

ACL ベースの NAT とは異なり、ルートマップベースの NAT では、アドレスのみの変換(AOT)が有効になっている場合でも完全なフローエントリが作成されます。その結果として、フローごとの順方向エントリと逆方向エントリのプログラミングにより、TCAM リソースの使用率が相対的に大きくなります。これを防ぐには、TCAM の使用率を最適化し、全体的なハードウェアスケールを増大させる nat scale コマンドを有効にします。

ルートマップベースのネットワークアドレス変換の制限事項

  • ルートマップのサポートは内部変換に限定されます。スタティック NAT/PAT とダイナミック NAT/PAT のみを設定できます。外部変換、スタティックネットワーク変換、およびインターフェイスベースのスタティック変換はサポートされていません。

  • ルートマップベースの NAT では、アドレスベースの一致基準のみがサポートされます。ネクストホップおよびインターフェイスベースの一致基準はサポートされません。

  • ルートマップで重複する ACE があると、TCAM 使用率は増大します。

  • スタティック NAT の場合、特定のパケットを許可する同じルートマップ内に後続の permit 句がある場合、deny 句に一致するパケットはソフトウェアスイッチングの対象となります。

  • ダイナミック NAT の場合、permit 句に関連付けられた拒否 ACL に一致するパケットは、該当するパケットを許可する後続の permit 句がある場合でも、変換されずにハードウェア転送されます。

  • ダイナミック 非オーバーロード NAT の場合、外部ドメインから内部グローバルアドレスに伝送されるパケットが変換されます。

これらの制限事項は、Cisco Catalyst 9600 シリーズ スイッチにのみ適用されます。

  • nat scale コマンドを有効にした場合、サポートされるルートマップの最大数は 4 です。

  • 変換ルールを設定した後に nat scale コマンドを有効にしても、スケール値は変更されません。効果的な TCAM 最適化のために、ルートマップルールを設定する前に nat scale コマンドを設定します。

  • nat scale コマンドが有効になっている場合、show ip nat translations コマンドと show ip nat statistics コマンドは変換中のすべての NAT フローを表示せず、信頼性も高くありません。show platform software fed switch active nat flows-detail コマンドを使用すると、可視性が向上する可能性があります。

ネットワークアドレス変換のタイプ

ネットワーク全体を表す 1 つのアドレスのみを外部にアドバタイズするように NAT を設定できます。これにより、内部ネットワークを外部から効果的に隠すことができるため、セキュリティがさらに強化されます。

NAT には次のタイプがあります。

  • スタティック アドレス変換(スタティック NAT):ローカル アドレスとグローバル アドレスを 1 対 1 マッピングします。

  • ダイナミック アドレス変換(ダイナミック NAT):未登録の IP アドレスを、登録済み IP アドレスのプールから取得した登録済み IP アドレスにマップします。

  • オーバーロード/PAT:複数の未登録 IP アドレスを、複数の異なるレイヤ 4 ポートを使用して、1 つの登録済み IP アドレスにマップ(多対 1)します。この方法は、ポート アドレス変換(PAT)とも呼ばれます。オーバーロードを使用することにより、使用できる正規のグローバル IP アドレスが 1 つのみでも、数千のユーザーをインターネットに接続することができます。

ネットワークアドレス変換による外部ネットワークへのパケットのルーティング(内部送信元アドレス変換)

自分が属するネットワークの外部と通信するときに、未登録の IP アドレスをグローバルで一意な IP アドレスに変換できます。

静的または動的内部送信元アドレス変換は、次のようにして設定できます。

  • 静的変換は、内部ローカル アドレスと内部グローバル アドレスの間に 1 対 1 のマッピングを設定します。外部から固定アドレスを使って内部のホストにアクセスする必要がある場合には、静的変換が便利です。スタティック変換は、で説明されているように、スタティック NAT ルールを設定して有効にできます。

  • 動的変換は、内部ローカル アドレスとグローバル アドレスのプールの間にマッピングを動的に設定します。動的変換は、動的 NAT 規則を設定することで有効にできます。マッピングは、設定されている規則を実行時に評価した結果に基づいて設定されます。内部ローカル アドレスの指定には、標準と拡張の両方のアクセス コントロール リスト(ACL)を使用できます。内部グローバル アドレスはアドレス プールまたはインターフェイスから指定できます。ダイナミック変換は、 のセクションで説明されているようにダイナミックルールを設定して有効にできます。

デバイスでスタティック NAT ルールとダイナミック NAT ルールの両方を設定できます。両方のルールが相互に重複していて、特定のアドレスが両方のルールによる変換対象と見なされることもあります。このような場合、スタティックルールは、設定されている順序に関係なく、ダイナミックルールよりも優先されます。

次の図には、ネットワーク内の送信元アドレスを、ネットワーク外の送信元アドレスに変換するデバイスが示されています。

図 3. NAT 内部送信元変換
次の図は、ネットワーク内の送信元アドレスをネットワーク外の送信元アドレスに変換するデバイスを示しています。

次のプロセスは、上の図に示す内部送信元アドレス変換について示します。

  1. ホスト 10.1.1.1 のユーザーは、外部ネットワークのホスト B との接続を開きます。

  2. NAT モジュールは、対応するパケットを横取りし、パケットを変換しようとします。

    一致する NAT 規則の有無に基づいて、次のシナリオが考えられます。

    • 一致する静的変換規則が存在する場合、パケットは対応する内部グローバル アドレスに変換されます。存在しない場合、パケットはダイナミック変換ルールに対して照合され、一致した場合は対応する内部グローバル アドレスに変換されます。NAT モジュールは、変換したパケットに対応する完全修飾フロー エントリを変換データベースに挿入します。これにより、このフローに対応するパケットの高速変換および転送が双方向で促進されます。

    • 一致する規則がない場合、パケットはアドレス変換を行わずに転送されます。

    • 有効な内部グローバル アドレスを取得できない場合は、たとえ一致するルールがあってもパケットはドロップされます。


      (注)  


      ダイナミック変換に ACL が使用される場合、NAT は ACL を評価し、特定の ACL で許可されているパケットのみが変換の対象になるようにします。


  3. デバイスは、ホスト 10.1.1.1 の内部ローカル送信元アドレスをこの変換の内部グローバルアドレス 203.0.113.2 で置き換えて(パケットに関連したチェックサムのみが更新され、パケットの他のフィールドはすべて変更されません)、パケットを転送します。

  4. NAT モジュールは、変換されたパケットフローに対応する完全修飾フローエントリを変換データベースに挿入します。その結果、このフローに対応するパケットの高速変換および転送が双方向で促進されます。

  5. ホスト B はこのパケットを受信し、内部グローバル IP 宛先アドレス(DA)203.0.113.2 を使用して、ホスト 10.1.1.1 に応答します。

  6. ホスト B からの応答パケットは、内部グローパル アドレスに送られます。NAT モジュールはこのパケットをインターセプトし、変換データベースにセットアップされているフロー エントリを使って対応する内部ローカル アドレスに変換し直します。

ホスト 10.1.1.1 はパケットを受信し、会話を続けます。デバイスは、受信する各パケットについて手順 2 ~ 5 を実行します。

外部送信元アドレス変換

ネットワークの外部から内部に移動する IP パケットの送信元アドレスを変換できます。通常、このタイプの変換は、重複しているネットワークを相互接続するために、内部送信元アドレスの変換と組み合わせて使用されます。

このプロセスについては、セクションで説明します。

ポート アドレス変換(PAT)

デバイスが複数のローカル アドレスに対して 1 つのグローバル アドレスを使用できるようにすることで、内部グローバル アドレス プール内のアドレスを節約できます。このようなタイプの NAT の設定はオーバーロード、またはポート アドレス変換と呼ばれます。オーバーロードが設定されている場合、デバイスは、より高いレベルのプロトコルから十分な情報(たとえば、TCP または UDP ポート番号)を保持して、グローバル アドレスを正しいローカル アドレスに戻します。複数のローカル アドレスが 1 つのグローバル アドレスにマッピングされる場合、各内部ホストの TCP または UDP ポート番号によりローカル アドレスが区別されます。

次の図は、1 つの内部グローバル アドレスが複数の内部ローカル アドレスを表すときの NAT の動作を示しています。区別は、TCP ポート番号により行われます。

図 4. 内部グローバル アドレスをオーバーロードする PAT/NAT
次の図は、1 つの内部グローバルアドレスが複数の内部ローカルアドレスを表すときの NAT の動作を示しています。

このデバイスは、上の図に示すように、内部グローバル アドレスのオーバーロードで次の処理を行います。ホスト B およびホスト C はいずれも、アドレス 203.0.113.2 にある 1 つのホストと通信していると信じています。しかし、実際には、異なるホストと通信しています。区別にはポート番号が使用されます。つまり、多数の内部ホストは、複数のポート番号を使用して、内部グローバル IP アドレスを共有することができます。

  1. ホスト Y のユーザーはホスト B への接続を開き、ホスト X のユーザーはホスト C への接続を開きます。

  2. NAT モジュールは、対応するパケットを横取りし、パケットの変換を試みます。

    一致する NAT 規則の有無に基づいて、次のシナリオが考えられます。

    • 一致する静的変換規則が存在する場合はその規則が優先され、パケットは対応するグローバル アドレスに変換されます。存在しない場合、パケットは動的変換規則に対して照合され、一致した場合は対応するグローバル アドレスに変換されます。NAT モジュールは、変換したパケットに対応する完全修飾フロー エントリを変換データベースに挿入し、このフローに対応するパケットの高速変換および転送を双方向で促進します。

    • 一致するルールがない場合、パケットはアドレス変換を行わずに転送されます。

    • 有効な内部グローバル アドレスを取得できない場合は、一致するルールがあってもパケットはドロップされます。

    • これは PAT 設定であるため、トランスポート ポートにより複数のフローを 1 つのグローバル アドレスに変換できます。(送信元アドレスに加えて送信元ポートも変換されるため、関連付けられているフロー エントリは対応する変換マッピングを維持します。)

  3. デバイスは、内部ローカル送信元アドレス/ポート 10.1.1.1/1723 および 10.1.1.2/1723 を対応する選択されたグローバル アドレス/ポート 203.0.113.2/1024 および 203.0.113.2/1723 にそれぞれ置き換えてパケットを転送します。

  4. ホスト B はこのパケットを受信し、ポート 1024 で内部グローバル IP アドレス 203.0.113.2 を使用してホスト Y に応答します。ホスト C はこのパケットを受信し、ポート 1723 で内部グローバル IP アドレス 203.0.113.2 を使用してホスト X に応答します。

  5. デバイスは、内部グローバル IP アドレスを持つパケットを受信すると、内部グローバルアドレスとポート、および外部アドレスとポートをキーとして NAT テーブル検索を実行します。次に、アドレスを内部ローカルアドレス 10.1.1.1:1723/10.1.1.2:1723 に変換し、パケットをホスト Y および X にそれぞれ転送します。

ホスト Y および X はパケットを受信し、通信を続行します。デバイスは、受信する各パケットについて手順 2 ~ 5 を実行します。

重複ネットワーク

使用する IP アドレスが合法でない、または正式に割り当てられていない場合、IP アドレスを変換するために NAT を使用します。すでに合法的に所有されインターネットまたは外部ネットワーク上のデバイスに割り当てられている IP アドレスを、独自のネットワーク上の別のデバイスに割り当てると、ネットワークの重複が発生します。

次の図は重複したネットワークを示しています。内部ネットワークと外部ネットワークの両方のローカル IP アドレスが同じです(10.1.1.x)。そのように重複しているアドレス空間の間のネットワーク接続を確立するには NAT デバイスを使用して遠隔にある対向のアドレス(10.1.1.3)を内部から見た別のアドレスに変換する必要があります。

図 5. NAT による重複するアドレスの変換
次の図は、重複するネットワークを示しています。 内部ネットワークと外部ネットワークの両方に同じローカル IP アドレスがあります。

内部ローカル アドレス(10.1.1.1)および外部グローバル アドレス(10.1.1.3)が同じサブネットにあることに注意してください。重複するアドレスを変換するために、まず、内部送信元アドレスの変換によって内部ローカル アドレスが 203.0.113.2 に変換され、NAT テーブルにハーフ エントリが作成されます。受信側では、外部送信元アドレスが 172.16.0.3 に変換され、ハーフ エントリがもう 1 つ作成されます。すべての変換を完了し、NAT テーブルがフル エントリで更新されます。

次の手順は、重複するアドレスをデバイスが変換する方法を示します。

  1. ホスト 10.1.1.1 は 172.16.0.3 への接続を開きます。

  2. NAT モジュールは、内部ローカル アドレスと内部グローバル アドレスを相互に、また外部グローバル アドレスと外部ローカル アドレスを相互にマップする変換マッピングをセットアップします。

  3. 送信元アドレス(SA)は、内部グローバル アドレスで置き換えられ、宛先アドレス(DA)は外部グローバル アドレスで置き換えられます。

  4. ホスト C はパケットを受信し、会話を続けます。

  5. デバイスは NAT テーブルの検索を行い、DA を内部ローカル アドレスで、SA を外部ローカル アドレスで置き換えます。

  6. この変換プロセスを使用して、パケットがホスト 10.1.1.1 により受信され、会話が続けられます。

アドレスのみの変換

アドレスのみの変換(AOT)機能は、トランスポートポートではなくアドレスフィールドのみを変換する必要がある状況で使用できます。そのような状況で AOT 機能を有効にすると、ハードウェアにおいてラインレートで変換および転送できるフローの数が大幅に増加します。この改善は、変換および転送に関連したさまざまなハードウェアリソースの使用を最適化することによって実現されます。一般的な NAT 集中型リソース割り当てスキームでは、ハードウェア変換を実行するために 15500の TCAM エントリが確保されます。その結果、ラインレートで変換および転送できるフローの数に厳密な上限が設定されます。AOT スキームでは、TCAM リソースの使用が高度に最適化されるため、TCAM テーブルでより多くのフローに対応できるようになり、ハードウェア変換および転送の規模が大幅に拡大します。AOT は、フローの大部分が単一または少数の宛先に送信される場合に非常に効果的です。そのような良好な条件下では、AOT により、特定のエンドポイントから発信されるすべてのフローのラインレート変換および転送が有効になる可能性があります。AOT 機能は、デフォルトでは無効になっています。no ip nat create flow-entries コマンドを使用して有効にできます。既存の動的フローは、clear ip nat translation コマンドを使用してクリアできます。AOT 機能は、ip nat create flow-entries コマンドを使用して無効にできます。

アドレスのみの変換の制限事項

  • AOT 機能は、単純な内部静的規則および内部動的規則に対応する変換シナリオでのみ正しく機能すると想定されています。単純な静的規則のタイプは ip nat inside source static local-ip global-ip で、動的規則のタイプは ip nat inside source list access-list pool name である必要があります。

  • AOT が有効になっている場合、show ip nat translations コマンドを使用しても、変換および転送されるすべての NAT フローの可視性が実現することはありません。

ネットワークアドレス変換の制限事項

  • NAT の動作によっては、ハードウェアデータプレーンで現在サポートされていません。比較的遅いソフトウェア データ プレーンで実行される動作は次のとおりです。

    • Internet Control Message Protocol(ICMP)パケットの変換。

    • アプリケーション レイヤ ゲートウェイ(ALG)処理を必要とするパケットの変換。

    • 内側と外側の両方で変換が必要なパケット。

  • 理想的な設定のハードウェアで変換および転送できるセッションの最大数は、Cisco Catalyst 9500シリーズ スイッチでは 7750。変換が必要なその他のフローは、スループットを下げてソフトウェア データ プレーンで処理されます。


    (注)  


    変換ごとに TCAM の 2 つのエントリが使用されます。


  • NATトラフィックの場合、CPU キューの帯域幅制限は 2000 パケットです。この制限を超えるパケットはドロップされます。

  • 設定されている NAT 規則は、リソースの制約のためにハードウェアにプログラムできない場合があります。これにより、特定の規則に該当するパケットが変換されずに転送されることがあります。

  • ALG のサポートは、FTP、TFTP、および ICMP プロトコルに現在制限されています。また、TCP SYN、TCP FIN、および TCP RST は ALG トラフィックの一部ではありませんが、ALG トラフィックの一部として処理されます。

  • ダイナミックに作成された NAT フローは、非アクティブな状態が一定期間続くとエージ アウトします。

  • ポリシーベースルーティング(PBR)と NAT は、同じインターフェイスではサポートされていません。PBR と NAT は、異なるインターフェイス上に設定されている場合にのみ連携します。

  • NAT は、断片化されたパケットの変換をサポートしていません。

  • Bidirectional Forwarding Detection(BFD)セッションがダイナミック NAT に使用されるものと同じアドレスを使用して動作するように設定されている場合、これらのセッションは失敗する可能性があります。BFD とダイナミック NAT の両方がデバイスで設定されている場合に生じる競合を回避するには、NAT と重複しないアドレスを使用します。同じインターフェイスで BFD とダイナミック NAT オーバーロードを設定する必要がある場合は、プールベースのダイナミック NAT オーバーロード設定を展開します。このシナリオでも、選択した NAT プールアドレスを BFD に使用しないでください。

  • 等コスト マルチパス ルーティング(ECMP)は、NAT でサポートされていません。

  • Flexible NetFlow とネットワークアドレス変換(NAT)がインターフェイスで設定されている場合:

    • Flexible NetFlow は、実際のフローの詳細を表示およびエクスポートしますが、変換されたフローの詳細は対象にしません。アプリケーションレベル ゲートウェイ(ALG)フローの詳細は、エクスポートされる実際のフローの詳細には含まれません。

    • ALG トラフィックが CPU を介して変換されると、Flexible NetFlow は、ALG トラフィック用に変換されたフローの詳細を表示してエクスポートします。

  • NAT ACL の明示的な拒否アクセス制御エントリ(ACE)はサポートされていません。明示的な許可 ACE のみがサポートされます。

  • NETCONF が、インターフェイス オーバーロードを使用した NAT の設定に使用されるものと同じ IP アドレスで動作するように設定されている場合、その設定は失敗します。

  • NAT は GRE トンネルではサポートされません。

  • 入力および出力 NAT インターフェイスの両方が同じスイッチ上にある場合、ステートフルスイッチオーバー(SSO)後に、リモートスイッチまたはスタンバイスイッチで TCAM のハードウェア NAT エントリが非同期になることがあります。AOT が有効になっている場合、NAT タイムアウト後にリモートスイッチで非同期になる場合があります。

ネットワークアドレス変換のパフォーマンスとスケール数

NAT モジュールは、転送情報と書き換え情報を使用して関連したハードウェアテーブルをプログラミングすることで、ハードウェアの変換と転送をラインレートで実行できます。NAT のスループットを向上させるために、NAT 重視のリソース割り当てスキームを設定できます。

より良いパフォーマンスとスケール数が NAT で得られるように SDM テンプレートを設定します。次を参照してください。 スイッチ データベース管理(SDM)テンプレートの設定

ハードウェアで使用可能な TCAM フローの最大数は 15500 です。


(注)  


Cisco IOS XE Bengaluru 17.5.1 以降では、グローバル コンフィギュレーション モードで nat scale コマンドを使用して、NAT スケールサポートを強化できます。有効にすると、NAT スループットは NAT 変換トラフィックのラインレートを下回ります。ただし、サポートされる最大 TCAM フローは 15500 のままです。



(注)  


アドレスのみの変換を使用すると、フローの処理が最適化され、NAT 機能のスケールが拡張されます。


アプリケーション レベル ゲートウェイとネットワークアドレス変換の使用

NAT は、アプリケーション データ ストリームで送信元および宛先 IP アドレスを伝送しない TCP/UDP トラフィックにおいて変換サービスを実行します。送信元および宛先 IP アドレスを伝送しないプロトコルには、HTTP、TFTP、telnet、archie、finger、Network Time Protocol(NTP)、ネットワーク ファイル システム(NFS)、リモート ログイン(rlogin)、リモート シェル(rsh)protocol、およびリモート コピー(rcp)があります。

アドレス/ポート情報をペイロードで搬送するアプリケーションは、NAT アプリケーション レベル ゲートウェイ(ALG)により、NAT ドメイン全体で正しく機能できます。パケット ヘッダ内のアドレス/ポートの通常の変換に加えて、ALG はペイロードに存在するアドレス/ポートの変換も処理し、一時マッピングを設定します。

NAT の設定のベスト プラクティス

  • 静的規則と動的規則の両方が設定されている場合は、規則に指定されているローカル アドレスが重複していないことを確認してください。このような重複の可能性がある場合は、静的規則が使用するアドレスを動的規則に関連付けられている ACL で除外してください。同様に、グローバル アドレス間の重複もなくす必要があります。重複していると、望ましくない動作が生じることがあります。

  • NAT 規則に関連付けられている ACL では、permit ip any any などの範囲の広いフィルタリングを使用しないでください。このようなフィルタリングは、必要のないパケットを変換することがあります。

  • 複数の NAT 規則でアドレス プールを共有しないでください。

  • 静的 NAT と動的プールで同じ内部グローバル アドレスを定義しないでください。これを行うと、望ましくない結果を招くことがあります。

  • NAT に関連付けられているデフォルトのタイムアウト値を変更する場合は、慎重に行ってください。タイムアウト値を短くすると、CPU の使用率が高くなることがあります。

  • 変換エントリを手動でクリアする場合は、アプリケーション セッションが中断されることがあるため、慎重に行ってください。

  • アクティブ変換中に NAT 設定を変更する前に、次の手順を実行します。

    • 指定された設定に一致するトラフィックの入力および出力を停止します。そのためには、適切な ACL フィルタを適用するか、指定されたインターフェイスをシャットダウンする必要が生じる場合があります。

    • 指定された設定に対応する既存の変換エントリをクリアします。

    • 設定に必要な変更を加えて、停止したトラフィックを再度有効にします。

ネットワーク アドレス変換の設定

このセクションで説明するタスクを使用して、NAT を効果的に設定できます。設定によっては、複数の作業を実行する必要があります。

内部送信元アドレスの静的変換の設定

内部ローカル アドレスと内部グローバル アドレス間の 1 対 1 マッピングを可能にするには、内部送信元アドレスの静的変換を設定します。外部から固定アドレスを使って内部のホストにアクセスする必要がある場合には、静的変換が便利です。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

要件に応じて次のコマンドのいずれかを使用します。

  • ip nat inside source static local-ip global-ip
    Switch(config)# ip nat inside source static 10.10.10.1 172.16.131.1
  • ip nat inside source static protocol local-ip port global-ip port
    Switch(config)# ip nat inside source static tcp 10.10.10.1 1234 172.16.131.1 5467
  • ip nat inside source static network local-ip global-ip { prefix_len len | subnet subnet-mask}
    Switch(config)# ip nat inside source static network 10.10.10.1 172.16.131.1 prefix_len 24
  • ip nat inside source static local-ip global-ip vrf vrf-name
    Switch(config)# ip nat inside source static 10.10.10.1 172.16.131.1 vrf vrf1
  • 内部ローカル アドレスと内部グローバル アドレス間の静的変換を設定します。

  • 内部ローカル アドレスと内部グローバル アドレス間の静的ポート変換を設定します。

  • 複数の個別変換ルールを指定せずに、サブネット全体のスタティック変換マッピングを許可します。目的のサブネットの変換マッピングを指定できます。実際の変換は、アドレスのネットワーク部を変換することによって実行されます。ホスト部は変更されません。

  • スタティック変換 VRF を認識させ、特定のルールを指定された VRF に関連付けます。

ステップ 4

interface type number

例:

Switch(config)# interface ethernet 1

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 5

ip address ip-address mask [secondary]

例:

Switch(config-if)# ip address 10.114.11.39 255.255.255.0

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 6

ip nat inside

例:

Switch(config-if)# ip nat inside

NAT の対象である内部ネットワークにインターフェイスを接続します。

ステップ 7

exit

例:

Switch(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 8

interface type number

例:

Switch(config)# interface gigabitethernet 0/0/0

異なるインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 9

ip address ip-address mask [secondary]

例:

Switch(config-if)# ip address 172.31.232.182 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 10

ip nat outside

例:

Switch(config-if)# ip nat outside

外部ネットワークにインターフェイスを接続します。

ステップ 11

end

例:

Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

内部送信元アドレスの動的変換の設定

動的変換は、内部ローカル アドレスとグローバル アドレスのプールの間にマッピングを動的に設定します。動的変換は、動的 NAT 規則を設定することで有効にできます。マッピングは、設定されている規則を実行時に評価した結果に基づいて設定されます。内部ローカル アドレスの指定には ACL を使用できます。また、内部グローバル アドレスは、アドレス プール、またはインターフェイスから指定できます。

プライベート ネットワークに存在する複数のユーザーがインターネットへのアクセスを必要としている場合には、動的変換が便利です。動的に設定されたプール IP アドレスは必要に応じて使用でき、インターネットへのアクセスが必要なくなったときは別のユーザーが使用できるように解放できます。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

ip nat pool name start-ip end-ip netmask netmask | prefix-length prefix-length

例:

Switch(config)# ip nat pool net-208 172.16.233.208 172.16.233.223 prefix-length 28

必要に応じて割り当てられるグローバル アドレスのプールを定義します。

ステップ 4

access-list access-list-number permit source [source-wildcard]

例:

Switch(config)# access-list 1 permit 192.168.34.0 0.0.0.255

変換されるアドレスを許可する標準アクセス リストを定義します。

ステップ 5

ip nat inside source list access-list-number pool name vrf vrf-name

例:

Switch(config)# ip nat inside source list 1 pool net-208

ステップ 4 で定義したアクセス リストを指定して、ダイナミック送信元変換を設定します。

vrf キーワードを使用すると、ダイナミック変換 VRF が認識され、特定のルールが指定された VRF に関連付けられます。

ステップ 6

interface type number

例:

Switch(config)# interface ethernet 1

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 7

ip address ip-address mask

例:

Switch(config-if)# ip address 10.114.11.39 255.255.255.0

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 8

ip nat inside

例:

Switch(config-if)# ip nat inside

NAT の対象である内部ネットワークにインターフェイスを接続します。

ステップ 9

exit

例:

Switch(config-if)#exit

インターフェイス コンフィギュレーション モードを終了し、グローバル コンフィギュレーション モードに戻ります。

ステップ 10

interface type number

例:

Switch(config)# interface ethernet 0

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

ip address ip-address mask

例:

Switch(config-if)# ip address 172.16.232.182 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 12

ip nat outside

例:

Switch(config-if)# ip nat outside

外部ネットワークにインターフェイスを接続します。

ステップ 13

end

例:

Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ポートアドレス変換の設定

グローバルアドレスのオーバーロードによるポートアドレス変換の設定

NAT モジュールは、次のタスクで説明するように、アドレスプールとインターフェイスを介してダイナミック PAT 設定をサポートします。

グローバルアドレスのオーバーロードを使用して、内部ユーザーにインターネットへのアクセスを許可し、内部グローバルアドレスプールのアドレスを節約するには、次の作業を実行します。

手順
  コマンドまたはアクション 目的

ステップ 1

enable

例:
Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:
Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

ip nat pool name start-ip end-ip netmask netmask | prefix-length prefix-length

例:
Switch(config)# ip nat pool net-208 192.168.202.129 192.168.202.158 netmask 255.255.255.224

必要に応じて割り当てられるグローバル アドレスのプールを定義します。

ステップ 4

access-list access-list-number permit source [source-wildcard]

例:
Switch(config)# access-list 1 permit 192.168.201.30 0.0.0.255

変換されるアドレスを許可する標準アクセス リストを定義します。

アクセス リストは、変換されるアドレスだけを許可する必要があります(各 アクセス リストの最後に暗黙の「deny all」ステートメントが存在することに注意してください)。許可する範囲が広すぎるアクセス リストを使用すると、予測困難な結果を招くことがあります。

ステップ 5

ip nat inside source list access-list-number pool name [ vrf vrf-name] overload

例:
Switch(config)# ip nat inside source list 1 pool net-208 overload

手順 4 で定義されたアクセス リストを指定して、ダイナミック送信元変換を設定します。

vrf キーワードを使用すると、ダイナミック変換 VRF が認識され、特定のルールが指定された VRF に関連付けられます。

ステップ 6

interface type number

例:
Switch(config)# interface ethernet 1

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 7

ip address ip-address mask [secondary]

例:
Switch(config-if)# ip address 192.168.201.1 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 8

ip nat inside

例:
Switch(config-if)# ip nat inside

NAT の対象である内部ネットワークにインターフェイスを接続します。

ステップ 9

exit

例:
Switch(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 10

interface type number

例:
Switch(config)# interface ethernet 0

異なるインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

ip address ip-address mask [secondary]

例:
Switch(config-if)#  ip address 192.168.201.29 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 12

ip nat outside

例:
Switch(config-if)# ip nat outside

外部ネットワークにインターフェイスを接続します。

ステップ 13

end

例:
Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

インターフェイスのオーバーロードによるポートアドレス変換の設定

インターフェイスのオーバーロードにより、内部ユーザーにインターネットへのアクセスを許可し、内部グローバルアドレスプールのアドレスを節約するには、次の作業を実行します。

手順
  コマンドまたはアクション 目的

ステップ 1

enable

例:
Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:
Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

access-list access-list-number permit source [source-wildcard]

例:
Switch(config)# access-list 1 permit 192.168.201.30 0.0.0.255

変換されるアドレスを許可する標準アクセス リストを定義します。

アクセス リストは、変換されるアドレスだけを許可する必要があります(各アクセスリストの最後に暗黙の「deny all」ステートメントが存在することに注意してください)。許可する範囲が広すぎるアクセス リストを使用すると、予測困難な結果を招くことがあります。

ステップ 4

ip nat inside source list access-list-number interface name overload

例:
Switch(config)# ip nat inside source list 1 interface gigabitethernet0/0/2 overload

手順 3 で定義されたアクセス リストを指定して、ダイナミック送信元変換を設定します。

(注)  

 

オーバーロード用に、有効な IP アドレスを持つ、動作状態にある任意のレイヤ 3 インターフェイスを選択できます。

ステップ 5

interface type number

例:
Switch(config)# interface gigabitethernet0/0/1

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 6

ip address ip-address mask [secondary]

例:
Switch(config-if)# ip address 192.168.201.1 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 7

ip nat inside

例:
Switch(config-if)# ip nat inside

NAT の対象である内部ネットワークにインターフェイスを接続します。

ステップ 8

exit

例:
Switch(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 9

interface type number

例:
Switch(config)# interface gigabitethernet0/0/2

異なるインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 10

ip address ip-address mask [secondary]

例:
Switch(config-if)#  ip address 192.168.201.29 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 11

ip nat outside

例:
Switch(config-if)# ip nat outside

外部ネットワークにインターフェイスを接続します。

ステップ 12

end

例:
Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

外部 IP アドレスのみのネットワークアドレス変換の設定

デフォルトで NAT は、アプリケーション レベル ゲートウェイとネットワークアドレス変換の使用 で説明されているように、パケットのペイロードに埋め込まれているアドレスを変換します。埋め込みアドレスを変換することが望ましくない場合は、外部の IP アドレスのみを変換するように NAT を設定できます。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

ip nat inside source {list {access-list-number | access-list-name } pool pool-name [overload ] | static network local-ip global-ip [no-payload ]}

例:

Device(config)# ip nat inside source static network 10.1.1.1 192.168.251.0/24 no-payload 

内部ホスト デバイスでのネットワーク パケット変換を無効化します。

ステップ 4

ip nat inside source {list {access-list-number | access-list-name } pool pool-name [overload ] | static {tcp | udp } local-ip local-port global-ip global-port [no-payload ]}

例:

Device(config)# ip nat inside source static tcp 10.1.1.1 2000 192.168.1.1 2000 no-payload

内部ホスト デバイスでのポート パケット変換を無効化します。

ステップ 5

ip nat inside source {list {access-list-number | access-list-name} pool pool-name [overload ] | static [network ] local-network-mask global-network-mask [no-payload ]}

例:

Device(config)# ip nat inside source static 10.1.1.1 192.168.1.1 no-payload

内部ホスト ルータでのパケット変換を無効化します。

ステップ 6

ip nat outside source {list {access-list-number | access-list-name } pool pool-name | static local-ip global-ip [no-payload ]}

例:

Device(config)# ip nat outside source static 10.1.1.1 192.168.1.1 no-payload

外部ホスト ルータでのパケット変換を無効化します。

ステップ 7

ip nat outside source {list {access-list-number | access-list-name } pool pool-name | static {tcp | udp } local-ip local-port global-ip global-port [no-payload ]}

例:

Device(config)# ip nat outside source static tcp 10.1.1.1 20000 192.168.1.1 20000 no-payload

外部ホスト デバイスでのポート パケット変換を無効化します。

ステップ 8

ip nat outside source {list {access-list-number | access-list-name } pool pool-name | static [network ] local-network-mask global-network-mask [no-payload ]}

例:

Device(config)# ip nat outside source static network 10.1.1.1 192.168.251.0/24 no-payload

外部ホスト デバイスでのネットワーク パケット変換を無効化します。

ステップ 9

exit

例:

Device(config)# exit

グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 10

show ip nat translations [verbose ]

例:

Device# show ip nat translations

アクティブな NAT を表示します。

重複するネットワークの変換の設定

スタブ ネットワーク内の IP アドレスが別のネットワークに属する正式な IP アドレスであるときに、静的変換を使用して、これらのホストやルータと通信する必要がある場合は、重複するネットワークの静的変換を設定します。


(注)  


NAT 外部変換を成功させるためには、デバイスに外部ローカルアドレスのルートを設定する必要があります。ルートは手動で、または ip nat outside source {static | list} コマンドと関連付けられた add-route オプションを使用して設定できます。ルートの自動作成を有効にする add-route オプションを使用することを推奨します。


手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Switch# configure terminal

ステップ 3

ip nat inside source static local-ip global-ip

例:

Switch(config)# ip nat inside source static 10.1.1.1 203.0.113.2 

内部ローカル アドレスと内部グローバル アドレス間の静的変換を設定します。

ステップ 4

ip nat outside source static local-ip global-ip

例:

Switch(config)# ip nat outside source static 172.16.0.3 10.1.1.3

外部ローカル アドレスと外部グローバル アドレス間の静的変換を設定します。

ステップ 5

interface type number

例:

Switch(config)# interface ethernet 1

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 6

ip address ip-address mask

例:

Switch(config-if)# ip address 10.114.11.39 255.255.255.0

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 7

ip nat inside

例:

Switch(config-if)# ip nat inside

内部と接続されることを示すマークをインターフェイスに付けます。

ステップ 8

exit

例:

Switch(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 9

interface type number

例:

Switch(config)# interface ethernet 0

異なるインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 10

ip address ip-address mask

例:

Switch(config-if)#  ip address 172.16.232.182 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 11

ip nat outside

例:

Switch(config-if)# ip nat outside

外部と接続されることを示すマークをインターフェイスに付けます。

ステップ 12

end

例:

Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

アドレス変換タイムアウトの設定

NAT の設定に基づき、アドレス変換のタイムアウトを設定できます。

デフォルトでは、動的に作成された変換エントリは、さまざまなリソースを効率的に利用できるようにするために、アクティブでない状態が一定時間続くとタイムアウトします。必要に応じて、タイムアウトのデフォルト値を変更できます。主な変換タイプに関連付けられているデフォルトのタイムアウト設定は、次のとおりです。

  • 確立された TCP セッション:24 時間

  • UDP フロー:5 分

  • ICMP フロー:1 分

デフォルトのタイムアウト値は、ほとんどの展開シナリオでタイムアウト要件を満たすことができます。ただし、これらの値は必要に応じて調整/微調整できます。短いタイムアウト値を設定すると(60 秒未満)、CPU の使用率が高くなることがあるため推奨されません。詳細については、NAT の設定のベスト プラクティスを参照してください。

この項で説明するタイムアウトは、設定に応じて変更できます。

  • 動的設定のためにグローバル IP アドレスを迅速に解放する必要がある場合は、ip nat translation timeout コマンドを使用して、デフォルトのタイムアウトよりもタイムアウトを短く設定してください。ただし、次の手順で指定するコマンドで設定した他のタイムアウトよりも長い時間にしてください。

  • TCP セッションが両側から受け取る終了(FIN)パケットで正しく終了していない場合、またはリセット時に正しく終了しない場合は、ip nat translation tcp-timeout コマンドを使用してデフォルトの TCP タイムアウトを変更してください。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

ip nat translation seconds

例:

Switch(config)# ip nat translation 300

(任意)NAT 変換がタイムアウトになるまでの時間を変更します。

デフォルト タイムアウトは 24 時間です。これは、ハーフエントリのエージング タイムに適用されます。

ステップ 4

ip nat translation udp-timeout seconds

例:

Switch(config)# ip nat translation udp-timeout 300

(任意)UDP タイムアウト値を変更します。

ステップ 5

ip nat translation tcp-timeout seconds

例:

Switch(config)# ip nat translation tcp-timeout 2500

(任意)TCP タイムアウト値を変更します。

デフォルトは 24 時間です。

ステップ 6

ip nat translation finrst-timeout seconds

例:

Switch(config)# ip nat translation finrst-timeout 45

(任意)Finish and Reset タイムアウト値を変更します。

finrst-timeout:TCP セッションが finish-in(FIN-IN)要求と finish-out(FIN-OUT)要求の両方を受信した後の、または TCP セッション リセット後のエージング タイム。

ステップ 7

ip nat translation icmp-timeout seconds

例:

Switch(config)# ip nat translation icmp-timeout 45

(任意)ICMP タイムアウト値を変更します。

ステップ 8

ip nat translation syn-timeout seconds

例:

Switch(config)# ip nat translation syn-timeout 45

(任意)同期(SYN)タイムアウト値を変更します。

同期タイムアウトまたはエージング タイムは、TCP セッションで SYN 要求が受信された場合にのみ使用されます。同期確認応答(SYNACK)要求が受信されると、タイムアウトが TCP タイムアウトに変更されます。

ステップ 9

end

例:

Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

スイッチ データベース管理(SDM)テンプレートの設定

SDM テンプレートを使用し、NAT に合わせてシステム リソースを最適に設定します。

テンプレートを設定してシステムを再起動した後、show sdm prefer 特権 EXEC コマンドを使用して、新しいテンプレート設定を確認できます。reload 特権 EXEC コマンドを入力する前に、show sdm prefer コマンドを入力すると、show sdm prefer コマンドにより、現在使用しているテンプレートおよびリロード後にアクティブになるテンプレートが表示されます。

SDM テンプレートを設定して NAT の動作を最適にサポートするには、次の手順を実行します。

手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

sdm prefer nat

例:

Switch(config)# sdm prefer nat

スイッチで使用する SDM テンプレートを指定します。

Cisco IOS XE Gibraltar 16.12.1 から開始する場合、このテンプレートを利用するには、Network Advantage ライセンスが必要です。以前のすべてのリリースでは、DNA Advantage ライセンスで利用できます。

ステップ 3

end

例:

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

write memory

例:

Switch# write memory

リロードする前に現在の構成を保存します。

ステップ 5

reload

例:

Switch# reload

オペレーティング システムをリロードします。

ルートマップを使用した静的ルールの設定

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

ip access-list extended{acl-num| acl-name}

例:

Switch(config)# ip access-list extended ACL1
Switch(config-ext-nacl)#

拡張 ACL コンフィギュレーション モードを有効にします。

  • acl-name :アクセスリストを英数字の文字列で指定します。この文字列には、ACLコンフィギュレーション モードから入力されたすべてのコマンドが適用されます。

  • acl-name :数字の識別子を使用してアクセスリストを指定します。この識別子には、ACLコンフィギュレーション モードから入力されたすべてのコマンドが適用されます。有効な範囲は 100 ~ 199 です。拡張範囲は 2000 ~ 2699 です。

ステップ 4

access-list seq-num ip ip-addresses

例:

Switch(config-ext-nacl)# access-list 10 permit ip 1.1.1.0 0.0.0.255 8.8.8.0 0.0.0.255
Switch# access-list 20 permit ip 1.1.1.0 0.0.0.255 8.8.8.2 0.0.0.255

指定された IP アドレス間の IP トラフィックを許可します。

ステップ 5

exit

例:

Switch(config-ext-nacl)# exit
Switch(config)#

ACL コンフィギュレーション モードを終了します。

ステップ 6

route-mapname{permit| deny| seq-num| ordering-seq}

例:

Switch(config)# route-map RM1 permit 10
Switch(config-route-map)#

ACL をルートマップに関連付けます。

  • name :ルートマップ名を指定します。

  • seq-num :既存のルートマップエントリから挿入または削除するシーケンス番号を指定します。範囲は 0 ~ 65535 です。

  • ordering-seq :既存のルートマップエントリから挿入または削除する順序付けされたシーケンス番号を指定します。

  • permit :ルートマップの設定操作を許可します。

  • deny :ルートマップの設定操作を拒否します。

ステップ 7

match ip-addressacl-name

例:

Switch(config-route-map)# match ip address ACL1

指定された ACL のポリシーをルートマップに設定します。

ステップ 8

ip nat inside source static local-ip global-ip route-map name

例:

Switch(config-route-map)# ip nat inside source static 1.1.1.10 20.20.20.20 route-map RM1

ルートマップを静的ルールに関連付けます。

ルートマップを使用した動的ルールの設定

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

プロンプトが表示されたらパスワードを入力します。

ステップ 2

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

ip access-list extended{acl-num| acl-name}

例:

Switch(config)# ip access-list extended ACL2
Switch(config-ext-nacl)#

拡張 ACL コンフィギュレーション モードを有効にします。

  • acl-name :アクセスリストを英数字の文字列で指定します。この文字列には、ACLコンフィギュレーション モードから入力されたすべてのコマンドが適用されます。

  • acl-name :数字の識別子を使用してアクセスリストを指定します。この識別子には、ACLコンフィギュレーション モードから入力されたすべてのコマンドが適用されます。有効な範囲は 100 ~ 199 です。拡張範囲は 2000 ~ 2699 です。

ステップ 4

access-list seq-num ip ip-addresses

例:

Switch(config-ext-nacl)# access-list 20 permit ip 1.1.1.0 0.0.0.255 8.8.8.0 0.0.0.255

指定された IP アドレス間の IP トラフィックを許可します。

ステップ 5

exit

例:

Switch(config-ext-nacl)# exit
Switch(config)#

ACL コンフィギュレーション モードを終了します。

ステップ 6

route-mapname{permit| deny| seq-num| ordering-seq}

例:

Switch(config)# route-map RM2 permit 20
Switch(config-route-map)#

ACL をルートマップに関連付けます。

  • name :ルートマップ名を指定します。

  • seq-num :既存のルートマップエントリから挿入または削除するシーケンス番号を指定します。範囲は 0 ~ 65535 です。

  • ordering-seq :既存のルートマップエントリから挿入または削除する順序付けされたシーケンス番号を指定します。

  • permit :ルートマップの設定操作を許可します。

  • deny :ルートマップの設定操作を拒否します。

ステップ 7

match ip-addressacl-name

例:

Switch(config-route-map)# match ip address ACL2

指定された ACL のポリシーをルートマップに設定します。

ステップ 8

ip nat pool name start-ip end-ip netmask netmask | prefix-length prefix-length

例:

Switch(config-route-map)# ip nat pool POOL1 5.5.5.5 5.5.5.30 prefix-length 24

必要に応じて割り当てられるグローバル アドレスのプールを定義します。

ステップ 9

ip nat inside source route-map name pool name

例:

Switch(config-route-map)# ip nat inside source route-map RM1 pool POOL1

ルートマップを使用して動的ルールを確立します。

レート制限の設定

動的に作成された NAT 変換エントリに制限を設定するには、次のタスクを実行します。設定された制限を超えるパケットは、変換に失敗し、ドロップされます。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル設定モードを開始します。

ステップ 3

ip nat translation max-entries { number | all-host number | all-vrf number | host ip-address number | list list name number | vrf name number }

例:

Device(config)# ip nat translation max-entries 300

指定された送信元から許可される NAT 変換エントリの最大数を設定します。

  • 許可される NAT 変換エントリの最大数は 2147483647 ですが、NAT レート制限の一般的な範囲は 100 ~ 300 エントリです。

  • すべての VRF インスタンスに NAT レート制限を設定すると、各 VRF インスタンスは、指定する NAT 変換エントリの最大数に制限されます。

  • 特定の VRF インスタンスの NAT レート制限を設定する場合、すべての VRF インスタンスで許可される数よりも多い、または少ない NAT 変換エントリの最大数を指定できます。

ステップ 4

end

例:

Device(config)# end

グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 5

show ip nat statistics

例:

Device# show ip nat statistics

オプション)現在の NAT 使用状況に関する情報(NAT レート制限設定を含む)を表示します。

  • NAT レート制限を設定した後、show ip nat statistics コマンドを使用して、NAT レート制限に関連した統計を確認します。

レイヤ 3 ポートチャネルでのネットワークアドレス変換の設定

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Switch> enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface port-channel port-channel-number

例:

Switch(config)# interface port-channel 10

ポートチャネル インターフェイス モードを開始します。

ステップ 4

ip address ip-address mask [secondary]

例:

Switch(config-if)# ip address 10.114.11.39 255.255.255.0

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 5

ip nat inside

例:

Switch(config-if)# ip nat inside

NAT の対象である内部ネットワークにインターフェイスを接続します。

ステップ 6

interface port channel port-channel-number

例:

Switch(config)# interface port-channel 11

ポートチャネル インターフェイス モードを開始します。

ステップ 7

ip address ip-address mask [secondary]

例:

Switch(config-if)# ip address 172.31.232.182 255.255.255.240

インターフェイスのプライマリ IP アドレスを設定します。

ステップ 8

ip nat outside

例:

Switch(config-if)# ip nat outside

外部ネットワークにインターフェイスを接続します。

ステップ 9

end

例:

Switch(config-if)# end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ネットワークアドレス変換の設定例

例:内部送信元アドレスのスタティック変換の設定

次の例では、10.114.11.0 ネットワークからアドレス指定される内部ホストがグローバルに一意な 172.31.233.208/28 ネットワークにどのように変換されるかを示しています。その後、10.114.11.0 ネットワーク(本物の 10.114.11.0 ネットワーク)の外部ホストから送信されたパケットは、10.0.1.0/24 ネットワーク由来に見えるように変換されます。

ip nat pool net-208 172.31.233.208 172.31.233.223 prefix-length 28
ip nat pool net-10 10.0.1.0 10.0.1.255 prefix-length 24
ip nat inside source list 1 pool net-208
ip nat outside source list 1 pool net-10
!
interface gigabitethernet 0/0/0
 ip address 172.31.232.182 255.255.255.240
 ip nat outside
!
interface gigabitethernet 1/1/1
 ip address 10.114.11.39 255.255.255.0
 ip nat inside
!
access-list 1 permit 10.114.11.0 0.0.0.255

次に、重複するローカルアドレスを変換する静的 VRF 対応 NAT 設定の例を示します。


ip nat inside source static 192.168.121.33 10.2.2.1 vrf vrf1
ip nat inside source static 192.168.121.33.10.2.2.2 vrf vrf2

例:内部送信元アドレスのダイナミック変換の設定

次の例では、192.168.1.0 または 192.168.2.0 ネットワークのいずれかのネットワークからアドレス指定される内部ホストがグローバルに一意な 172.31.233.208/28 ネットワークにどのように変換されるかを示しています。

ip nat pool net-208 172.31.233.208 172.31.233.223 prefix-length 9
ip nat inside source list 1 pool net-208
!
interface gigabitethernet 0/0/0
 ip address 172.31.232.182 255.255.255.240
 ip nat outside
!
interface gigabitethernet 1/1/1
 ip address 192.168.1.94 255.255.255.0
 ip nat inside
!
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
!

次に、重複するローカルアドレスを変換するダイナミック VRF 対応 NAT 設定の例を示します。


ip nat inside source list 1 interface gigabitethernet 0/0/0 vrf vrf1 overload
!
ip route vrf vrf1 0.0.0.0 0.0.0.0 192.168.1.1
!
access-list 1 permit 10.1.1.1.0 0.0.0.255
!
ip nat inside source list 1 interface gigabitethernet 1/1/1 vrf vrf1 overload
!
ip route vrf vrf1 0.0.0.0 0.0.0.0 172.16.1.1 global
access-list 1 permit 10.1.1.0 0.0.0.255
!

NAT のトラブルシューティング

ここでは、NAT のトラブルシューティングと確認のための基本的な手順について説明します

  • NAT で実現できることを明確に定義する。

  • show ip nat translations コマンドで、正しい変換テーブルが存在していることを確認する。

  • show ip nat translation verbose コマンドで、タイマーの値が正しく設定されていることを確認する。

  • show ip access-list コマンドで、NAT の ACL 値をチェックする。

  • show ip nat statistics コマンドで、NAT の全体的な設定をチェックする。

  • clear ip nat translation コマンドで、タイマーの期限が切れるより早く NAT 変換テーブルのエントリをクリアする。

  • debug nat ip と debug nat ip detailed コマンドを使用して、NAT 設定をデバッグする。

NAT のトラブルシューティングの詳細については、を参照してください。 http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/8605-13.html

ネットワークアドレス変換の機能履歴

次の表に、このモジュールで説明する機能のリリースおよび関連情報を示します。

これらの機能は、特に明記されていない限り、導入されたリリース以降のすべてのリリースで使用できます。

リリース

機能

機能情報

Cisco IOS XE Gibraltar 16.12.1

NAT のライセンスレベル

NAT を Network Advantage ライセンスで使用できるようになりました。以前のすべてのリリースでは、DNA Advantage ライセンスで使用できます。

Cisco IOS XE Amsterdam 17.2.1

VRF 対応 NAT

NAT の VRF サポートが導入されました。

Cisco IOS XE Bengaluru 17.5.1

拡張 NAT スケールサポート

グローバル コンフィギュレーション モードで nat scale コマンドを使用して、NAT スケールを拡張するサポートが導入されました。

Cisco IOS XE Bengaluru 17.6.1

ダイナミック NAT よりもスタティック NAT ルールを優先

この機能を使用すると、特定のアドレスが両方のルールによる変換が可能な場合に、スタティック NAT ルールがダイナミック NAT ルールよりも優先されるようにできます。

Cisco IOS XE Cupertino 17.7.1

ネットワーク アドレス変換

VRF 対応 NAT

これらの機能は、このリリースで導入されたスーパーバイザモジュール C9400X-SUP-2 および C9400X-SUP-2XL に実装されました。

Cisco IOS XE Cupertino 17.9.1

ルートマップベースの NAT

この機能により、ルートマップベースの NAT を設定できます。ルートマップベースの NAT は、宛先ベースの変換を可能にし、一致アドレスをサポートします。

この機能は、Cisco Catalyst 9500 シリーズ スイッチの C9500-32C、C9500-32QC、C9500-48Y4C、および C9500-24Y4C モデルでのみサポートされるようになりました。

Cisco Feature Navigator を使用すると、プラットフォームおよびソフトウェアイメージのサポート情報を検索できます。