概要
このドキュメントでは、ip nat outside source staticコマンドを使用する設定と、NATプロセスの結果として生成されるIPパケットについて説明します。
前提条件
要件
次の項目に関する専門知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、Cisco IOS(R) ソフトウェア リリース 12.2(27) が稼働する Cisco 2500 シリーズ ルータに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このドキュメントには、ip nat outside source static コマンドを使用した設定例が記載されています。また、NAT プロセスにおいて IP パケットがどのように処理されるかについても簡単に説明しています。例として、このドキュメントで示されているネットワーク トポロジを取り上げます。
設定
注:このドキュメントで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。シスコの登録ユーザのみが内部ツールと情報にアクセスできます。
ネットワーク図
このドキュメントでは、次のネットワーク設定を使用します。
ネットワーク図
ルータ2514WのLoopback1インターフェイスを送信元とし、ルータ2501EのLoopback0インターフェイスを宛先とするpingを発行すると、次のようになります。
- ルータ2514Xの外部インターフェイス(S1)では、pingパケットは送信元アドレス(SA)が172.16.89.32、宛先アドレス(DA)が172.16.68.1で表示されます。
- NATはSAを外部ローカルアドレス172.16.68.5に変換します(ルータ2514Xで設定されたip nat outside source staticコマンドに対応)。
- 次に、ルータ2514Xはルーティングテーブルで172.16.68.1へのルートをチェックします。
- ルートが存在しない場合、ルータ2514Xはパケットをドロップします。この場合、ルータ2514Xには、172.31.1.0へのスタティックルートを経由する172.16.68.1へのルートがあります。 パケットは宛先に転送されます。
- ルータ2501Eは、SAが172.16.68.5、DAが172.16.68.1のパケットを着信インターフェイス(E0)で確認します。
- Internet Control Message Protocol(ICMP)エコー応答を172.16.68.5に送信します。ルートがない場合はパケットを廃棄します。
- この例では(デフォルト)ルートがあります。
- したがって、ルータ2514Xに応答パケットを送信します。SAは172.16.68.1、DAは172.16.68.5です。
- ルータ2514Xはパケットを確認し、172.16.68.5アドレスへのルートをチェックします。
- 経路がない場合、ICMP 到達不能応答で応答します。
- この例では、172.16.68.5 へのルートは存在します(スタティック ルートを使用)。
- したがって、このパケットは元の 172.16.89.32 アドレスに変換されて、外部インターフェイス(S1)に転送されます。
設定
このドキュメントでは、次の構成を使用します。
ルータ2514W |
hostname 2514W
!
!--- Output suppressed.
interface Loopback1
ip address 172.16.89.32 255.255.255.0
!
interface Ethernet1
no ip address
no ip mroute-cache
!
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.
ip nat outside source static 172.16.89.32 172.16.68.5
!--- Outside local address.
!
!--- Output suppressed.
interface Ethernet1
ip address 172.31.192.202 255.255.255.0
ip nat inside
!--- Defines Ethernet 1 as a NAT inside interface.
no ip mroute-cache
no ip route-cache
!
interface Serial1
ip address 172.16.191.253 255.255.255.252
no ip route-cache
ip nat outside
!--- Defines Serial 1 as a NAT outside interface.
clockrate 2000000
!
!--- Output suppressed.
ip classless
ip route 172.31.1.0 255.255.255.0 172.31.192.201
ip route 172.31.16.0 255.255.255.0 172.16.191.254
!--- Static routes for reaching the loopback interfaces
!--- on 2514E and 2514W.
!
!--- Output suppressed.
|
ルータ2501E |
hostname rp-2501E
!
!--- Output suppressed.
interface Loopback0
ip address 172.16.68.1 255.255.255.0
!
interface Ethernet0
ip address 172.31.192.201 255.255.255.0
!
!--- Output suppressed.
ip classless
ip route 0.0.0.0 0.0.0.0 172.31.192.202
!--- Default route to forward packets to 2514X.
!
!--- Output suppressed.
|
確認
注:内部ツールおよび情報にアクセスできるのは、登録されたシスコユーザだけです。
Cisco CLIアナライザを使用して、showコマンド出力の分析を表示します。 Cisco CLI Analyzer(OIT)では、いくつかのshowコマンドがサポートされています。
次の出力に示すように、show ip nat translationsコマンドを使用して変換エントリを確認します。
2514X#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 172.16.68.5 172.16.89.32
2514X#
トラブルシュート
この例では、NATプロセスを示すために、NAT変換デバッグとIPパケットデバッグを使用しています。
注:debugコマンドは大量の出力を生成するため、IPネットワークのトラフィックが少なく、システム上の他のアクティビティに悪影響を与えないような場合にのみ使用してください。
注:debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。
この出力は、ルータ2514Wのloopback1インターフェイスアドレス(172.16.89.32)からルータ2501のEのloopback0インターフェイスアドレス(172.16.68.1)にpingを実行しながら、ルータ2514Xでdebug ip packetコマンドとdebug ip natコマンドを同時に使用した場合の結果です。
次の出力は、ルータ2514Xの外部インターフェイスに到達した最初のパケットを示しています。172.16.89.32 の送信元アドレスは 172.16.68.5 に変換されます。ICMP パケットは Ethernet1 インターフェイス外部の送信先に向けて転送されます。
5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [171]
5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed
via RIB
5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,
len 100, forward
5d17h: ICMP type=8, code=0
この出力では、172.16.68.1 からのリターン パケットの宛先アドレスが 172.16.68.5 から 172.16.89.32 に変換されることが示されています。結果のICMPパケットはSerial1インターフェイスから転送されます。
5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed
via RIB
5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [171]
5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,
len 100, forward
5d17h: ICMP type=0, code=0
ICMP パケットの交換は継続されます。このデバッグ出力の NAT プロセスは、上の出力と同じです。
5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [172]
5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed
via RIB
5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,
len 100, forward
5d17h: ICMP type=8, code=0
5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed
via RIB
5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [172]
5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,
len 100, forward
5d17h: ICMP type=0, code=0
5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [173]
5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed
via RIB
5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,
len 100, forward
5d17h: ICMP type=8, code=0
5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed
via RIB
5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [173]
5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,
len 100, forward
5d17h: ICMP type=0, code=0
5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [174]
5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed
via RIB
5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,
len 100, forward
5d17h: ICMP type=8, code=0
5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed
via RIB
5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [174]
5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,
len 100, forward
5d17h: ICMP type=0, code=0
5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [175]
5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed
via RIB
5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,
len 100, forward
5d17h: ICMP type=8, code=0
5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed
via RIB
5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [175]
5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,
len 100, forward
5d17h: ICMP type=0, code=0
要約
パケットが外部から内部に移動する場合は、先に変換が行われてから、ルーティング テーブルで宛先がチェックされます。パケットが内部から外部へ移動するとき、まず送信先についてルーティング テーブルをチェックしてから次に変換が行われます。詳細については、『NAT の処理順序』を参照してください。
前の各コマンドと一緒に使用した場合に変換されるIPパケットの部分は考慮しないでください。次の表にガイドラインを示します。
これらのガイドラインは、パケットの変換方法が複数あることを示しています。特定のニーズに基づいて、NATインターフェイス(内部または外部)の定義方法と、変換前または変換後にルーティングテーブルに含まれるルートを決定する必要があります。パケットのどの部分が変換されるかは、パケットの移動方向と NAT の設定によって決定されるということを常に念頭に置いてください。
関連情報