この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、NAT 環境での IP 接続の問題をトラブルシューティングする方法について説明します。
このドキュメントに関する固有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
このドキュメントでは、次の 2 つの例を確認して、NAT 環境での IP 接続の問題をトラブルシューティングする方法について説明します。
次の基本的な手順は、NAT 動作に問題があるかどうかを判断するのに役立ちます。
1. 設定を確認し、NATが達成すべきことを明確に定義します。レビューに基づいて、設定に問題があるかどうかを判断できます。NAT の設定については、「ネットワークアドレス変換の設定」を参照してください。
2. 正しい変換が変換テーブルに存在することを確認します。
3. showコマンドとdebugコマンドを使用して、変換が行われたことを確認します。
4. パケットに何が起こるかを詳細に検討し、パケットを転送するための正しいルーティング情報がルータにあることを確認します。
この最初のシナリオでは、ルータ 4 はルータ 5(172.16.6.5)に ping できますが、ルータ 7(172.16.11.7)には ping できません。
NAT トポロジ
Router4#ping 172.16.6.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.6.5, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/2 ms
Router4#ping 172.16.11.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.11.7, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Router4#
このシナリオに関する重要な考慮事項:
interface GigabitEthernet1
ip address 172.16.11.6 255.255.255.0
ip nat outside
negotiation auto
no mop enabled
no mop sysid
!
interface GigabitEthernet2
ip address 172.16.6.6 255.255.255.0
ip nat outside
negotiation auto
no mop enabled
no mop sysid
!
interface GigabitEthernet3
ip address 10.10.10.6 255.255.255.0
ip nat inside
negotiation auto
no mop enabled
no mop sysid
!
!
ip nat pool test 172.16.11.70 172.16.11.71 prefix-length 24 ip nat inside source static 10.10.10.4 172.16.6.14 ip nat inside source list 7 pool test
!
ip access-list standard 7
10 permit 10.10.50.4
20 permit 10.10.60.4
30 permit 10.10.70.4
1. まず、NAT が正しく機能していることを確認する必要があります。前の設定から、ルータ 4 の IP アドレス 10.10.10.4 が 172.16.6.14 に静的に変換されていることがわかります。ルータ 6 で show ip nat translation コマンドを使用して、変換が変換テーブルに存在することを検証できます。
NAT-Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 172.16.6.14 10.10.10.4 --- ---
Total number of translations: 1
NAT-Router#
2. ルータ 4 が IP トラフィックを送信するときに、この変換が行われるようにします。これは、ルータ 6 から 2 つの方法で実行できます。show ip nat statistics コマンドを使用して、NAT デバッグを実行するか、NAT 統計情報をモニターします。debug コマンドは最後の手段であるため、show コマンドから始めます。
3. カウンタをモニターして、ルータ 4 からトラフィックを受信するにつれてカウンタが増加することを確認します。カウンタは、変換テーブルを使用してアドレスを変換するたびに増加します。
4. 統計情報をクリアしてから統計情報を表示し、ルータ 4 からルータ 7 に ping を実行してから、統計情報を再度表示します。
NAT-Router#clear ip nat statistics
NAT-Router#
NAT-Router#show ip nat statistics
Total active translations: 1 (1 static, 0 dynamic; 0 extended)
Outside interfaces:
GigabitEthernet1, GigabitEthernet2
Inside interfaces:
GigabitEthernet3
Hits: 0 Misses: 0
Expired translations: 0
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 7 pool test refcount 0
pool test: id 1, netmask 255.255.255.0
start 172.16.11.70 end 172.16.11.71
type generic, total addresses 2, allocated 0 (0%), misses 0
nat-limit statistics:
max entry: max allowed 0, used 0, missed 0
In-to-out drops: 0 Out-to-in drops: 0
Pool stats drop: 0 Mapping stats drop: 0
Port block alloc fail: 0
IP alias add fail: 0
Limit entry add fail: 0
NAT-Router#
ルータ 4 で ping 172.16.11.7 コマンドを使用すると、ルータ 6 の NAT 統計情報は次のようになります。
Router4#ping 172.16.11.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.11.7, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Router4#
NAT-Router#show ip nat statistics
Total active translations: 2 (1 static, 1 dynamic; 1 extended)
Outside interfaces:
GigabitEthernet1, GigabitEthernet2
Inside interfaces:
GigabitEthernet3
Hits: 4 Misses: 1
Expired translations: 0
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 7 pool test refcount 0
pool test: id 1, netmask 255.255.255.0
start 172.16.11.70 end 172.16.11.71
type generic, total addresses 2, allocated 0 (0%), misses 0
nat-limit statistics:
max entry: max allowed 0, used 0, missed 0
In-to-out drops: 0 Out-to-in drops: 0
Pool stats drop: 0 Mapping stats drop: 0
Port block alloc fail: 0
IP alias add fail: 0
Limit entry add fail: 0
NAT-Router#
show コマンドでヒット数が増加したことを確認できます。Cisco ルータからの ping が成功すると、ヒット数が 10 増加します。送信元ルータ(ルータ 4)から送信された Internet Control Message Protocol(ICMP)エコーが変換されます。また、宛先ルータ(ルータ 7)からのエコー応答パケットも変換される必要があり、ヒット数は合計 10 回になります。5 ヒットの損失があるのは、エコー応答が変換されないか、ルータ 7 から送信されないためです。
次に、ルータ 7 がルータ 4 にエコー応答パケットを送信しない理由があるかどうかを確認します。この時点で、次の手順が実行されています。
注:パケットが宛先ルータに到達しているかどうかを確認するもう 1 つの方法は、組み込みパケットキャプチャ(EPC)を使用するか、アクセスリスト(ACL)とともに debug ip icmp/debug ip packet を使用することです。
次に、ルータ 7 のルーティングテーブルを調べて、172.16.6.14 へのルートが存在するかどうかを確認する必要があります。
Router7#show ip route
Codes: L - local, C - connected, S - static, 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, m - OMP
n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
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
H - NHRP, G - NHRP registered, g - NHRP registration summary
o - ODR, P - periodic downloaded static route, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
& - replicated local route overrides by connected
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.11.0/24 is directly connected, GigabitEthernet1
L 172.16.11.7/32 is directly connected, GigabitEthernet1
Router7#
前の出力から、ルータ 7 のルーティングテーブルに 172.16.6.14 サブネットのルートがないことがわかります。これが修正され、ルートが設定に追加されると、ping が機能します。 show ip nat statistics コマンドを使用した NAT 統計情報をモニターすることが効果的です。ただし、より複雑な NAT 環境で複数の変換が行われる場合は、この show コマンドは役に立たないため、ルータでデバッグを使用する必要があります。
Router7#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router7(config)#ip route 172.16.6.0 255.255.255.0 172.16.11.6 Router7(config)#end Router7#
Router4#ping 172.16.11.7 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.11.7, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/8 ms Router4#
NAT-Router#show ip nat statistics Total active translations: 2 (1 static, 1 dynamic; 1 extended) Outside interfaces: GigabitEthernet1, GigabitEthernet2 Inside interfaces: GigabitEthernet3 Hits: 9 Misses: 1 Expired translations: 0 Dynamic mappings: -- Inside Source [Id: 1] access-list 7 pool test refcount 0 pool test: id 1, netmask 255.255.255.0 start 172.16.11.70 end 172.16.11.71 type generic, total addresses 2, allocated 0 (0%), misses 0 nat-limit statistics: max entry: max allowed 0, used 0, missed 0 In-to-out drops: 0 Out-to-in drops: 0 Pool stats drop: 0 Mapping stats drop: 0 Port block alloc fail: 0 IP alias add fail: 0 Limit entry add fail: 0 NAT-Router#
この問題では、ルータ 4 はルータ 5 とルータ 7 の両方を ping できますが、10.10.50.0 のネットワーク上のデバイスはルータ 5 またはルータ 7 と通信できません。
Router4#ping 172.16.11.7 source 10.10.50.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.11.7, timeout is 2 seconds:
Packet sent with a source address of 10.10.50.4
.....
Success rate is 0 percent (0/5)
Router4#ping 172.16.6.5 source 10.10.50.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.6.5, timeout is 2 seconds:
Packet sent with a source address of 10.10.50.4
.....
Success rate is 0 percent (0/5)
Router4#
この問題のネットワーク構成図は同じです。
NAT トポロジ
interface GigabitEthernet1
ip address 172.16.11.6 255.255.255.0
ip nat outside
negotiation auto
no mop enabled
no mop sysid
!
interface GigabitEthernet2
ip address 172.16.6.6 255.255.255.0
ip nat outside
negotiation auto
no mop enabled
no mop sysid
!
interface GigabitEthernet3
ip address 10.10.10.6 255.255.255.0
ip nat inside
negotiation auto
no mop enabled
no mop sysid
!
!
ip nat pool test 172.16.11.70 172.16.11.71 prefix-length 24 ip nat inside source static 10.10.10.4 172.16.6.14 ip nat inside source list 7 pool test
!
ip access-list standard 7
10 permit 10.10.50.4
20 permit 10.10.60.4
30 permit 10.10.70.4
ルータ 6 の設定から、NAT が NAT プール「テスト」の使用可能な最初のアドレスに、10.10.50.4 を動的に変換するものと想定されていることがわかります。プールは、172.16.11.70 と 172.16.11.71 のアドレスで構成されています。この問題から、ルータ 5 とルータ 7 が受信するパケットは 172.16.11.70 または 172.16.11.71 の発信元アドレスを持つことがわかります。これらのアドレスはルータ 7 と同じサブネット上にあるため、ルータ 7 にはこのサブネットに直接接続されたルートがあるはずですが、ルータ 5 にサブネットへのルートがまだない場合は必要です。
ルータ 5 のルーティング テーブルに 172.16.11.0 が記載されているを確認するためには、show ip route コマンドを使用できます。
Router5#show ip route
Codes: L - local, C - connected, S - static, 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, m - OMP
n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
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
H - NHRP, G - NHRP registered, g - NHRP registration summary
o - ODR, P - periodic downloaded static route, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
& - replicated local route overrides by connected
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C 172.16.6.0/24 is directly connected, GigabitEthernet1
L 172.16.6.5/32 is directly connected, GigabitEthernet1
S 172.16.11.0/24 [1/0] via 172.16.6.6
ルータ 7 のルーティング テーブルに、直接接続のサブネットとして 172.16.11.0 が記載されているを確認するためには、次のように show ip route コマンドを使用できます。
Router7#show ip route
Codes: L - local, C - connected, S - static, 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, m - OMP
n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
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
H - NHRP, G - NHRP registered, g - NHRP registration summary
o - ODR, P - periodic downloaded static route, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
& - replicated local route overrides by connected
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
S 172.16.6.0/24 [1/0] via 172.16.11.6
C 172.16.11.0/24 is directly connected, GigabitEthernet1
L 172.16.11.7/32 is directly connected, GigabitEthernet1
NAT 変換テーブルを確認し、予測される変換が存在することを確認します。目的の変換は動的に作成されるため、まず適切なアドレスから IP トラフィックを送信する必要があります。10.10.50.4 から 172.16.11.7 宛ての ping が送信されると、ルータ 6(NAT ルータ)の変換テーブルに次の出力が表示されます。
NAT-Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 172.16.6.14 10.10.10.4 --- ---
--- 172.16.11.70 10.10.50.4 --- ---
Total number of translations: 2
想定される変換が変換テーブルにあるため、ICMP エコーパケットが適切に変換されていることがわかります。1 つの方法は、NAT 統計情報をモニターすることですが、これは複雑な環境では役に立ちません。次のオプションは、NAT ルータ(ルータ 6)上で NAT のデバッグを実行することです。10.10.50.4 から 172.16.11.7 宛てに ping を送信している間、debug ip nat を実行できます。デバッグの結果は、次のコード例に示されています。
注:ルータで debug コマンドを使用すると、ルータが過負荷になり、動作不能になる可能性があります。 常に細心の注意を払い、可能であれば、重要な実稼働ルータでデバッグを実行する前にCisco TACの支援を受けられるように注意してください。
NAT-Router#show logging Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns) Console logging: level debugging, 39 messages logged Monitor logging: level debugging, 0 messages logged Buffer logging: level debugging, 39 messages logged Trap logging: level informational, 33 message lines logged Log Buffer (4096 bytes): 05:32:23: NAT: s=10.10.50.4->172.16.11.70, d=172.16.11.7 [70] 05:32:23: NAT*: s=172.16.11.7, d=172.16.11.70->10.10.50.4 [70] 05:32:25: NAT*: s=10.10.50.4->172.16.11.70, d=172.16.11.7 [71] 05:32:25: NAT*: s=172.16.11.7, d=172.16.11.70->10.10.50.4 [71] 05:32:27: NAT*: s=10.10.50.4->172.16.11.70, d=172.16.11.7 [72] 05:32:27: NAT*: s=172.16.11.7, d=172.16.11.70->10.10.50.4 [72] 05:32:29: NAT*: s=10.10.50.4->172.16.11.70, d=172.16.11.7 [73] 05:32:29: NAT*: s=172.16.11.7, d=172.16.11.70->10.10.50.4 [73] 05:32:31: NAT*: s=10.10.50.4->172.16.11.70, d=172.16.11.7 [74] 05:32:31: NAT*: s=172.16.11.7, d=172.16.11.70->10.10.50.4 [74]
Router7#show monitor capture cap buffer brief
----------------------------------------------------------------------------
# size timestamp source destination dscp protocol
----------------------------------------------------------------------------
0 114 0.000000 172.16.11.70 -> 172.16.11.7 0 BE ICMP
1 114 2.000000 172.16.11.70 -> 172.16.11.7 0 BE ICMP
2 114 4.000000 172.16.11.70 -> 172.16.11.7 0 BE ICMP
3 114 6.001999 172.16.11.70 -> 172.16.11.7 0 BE ICMP
4 114 8.001999 172.16.11.70 -> 172.16.11.7 0 BE ICMP
上記の debug の出力から確認できるように、最初の行では 10.10.50.4 の発信元アドレスが 172.16.11.70 に変換されていることを示しています。2 番目の行では、宛先アドレス 172.16.11.70 が 10.10.50.4 に変換し戻されていることを示しています。このパターンは残りのdebug を通じて繰り返されます。これは、NAT ルータがパケットを双方向に変換することを意味します。また、パケットキャプチャから、ルータ 7 が送信元 172.16.11.70 および宛先 172.16.11.7 の ICMP パケットを実際に受信していることがわかります。
後続の手順は、この問題の現在のステータスを要約しています。
1. ルータ 4 では 10.10.50.4 から発信し、172.16.11.7(実行したテストによっては 172.16.6.5)を宛先とするパケットが送信されます。
2. NAT ルータは、パケットに対して NAT 変換を実行し、送信元を 172.16.11.70、宛先を 172.16.11.7 として転送します。
3. ルータ 7 は、送信元が 172.16.11.7、宛先が 172.16.11.70 の応答を送信します。
4. NAT ルータ(ルータ 6)はパケットに対して NAT を実行します。その結果、送信元アドレスが 172.16.11.7、宛先アドレスが 10.10.50.4 のパケットが生成されます。
5. NAT ルータ(ルータ 6)は、ルーティングテーブルの情報に基づいてパケットを 10.10.50.4 にルーティングします。
この時点で、show ip route コマンドと show ip cef コマンドを使用して、NAT ルータ(ルータ 6)のルーティングテーブルに必要なルートがあることを確認する必要があります。
NAT-Router#show ip route Codes: L - local, C - connected, S - static, 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, m - OMP n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA 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 H - NHRP, G - NHRP registered, g - NHRP registration summary o - ODR, P - periodic downloaded static route, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR & - replicated local route overrides by connected Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.10.10.0/24 is directly connected, GigabitEthernet3 L 10.10.10.6/32 is directly connected, GigabitEthernet3 172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks C 172.16.6.0/24 is directly connected, GigabitEthernet2 L 172.16.6.6/32 is directly connected, GigabitEthernet2 L 172.16.6.14/32 is directly connected, GigabitEthernet2 C 172.16.11.0/24 is directly connected, GigabitEthernet1 L 172.16.11.6/32 is directly connected, GigabitEthernet1 L 172.16.11.70/32 is directly connected, GigabitEthernet1
NAT-Router#show ip route 10.10.50.4 % Subnet not in table NAT-Router#show ip cef 10.10.50.4 0.0.0.0/0 no route NAT-Router#
喪失しているルートを NAT ルータに追加すると、ping は成功します。
NAT-Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
NAT-Router(config)#ip route 10.10.50.4 255.255.255.255 10.10.10.4
NAT-Router(config)#end
NAT-Router#
Router4#ping 172.16.11.7 source 10.10.50.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.11.7, timeout is 2 seconds:
Packet sent with a source address of 10.10.50.4
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
Router4#ping 172.16.6.5 source 10.10.50.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.6.5, timeout is 2 seconds:
Packet sent with a source address of 10.10.50.4
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
Router4#
次のチェックリストを使用して、一般的な問題をトラブルシューティングしてください。
適切な変換が変換テーブルにインストールされていない場合は、次のことを確認します。
正しい変換エントリが変換テーブルにインストールされているが、使用されていない場合は、次のことを確認します。
接続の問題をトラブルシューティングするには、次のようにします。
NAT に関連する show コマンド、または show running-config または write memory コマンドが実行されると、後でやり直すというエラーメッセージが表示されます。これは、NAT テーブルのサイズが増加したために発生します。NAT テーブルのサイズが増えると、ルータはメモリ不足になります。
ホストは何百もの変換を送信する可能性があるため、CPU 使用率が高くなります。つまり、作成できるテーブルが大きすぎて、CPU が 100 パーセントで実行される原因となります。ip nat translation max-entries 300 コマンドは、ホストあたり 300 の制限またはルータ上の変換量の総計の制限を作成します。回避策は、ip nat translation max-entries all-hosts 300 コマンドを使用することです。
これは、NATエントリのno-aliasオプションの結果です。
no-alias オプションは、ルータがアドレスに応答せず、ARPエントリをインストールしないことを意味します。別のルータで、NAT プールが、接続されているサブネット上でアドレスを構成する内部グローバル プールとして使用される場合、これらのアドレスに対する Address Resolution Protocol(ARP)要求にルータが応答できるように、そのアドレスに対してエイリアスが生成されます。これにより、ルータは偽のアドレスに対して ARP エントリを持つことになります。
関連情報
改定 | 発行日 | コメント |
---|---|---|
1.0 |
27-Dec-2023 |
初版 |