はじめに
このドキュメントでは、ip nat outside source listコマンドの設定方法およびNATプロセス中にIPパケットがどうなるかについて説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。ただし、このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
-
Cisco 2500 シリーズ ルータ
-
すべてのルータで動作している Cisco IOS® ソフトウェア リリース 12.2(24a)
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このコマンドを使用して、ネットワークの外部からネットワークの内部に送信される IP パケットの送信元アドレスを変換できます。この操作により、ネットワークの内部から外部へ逆方向に移動するIPパケットの宛先アドレスが変換されます。このコマンドは、ネットワークの重複(内部のネットワーク アドレスがネットワークの外部アドレスに重複する)などの状況で役に立ちます。次のネットワーク構成図を例に説明します。
表記法
ドキュメントの表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。
設定
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。
注:この文書で使用されているコマンドの詳細を調べるには、「Command Lookup ツール」を使用してください(登録ユーザのみ)。
ネットワーク図
このドキュメントでは、次のネットワーク セットアップを使用します。
ルータ 2514W の Loopback0 インターフェイス(172.16.88.1)からルータ 2501E の Loopback0 インターフェイス(171.68.1.1)への ping を実行すると、次の事象が発生します。
デフォルト ルートを使用して設定されているため、ルータ 2514W によりパケットがルータ 2514X に転送されます。ルータ2514Xの外部インターフェイスでは、パケットの送信元アドレス(SA)は172.16.88.1で、宛先アドレス(DA)は171.68.1.1です。SAはaccess-list 1(ip nat outside source listコマンドで使用)で許可されているため、NATプールNet171のアドレスに変換されます。
ip nat outside source list コマンドはNATプール「Net171」を参照していることに注意してください。この場合、アドレスは、この NAT プールで最初に使用できるアドレスの 171.68.16.10 に変換されます。
変換後、ルータ2514Xはルーティングテーブルで宛先を検索し、パケットをルーティングします。ルータ2501Eは、SAが171.68.16.10、DAが171.68.1.1のパケットを着信インターフェイスで受信しています。ルータ 2501e はこのパケットに応答するために、Internet Control Message Protocol(ICMP)エコー応答を 171.68.16.10 に送信します。ルートがない場合はパケットを廃棄します。
この例では(デフォルト)ルートが存在するため、SAとして171.68.1.1を、DAとして171.68.16.10を使用して、ルータ2514Xにパケットを送信します。ルータ 2514X では、その内部インターフェイスでパケットを受信すると、アドレス 171.68.16.10 へのルートがチェックされます。経路がない場合、ICMP 到達不能応答で応答します。
この例では、171.68.16.10へのルートが存在するため、ip nat outside sourceコマンドのadd-routeオプションによって、外部グローバルアドレスと外部ローカルアドレス間の変換に基づいてホストルートが追加され、パケットが元の172.16.88.1アドレスに変換されて、外部インターフェイスからルーティングされます。
コンフィギュレーション
ルータ2514W |
hostname 2514W
!
!--- Output suppressed.
interface Loopback0
ip address 172.16.88.1 255.255.255.0
!
!--- Output suppressed.
interface Serial0
ip address 172.16.191.254 255.255.255.252
no ip mroute-cache
!
!--- Output suppressed.
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.191.253
!--- Default route to forward packets to 2514X.
!
!--- Output suppressed.
|
ルータ2514X |
hostname 2514X
!
!--- Output suppressed.
!
interface Ethernet1
ip address 171.68.192.202 255.255.255.0
ip nat inside
no ip mroute-cache
no ip route-cache
!
!--- Output suppressed.
interface Serial1
ip address 172.16.191.253 255.255.255.252
ip nat outside
no ip mroute-cache
no ip route-cache
clockrate 2000000
!
ip nat pool Net171 171.68.16.10 171.68.16.254 netmask 255.255.255.0
!--- NAT pool defining Outside Local addresses to be used for translation.
!
ip nat outside source list 1 pool Net171 add-route
!--- Configures translation for Outside Global addresses !--- with the NAT pool.
ip classless
ip route 172.16.88.0 255.255.255.0 172.16.191.254
ip route 171.68.1.0 255.255.255.0 171.68.192.201
!--- Static routes for reaching the loopback interfaces !--- on 2514W and 2501E.
access-list 1 permit 172.16.88.0 0.0.0.255
!--- Access-list defining Outside Global addresses to be translated.
!
!--- Output suppressed.
! |
ルータ2501E |
hostname 2501E
!
!--- Output suppressed.
interface Loopback0
ip address 171.68.1.1 255.255.255.0
!
interface Ethernet0
ip address 171.68.192.201 255.255.255.0
!
!--- Output suppressed.
ip classless
ip route 0.0.0.0 0.0.0.0 171.68.192.202
!--- Default route to forward packets to 2514X.
!
!--- Output suppressed.
|
確認
このセクションでは、設定が正常に動作しているかどうかを確認する際に役立つ情報を示しています。
特定のshowコマンドが、アウトプットインタープリタ(登録ユーザ専用)でサポートされています。このツールを使用すると、show コマンドの出力を分析できます。
show ip nat translationsコマンドを使用すると、次の出力に示すように、変換エントリをチェックできます。
2514X# show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 171.68.1.1 171.68.1.1 171.68.16.10 172.16.88.1
--- --- --- 171.68.16.10 172.16.88.1
2514X#
出力には、ルータ2514WのLoopback0インターフェイス上のアドレスである外部グローバルアドレス172.16.88.1が外部ローカルアドレス171.68.16.10に変換されることが示されています。
次に示されているように、ルーティング テーブル エントリを確認するために show ip route コマンドを使用できます。
2514X# show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
171.68.0.0/16 is variably subnetted, 3 subnets, 2 masks
C 171.68.192.0/24 is directly connected, Ethernet1
S 171.68.1.0/24 [1/0] via 171.68.192.201
S 171.68.16.10/32 [1/0] via 172.16.88.1
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
S 172.16.88.0/24 [1/0] via 172.16.191.254
C 172.16.191.252/30 is directly connected, Serial1
2514X#
この出力は、ip nat outside sourceコマンドのadd-routeオプションによって作成された、外部ローカルアドレス171.68.16.10の/32ルートを示しています。このルートは、ネットワークの内部から外部へ送信されるパケットのルーティングと変換に使用されます。
トラブルシュート
このセクションでは、設定のトラブルシューティングに役立つ情報を紹介します。
次の出力は、ルータ2514Wのloopback0インターフェイスのアドレス(172.16.88.1)からルータ2501Eのloopback0インターフェイスのアドレス(171.68.1.1)にpingを実行しながら、ルータ2514Xでdebug ip packetコマンドとdebug ip natコマンドを実行した結果です。
*Mar 1 00:02:48.079: NAT*: s=172.16.88.1->171.68.16.10, d=171.68.1.1 [95]
!--- The source address in the first packet arriving on !--- the outside interface is first translated.
*Mar 1 00:02:48.119: IP: tableid=0, s=171.68.16.10 (Serial1), d=171.68.1.1 (Ethernet1), routed via
RIB
*Mar 1 00:02:48.087: IP: s=171.68.16.10 (Serial1), d=171.68.1.1 (Ethernet1), g=171.68.192.201, len
100, forward
!--- The ICMP echo request packet with the translated source address !--- is routed and forwarded on the inside interface.
*Mar 1 00:02:48.095: IP: tableid=0, s=171.68.1.1 (Ethernet1), d=171.68.16.10 (Serial1), routed via
RIB
!--- The ICMP echo reply packet arriving on the inside interface !--- is first routed based on the destination address.
*Mar 1 00:02:48.099: NAT: s=171.68.1.1, d=171.68.16.10->172.16.88.1 [95]
!--- The destination address in the packet is then translated.
*Mar 1 00:02:48.103: IP: s=171.68.1.1 (Ethernet1), d=172.16.88.1 (Serial1), g=172.16.191.254, len 1
00, forward
!--- The ICMP echo reply packet with the translated destination !--- address is forwarded on the outside interface.
外部インターフェイスで受信されたすべてのパケットに対して、上記の手順が繰り返されます。
要約
ip nat outside source staticコマンド(スタティックNAT)の代わりにip nat outside source listコマンド(ダイナミックNAT)を使用する場合の大きな違いは、(NAT用に設定された)ルータによってパケットの変換基準が確認されるまで、変換テーブルにエントリがないことです。上の例では、SAが172.16.88.1のパケット(ルータ2514Xの外部インターフェイスに着信)がaccess-list 1を満たしています。この基準は、ip nat outside source listコマンドで使用されます。このため、内部ネットワークから送信されるパケットがルータ 2514W の loopback0 インターフェイスと通信するためには、まず外部ネットワークからパケットが発信される必要があります。
この例には、重要事項が 2 点含まれています。
第 1 に、外部から内部へパケットが送られるときは、最初に変換が行われてから、ルーティング テーブル内で宛先がチェックされます。内部から外部へパケットが送られるときは、最初にルーティング テーブル内で宛先がチェックされてから、変換が行われます。
第2に、前述の各コマンドを使用する際に、IPパケットのどの部分が変換されるかを覚えておくことが重要です。次の表にガイドラインを示します。
コマンド |
アクション |
ip nat outside source list |
- 外部から内部へ送られる IP パケットの送信元が変換される。
- 内部から外部へ送られる IP パケットの宛先が変換される。
|
ip nat inside source list |
- 内部から外部へ送られる IP パケットの送信元が変換される。
- 外部から内部へ送られる IP パケットの宛先が変換される。
|
これらのガイドラインが示しているのは、パケットを変換する方法が複数あるということです。特定のニーズに応じて、NATインターフェイス(内部または外部)の定義方法、および変換前または変換後にルーティングテーブルに含まれるルートを決定できます。パケットの変換される部分は、パケットが移動する方向とNATの設定方法によって異なることに注意してください。
関連情報