シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

NAT address が Local Route として学習され通信が出来ない問題への対処

IOS 15.2(1)T 以降へのSoftware Upgrade 後に同様の設定を使用してもNAT通信が正常に行えない事例が報告されています。

この記事ではこの問題の概要、発生条件、対処法について紹介します。

 

問題の概要

 

15.2(1)T 以降の Software での一部コード実装変更の影響により、これまでと同様の設定を使用されていてもNAT通信が正常に行えない問題が報告されています。

この問題に該当すると、NAT outside local address 等が Routing Table にて Local route として学習され、この影響により NAT Router がこのアドレスに応答してしまいます。(Pingの場合はPing応答します。)

この結果、正常に NAT 変換、Packet 転送が行われません。

 

IOS では NAT outside local address 等について alias を作成し ARP 応答等を行う動作がありますが、この alias 作成動作とコード実装変更の影響にて問題の状況が見られております。

 

この問題は不具合ではないため、条件に該当する場合は以下のような設定にて回避いただく必要がございます。

 

発生条件: 構成と設定例

以下のような構成、設定にて本問題の影響を受けます。

/// NAT Router の設定 ///

interface Ethernet0/0
 ip address 10.1.1.2 255.255.255.0
 ip nat inside

interface Ethernet1/0
 ip address 10.2.2.2 255.255.255.0
 ip nat outside

ip nat outside source static 10.2.2.3 10.1.1.3 add-route

* NAT outside local address である 10.1.1.3 が Local Segment 10.1.1.0/24 に含まれている必要があります。

 

問題発生時のログ

上記の構成・設定例に該当した場合、以下のようなログが確認できます。

 

Router#show ip route
C        10.1.1.0/24 is directly connected, Ethernet0/0
L        10.1.1.2/32 is directly connected, Ethernet0/0
L        10.1.1.3/32 is directly connected, Ethernet0/0  << "L"(Local Route) で学習
C        10.2.2.0/24 is directly connected, Ethernet1/0
L        10.2.2.2/32 is directly connected, Ethernet1/0

Router#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.3           10.2.2.3

Router#show ip aliases
Address Type             IP Address      Port
Interface                10.1.1.2
Dynamic                  10.1.1.3
Interface                10.2.2.2

 

なお、15.2(1)T 以前の Version では以下のようなログとなり、同じ設定でも NAT 変換が行えておりました。

 

Router#sh run | i ip nat outside source
ip nat outside source static 10.2.2.3 10.1.1.3 add-route

Router#show ip route
C        10.1.1.0/24 is directly connected, Ethernet0/0
L        10.1.1.2/32 is directly connected, Ethernet0/0
S        10.1.1.3/32 [1/0] via 10.2.2.3                  << "S" (Static Route) で学習
C        10.2.2.0/24 is directly connected, Ethernet1/0
L        10.2.2.2/32 is directly connected, Ethernet1/0

Router#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.3           10.2.2.3

Router#show ip aliases
Address Type             IP Address      Port
Interface                10.1.1.2
Dynamic                  10.1.1.3 
Interface                10.2.2.2

 

対応策

NAT rule の設定にて “no-alias” option を使用いただくことで、問題を解決できます。

 

対応策設定
ip nat outside source static 10.2.2.3 10.1.1.3 no-alias add-route

Router#show ip route
C        10.1.1.0/24 is directly connected, Ethernet0/0
L        10.1.1.2/32 is directly connected, Ethernet0/0
S        10.1.1.3/32 [1/0] via 10.2.2.3
C        10.2.2.0/24 is directly connected, Ethernet1/0
L        10.2.2.2/32 is directly connected, Ethernet1/0

Router#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.3           10.2.2.3

Router#show ip aliases
Address Type             IP Address      Port
Interface                10.1.1.2
Interface                10.2.2.2

 

なお、通常 IOS Router では interface にて proxy-arp が default で有効となっているため問題ございませんが、被疑 Address についてIOS Router での ARP 応答には proxy-arp 設定が必須となることにご注意ください。

 

補足: debug 使用時の出力例

問題に該当した場合、“debug ip icmp” と “debug ip nat” を有効化し 10.1.1.1 から 10.1.1.3 へ Ping をしてみると、本来 NAT 変換されてほしい 10.1.1.3 宛の通信が、NAT-Routerにて応答が返されてしまい 10.2.2.3 まで通信できない状況となってしまいます。

 

Router#
ICMP: echo reply sent, src 10.1.1.3, dst 10.1.1.1, topology BASE, dscp 0 topoid 0

対応策の “no-alias” optionを使用することで、以下のようにNAT変換が成功します。

 

Router#
NAT*: s=10.1.1.1, d=10.1.1.3->10.2.2.3 [20]
NAT*: s=10.2.2.3->10.1.1.3, d=10.1.1.1 [20]

Router#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.3           10.2.2.3
icmp 10.1.1.1:4        10.1.1.1:4         10.1.1.3:4         10.2.2.3:4

 

バージョン履歴
改訂番号
1/1
最終更新:
‎06-10-2014 09:34 PM
更新者:
 
ラベル(1)
タグ(1)