IP : ネットワーク アドレス変換(NAT)

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

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2006 年 1 月 24 日) | 英語版 (2015 年 12 月 19 日) | フィードバック


目次


概要

Cisco ルータでスタティックとダイナミックの両方の Network Address Translation(NAT; ネットワーク アドレス変換)コマンドを設定する必要がある場合があります。 このテック ノートでは、これを行う方法とサンプル シナリオを掲載しています。

前提条件

要件

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

使用するコンポーネント

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

  • Cisco 3600 シリーズ ルータ

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

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

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

NAT の設定

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

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

例として、次のネットワーク ダイアグラムを取り上げます。

http://www.cisco.com/c/dam/en/us/support/docs/ip/network-address-translation-nat/13778-9a.gif

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

NAT ルータ
version 12.3

ip nat pool test 172.16.131.2 172.16.131.10 netmask 255.255.255.0
 


!--- Refer to 
ip nat pool
 for more details on the command.
.

ip nat inside source list 7 pool test  


!--- Refer to 
ip nat inside source
 for more details on the command.


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-list 7 によって許可された送信元アドレスのパケットが、ルータの内部インターフェイスによって受信されない限り、それ以外のトランスレーションは変換テーブルに生成も入力もされません。

しかし、ダイナミック トランスレーションがまだ 1 つも入力されていないため、外部デバイスは、たとえパケットをグローバル アドレス(172.16.131.2~172.16.131.10)に送信しても、どの内部デバイスにも到達できません。 これらのグローバル アドレスの 1 つに宛てたパケットをルータが受信すると、ルータは変換テーブルから既存のトランスレーションを探します。 既存のトランスレーションがない場合は、ルータはパケットのルーティングを試みます(このケースでは、シリアル インターフェイスに戻すことを意味します)。 この NAT の動作については、「ip nat outside source list コマンドを使用した設定例」と「Sample Configuration Using the ip nat outside source static Command」の 2 つのテック ノートを参照してください。

上記のトポロジでは、ネットワークの内部デバイスと外部デバイスの間の通信が内部デバイスによってのみ開始される場合は、ダイナミック トランスレーションがうまく機能します。 しかし、外部から送信されたパケットを受信する必要がある電子メール サーバを、内部ネットワークに追加するとどうなるでしょうか。 この場合は、外部の電子メール サーバが内部の電子メール サーバとの通信を開始できるように、スタティック 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

!--- Refer to 
ip nat inside source
 for more details on the command.


 interface e 0

 ip address 10.10.10.254 255.255.255.0

 ip nat inside 

!--- For more details the ip nat inside|outside command,
!--- please refer to 
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

上記の例では、NAT が serial 0 の IP アドレスをオーバーロードするように設定されています。 これは TCPポート 25 (SMTP)のローカルアドレス 10.10.10.1 から送信されるパケットがシリアル 0's IP アドレス TCPポート 25 に変換されるように同じグローバルアドレスへの複数の内部ローカルアドレスが、この場合、シリアル 0 に。割り当てられるアドレスさらに動的に変換することができることを NAT 静的に設定されます意味します。 これはスタティック 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 ではパケットがルータでスイッチングされる必要はなく、トランスレーションは変換テーブルに静的(スタティック)に入力されます。


関連情報


Document ID: 13778