作業環境
- Cisco C891FJ-K9
- バージョン:15.3(3)M5
送信元 NAT
1 対 1 変換(静的 NAT)

ip nat inside source static "<変換前IP>" "<変換後IP>"
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース>"
ip nat outside
1 対 1 変換(静的 NAPT)

ip nat inside source static "<tcp | udp>" "<変換前IP>" "<変換前port>" "<変換後IP>" "<変換後port>"
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース>"
ip nat outside
多対多変換(動的 NAT)

ip nat pool "<プール名>" "<先頭IP>" "<末尾IP>" netmask "<サブネットマスク>"
#または
ip nat pool "<プール名>" "<先頭IP>" "<末尾IP>" prefix-length "<プレフィックス長>"
access-list "<ACL番号>" permit "<送信元IP>" "<ワイルドカードマスク>"
ip nat inside source list "<ACL番号>" pool "<プール名>"
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース>"
ip nat outside
多対多変換(動的 NAPT)
IP プール使用

動的 NAT との差分は、ip nat inside source
設定に overload
オプションを付けること。
ip nat pool "<プール名>" "<先頭IP>" "<末尾IP>" netmask "<サブネットマスク>"
#または
ip nat pool "<プール名>" "<先頭IP>" "<末尾IP>" prefix-length "<プレフィックス長>"
access-list "<ACL番号>" permit "<送信元IP>" "<ワイルドカードマスク>"
ip nat inside source list "<ACL番号>" pool "<プール名>" overload
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース>"
ip nat outside
送信インターフェースの IP に変換

access-list "<ACL番号>" permit "<送信元IP>" "<ワイルドカードマスク>"
ip nat inside source list "<ACL番号>" interface "<送信インターフェース>" overload
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース>"
ip nat outside
宛先 NAT
宛先 NAT をしたい場合は、逆方向の送信元 NAT を設定します。

ip nat inside source static "<変換前IP>" "<変換後IP>"
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース>"
ip nat outside
※上の図で言うと
- 変換前IP → yyy.yyy.yyy.yyy
- 変換後IP → zzz.zzz.zzz.zzz
- 受信インターフェース → Gi8
- 送信インターフェース → Fa0
extendable オプション
以下の図のように、各端末からサーバへ通信時に宛先 NAT を使用したい場合、サーバからの通信に対する送信元 NAT を設定します。

ここで、VLAN 別に変換後 IP を変更したい場合、サーバの IP に対して変換後 IP を 2 つ設定することになりますが、このような場合は ip nat inside
設定で extendable
オプションを付ける必要があります。extendable
オプションを付けずに ip nat inside
設定を 2 つ設定しようとするとエラーになります。
Router(config)#ip nat inside source static 1.2.3.4 10.10.10.1
Router(config)#ip nat inside source static 1.2.3.4 10.10.10.2
% 1.2.3.4 already mapped (1.2.3.4 -> 10.10.10.1)
—————————–
■設定テンプレート
ip nat inside source static yyy.yyy.yyy.yyy z1.z1.z1.z1 extendable
ip nat inside source static yyy.yyy.yyy.yyy z2.z2.z2.z2 extendable
interface "<受信インターフェース>"
ip nat inside
interface "<送信インターフェース(1)>"
ip nat outside
interface "<送信インターフェース(2)>"
ip nat outside
NAT 確認コマンド
show ip nat translations
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 192.168.100.20:1 172.16.100.10:1 192.168.100.10:1 192.168.100.10:1
--- 192.168.100.20 172.16.100.10 --- ---
※動的 NAT を設定している場合は、NAT トラフィックが発生しているときのみレコードが表示されます
show ip nat statistics
Router#show ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 1 extended)
Peak translations: 2, occurred 00:00:08 ago
Outside interfaces:
GigabitEthernet8
Inside interfaces:
FastEthernet0
Hits: 10 Misses: 0
CEF Translated packets: 10, CEF Punted packets: 0
Expired translations: 0
Dynamic mappings:
-- Inside Source
[Id: 2] access-list 1 pool pool1 refcount 2
pool pool1: netmask 255.255.255.0
start 192.168.100.2 end 192.168.100.9
type generic, total addresses 8, allocated 1 (12%), misses 0
Total doors: 0
Appl doors: 0
Normal doors: 0
Queued Packets: 0
NAT に関する留意点
- 今回記載した
ip nat inside source
コマンドの他に、ip nat outside source
コマンドによる NAT 設定もあるip nat outside source
では、ip nat outside
を設定したインターフェースで受信するパケットの送信元 IP アドレスを変換する
ip nat inside
と設定したインターフェースで受信したパケットについては NAT 変換をする前の宛先 IP アドレスをもとにルーティングが行われる(NAT より前にルーティングされる)ため、場合によってはスタティックルートの設定が必要- この影響を受けるのは、
ip nat outside source
を設定している場合におけるip nat inside
と設定したインターフェースで受信したパケットのルーティング
- この影響を受けるのは、
- 双方向 NAT の設定をする場合は、
ip nat inside source
とip nat outside source
を組み合わせて設定する - HSRP を構成しているルータで、かつそのルータの Connect セグメントから変換後 IP を払い出す場合は、
redundancy
オプションを設定して HSRP グループ名を指定する必要がありますredundancy
オプションを設定すると Active ルータのみが NAT IP に対する arp 要求に応答するようになります
- outside nat に関しては、source list や source route-map で拡張 ACL を使用して通信の宛先を指定した NAT/NAPT をしようとしても正常に動作しない。以下リンク参照
Route-mapを用いたNAT Outsideの動作について
下記のようなNATでNAT OutsideからInsideへ通信を行った際に、 意図しないNATが行われてしまう動作を取り上げます。 ip nat outside source route-map TEST pool POOL add-route access-list 100 deny ip 10.0.0.0 ...
NAT コンフィグ作成を自動化する
NAT コンフィグの作成を自動化できるツールを以下記事で公開しています。
【Cisco】パラメータシート兼コンフィグ出力ツールを作成しました
参考資料
NATの処理順序について
このドキュメントでは、NATで処理される順序トランザクションが、パケットがネットワークの内部または外部を移動する方向に基づいていることを説明します。