ip nat outside source - Static NAT



 ◆ ip nat outside source(外部送信元アドレス変換)

 ip nat outsideコマンドにより、外部(ip nat outsideの設定があるインターフェース側)から着信してくる
 送信元アドレスの変換を行うことができます。外部の送信元アドレス変換を行うためには、Ciscoコマンドは
 
ip nat outside source staticを使用します。一方、内部の送信元アドレス変換を行うためのCiscoコマンドは
 ip nat inside source static となります。先ず、ip nat inside source staticにより変換される対象を見ます。


   



 そして、今回解説する ip nat outside source static の設定によって変換される対象を見てみましょう。

   



 ◆ スタティックNAT - ip nat outside source(外部送信元アドレス変換)

 外部送信元アドレス変換を行うためには、「外部グローバルアドレス」と「外部ローカルアドレス」を
 マッピングさせる必要があり、それは以下のコマンドで設定します。

 
◆ @ NAT変換する 「 送信元:外部グローバルアドレス 」 と 「 送信元:外部ローカルアドレス 」を定義
 (config)#
ip nat outside source static global-ip local-ip


 次に、「内部ネットワーク」または「外部ネットワーク」の定義をインターフェースに割り当てます。

 ◆ A 内部/外部ネットワークの指定
 (config-if)#
ip nat inside | outside


 下図をもとに設定例を紹介します。外部ホスト「10.1.1.10」は、送信元アドレスを「192.168.1.20」に
 変換したいと考えています。送信元アドレスが変換されるということは、戻りのパケット(BとC)では
 宛先アドレスが変換されます。その結果、パケットの中身は下図の通りになります。


   


 Cisco(config) # ip nat outside source static 10.1.1.10 192.168.1.20

 Cisco(config) # interface GigabitEthernet0/1
 Cisco(config-if) # ip address 192.168.1.254 255.255.255.0
 Cisco(config-if) # ip nat inside

 Cisco(config) # interface GigabitEthernet0/0
 Cisco(config-if) # ip address 10.1.1.254 255.255.255.0
 Cisco(config-if) # ip nat outside

 Cisco(config) # ip route 192.168.1.20 255.255.255.255 GigabitEthernet0/0


 ここでポイントとなるのが最終行のスタティックルート。 NATの変換処理順序は、InsideからOutsideへ
 パケットが転送される時、
ルーティングが行われた後にNAT変換が行われます。上図で変換後のアドレス
 である「192.168.1.20」に返送するBのパケットがルータに着信した時に、最終行のスタティックルート
 がない場合、先にルーティングが行われた結果、出力インターフェースが Gi0/1 に決定してしまいます。

 先にNAT変換が行われるのなら「10.1.1.10」にアドレス変換して、ルーティング処理の結果が出力される
 インターフェースが「Gi0/0」となり、正常にパケットが転送されます。しかし、InsideからOutsideへは
 先にルーティングを行われて、次にNAT変換が行われるので、上記のようにホストルートを定義する必要が
 あります。※ 先にルーティングが行われても、出力I/Fが意図するI/Fになるならこのホストルートは不要。

 NATテーブルの一行目は ip nat outside source コマンドを設定した時点で生成されます。2行目については
 実際に通信が発生した後に生成されます。

show ip nat translation
Pro Inside global Inside local Outside local Outside global
--- --- --- 192.168.1.20 10.1.1.10
tcp 192.168.1.10:22 192.168.1.10:22 192.168.1.20:51179 10.1.1.10:51179


 あまり知られていませんが、上図で最終行のスタティックルートを設定しなくても以下のコンフィグ通り
 スタティックNATの設定時に「
add-route」コマンドを設定することでも、通信ができるようになります。
 add-routeでルーティングテーブルに「S 192.168.1.20/32 [1/0] via 10.1.1.10」が自動設定されます。

 Cisco(config) # ip nat outside source static 10.1.1.10 192.168.1.20 add-route



 ただし、Cisco IOS 15.2(1)T 以降では一部コード実装変更の影響により、上述の add-route の設定では
 NAT通信が正常に行えない問題が報告されています。この問題を解決するためには、Cisco社の見解どおり
 add-route の設定をする場合、追加で「
no-alias」コマンドもオプション設定することが必要となります。

 Cisco(config) # ip nat outside source static 10.1.1.10 192.168.1.20 no-alias add-route



NATの技術

ネットワークエンジニアとして

Copyright (C) 2002-2024 ネットワークエンジニアとして All Rights Reserved.