Cisco セキュリティ アプライアンス コマンドライン コンフィギュレーション ガイド Cisco ASA 5500 シリーズ/Cisco PIX 500 シリーズ用 ソフトウェア バージョン 7.2
cfgnat.fm
NAT の適用
発行日;2013/09/05 | 英語版ドキュメント(2012/01/04 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 11MB) | フィードバック

目次

NAT の適用

NAT の概要

NAT の概要

NAT コントロール

NAT のタイプ

ダイナミック NAT

PAT

スタティック NAT

スタティック PAT

NAT 制御がイネーブルな状態での NAT のバイパス

ポリシー NAT

NAT および同じセキュリティ レベルのインターフェイス

実アドレス照合用 NAT コマンドの順序

マッピング アドレスの注意事項

DNS および NAT

NAT 制御の設定

ダイナミック NAT および PAT の使用方法

ダイナミック NAT および PAT の実装

ダイナミック NAT または PAT の設定

スタティック NAT の使用

スタティック PAT の使用

NAT のバイパス

アイデンティティ NAT の設定

スタティック アイデンティティ NAT の設定

NAT 除外の設定

NAT の例

アドレスが重複するネットワーク

ポートのリダイレクション

NAT の適用

この章では、ネットワーク アドレス変換(NAT)について説明します。ルーテッド ファイアウォール モードでは、セキュリティ アプライアンスは各ネットワーク間で NAT を実行できます。


) トランスペアレント ファイアウォール モードでは、セキュリティ アプライアンスは NAT をサポートしません。


この章の内容は、次のとおりです。

「NAT の概要」

「NAT 制御の設定」

「ダイナミック NAT および PAT の使用方法」

「スタティック NAT の使用」

「スタティック PAT の使用」

「NAT のバイパス」

「NAT の例」

NAT の概要

ここでは、セキュリティ アプライアンス 上での NAT の機能について説明します。次の項目を取り上げます。

「NAT の概要」

「NAT コントロール」

「NAT のタイプ」

「ポリシー NAT」

「NAT および同じセキュリティ レベルのインターフェイス」

「実アドレス照合用 NAT コマンドの順序」

「マッピング アドレスの注意事項」

「DNS および NAT」

NAT の概要

アドレス変換は、パケット内の実際のアドレスを、宛先ネットワーク上でルーティング可能な、マッピングされたアドレスで置き換えます。NAT は、実アドレスをマップ アドレスに変換する処理と、その後、変換を取り消してトラフィックを戻す処理の 2 つの手順で構成されています。

セキュリティ アプライアンスは、NAT ルールがトラフィックに一致すると、アドレスを変換します。NAT ルールが一致しなかった場合、パケットの処理が続行されます。ただし、NAT 制御をイネーブルにしている場合は例外です。NAT コントロールをイネーブルにした場合、セキュリティの高いインターフェイス(inside)からセキュリティの低いインターフェイス(outside)に移動するパケットは NAT ルールに一致する必要があり、一致しないとそのパケットの処理は停止します。(セキュリティ レベルの詳細については「セキュリティ レベルの概要」、NAT 制御の詳細については「NAT コントロール」を参照してください)。


) このマニュアルでは、通常すべてのタイプの変換を NAT と呼びます。NAT について説明する場合、内部および外部という用語も関連し、任意の 2 つのインターフェイス間のセキュリティ関係を表します。セキュリティ レベルの高い方が内部で、低い方が外部です。たとえば、インターフェイス 1 が 60 で、インターフェイス 2 が 50 という設定の場合、インターフェイス 1 が「内部」、インターフェイス 2 が「外部」となります。


NAT の利点の一部を紹介します。

内部ネットワークでプライベート アドレスを使用できます。プライベート アドレスは、インターネットにルーティングできません。(詳細については、「プライベート ネットワーク」を参照してください)。

NAT は他のネットワークから実アドレスを隠すので、攻撃側はホストの実アドレスを突き止めることができません。

重複アドレスなど、IP ルーティングの問題を解決できます。

NAT でサポートされないプロトコルについては、表 25-1を参照してください。

図 17-1 は、内部にプライベート ネットワークを持つ典型的な NAT シナリオを示しています。内部ホスト 10.1.2.27 が Web サーバにパケットを送信すると、パケットの実際の送信元アドレス 10.1.2.27 はマッピング アドレス 209.165.201.10 に変更されます。サーバが応答すると、応答がマッピング アドレス 209.165.201.10 に送信されます。そのパケットをセキュリティ アプライアンスが受信します。セキュリティ アプライアンスはその後、パケットをホストに送信する前に、マッピング アドレス 209.165.201.10 を変換して実際のアドレス 10.1.2.27 に戻します。

図 17-1 NAT の例

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (inside) 1 10.1.2.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.1-209.165.201.15

NAT コントロール

NAT 制御では、内部インターフェイスから外部インターフェイスへのパケットは NAT ルールと一致する必要があります。内部ネットワークのホストから外部ネットワークのホストにアクセスする場合は、内部ホスト アドレスを変換するように NAT を設定する必要があります(図 17-2 を参照)。

図 17-2 NAT 制御と発信トラフィック

 

セキュリティ レベルが同じインターフェイス同士で通信する場合には、NAT を使用する必要はありません。ただし、ダイナミック NAT または PAT を同じセキュリティ レベルのインターフェイス上に設定した場合は、そのインターフェイスから同じセキュリティ レベルのインターフェイス、または外部インターフェイスに向かうすべてのトラフィックは、NAT 規則と一致する必要があります(図 17-3 を参照)。

図 17-3 NAT 制御と同一セキュリティ トラフィック

 

同様に、外部のダイナミック NAT または PAT をイネーブルにした場合、すべての外部トラフィックは、内部インターフェイスにアクセスするときに、NAT 規則と一致する必要があります(図 17-4 を参照)。

図 17-4 NAT 制御と着信トラフィック

 

スタティック NAT では、これらの制約は発生しません。

デフォルトでは、NAT コントロールはディセーブルであるため、NAT の実行を選択しない限り、どのネットワークでも NAT を実行する必要はありません。ただし、新バージョンのソフトウェアにアップグレードした場合、NAT 制御がイネーブルになっていることがあります。NAT 制御がディセーブルになっている場合でも、ダイナミック NAT を設定するすべてのアドレスで NAT を実行する必要があります。ダイナミック NAT の適用方法については、「ダイナミック NAT および PAT の実装」を参照してください。

NAT 制御によってセキュリティ レベルを上げる必要があるが、一部のケースで内部アドレスを変換しない場合、このようなアドレスに NAT 除外またはアイデンティティ NAT ルールを適用できます。(詳細については、「NAT のバイパス」を参照してください)。

NAT 制御を設定するには、「NAT 制御の設定」を参照してください。


) マルチ コンテキスト モードでは、共有インターフェイスで固有の MAC アドレスをイネーブルにしない場合、パケット分類子が NAT コンフィギュレーションに依存してパケットをコンテキストに割り当てる場合があります。分類機能と NAT の関係の詳細については、「セキュリティ アプライアンスによるパケットの分類方法」を参照してください。


NAT のタイプ

ここでは、使用可能な NAT タイプについて説明します。アドレス変換は、ダイナミック NAT、ポート アドレス変換(PAT)、スタティック NAT、もしくはスタティック PAT、またはこれらのタイプの組み合わせとして実装できます。NAT 制御をイネーブルにしても NAT を実行しない場合など、NAT をバイパスするルールを設定することもできます。この項では、次のトピックについて取り上げます。

「ダイナミック NAT」

「PAT」

「スタティック NAT」

「スタティック PAT」

「NAT 制御がイネーブルな状態での NAT のバイパス」

ダイナミック NAT

ダイナミック NAT では、実際のアドレスのグループは、宛先ネットワーク上でルーティング可能なマッピング アドレスのプールに変換されます。マッピング プールには、実アドレス グループよりも少ない数のアドレスを含めることができます。変換対象のホストが宛先ネットワークにアクセスすると、セキュリティ アプライアンスは、マッピング プールから IP アドレスをそのホストに割り当てます。この変換は、実ホストが接続を開始するときにだけ追加されます。変換が有効なのは、接続されている間だけなので、どのユーザも変換のタイムアウト後に同じ IP アドレスを維持することはできません(『 Cisco Security Appliance Command Reference 』の timeout xlate コマンドを参照)。そのため、宛先ネットワークのユーザは、ダイナミック NAT を使用するホストに対して(接続がアクセス リストによって許可された場合でも)、接続を確実に開始することはできず、セキュリティ アプライアンス は実ホスト アドレスに直接行われる接続試行をすべて拒否します。ホストへの確実なアクセスについては、次の「スタティック NAT」または「スタティック PAT」の項を参照してください。


) 場合によっては、セッションがセキュリティ アプライアンスにより拒否されたときでも、接続に変換が追加されます(show xlate コマンドを参照)。この状況は、発信アクセス リスト、管理専用インターフェイス、またはバックアップ インターフェイスで発生します。変換は正常にタイム アウトします。


図 17-5 は、リモート ホストによる実アドレスへの接続試行を示しています。セキュリティ アプライアンス はマップ アドレスへの戻り接続しか許可しないため、接続は拒否されます。

図 17-5 リモート ホストによる実アドレスへの接続試行

 

図 17-6 に、マッピング アドレスへの接続開始を試みているリモート ホストを示します。このアドレスは現在変換テーブルにないため、セキュリティ アプライアンス はパケットを廃棄します。

図 17-6 マッピング アドレスへの接続開始を試みているリモート ホスト

 


) 変換の実施中、リモート ホストから、変換されたホストへの接続を開始できます(その接続がアクセス リストで許可されている場合)。アドレスは予測不可能であるため、ホストへの接続は確立されません。ただし、この場合、アクセス リストのセキュリティを利用できます。


ダイナミック NAT には、次の欠点があります。

マッピングされたプールにあるアドレスが実際のグループより少ない場合、予想以上にトラフィックが多いと、アドレスが不足する可能性があります。

この事象が発生した場合には、PAT を使用します。PAT では、単一アドレスのポートを使用して 64,000 を超える変換を処理できるためです。

マッピング プールでは、ルーティング可能なアドレスを多数使用する必要があります。インターネットのように宛先ネットワークで登録済みアドレスが必要になる場合は、使用可能なアドレスが不足することがあります。

ダイナミック NAT の利点は、一部のプロトコルが PAT を使用できないということです。たとえば、PAT は GRE バージョン 0 などポートが過負荷にならない IP プロトコルでは機能しません。また、データ ストリームと制御パスが別々のポートにあり、オープン規格でないアプリケーション(一部のマルチメディア アプリケーション)でも機能しません。NAT および PAT のサポートの詳細については、「アプリケーション プロトコル インスペクションを使用するタイミング」を参照してください。

PAT

PAT は、複数の実アドレスを単一のマッピング IP アドレスに変換します。具体的には、セキュリティ アプライアンスが複数の実際のアドレスおよび送信元ポート(実際のソケット)を 1 つのマッピング アドレスおよび 1024 より上の一意のポート(マッピング ソケット)に変換します。接続ごとに送信元ポートが異なるため、それぞれの接続で個別に変換を行う必要があります。たとえば、10.1.1.1:1025 には、10.1.1.1:1026 とは別の変換が必要です。

接続の有効期限が切れると、ポート変換も 30 秒間の非アクティブ状態の後に有効期限切れになります。このタイムアウトは変更できません。宛先ネットワーク上のユーザは、PAT を使用するホストに対して(アクセス リストによって接続が許可されていた場合でも)、接続を確実に開始することはできません。ホストの実またはマップ ポート番号を予測できないだけでなく、セキュリティ アプライアンス は変換対象ホストが接続を開始する側でない限り、変換を作成しません。ホストへの確実なアクセスについては、次の「スタティック NAT」または「スタティック PAT」の項を参照してください。

PAT では単一のマッピング先のアドレスを使用するため、ルーティング可能なアドレスの使用を抑えることができます。さらに、セキュリティ アプライアンス インターフェイスの IP アドレスを PAT アドレスとして使用できます。PAT は、データ ストリームが制御パスとは別のものであるマルチメディア アプリケーションでは機能しません。NAT および PAT のサポートの詳細については、「アプリケーション プロトコル インスペクションを使用するタイミング」を参照してください。


) 変換の実施中、リモート ホストから、変換されたホストへの接続を開始できます(その接続がアクセス リストで許可されている場合)。実際のポート アドレスおよびマッピング ポート アドレスはどちらも予測不可能であるため、ホストへの接続は確立されません。ただし、この場合は、アクセス リストのセキュリティに依存できます。ただし、ポリシー PAT では時間ベースの ACL をサポートしていません。


スタティック NAT

スタティック NAT では、実アドレスからマッピング先のアドレスへの固定変換が作成されます。ダイナミック NAT および PAT では、各ホストは、後続の変換ごとに異なるアドレスまたはポートを使用します。スタティック NAT では連続する各接続においてマッピング先のアドレスは同じであり、固定の変換ルールが存在するため、スタティック NAT では、宛先ネットワーク上のホストは変換されたホストへのトラフィックを開始できます(それを許可するアクセス リストがある場合)。

ダイナミック NAT とスタティック NAT のアドレス範囲における主な相違は、スタティック NAT では、(アクセス リストで許可されていれば)リモート ホストから変換対象ホストへ接続を開始できるのに対して、ダイナミック NAT では開始できないことです。また、スタティック NAT では、実アドレスと同じ数のマッピング先のアドレスが必要です。

スタティック PAT

スタティック PAT はスタティック NAT と同じですが、実アドレスとマッピング先のアドレスに対してプロトコル(TCP または UDP)およびポートを指定できる点が異なります。

この機能を使用すると、複数の異なる static ステートメントで同じマッピング先のアドレスを指定できます。ただし、ステートメントごとにポートが異なる必要があります(複数のスタティック NAT ステートメントに対して同じマッピング先のアドレスを使用できません)。

セカンダリ チャネル(FTP、VoIP など)でアプリケーション インスペクションを必要とするアプリケーションの場合、セキュリティ アプライアンスはセカンダリ ポートを自動的に変換します。

たとえば、FTP、HTTP、および SMTP にアクセスする複数のリモート ユーザに単一アドレスを提供し、実際にはそれぞれが実ネットワーク上の別々のサーバである場合、マップ IP アドレスは同じでもポートが異なる各サーバに対し、スタティック PAT ステートメントを指定できます(図 17-7 を参照)。

図 17-7 スタティック PAT

 

この例について、次のコマンドを参照してください。

hostname(config)# static (inside,outside) tcp 209.165.201.3 ftp 10.1.2.27 ftp netmask 255.255.255.255
hostname(config)# static (inside,outside) tcp 209.165.201.3 http 10.1.2.28 http netmask 255.255.255.255
hostname(config)# static (inside,outside) tcp 209.165.201.3 smtp 10.1.2.29 smtp netmask 255.255.255.255
 

スタティック PAT を使用して、well-known ポートを非標準ポートに、またはその逆に変換することもできます。たとえば、内部 Web サーバがポート 8080 を使用する場合、外部ユーザにポート 80 へのアクセスを許可したあと、元のポート 8080 に対する変換を取り消すことができます。同様に、セキュリティを強化する場合に、Web ユーザに非標準ポート 6785 に接続するように通知したあと、ポート 80 に対する変換を取り消すことができます。

NAT 制御がイネーブルな状態での NAT のバイパス

NAT コントロールをイネーブルにした場合、内部ホストは、外部ホストにアクセスするときに NAT ルールに一致する必要があります。一部のホストに対して NAT を実行しない場合は、それらのホストに関する NAT をバイパスします(あるいは、NAT コントロールをディセーブルにします)。NAT をサポートしないアプリケーションを使用している場合などに、NAT をバイパスできます(NAT をサポートしないインスペクション エンジンについては、「アプリケーション プロトコル インスペクションを使用するタイミング」を参照してください)。

3 通りの方法で、NAT をバイパスするようにトラフィックを設定できます。どの方法でも、インスペクション エンジンとの互換性が確保されます。ただし、機能は少しずつ異なります。

アイデンティティ NAT nat 0 コマンド):アイデンティティ NAT(ダイナミック NAT に似ています)を設定するときは、特定のインターフェイスでホストの変換を制限するのではなく、すべてのインターフェイスを経由する接続にアイデンティティ NAT を使用する必要があります。このため、インターフェイス A にアクセスするときには実アドレスに対して通常の変換の実行を選択できませんが、インターフェイス B にアクセスするときにはアイデンティティ NAT を使用できます。一方、通常のダイナミック NAT では、アドレス変換を実施する特定のインターフェイスを指定できます。アイデンティティ NAT を使用する実アドレスが、アクセス リストに従って使用できるすべてのネットワークでルーティング可能であることを確認します。

アイデンティティ NAT の場合、マッピング先のアドレスは実アドレスと同じですが、外部から内部への接続を(インターフェイスのアクセス リストで許可されていても)開始できません。この機能には、スタティックなアイデンティティ NAT または NAT 免除を使用してください。

スタティック アイデンティティ NAT( static コマンド):スタティック アイデンティティ NAT を使用すると、実アドレスを見せてもよいインターフェイスを指定できるので、インターフェイス A にアクセスするときにアイデンティティ NAT を使用し、インターフェイス B にアクセスするときに標準変換を使用することが可能です。スタティック アイデンティティ NAT では、ポリシー NAT も使用できます。この場合、変換する実アドレスを決定するときに、実アドレスと宛先アドレスを指定します(ポリシー NAT の詳細については、「ポリシー NAT」を参照してください)。たとえば、内部アドレスから外部インターフェイスにアクセスし、宛先がサーバ A の場合に、内部アドレスにスタティック アイデンティティ NAT を使用し、外部サーバ B にアクセスするときには標準変換を使用するといったことが可能です。

NAT 免除 nat 0 access-list コマンド):NAT 免除を使用すると、変換後のホストとリモート ホストの両方が接続を開始できます。アイデンティティ NAT と同様に、特定のインターフェイスでホストの変換を制限するのではなく、すべてのインターフェイスを経由する接続に NAT 免除を使用する必要があります。ただし、NAT 免除では、変換する実アドレスを判別するときに実アドレスおよび宛先アドレスを指定できるため(ポリシー NAT に似ています)、NAT 免除を使用する方が制御の柔軟性が増します。その反面、ポリシー NAT と異なり、NAT 免除ではアクセス リストのポートが考慮されません。

ポリシー NAT

ポリシー NAT を使用すると、拡張アクセス リストに送信元アドレスおよび宛先アドレスを指定することにより、アドレス変換の実アドレスを識別できます。任意で送信元ポートおよび宛先ポートを指定することもできます。通常の NAT でのみ、実アドレスを考慮できます。たとえば、実アドレスがサーバ A にアクセスするときにはその実アドレスをマッピング先のアドレス A に変換できますが、実アドレスがサーバ B にアクセスするときにはその実アドレスをマッピング先のアドレス B に変換できます。


) ポリシー NAT では時間ベースの ACL をサポートしていません。


セカンダリ チャネルのアプリケーション インスペクションを必要とするアプリケーション(FTP、VoIP など)に対してポリシー NAT のポートを指定すると、セキュリティ アプライアンスは自動的にセカンダリ ポートを変換します。


) NAT 免除以外のすべてのタイプの NAT が、ポリシー NAT をサポートします。NAT 免除はアクセス リストを使用して実アドレスを識別しますが、ポリシー NAT とは異なり、ポートが考慮されません。その他の相違点については、「NAT のバイパス」を参照してください。ポリシー NAT をサポートするスタティックなアイデンティティ NAT を使用すると、NAT 免除と同じ結果を得ることができます。


図 17-8 に、2 台の異なるサーバにアクセスしている 10.1.2.0/24 ネットワークのホストを示します。ホストがサーバ 209.165.201.11 にアクセスすると、実際のアドレスは 209.165.202.129 に変換されます。ホストが 209.165.200.225 のサーバにアクセスすると、実アドレスが 209.165.202.130 に変換され、ホストがサーバと同じネットワーク上にあるように見せかけることができるため、ルーティングが可能になります。

図 17-8 異なる宛先アドレスを使用するポリシー NAT

 

この例について、次のコマンドを参照してください。

hostname(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.0 209.165.201.0 255.255.255.224
hostname(config)# access-list NET2 permit ip 10.1.2.0 255.255.255.0 209.165.200.224 255.255.255.224
hostname(config)# nat (inside) 1 access-list NET1
hostname(config)# global (outside) 1 209.165.202.129
hostname(config)# nat (inside) 2 access-list NET2
hostname(config)# global (outside) 2 209.165.202.130
 

図 17-9 に、送信元ポートおよび宛先ポートの使用例を示します。10.1.2.0/24 ネットワークのホストは Web サービスと Telnet サービスの両方を提供する 1 つのホストにアクセスします。ホストが Web サービスを求めてサーバにアクセスすると、実際のアドレスは 209.165.202.129 に変換されます。ホストが Telnet サービスを求めて同じサーバにアクセスすると、実際のアドレスは 209.165.202.130 に変換されます。

図 17-9 異なる宛先ポートを使用するポリシー NAT

 

この例について、次のコマンドを参照してください。

hostname(config)# access-list WEB permit tcp 10.1.2.0 255.255.255.0 209.165.201.11 255.255.255.255 eq 80
hostname(config)# access-list TELNET permit tcp 10.1.2.0 255.255.255.0 209.165.201.11 255.255.255.255 eq 23
hostname(config)# nat (inside) 1 access-list WEB
hostname(config)# global (outside) 1 209.165.202.129
hostname(config)# nat (inside) 2 access-list TELNET
hostname(config)# global (outside) 2 209.165.202.130
 

ポリシー スタティック NAT(および、同様にアクセス リストでトラフィックを識別する NAT 除外)の場合、変換対象ホストとリモート ホストの両方からトラフィックを発信できます。NAT アクセス リストは、変換対象ネットワークから発信されたトラフィックについては、実アドレスと 宛先 アドレスを指定しますが、リモート ネットワークから発信されたトラフィックについては、この変換を使用してホストに接続を許可されたリモート ホストの実アドレスと 送信元 アドレスを識別します。

図 17-10 に、変換済みのホストに接続するリモート ホストを示します。変換対象ホストには、ネットワーク 209.165.201.0/27 との双方向のトラフィックだけに対し実アドレスを変換する、ポリシー スタティック NAT 変換が設定されています。209.165.200.224/27 ネットワーク用の変換は存在しません。したがって、変換済みのホストはそのネットワークに接続できず、そのネットワークのホストも変換済みのホストに接続できません。

図 17-10 宛先アドレス変換を行うポリシー スタティック NAT

 

この例について、次のコマンドを参照してください。

hostname(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.224 209.165.201.0 255.255.255.224
hostname(config)# static (inside,outside) 209.165.202.128 access-list NET1
 

) ポリシー スタティック NAT の場合、変換を元に戻すときに、static コマンドの ACL は使用されません。パケット内の宛先アドレスがスタティック ルールのマッピング先のアドレスと一致する場合は、アドレスを未変換の状態に戻すのに、スタティック ルールが使用されます。



) ポリシー NAT は SQL*Net をサポートしませんが、標準 NAT は SQL*Net をサポートします。他のプロトコルの NAT サポートについては、「アプリケーション プロトコル インスペクションを使用するタイミング」を参照してください。


ポリシー スタティック NAT を使用して、異なる実際のアドレスを同じマッピング アドレスに変換することはできません。たとえば、図 17-11 にある 2 つの内部ホスト、10.1.1.1 と 10.1.1.2 を 209.165.200.225 に変換する必要があるとします。外部ホスト 209.165.201.1 が 209.165.200.225 に接続すると、この接続は 10.1.1.1 に転送されます。外部ホスト 209.165.201.2 が同じマッピング アドレス 209.165.200.225 に接続するときに、この接続を 10.1.1.2 に転送したくても、 アクセス リスト内で使用できるソース アドレスは 1 つだけです。最初の ACE は 10.1.1.1 に対するものであるため、209.165.201.1 および 209.165.201.2 から 209.165.200.255 への着信接続はすべて、宛先アドレスが 10.1.1.1 に変換されます。

図 17-11 実際のアドレスは同一のマッピング アドレスを共有できない

 

この例について、次のコマンドを参照してください (例の 2 つ目の ACE は、209.165.201.2 が 209.165.200.225 に接続することを許可していますが、10.1.1.1 への変換を許可しているのは 209.165.200.225 だけです)。

hostname(config)# static (in,out) 209.165.200.225 access-list policy-nat
hostname(config)# access-list policy-nat permit ip host 10.1.1.1 host 209.165.201.1

hostname(config)# access-list policy-nat permit ip host 10.1.1.2 host 209.165.201.2

NAT および同じセキュリティ レベルのインターフェイス

セキュリティ レベルが同じインターフェイス間では、NAT コントロールをイネーブルにした場合でも、NAT は必要ありません。必要に応じて任意で NAT を設定できます。ただし、NAT 制御がイネーブルになっている場合にダイナミック NAT を設定するときは、NAT が必要です。詳細については、「NAT コントロール」を参照してください。また、同一セキュリティ レベルのインターフェイス上でダイナミック NAT または PAT に対して IP アドレス グループを指定する場合、そのアドレス グループが下位または同一セキュリティ レベルのインターフェイスにアクセスするときには、アドレス グループに対して NAT を実行する必要があります(NAT 制御がイネーブルでない場合でも)。スタティック NAT として識別されたトラフィックは影響を受けません。

同一セキュリティ レベルの通信をイネーブルにする方法については、「同一セキュリティ レベルにあるインターフェイス間の通信の許可」を参照してください。


) 同一セキュリティ レベルのインターフェイス上に NAT を設定した場合、セキュリティ アプライアンス は VoIP インスペクション エンジンをサポートしません。これらのインスペクション エンジンには、Skinny、SIP、および H.323 が含まれます。サポートされるインスペクション エンジンについては、「アプリケーション プロトコル インスペクションを使用するタイミング」を参照してください。


実アドレス照合用 NAT コマンドの順序

セキュリティ アプライアンス は、次の順序で NAT コマンドに対して実アドレスを照合します。

1. NAT 除外( nat 0 access-list ):最初の一致が見つかるまで順番どおり。アイデンティティ NAT はこのカテゴリではなく、標準スタティック NAT または標準 NAT のカテゴリに含まれます。予想外の結果が生じる可能性があるので、NAT 除外ステートメントには重複するアドレスを指定しないことを推奨します。

2. スタティック NAT およびスタティック PAT(標準およびポリシー)( static ):順序に従って、最初の一致が見つかるまで続行されます。スタティック アイデンティティ NAT はこのカテゴリに含まれません。

3. ポリシー ダイナミック NAT( nat access-list ):最初の一致が見つかるまで順番どおり。アドレスの重複は可能です。

4. 標準ダイナミック NAT( nat ):最良の一致。標準アイデンティティ NAT はこのカテゴリに含まれます。NAT コマンドの順番は重要ではありません。実アドレスと最も一致した NAT ステートメントが使用されます。たとえば、インターフェイス上のすべてのアドレス(0.0.0.0)を変換する汎用ステートメントを作成できます。ネットワークのサブセット(10.1.1.1)を別のアドレスに変換する場合は、10.1.1.1 だけを変換するステートメントを作成できます。10.1.1.1 が接続を開始する場合、実アドレスと最も一致するので、10.1.1.1 用のステートメントが使用されます。重複するステートメントの使用は推奨できません。メモリの消費量が増え、セキュリティ アプライアンス のパフォーマンスが低下する可能性があるからです。

マッピング アドレスの注意事項

実際のアドレスをマッピング アドレスに変換するときは、次のマッピング アドレスを使用できます。

マッピング インターフェイスと同じネットワーク上のアドレス

(セキュリティ アプライアンス から出ていくトラフィックが通過する)マッピング インターフェイスと同じネットワーク上のアドレスを使用した場合、セキュリティ アプライアンス はプロキシ ARP を使用してマッピング アドレスの要求に応答することによって、実アドレス宛てのトラフィックを代行受信します。この方法では、セキュリティ アプライアンス がその他のネットワークのゲートウェイである必要がないため、ルーティングが簡略化されます。ただし、この方法では、変換に使用できるアドレス数に限度があります。

PAT では、マッピング インターフェイスの IP アドレスも使用できます。

固有のネットワーク上のアドレス

マッピング インターフェイスで使用可能なアドレスより多くのアドレスが必要な場合は、別のサブネット上のアドレスを指定できます。セキュリティ アプライアンス は、プロキシ ARP を使用してマッピング アドレス要求に応答することによって、実アドレス宛てのトラフィックを代行受信します。マッピング インターフェイスとは異なるサブネットワークに属するマッピング IP アドレスをアドバタイズするために OSPF を使用する場合、マッピング インターフェイス IP 宛てのマッピング アドレスへのスタティック ルートを作成してから、このルートを OSPF に再配布する必要があります。マッピング インターフェイスがパッシブの場合(ルートをアドバタイズしない)、またはスタティック ルーティングを使用する場合は、マッピング アドレス宛てのトラフィックを セキュリティ アプライアンス に送信するアップストリーム ルータ上でスタティック ルートを追加する必要があります。

DNS および NAT

応答内のアドレスを NAT コンフィギュレーションと一致するアドレスに置き換えて、DNS 応答を修正するようにセキュリティ アプライアンスを設定することが必要になる場合があります。DNS 修正は、各変換を設定するときに設定できます。

たとえば、DNS サーバが外部インターフェイスからアクセス可能であるとします。ftp.cisco.com というサーバが内部インターフェイス上にあります。ftp.cisco.com の実際のアドレス(10.1.3.14)を、外部ネットワーク上で可視のマッピング アドレス(209.165.201.10)にスタティックに変換するように、セキュリティ アプライアンスを設定します(図 17-12 を参照)。この場合、このスタティック文で DNS 応答修正をイネーブルにする必要があります。これにより、実際のアドレスを使用して ftp.cisco.com にアクセスすることを許可されている内部ユーザは、マッピング アドレスではなく実際のアドレスを DNS サーバから受信できるようになります。

内部ホストが ftp.cisco.com のアドレスを求める DNS 要求を送信すると、DNS サーバは応答でマッピング アドレス(209.165.201.10)を示します。セキュリティ アプライアンス は内部サーバのスタティック ステートメントを参照し、DNS 応答内のアドレスを 10.1.3.14 に変換します。DNS 応答修正をイネーブルにしない場合、内部ホストは ftp.cisco.com に直接アクセスする代わりに、209.165.201.10 にトラフィックを送信することを試みます。

図 17-12 DNS 応答修正

 

この例に対応するコマンドは、次のとおりです。

hostname(config)# static (inside,outside) 209.165.201.10 10.1.3.14 netmask 255.255.255.255 dns
 

) 別のネットワーク(たとえば、DMZ)上のユーザが外部 DNS サーバから ftp.cisco.com の IP アドレスも要求した場合、DNS 応答内の IP アドレスもこのユーザに対して変更されます。これは、ユーザが static コマンドで参照される内部インターフェイスを使用していない場合でも同様です。


図 17-13 に、外部の Web サーバと DNS サーバを示します。セキュリティ アプライアンスには、外部サーバ用のスタティック変換があります。この場合、ftp.cisco.com のアドレスを DNS サーバに要求すると、DNS サーバは応答で実際のアドレス 209.165.20.10 を示します。ftp.cisco.com のマッピング アドレス(10.1.2.56)が内部ユーザによって使用されるようにするには、スタティック変換に対して DNS 応答修正を設定する必要があります。

図 17-13 外部 NAT を使用する DNS 応答修正

 

この例に対応するコマンドは、次のとおりです。

hostname(config)# static (outside,inside) 10.1.2.56 209.165.201.10 netmask 255.255.255.255 dns
 

NAT 制御の設定

NAT 制御では、内部インターフェイスから外部インターフェイスへのパケットは NAT ルールと一致する必要があります。詳細については、「NAT コントロール」を参照してください。

NAT 制御をイネーブルにするには、次のコマンドを入力します。

hostname(config)# nat-control
 

NAT 制御をディセーブルにするには、このコマンドの no 形式を入力します。

ダイナミック NAT および PAT の使用方法

ここでは、ダイナミック NAT および PAT の設定方法について説明します。内容は次のとおりです。

「ダイナミック NAT および PAT の実装」

「ダイナミック NAT または PAT の設定」

ダイナミック NAT および PAT の実装

ダイナミック NAT と PAT の場合、最初に nat コマンドを設定し、変換する所定のインターフェイスの実アドレスを指定します。次に、別の global コマンドを設定して、別のインターフェイスから出るときのマッピング アドレスを指定します(PAT の場合、このアドレスは 1 つです)。NAT ID、各コマンドに割り当てる番号を比較して、各 nat コマンドと global コマンドを照合します(図 17-14 を参照)。

図 17-14 NAT およびグローバル ID の照合

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (inside) 1 10.1.2.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.3-209.165.201.10
 

同じ NAT ID を使用してインターフェイスごとに nat コマンドを入力できます。トラフィックが特定のインターフェイスから出ていくとき、これらすべてが同じ global コマンドを使用します。たとえば、内部インターフェイスと DMZ インターフェイスに NAT ID 1 を使用して、 nat コマンドを設定します。さらに、同様に ID 1 を使用して、外部インターフェイスに global コマンドを設定します。内部インターフェイスと DMZ インターフェイスからのトラフィックは、外部インターフェイスを出るときに、マップ プールまたは PAT アドレスを共有します(図 17-15 を参照)。

図 17-15 複数のインターフェイスにおける NAT コマンド

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (inside) 1 10.1.2.0 255.255.255.0
hostname(config)# nat (dmz) 1 10.1.1.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.3-209.165.201.10
 

同じ NAT ID を使用して、各インターフェイスに global コマンドを 1 つずつ入力することもできます。ID 1 を使用して、外部インターフェイスと DMZ インターフェイスに global コマンドを入力した場合、内部 nat コマンドでは、外部インターフェイスと DMZ インターフェイスの両方に送る場合に、トラフィックを変換することを指定します。同様に、DMZ インターフェイスにも ID 1 を使用して nat コマンドを入力した場合、DMZ トラフィックにも外部インターフェイス上の global コマンドが使用されます (図 17-16 を参照)。

図 17-16 複数のインターフェイスにおけるグローバルおよび NAT コマンド

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (inside) 1 10.1.2.0 255.255.255.0
hostname(config)# nat (dmz) 1 10.1.1.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.3-209.165.201.10
hostname(config)# global (dmz) 1 10.1.1.23
 

複数の異なる NAT ID を使用する場合は、さまざまな実アドレス セットにそれぞれ異なるマップ アドレスが割り当てられるように指定します。たとえば、内部インターフェイス上で、2 つの nat コマンドを 2 つの NAT ID で指定できます。外部インターフェイスでは、この 2 つの ID に対応する global コマンドを 2 つ設定できます。さらに、内部ネットワーク A のトラフィックが外部インターフェイスから出るときに、IP アドレスはプール A のアドレスに変換されます。内部ネットワーク B のトラフィックはプール B のアドレスに変換されます(図 17-17 を参照)。ポリシー NAT を使用する場合、各アクセス リストで宛先アドレスとポートが一意であれば、複数の nat コマンドに同一の実アドレスを指定できます。

図 17-17 異なる NAT ID

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (inside) 1 10.1.2.0 255.255.255.0
hostname(config)# nat (inside) 2 192.168.1.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.3-209.165.201.10
hostname(config)# global (outside) 2 209.165.201.11
 

同じ NAT ID を使用して、1 つのインターフェイスに複数の global コマンドを入力できます。この場合、セキュリティ アプライアンス は最初に、ダイナミック NAT の global コマンドをコンフィギュレーションで指定された順番どおりに使用し、次に PAT の global コマンドを順番どおりに使用します。特定のアプリケーションにダイナミック NAT を使用する必要があり、なおかつダイナミック NAT アドレスをすべて使い果たした場合に備えてバックアップ用の PAT ステートメントも必要だという場合、ダイナミック NAT global コマンドと PAT global コマンドの両方を入力します。同様に、1 つの PAT マップ ステートメントでサポートされる約 64,000 より多くの PAT セッションが必要な場合、PAT ステートメントを 2 つ入力できます(図 17-18 を参照)。

図 17-18 NAT および PAT の併用

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (inside) 1 10.1.2.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.3-209.165.201.4
hostname(config)# global (outside) 1 209.165.201.5
 

外部 NAT の場合は、外部 NAT 用の nat コマンド( outside キーワード)を指定する必要があります。内部インターフェイスにアクセスしたときにも同じトラフィックを変換する場合は(DMZ 上のトラフィックを内部インターフェイスにアクセスするときにも、外部インターフェイスにアクセスするときにも変換するような状況)、 outside オプションを使用せずに、別の nat コマンドを設定する必要があります。この場合、両方のステートメントで同じアドレスを指定し、同じ NAT ID を使用できます(図 17-19 を参照)。外部 NAT(DMZ インターフェイスから内部インターフェイス)の場合、内部ホストは static コマンドを使用して外部アクセスを許可するので、送信元アドレスと宛先アドレスの両方が変換されることに注意してください。

図 17-19 外部 NAT および内部 NAT の組み合わせ

 

この例について、次のコマンドを参照してください。

hostname(config)# nat (dmz) 1 10.1.1.0 255.255.255.0 outside
hostname(config)# nat (dmz) 1 10.1.1.0 255.255.255.0
hostname(config)# static (inside,dmz) 10.1.1.5 10.1.2.27 netmask 255.255.255.255
hostname(config)# global (outside) 1 209.165.201.3-209.165.201.4
hostname(config)# global (inside) 1 10.1.2.30-1-10.1.2.40
 

nat コマンドで IP アドレス グループを指定する場合、そのアドレス グループが下位または同一セキュリティ レベルのインターフェイスにアクセスするときに、そのアドレス グループに対して NAT を実行する必要があります。各インターフェイスで同じ NAT ID を持つ global コマンドを適用するか、 static コマンドを使用します。アドレス グループが上位セキュリティ レベルのインターフェイスにアクセスする場合、NAT は必要ありません。外部から内部に NAT を実行するには、 outside キーワードを使用して別個の nat コマンドを作成する必要があるためです。外部 NAT を適用する場合、アドレス グループがすべての上位セキュリティ レベルのインターフェイスにアクセスするときに、直前の NAT 要件がそのアドレス グループに対して有効になります。 static コマンドによって識別されたトラフィックは影響を受けません。

ダイナミック NAT または PAT の設定

ここでは、ダイナミック NAT またはダイナミック PAT の設定方法について説明します。ダイナミック NAT およびダイナミック PAT の設定方法はほぼ同じですが、NAT ではマップ アドレス範囲を指定するのに対して、PAT では単一アドレスを指定します。

図 17-20 に、一般的なダイナミック NAT のシナリオを示します。変換対象ホストだけが NAT セッションを作成することができ、応答トラフィックの返信が許可されます。マップ アドレスは global コマンドによって定義されたプールから動的に割り当てられます。

図 17-20 ダイナミック NAT

 

図 17-21 に、一般的なダイナミック PAT のシナリオを示します。変換対象ホストだけが NAT セッションを作成することができ、応答トラフィックの返信が許可されます。 global コマンドによって定義されたマップ アドレスは各変換で同一ですが、ポートは動的に割り当てられます。

図 17-21 ダイナミック PAT

 

ダイナミック NAT の詳細については、「ダイナミック NAT」を参照してください。PAT の詳細については、「PAT」を参照してください。


) NAT コンフィギュレーションを変更したときに、既存の変換がタイムアウトするまで待機せずに新しい NAT 情報を使用する必要がある場合は、clear xlate コマンドを使用して変換テーブルを消去できます。ただし、変換テーブルを消去すると、変換を使用している現在の接続がすべて切断されます。


ダイナミック NAT または PAT を設定するには、次の手順を実行します。


ステップ 1 次のコマンドのいずれかを入力して、変換する実際のアドレスを指定します。

ポリシー NAT:

hostname(config)# nat (real_interface) nat_id access-list acl_name [dns] [outside] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

他の nat コマンドで重複するアドレスを指定できます。たとえば、あるコマンドで 10.1.1.0 を指定し、別のコマンドで 10.1.1.1 を指定できます。トラフィックは最初の一致が見つかるまで順番にポリシー NAT コマンドと照合されます。または標準 NAT の場合は、最良の一致を使用します。

このコマンドのオプションについて説明します。

access-list acl_name :拡張アクセス リストを使用して、実アドレスと宛先アドレスを指定します。 access-list コマンドを使用してアクセス リストを作成します(「拡張アクセス リストの追加」を参照)。このアクセス リストには、 permit ACE のみを含めます。オプションで、 eq 演算子を使用して、アクセス リストに実際のポートと宛先ポートを指定できます。ポリシー NAT は、 inactive および time-range の各キーワードを考慮しますが、すべての inactive および time-range ACE を使用する ACL はサポートしません。

nat_id :1 ~ 65,535 の整数です。NAT ID は global コマンドの NAT ID と一致する必要があります。NAT ID の使用方法の詳細については、「ダイナミック NAT および PAT の実装」を参照してください。 0 は NAT 除外用として予約されています (NAT 除外の詳細については、「NAT 除外の設定」を参照してください)。

dns :DNS サーバにエントリが作成されているホストのアドレスを nat コマンドに指定し、なおかつ DNS サーバがクライアントとは異なるインターフェイス上に配置されている場合、クライアントと DNS サーバに必要なホスト アドレスはそれぞれ異なります。一方はマップ アドレスが必要で、もう一方は実アドレスが必要です。このオプションは、クライアントに送信される DNS 応答内のアドレスを書き換えます。変換対象のホストは、クライアントまたは DNS サーバのいずれかと同じインターフェイス上に存在していなければなりません。一般に、他のインターフェイスからのアクセスを許可する必要があるホストは static 変換を使用するため、 static コマンドではこのオプションの方が使用される可能性が高くなります。(詳細については、「DNS および NAT」を参照してください)。

outside :このインターフェイスのセキュリティ レベルが global ステートメントの一致によって特定されたインターフェイスより低い場合、 outside を入力し、NAT インスタンスを外部 NAT として指定する必要があります。

norandomseq tcp tcp_max_conns udp udp_max_conns 、および emb_limit :これらのキーワードは、接続制限値を設定します。ただし、接続制限値の設定には、より汎用的な方法を使用することをお勧めします。「接続の制限値とタイムアウトの設定」を参照してください。

標準 NAT

hostname(config)# nat (real_interface) nat_id real_ip [mask [dns] [outside] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]]
 

nat_id は 1 ~ 2,147,483,647 の整数です。NAT ID は global コマンドの NAT ID と一致する必要があります。NAT ID の使用方法の詳細については、「ダイナミック NAT および PAT の実装」を参照してください。 0 はアイデンティティ NAT 用として予約されています。アイデンティティ NAT の詳細については、「アイデンティティ NAT の設定」を参照してください。

その他のオプションについては、前述のポリシー NAT コマンドを参照してください。

ステップ 2 次のコマンドを入力して、特定のインターフェイスから送信される実アドレスに割り当てるマップ アドレス(複数可)を指定します。

hostname(config)# global (mapped_interface) nat_id {mapped_ip[-mapped_ip] | interface}
 

この NAT ID は nat コマンドの NAT ID と一致する必要があります。対応する nat コマンドで、このインターフェイスを出るときに変換するアドレスを指定します。

単一アドレス(PAT の場合)またはアドレス範囲(NAT の場合)を指定できます。範囲は必要に応じて、サブネット境界を超えて指定できます。次に、指定できる「スーパーネット」の例を示します。

192.168.1.1-192.168.2.254
 


 

たとえば、内部インターフェイス上の 10.1.1.0/24 ネットワークを変換するには、次のコマンドを入力します。

hostname(config)# nat (inside) 1 10.1.1.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.1-209.165.201.30
 

ダイナミック NAT 用のアドレス プールを、NAT プールを使い果たしたときのための PAT アドレスと共に指定するには、次のコマンドを入力します。

hostname(config)# nat (inside) 1 10.1.1.0 255.255.255.0
hostname(config)# global (outside) 1 209.165.201.5
hostname(config)# global (outside) 1 209.165.201.10-209.165.201.20
 

ルーティングの簡略化などのために、セキュリティの低い DMZ(非武装地帯)のネットワーク アドレスを変換して内部ネットワーク(10.1.1.0)と同じネットワーク上に表示するには、次のコマンドを入力します。

hostname(config)# nat (dmz) 1 10.1.2.0 255.255.255.0 outside dns
hostname(config)# global (inside) 1 10.1.1.45
 

ポリシー NAT を使用して、1 つの実アドレスに 2 つの宛先アドレスを指定するには、次のコマンドを入力します(図 17-8 を参照)。

hostname(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.0 209.165.201.0 255.255.255.224
hostname(config)# access-list NET2 permit ip 10.1.2.0 255.255.255.0 209.165.200.224 255.255.255.224
hostname(config)# nat (inside) 1 access-list NET1 tcp 0 2000 udp 10000
hostname(config)# global (outside) 1 209.165.202.129
hostname(config)# nat (inside) 2 access-list NET2 tcp 1000 500 udp 2000
hostname(config)# global (outside) 2 209.165.202.130
 

ポリシー NAT を使用して、1 つの実アドレス/宛先アドレス ペアに複数の異なるポートを指定するには、次のコマンドを入力します(図 17-9 を参照)。

hostname(config)# access-list WEB permit tcp 10.1.2.0 255.255.255.0 209.165.201.11 255.255.255.255 eq 80
hostname(config)# access-list TELNET permit tcp 10.1.2.0 255.255.255.0 209.165.201.11 255.255.255.255 eq 23
hostname(config)# nat (inside) 1 access-list WEB
hostname(config)# global (outside) 1 209.165.202.129
hostname(config)# nat (inside) 2 access-list TELNET
hostname(config)# global (outside) 2 209.165.202.130
 

スタティック NAT の使用

ここでは、スタティック変換の設定方法について説明します。

図 17-22 に、一般的なスタティック NAT のシナリオを示します。変換は常にアクティブであるため、変換対象ホストとリモート ホストの両方で接続を生成でき、マップ アドレスは static コマンドによって静的に割り当てられます。

図 17-22 スタティック NAT

 

同じ 2 つのインターフェイス間の、複数の static コマンドで、同じ実アドレスまたはマッピング先のアドレスを使用できません。同じマッピングされているインターフェイスに対して、 global コマンドでも定義されているマッピング先のアドレスを static コマンドで使用しないでください。

スタティック NAT の詳細については、「スタティック NAT」を参照してください。


static コマンドを削除しても、その変換を使用する既存の接続は影響を受けません。これらの接続を削除するには、clear local-host コマンドを入力します。

clear xlate コマンドで変換テーブルからスタティック変換を消去することはできません。 static コマンドを削除する必要があります。 clear xlate コマンドでは、 nat コマンドおよび global コマンドで作成したダイナミック変換だけを削除できます。


 

スタティック NAT を設定するには、次のいずれかのコマンドを入力します。

ポリシー スタティック NAT の場合、次のコマンドを入力します。

hostname(config)# static (real_interface,mapped_interface) {mapped_ip | interface} access-list acl_name [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

access-list コマンドを使用してアクセス リストを作成します(「拡張アクセス リストの追加」を参照)。このアクセス リストには、 permit ACE のみを含めます。アクセス リストで使用される送信元サブネット マスクは、マッピング アドレスにも使用されます。また、 eq 演算子を使用して、アクセス リストに実際のポートと宛先ポートも指定できます。ポリシー NAT では inactive キーワードまたは time-range キーワードは考慮されません。ポリシー NAT コンフィギュレーションでは、すべての ACE はアクティブであると見なされます。詳細については、「ポリシー NAT」を参照してください。

変換のためのネットワークを指定すると(10.1.1.0 255.255.255.0 など)、セキュリティ アプライアンスは .0 と .255 のアドレスを変換します。これらのアドレスへのアクセスを禁止する場合は、アクセスを拒否するようにアクセス リストを設定する必要があります。

その他のオプションについては、「ダイナミック NAT または PAT の設定」を参照してください。


) スタティック NAT を使用して適用される初期接続の制限は、指定したインターフェイス間の接続だけでなく、実際の IP アドレスへ、または実際の IP アドレスからのすべての接続に適用されます。特定のフローに制限を適用するには、「接続の制限値とタイムアウトの設定」を参照してください。


標準スタティック NAT を設定する場合は、次のコマンドを入力します。

hostname(config)# static (real_interface,mapped_interface) {mapped_ip | interface} real_ip [netmask mask] [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

オプションについては、「ダイナミック NAT または PAT の設定」を参照してください。


) スタティック NAT を使用して適用される初期接続の制限は、指定したインターフェイス間の接続だけでなく、実際の IP アドレスへ、または実際の IP アドレスからのすべての接続に適用されます。特定のフローに制限を適用するには、「接続の制限値とタイムアウトの設定」を参照してください。


次のポリシー スタティック NAT の例では、1 つの実アドレスが宛先アドレスに応じて 2 つのマップ アドレスに変換されます(図 17-8 を参照)。

hostname(config)# access-list NET1 permit ip host 10.1.2.27 209.165.201.0 255.255.255.224
hostname(config)# access-list NET2 permit ip host 10.1.2.27 209.165.200.224 255.255.255.224
hostname(config)# static (inside,outside) 209.165.202.129 access-list NET1
hostname(config)# static (inside,outside) 209.165.202.130 access-list NET2
 

次のコマンドでは、内部 IP アドレス(10.1.1.3)を外部 IP アドレス(209.165.201.12)にマッピングします。

hostname(config)# static (inside,outside) 209.165.201.12 10.1.1.3 netmask 255.255.255.255
 

次のコマンドでは、外部アドレス(209.165.201.15)を内部アドレス(10.1.1.6)にマッピングします。

hostname(config)# static (outside,inside) 10.1.1.6 209.165.201.15 netmask 255.255.255.255
 

次のコマンドでは、サブネット全体をスタティックにマッピングします。

hostname(config)# static (inside,dmz) 10.1.1.0 10.1.2.0 netmask 255.255.255.0
 

スタティック PAT の使用

ここでは、スタティック ポート変換の設定方法について説明します。スタティック PAT を使用すると、実 IP アドレスをマップ IP アドレスに変換し、さらに実ポートをマップ ポートに変換できます。同じポートを変換する場合は、特定のトラフィック タイプを変換できます。または、別のポートに変換することによってさらに細かく制御することもできます。

図 17-23 に、一般的なスタティック PAT の使用例を示します。この変換は常にアクティブであるため、変換済みのホストとリモート ホストの両方が接続を開始でき、マッピング アドレスとポートは static コマンドによってスタティックに割り当てられます。

図 17-23 スタティック PAT

 

セカンダリ チャネル(FTP、VoIP など)でアプリケーション インスペクションを必要とするアプリケーションの場合、セキュリティ アプライアンスはセカンダリ ポートを自動的に変換します。

同じ 2 つのインターフェイス間の、複数の static ステートメントで、同じ実アドレスまたはマッピング先のアドレスを使用できません。同じマッピングされているインターフェイスに対して、 global コマンドでも定義されているマッピング先のアドレスを static コマンドで使用しないでください。

スタティック PAT の詳細については、「スタティック PAT」を参照してください。


static コマンドを削除しても、その変換を使用する既存の接続は影響を受けません。これらの接続を削除するには、clear local-host コマンドを入力します。

clear xlate コマンドで変換テーブルからスタティック変換を消去することはできません。 static コマンドを削除する必要があります。 clear xlate コマンドでは、 nat コマンドおよび global コマンドで作成したダイナミック変換だけを削除できます。


 

スタティック PAT を設定するには、次のいずれかのコマンドを入力します。

ポリシー スタティック PAT の場合、次のコマンドを入力します。

hostname(config)# static (real_interface,mapped_interface) {tcp | udp} {mapped_ip | interface} mapped_port access-list acl_name [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

access-list コマンドを使用してアクセス リストを作成します(「拡張アクセス リストの追加」を参照)。アクセス リストのプロトコルとこのコマンドで設定するプロトコルは一致している必要があります。たとえば、 static コマンドで tcp を指定する場合は、アクセス リストで tcp を指定する必要があります。ポートを指定するには、 eq 演算子を使用します。このアクセス リストには、 permit ACE のみを含めます。アクセス リストで使用される送信元サブネット マスクは、マッピング アドレスにも使用されます。ポリシー NAT では inactive キーワードまたは time-range キーワードは考慮されません。ポリシー NAT コンフィギュレーションでは、すべての ACE はアクティブであると見なされます。

変換のためのネットワークを指定すると(10.1.1.0 255.255.255.0 など)、セキュリティ アプライアンスは .0 と .255 のアドレスを変換します。これらのアドレスへのアクセスを禁止する場合は、アクセスを拒否するようにアクセス リストを設定する必要があります。

その他のオプションについては、「ダイナミック NAT または PAT の設定」を参照してください。


) スタティック NAT を使用して適用される初期接続の制限は、指定したインターフェイス間の接続だけでなく、実際の IP アドレスへ、または実際の IP アドレスからのすべての接続に適用されます。特定のフローに制限を適用するには、「接続の制限値とタイムアウトの設定」を参照してください。


標準スタティック PAT を設定する場合は、次のコマンドを入力します。

hostname(config)# static (real_interface,mapped_interface) {tcp | udp} {mapped_ip | interface} mapped_port real_ip real_port [netmask mask] [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

オプションについては、「ダイナミック NAT または PAT の設定」を参照してください。


) スタティック NAT を使用して適用される初期接続の制限は、指定したインターフェイス間の接続だけでなく、実際の IP アドレスへ、または実際の IP アドレスからのすべての接続に適用されます。特定のフローに制限を適用するには、「接続の制限値とタイムアウトの設定」を参照してください。



) FTP でスタティック PAT を設定する場合、TCP ポート 20 と 21 の両方にエントリを追加する必要があります。FTP トラフィック上で NAT を実行する他のデバイスを妨げるおそれがあるため、ポート 20 を指定して、アクティブな転送の送信元ポートが他のポートに変更されないようにする必要があります。


たとえば、10.1.3.0 ネットワーク上のホストからセキュリティ アプライアンス外のインターフェイス(10.1.2.14)に向かって開始される Telnet トラフィックの場合、次のコマンドを入力することによって、10.1.1.15 にある内部ホストにトラフィックをリダイレクトできます。

hostname(config)# access-list TELNET permit tcp host 10.1.1.15 eq telnet 10.1.3.0 255.255.255.0 eq telnet
hostname(config)# static (inside,outside) tcp 10.1.2.14 telnet access-list TELNET
 

10.1.3.0 ネットワーク上のホストからセキュリティ アプライアンス外のインターフェイス(10.1.2.14)に向かって開始される HTTP トラフィックの場合、次のように入力することによって、10.1.1.15 にある内部ホストにトラフィックをリダイレクトできます。

hostname(config)# access-list HTTP permit tcp host 10.1.1.15 eq http 10.1.3.0 255.255.255.0 eq http
hostname(config)# static (inside,outside) tcp 10.1.2.14 http access-list HTTP
 

Telnet トラフィックをセキュリティ アプライアンス外部インターフェイス(10.1.2.14)から内部ホスト 10.1.1.15 にリダイレクトするには、次のコマンドを入力します。

hostname(config)# static (inside,outside) tcp 10.1.2.14 telnet 10.1.1.15 telnet netmask 255.255.255.255
 

ただし、上記の実際の Telnet サーバが接続を開始できるようにするには、変換を追加する必要があります。たとえば、その他のすべてのタイプのトラフィックを変換するには、次のコマンドを入力します。元の static コマンドは、Telnet からサーバへの変換を行います。一方、 nat コマンドと global コマンドは、サーバからの発信接続のための PAT を指定します。

hostname(config)# static (inside,outside) tcp 10.1.2.14 telnet 10.1.1.15 telnet netmask 255.255.255.255
hostname(config)# nat (inside) 1 10.1.1.15 255.255.255.255
hostname(config)# global (outside) 1 10.1.2.14
 

すべての内部トラフィックについて個別の変換も保持し、内部ホストが Telnet サーバとは異なるマッピング先のアドレスを使用する場合でも、Telnet サーバから開始されるトラフィックが、サーバへの Telnet トラフィックを許可する static ステートメントと同じマッピング先のアドレスを使用するように設定できます。Telnet サーバ専用の、より排他的な nat ステートメントを作成する必要があります。 nat ステートメントは最も一致しているものが読み取られるため、より排他的な nat ステートメントは一般的なステートメントよりも前に一致します。次に、Telnet の static ステートメント、Telnet サーバから開始されるトラフィック用の、より排他的な nat ステートメント、および異なるマッピング先のアドレスを使用する他の内部ホスト用のステートメントの例を示します。

hostname(config)# static (inside,outside) tcp 10.1.2.14 telnet 10.1.1.15 telnet netmask 255.255.255.255
hostname(config)# nat (inside) 1 10.1.1.15 255.255.255.255
hostname(config)# global (outside) 1 10.1.2.14
hostname(config)# nat (inside) 2 10.1.1.0 255.255.255.0
hostname(config)# global (outside) 2 10.1.2.78
 

well-known ポート(80)を別のポート(8080)に変換するには、次のコマンドを入力します。

hostname(config)# static (inside,outside) tcp 10.1.2.45 80 10.1.1.16 8080 netmask 255.255.255.255
 

NAT のバイパス

ここでは、NAT のバイパス方法について説明します。NAT 制御をイネーブルにするときに、NAT をバイパスできます。アイデンティティ NAT、スタティック アイデンティティ NAT、または NAT 除外を使用することによって、NAT をバイパスできます。各方式の詳細については、「NAT 制御がイネーブルな状態での NAT のバイパス」を参照してください。この項では、次のトピックについて取り上げます。

「アイデンティティ NAT の設定」

「スタティック アイデンティティ NAT の設定」

「NAT 除外の設定」

アイデンティティ NAT の設定

アイデンティティ NAT では、実 IP アドレスを同一 IP アドレスに変換します。「変換対象」ホストだけが NAT 変換を作成することができ、応答トラフィックの返信が許可されます。

図 17-24 に、一般的なアイデンティティ NAT のシナリオを示します。

図 17-24 アイデンティティ NAT

 


) NAT コンフィギュレーションを変更したときに、既存の変換がタイムアウトするまで待機せずに新しい NAT 情報を使用する必要がある場合は、clear xlate コマンドを使用して変換テーブルを消去できます。ただし、変換テーブルを消去すると、変換を使用している現在の接続がすべて切断されます。


アイデンティティ NAT を設定するには、次のコマンドを入力します。

hostname(config)# nat (real_interface) 0 real_ip [mask [dns] [outside] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

オプションについては、「ダイナミック NAT または PAT の設定」を参照してください。

たとえば、内部のネットワーク 10.1.1.0/24 にアイデンティティ NAT を使用する場合、次のコマンドを入力します。

hostname(config)# nat (inside) 0 10.1.1.0 255.255.255.0
 

スタティック アイデンティティ NAT の設定

スタティック アイデンティティ NAT では、実際の IP アドレスが同じ IP アドレスに変換されます。変換は常にアクティブであるため、「変換対象」ホストとリモート ホストの両方で接続を生成できます。スタティック アイデンティティ NAT では、標準 NAT またはポリシー NAT を使用できます。ポリシー NAT の場合は、変換する実アドレスを決定するときに、実アドレスと宛先アドレスを指定します(ポリシー NAT の詳細については、「ポリシー NAT」を参照してください)。たとえば、内部アドレスが外部インターフェイスにアクセスし、宛先がサーバ A の場合に、内部アドレスにポリシー スタティック アイデンティティ NAT を使用します。ただし、外部サーバ B にアクセスするときには標準変換を使用します。

図 17-25 に、一般的なスタティック アイデンティティ NAT の使用例を示します。

図 17-25 スタティック アイデンティティ NAT

 


static コマンドを削除しても、その変換を使用する既存の接続は影響を受けません。これらの接続を削除するには、clear local-host コマンドを入力します。

clear xlate コマンドで変換テーブルからスタティック変換を消去することはできません。 static コマンドを削除する必要があります。 clear xlate コマンドでは、 nat コマンドおよび global コマンドで作成したダイナミック変換だけを削除できます。


 

スタティック アイデンティティ NAT を設定するには、次のいずれかのコマンドを入力します。

ポリシー スタティック アイデンティティ NAT を設定する場合は、次のコマンドを入力します。

hostname(config)# static (real_interface,mapped_interface) real_ip access-list acl_id [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

access-list コマンドを使用してアクセス リストを作成します(「拡張アクセス リストの追加」を参照)。このアクセス リストには、 permit ACE のみを含めます。アクセス リストの送信元アドレスが、このコマンドの real_ip と一致する必要があります。ポリシー NAT では inactive キーワードまたは time-range キーワードは考慮されません。ポリシー NAT コンフィギュレーションでは、すべての ACE はアクティブであると見なされます。詳細については、「ポリシー NAT」を参照してください。

その他のオプションについては、「ダイナミック NAT または PAT の設定」を参照してください。

標準スタティック アイデンティティ NAT を設定する場合、次のコマンドを入力します。

hostname(config)# static (real_interface,mapped_interface) real_ip real_ip [netmask mask] [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

両方の real_ip 引数に、同じ IP アドレスを指定します。

その他のオプションについては、「ダイナミック NAT または PAT の設定」を参照してください。

次のコマンドでは、外部からアクセスされたときに、スタティック アイデンティティ NAT を内部 IP アドレス(10.1.1.3)に対して使用します。

hostname(config)# static (inside,outside) 10.1.1.3 10.1.1.3 netmask 255.255.255.255
 

次のコマンドでは、内部からアクセスされたときに、スタティック アイデンティティ NAT を外部アドレス(209.165.201.15)に対して使用します。

hostname(config)# static (outside,inside) 209.165.201.15 209.165.201.15 netmask 255.255.255.255
 

次のコマンドでは、サブネット全体をスタティックにマッピングします。

hostname(config)# static (inside,dmz) 10.1.2.0 10.1.2.0 netmask 255.255.255.0
 

次のスタティック アイデンティティ ポリシー NAT の例で、ある宛先アドレスにアクセスするときにアイデンティティ NAT を使用し、別の宛先アドレスにアクセスするときには変換を使用する、単一実アドレスを示します。

hostname(config)# access-list NET1 permit ip host 10.1.2.27 209.165.201.0 255.255.255.224
hostname(config)# access-list NET2 permit ip host 10.1.2.27 209.165.200.224 255.255.255.224
hostname(config)# static (inside,outside) 10.1.2.27 access-list NET1
hostname(config)# static (inside,outside) 209.165.202.130 access-list NET2
 

NAT 除外の設定

NAT 除外ではアドレスを変換処理から除外して、実ホストとリモート ホストの両方で接続を開始できるようにします。NAT 除外では、(ポリシー NAT と同様)除外する実トラフィックを決定するときに実アドレスと宛先アドレスを指定できるので、アイデンティティ NAT を使用するよりも NAT 除外を使用する方がきめ細かい制御が行えます。その反面、ポリシー NAT と異なり、NAT 免除ではアクセス リストのポートが考慮されません。アクセス リストのポートを考慮するには、スタティック アイデンティティ NAT を使用します。

図 17-26 に、一般的な NAT 除外の使用例を示します。

図 17-26 NAT 免除

 


) NAT 除外コンフィギュレーションを削除しても、その NAT 除外を使用する既存の接続は影響を受けません。これらの接続を削除するには、clear local-host コマンドを入力します。


NAT 除外を設定するには、次のコマンドを入力します。

hostname(config)# nat (real_interface) 0 access-list acl_name [outside] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
 

access-list コマンドを使用してアクセス リストを作成します(「拡張アクセス リストの追加」を参照)。このアクセス リストには、 permit ACE と deny ACE の両方を含めることができます。アクセス リストで実ポートと宛先ポートを指定しないでください。NAT 除外では、ポートは考慮されません。NAT 免除は、 inactive および time-range の各キーワードを考慮しますが、すべての inactive および time-range ACE を使用する ACL はサポートしません。

インターフェイスごとに 1 個の NAT 免除ルールだけを適用できます。同じインターフェイスに対して別のルールを入力すると、古いルールは上書きされます。

その他のオプションについては、「ダイナミック NAT または PAT の設定」を参照してください。

デフォルトでは、このコマンドは内部から外部へのトラフィックを除外します。外部から内部へのトラフィックに対して NAT をバイパスする場合は、新たに nat コマンドを追加して outside を入力し、NAT インスタンスを外部 NAT として識別します。外部インターフェイスに対してダイナミック NAT を設定して、他のトラフィックを除外する場合は、外部 NAT 除外を使用できます。

たとえば、任意の宛先アドレスにアクセスするときに、内部ネットワークを除外するには、次のコマンドを入力します。

hostname(config)# access-list EXEMPT permit ip 10.1.2.0 255.255.255.0 any
hostname(config)# nat (inside) 0 access-list EXEMPT
 

DMZ ネットワークにダイナミック外部 NAT を使用し、他の DMZ ネットワークを除外するには、次のコマンドを入力します。

hostname(config)# nat (dmz) 1 10.1.2.0 255.255.255.0 outside dns
hostname(config)# global (inside) 1 10.1.1.45
hostname(config)# access-list EXEMPT permit ip 10.1.3.0 255.255.255.0 any
hostname(config)# nat (dmz) 0 access-list EXEMPT
 

2 つの異なる宛先アドレスにアクセスするときに、内部アドレスを除外するには、次のコマンドを入力します。

hostname(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.0 209.165.201.0 255.255.255.224
hostname(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.0 209.165.200.224 255.255.255.224
hostname(config)# nat (inside) 0 access-list NET1
 

NAT の例

ここでは、一般的な NAT ソリューションの使用例を示します。内容は次のとおりです。

「アドレスが重複するネットワーク」

「ポートのリダイレクション」

アドレスが重複するネットワーク

図 17-27 のセキュリティ アプライアンスには、アドレス範囲が重複する 2 つのプライベート ネットワークが接続されています。

図 17-27 重複したネットワークで外部 NAT を使用する場合

 

2 つのネットワークで重複するアドレス空間(192.168.100.0/24)が使用されていますが、各ネットワーク上のホストは(アクセス リストの許可に従って)相互に通信しなければなりません。NAT を使用しない場合、内部ネットワーク上のホストが重複した DMZ ネットワーク上のホストにアクセスしようとしても、パケットは セキュリティ アプライアンス を通過できません。パケットの宛先アドレスが内部ネットワーク上のアドレスであると見なされるためです。さらに、内部ネットワーク上の別のホストがその宛先アドレスを使用している場合は、そのホストがパケットを受信します。

この問題を解決するには、NAT を使用して重複しないアドレスを提供します。双方向にアクセスできるようにするには、両方のネットワークにスタティック NAT を使用します。内部インターフェイスから DMZ 上のホストへのアクセスだけを許可する場合は、内部アドレスにダイナミック NAT を使用し、アクセス先の DMZ アドレスにスタティック NAT を使用します。この例は、スタティック NAT を示しています。

この 2 つのインターフェイスにスタティック NAT を設定するための手順は、次のとおりです。DMZ 上のネットワーク 10.1.1.0/24 は変換されません。


ステップ 1 内部から DMZ にアクセスするときに、内部の 192.168.100.0/24 を 10.1.2.0/24 に変換するため、次のコマンドを入力します。

hostname(config)# static (inside,dmz) 10.1.2.0 192.168.100.0 netmask 255.255.255.0
 

ステップ 2 DMZ から内部にアクセスするときに、DMZ のネットワーク 192.168.100.0/24 を 10.1.3.0/24 に変換するため、次のコマンドを入力します。

hostname(config)# static (dmz,inside) 10.1.3.0 192.168.100.0 netmask 255.255.255.0
 

ステップ 3 DMZ ネットワークへのトラフィックがセキュリティ アプライアンスによって正しくルーティングされるように、次のスタティック ルートを設定します。

hostname(config)# route dmz 192.168.100.128 255.255.255.128 10.1.1.2 1
hostname(config)# route dmz 192.168.100.0 255.255.255.128 10.1.1.2 1
 

セキュリティ アプライアンス にはすでに、内部ネットワーク用に接続されたルートがあります。セキュリティ アプライアンス はこれらのスタティック ルートを使用して、ネットワーク 192.168.100.0/24 宛てのトラフィックを DMZ インターフェイスから 10.1.1.2 のゲートウェイ ルータに送信します (接続されたルートとまったく同じネットワークを指定してスタティック ルートを作成することはできないので、ネットワークを 2 つに分割する必要があります)。または、DMZ トラフィックにデフォルト ルートなど、より一般的なルートを使用することもできます。


 

DMZ ネットワーク上のホスト 192.168.100.2 が内部ネットワーク上のホスト 192.168.100.2 への接続を開始しようとすると、次のイベントが発生します。

1. DMZ ホスト 192.168.100.2 が IP アドレス 10.1.2.2 にパケットを送信します。

2. セキュリティ アプライアンス がこのパケットを受信すると、セキュリティ アプライアンス で送信元アドレスが 192.168.100.2 から 10.1.3.2 に変換されます。

3. その後、セキュリティ アプライアンス で宛先アドレスが 10.1.2.2 から 192.168.100.2 に変換されたあとで、パケットが転送されます。

ポートのリダイレクション

図 17-28 に、ポートのリダイレクション機能が役立つ一般的なネットワーク例を示します。

図 17-28 スタティック PAT を使用するポートのリダイレクション

 

ここで説明するコンフィギュレーションでは、外部ネットワーク上のホストに対してポート リダイレクションが次のように実行されます。

IP アドレス 209.165.201.5 に対する Telnet 要求は、10.1.1.6 にリダイレクトされます。

IP アドレス 209.165.201.5 に対する FTP 要求は、10.1.1.3 にリダイレクトされます。

セキュリティ アプライアンス の外部 IP アドレス 209.165.201.25 に対する HTTP 要求は、10.1.1.5 にリダイレクトされます。

PAT アドレス 209.165.201.15 に対する HTTP ポート 8080 要求は、10.1.1.7 のポート 80 にリダイレクトされます。

この実装を行うための設定手順は、次のとおりです。


ステップ 1 内部ネットワークに PAT を設定するため、次のコマンドを入力します。

hostname(config)# nat (inside) 1 0.0.0.0 0.0.0.0 0 0
hostname(config)# global (outside) 1 209.165.201.15
 

ステップ 2 209.165.201.5 への Telnet 要求を 10.1.1.6 にリダイレクトするため、次のコマンドを入力します。

hostname(config)# static (inside,outside) tcp 209.165.201.5 telnet 10.1.1.6 telnet netmask 255.255.255.255
 

ステップ 3 IP アドレス 209.165.201.5 への FTP 要求を 10.1.1.3 にリダイレクトするため、次のコマンドを入力します。

hostname(config)# static (inside,outside) tcp 209.165.201.5 ftp 10.1.1.3 ftp netmask 255.255.255.255
 

ステップ 4 次のコマンドを入力して、セキュリティ アプライアンス外部インターフェイス アドレスに対する HTTP 要求を 10.1.1.5 にリダイレクトします。

hostname(config)# static (inside,outside) tcp interface www 10.1.1.5 www netmask 255.255.255.255
 

ステップ 5 PAT アドレス 209.165.201.15 へのポート 8080 の HTTP 要求を 10.1.1.7 にリダイレクトするため、次のコマンドを入力します。

hostname(config)# static (inside,outside) tcp 209.165.201.15 8080 10.1.1.7 www netmask 255.255.255.255