IP : IP アドレッシング サービス

スタティック NAT とダイナミック NAT の同時設定

2006 年 1 月 24 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 1 月 24 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
NAT の設定
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

Cisco ルータでスタティックとダイナミックの両方の Network Address Translation(NAT; ネットワーク アドレス変換)コマンドを設定する必要がある場合があります。 このドキュメントでは、この設定方法と、設定例について説明します。

前提条件

要件

NAT の基本的な概念と動作について理解していれば役立ちます。

詳細については、このドキュメントの「関連情報」のセクションを参照してください。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco 3600 シリーズ ルータ

  • Cisco IOS(R) ソフトウェア リリース 12.3(3)

このドキュメントの情報は、特定のラボ環境にあるデバイスを使用して作成されたものです。 このドキュメント内で使用されているデバイスはすべて、クリアな設定(デフォルト)から作業を始めています。 対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

NAT の設定

ダイナミック NAT では、変換を必要とするトラフィックをルータが受信するまでは NAT テーブルにトランスレーションが存在しません。 ダイナミック トランスレーションにはタイムアウト時間があり、この時間を経過すると変換テーブルからトランスレーションが削除されます。

スタティック NAT では、スタティック NAT コマンドを設定したときからトランスレーションが NAT 変換テーブルに存在します。このトランスレーションは、スタティック NAT コマンドを削除するまで変換テーブルに存在し続けます。

次のネットワーク ダイアグラムに例を示します。

9a.gif

NAT の設定例
※ 画像をクリックすると、大きく表示されます。

前の図の NAT ルータでは、次のコマンドが設定されています。

NAT ルータ
 version 12.3
 
 ip nat pool test 172.16.131.2 172.16.131.10 netmask 255.255.255.0
  
 
 
 !--- コマンドの詳細については、『ip nat pool』を参照してください。
 
 .
 
 ip nat inside source list 7 pool test  
 
 
 !--- コマンドの詳細については、『ip nat inside source』を参照してください。
 
 
 
 ip nat inside source static 10.10.10.1 172.16.131.1
 
  interface e 0
 
  ip address 10.10.10.254 255.255.255.0
 
  ip nat inside
 
  interface s 0
 
  ip address 172.16.130.2 255.255.255.0
 
  ip nat outside
 
 ip route 192.168.1.0 255.255.255.0 172.16.130.1
 
  access-list 7 permit 10.10.10.0 0.0.0.255
 

OutsideA というデバイスの設定は次のとおりです。

OutsideA ルータ
 version 12.3
 hostname outsideA
 
 !
 !
 !
 interface Serial1/0
 
 ip address 172.16.130.1 255.255.255.0
 
 serial restart-delay 0
 
 clockrate 64000
 
 !
 
 interface FastEthernet2/0
 
 ip address 192.168.1.1 255.255.255.0
 
 speed auto
 
 half-duplex
 
 ip route 172.16.131.0 255.255.255.0 172.16.130.2
 

InsideA というデバイスの設定は次のとおりです。

InsideA ルータ
 version 12.3
 
 !
 interface Ethernet1/0
  ip address 10.10.10.1 255.255.255.0
  half-duplex
 !
 ip route 0.0.0.0 0.0.0.0 10.10.10.254
 !
 !
 

show ip nat translations コマンドを使用すると、変換テーブルの内容が次のように表示されます。

 NATrouter#show ip nat translations
 Pro Inside global    Inside local    Outside local    Outside global
 --- 172.16.131.1     10.10.10.1      ---              ---
 

変換テーブルにはスタティック トランスレーションのみがリストされている点に注意してください。 このエントリは、内部グローバル アドレスを内部ローカル アドレスに戻します。これは、外部クラウドのデバイスがグローバル アドレス 172.16.131.1 宛てに送信したパケットが、ローカル アドレスが 10.10.10.1 である内部クラウドのデバイスに到達できることを意味します。

同じことが次のように表示されます。

 outsideA#ping 172.16.131.1
 
 Type escape sequence to abort.
 Sending 5, 100-byte ICMP Echos to 172.16.131.1, timeout is 2 seconds:
 !!!!!
 Success rate is 100 percent (5/5), round-trip min/avg/max = 32/32/32 ms
 
  
 
 NATrouter#debug ip nat 
 
 18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1005]
 18:12:06: NAT: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1005]
 18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1006]
 18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1006]
 18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1007]
 18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1007]
 18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1008]
 18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1008]
 18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1009]
 18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1009]
 

access control list(ACL; アクセス コントロール リスト)7 によって許可された送信元アドレスのパケットが、ルータの内部インターフェイスによって受信されない限り、それ以外のトランスレーションは変換テーブルに生成も入力もされません。

しかし、ダイナミック トランスレーションがまだ 1 つも入力されていないため、外部デバイスは、たとえパケットをグローバル アドレス(172.16.131.2〜172.16.131.10)に送信しても、どの内部デバイス(10.10.10.1 以外)にも到達できません。 これらのグローバル アドレスの 1 つに宛てたパケットをルータが受信すると、ルータは変換テーブルから既存のトランスレーションを探します。 既存のトランスレーションがない場合は、ルータはパケットのルーティングを試みます。 NAT の動作の詳細については、『ip nat outside source list コマンドを使用した設定例』および『ip nat outside source static コマンドを使用した設定例』を参照してください。

上記のトポロジでは、ネットワークの内部デバイスと外部デバイスの間の通信が内部デバイスによってのみ開始される場合は、ダイナミック トランスレーションがうまく機能します。 しかし、外部から送信されたパケットを受信する必要がある内部ネットワークに電子メール サーバを追加するとどうなるでしょうか。 この場合は、外部の電子メール サーバが内部の電子メール サーバとの通信を開始できるように、スタティック NAT エントリを設定する必要があります。 上記の例で、電子メール サーバが 10.10.10.1 のローカル アドレスを持つデバイスであれば、すでにスタティック トランスレーションは存在します。

しかし、多くの場合は予備のグローバル アドレスが少ないため、NAT 用に単一のデバイスを静的に設定する必要がある場合は、次のような設定を使用できます。

NAT ルータ
 ip nat inside source list 7 interface serial 0 overload
 
 
 ip nat inside source static tcp 10.10.10.1 25 172.16.130.2 25
 
 !--- コマンドの詳細については、『ip nat inside source』を参照してください。
 
 
  interface e 0
 
  ip address 10.10.10.254 255.255.255.0
 
  ip nat inside 
 
 !--- ip nat inside|outside コマンドの詳細については、
 !---『ip nat inside』を参照してください。
 
 
  interface s 0
 
 ip address 172.16.130.2 255.255.255.0
 
 ip nat outside 
 
  access-list 7 permit 10.10.10.0 0.0.0.255
 
  ip route 0.0.0.0 0.0.0.0 172.16.130.1
 

上記の例では、Serial 0 の IP アドレスをオーバーロードするように NAT が設定されています。 これは、複数の内部ローカル アドレスを同じグローバル アドレス(このケースでは serial 0 に割り当てられたアドレス)ヘダイナミックに変換できることを意味します。さらに、NAT を静的に設定することによって、TCP ポートが 25(SMTP)のローカル アドレス 10.10.10.1 から送信されたパケットが、TCP ポートが 25 の serial 0 の IP アドレスに変換されます。これはスタティック NAT エントリであるため、外部にある電子メール サーバは、SMTP(TCP ポート 25)パケットをグローバル アドレス 172.16.131.254 に送信できます。

注:ダイナミック NAT とスタティック NAT の両方に同じグローバル アドレスを使用することは可能ですが、可能な限り異なるグローバル アドレスを使用することをお勧めします。

NAT 変換テーブルには次のエントリがあります。

 NATRouter#show ip nat translations
 
    Pro Inside global    Inside local   Outside local Outside global
 
    tcp 172.16.130.2:25  10.10.10.1:25      ---          --- 
 

debug ip nat の出力には、OutsideA デバイスが InsideA デバイスにアクセスするときの NAT 変換が次のように表示されます。

 04:21:16: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1    [9919]
 
    04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [0]
 
    04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9922]
 
    04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9923]
 
    04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [1]
 
    04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [2]
 
    04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [3]
 
    04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9927]
 
    04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [4]
 
    04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [5]
 
    04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9931]
 
    04:21:17: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9934]
 
    04:21:17: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9935]
 
    04:21:17: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [6]
 

要約すると、ダイナミック NAT では、変換テーブルに NAT トランスレーションを作成するには、パケットが NAT ルータでスイッチングされる必要があります。 ip nat inside コマンドを使用する場合、これらのパケットは内部から送信される必要があります。 ip nat outside コマンドを使用する場合、これらのパケットは外部から送信される必要があります。

スタティック NAT ではパケットがルータでスイッチングされる必要はなく、トランスレーションは変換テーブルに静的(スタティック)に入力されます。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報