Cisco機器でのポリシーベースNATの概要と設定方法について説明します。
NATの概要については、下記を参照してください。
ポリシーベースNATとは
ポリシーベースNATとは、通信内容に応じて、NAT変換アドレスを使い分ける技術です。例えば、同じ送信元からの通信でも、送信先によって、NAT変換アドレスを変えることが可能です。
例)
内部サーバー(192.168.1.1)から通信を行う際に、送信先が外部サーバー1(100.100.1.1)の場合は「10.10.100.1」に、送信先が外部サーバー2(200.200.1.1)の場合は「10.10.200.1」にNATすることができます。
通信内容の判定にはアクセスリストを利用するため、送信先アドレスだけではなく、プロトコルやポート番号での制御が可能です。
ポリシーベースNATの設定方法
上述のネットワーク構成を例に、設定方法を説明します。
Cisco機器でポリシーベースNATを利用する場合、以下の手順で設定します。
IPアドレスの設定、NATのゾーン(inside/outside)の設定を行います。
interface GigabitEthernet0/0
ip address 192.168.1.254 255.255.255.0
ip nat inside
# NAT内部ゾーンとして設定
interface GigabitEthernet0/1
ip address 100.100.1.254 255.255.255.0
ip nat outside
# NAT外部ゾーンとして設定
interface GigabitEthernet0/2
ip address 200.200.1.254 255.255.255.0
ip nat outside
# NAT外部ゾーンとして設定
通信を特定するためにアクセスリストを設定します。
access-list 100 permit ip host 192.168.1.1 host 100.100.1.1
# 送信元:192.168.1.1、送信先:100.100.1.1を対象とするアクセスリスト
access-list 101 permit ip host 192.168.1.1 host 200.200.1.1
# 送信元:192.168.1.1、送信先:200.200.1.1を対象とするアクセスリスト
アクセスリストの対象となった通信を分類するために、ルートマップを設定します。
route-map NAT-MAP-1 permit 10
match ip address 100
# ACL100にマッチした場合は、NAT-MAP-1に分類
route-map NAT-MAP-2 permit 10
match ip address 101
# ACL101にマッチした場合は、NAT-MAP-2に分類
ルートマップを適用したNATの設定を行います。
ip nat inside source static 192.168.1.1 10.10.100.1 route-map NAT-MAP-1
# NAT-MAP-1に分類された場合は、"10.10.100.1"にNAT
ip nat inside source static 192.168.1.1 10.10.200.1 route-map NAT-MAP-2
# NAT-MAP-1に分類された場合は、"10.10.200.1"にNAT
最終的なコンフィグ は下記の通りです。
interface GigabitEthernet0/0
ip address 192.168.1.254 255.255.255.0
ip nat inside
interface GigabitEthernet0/1
ip address 100.100.1.254 255.255.255.0
ip nat outside
interface GigabitEthernet0/2
ip address 200.200.1.254 255.255.255.0
ip nat outside
ip nat inside source static 192.168.1.1 10.10.100.1 route-map NAT-MAP-1
ip nat inside source static 192.168.1.1 10.10.200.1 route-map NAT-MAP-2
route-map NAT-MAP-2 permit 10
match ip address 101
route-map NAT-MAP-1 permit 10
match ip address 100
access-list 100 permit ip host 192.168.1.1 host 100.100.1.1
access-list 101 permit ip host 192.168.1.1 host 200.200.1.1
通信確認
内部サーバーから外部サーバーへ通信を行い、NATルーターのステータスやデバッグログ、パケットキャプチャを確認します。
機器ステータス
「show ip nat translations」コマンドで、NATのステータスを確認します。
通信前
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 10.10.100.1 192.168.1.1 --- ---
--- 10.10.200.1 192.168.1.1 --- ---
通信発生時
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 10.10.100.1:846 192.168.1.1:846 100.100.1.1:846 100.100.1.1:846
icmp 10.10.200.1:847 192.168.1.1:847 200.200.1.1:847 200.200.1.1:847
--- 10.10.100.1 192.168.1.1 --- ---
--- 10.10.200.1 192.168.1.1 --- ---
送信先(Outsideのアドレス)によって、NATアドレス(Inside global)が変わっていることが確認できます。
デバッグログ
「debug ip nat detailed」コマンドで、NATの詳細デバッグを有効にしてログを確認します。
内部サーバー→外部サーバー1への通信時
10:45:34.477: NAT: map match NAT-MAP-1
10:45:34.477: mapping pointer available mapping:0
10:45:34.477: NAT: New entry added to map hash table
10:45:34.477: NAT*: i: icmp (192.168.1.1, 834) -> (100.100.1.1, 834) [11781]
10:45:34.477: NAT*: s=192.168.1.1->10.10.100.1, d=100.100.1.1 [11781]
内部サーバー→外部サーバー2への通信時
10:46:14.991: NAT: map match NAT-MAP-2
10:46:14.991: mapping pointer available mapping:0
10:46:14.991: NAT: New entry added to map hash table
10:46:14.991: NAT*: i: icmp (192.168.1.1, 836) -> (200.200.1.1, 836) [62260]
10:46:14.991: NAT*: s=192.168.1.1->10.10.200.1, d=200.200.1.1 [62260]
対象のルートマップにマッチし、適切にNAT処理されていることが確認できます。
パケットキャプチャ
内部サーバー側のキャプチャ
外部サーバー1側のキャプチャ
外部サーバー1側のキャプチャでは、10.10.100.1にNATされていることが確認できます。
内部サーバー側のキャプチャ
外部サーバー2側のキャプチャ
外部サーバー2側のキャプチャでは、10.10.200.1にNATされていることが確認できます。
以上で、「Cisco機器のNAT設定 | 静的NAT(ポリシーベースNAT)」の説明は完了です!