Cisco機器の静的NAT(スタティックNAT)の概要と、内部送信元アドレスのNAT(ip nat inside source)について説明します。
NATの概要については、下記を参照してください。
Cisco機器の基本的なNATの設定
Cisco機器では、下記の設定を行うことで、NATを行うことができます。
- インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定する
- NAT対象とするネットワーク(内部or外部)と変換前後のIPアドレスを設定する
内部送信元アドレスの変換 | ip nat inside source
ネットワーク構成
下記のネットワーク構成を例に、具体的なNAT設定について説明します。ここでは、内部サーバーのIPアドレスを”192.168.1.1″から”100.100.1.1″に変換します。
設定方法
内部サーバーのアドレスを変換する場合は、下記の設定を行います。
# Gi0/0をinsideに指定
interface GigabitEthernet0/0
ip nat inside
# Gi0/1をoutsideに指定
interface GigabitEthernet0/1
ip nat outside
# inside側の送信元アドレス"192.168.1.1"を"100.100.1.1"に変換する
ip nat inside source static 192.168.1.1 100.100.1.1
通信確認
内部サーバーから外部サーバーに通信を行い、NATのステータスを確認します。
NATのステータスは、下記のコマンドで確認できます。
show ip nat translations
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 100.100.1.1 192.168.1.1 --- ---
Cisco機器の静的NAT(スタティックNAT)の場合、設定した値が確認できます。
Server1:~$ ping 200.200.1.1
PING 200.200.1.1 (200.200.1.1): 56 data bytes
64 bytes from 200.200.1.1: seq=0 ttl=63 time=2.485 ms
64 bytes from 200.200.1.1: seq=1 ttl=63 time=2.076 ms
64 bytes from 200.200.1.1: seq=2 ttl=63 time=2.440 ms
64 bytes from 200.200.1.1: seq=3 ttl=63 time=2.838 ms
64 bytes from 200.200.1.1: seq=4 ttl=63 time=3.420 ms
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 100.100.1.1:772 192.168.1.1:772 200.200.1.1:772 200.200.1.1:772
--- 100.100.1.1 192.168.1.1 --- ---
NATエントリーが追加され、プロトコル/ポート番号(ICMPの場合はID番号)なども表示されます。
show ip nat translations の見方は下記の通りです。
項目 | 意味 | 説明 |
---|---|---|
Pro | プロトコル | TCP/UDP/ICMPなどのプロトコル情報 |
Inside global | 内部機器のグローバルアドレス | インサイド側の機器のアウトサイド側で見えるアドレス |
Inside local | 内部機器のローカルアドレス | インサイド側の機器のインサイド側で見えるアドレス |
Outside local | 外部機器のローカルアドレス | アウトサイド側の機器のインサイド側で見えるアドレス |
Outside global | 外部機器のグローバルアドレス | アウトサイド側の機器のアウトサイド側で見えるアドレス |
難解な表記となっていますが、下記のように覚えると分かりやすいです。
デバッグ確認
ルーターでのNAT状況を確認するために、下記のデバッグコマンドを実行します。
debug ip nat detailed
NAT実施時のデバッグログ
Router#
03:40:57.051: NAT*: i: icmp (192.168.1.1, 12556) -> (200.200.1.1, 12556) [21875]
03:40:57.051: NAT*: s=192.168.1.1->100.100.1.1, d=200.200.1.1 [21875]
- 1行目:ルーターに着信した通信内容(プロトコルと送信元/送信先のIPアドレス)
- 2行目:送信元のNAT結果
- s=192.168.1.1->100.100.1.1:送信元(s – source)をNAT変換
- d=200.200.1.1:送信先(d – destination)は変更なし
キャプチャ確認
NAT状況を確認するため、双方のサーバーでパケットキャプチャの結果を確認します。
内部サーバー側のパケットキャプチャ
要求(request)パケットの送信元、応答(reply)パケットの送信先が、”192.168.1.1″となっていることがわかります。
外部サーバー側のパケットキャプチャ
要求(request)パケットの送信元、応答(reply)パケットの送信先が、”100.100.1.1″となっていることがわかります。
逆方向の通信について
上記のNAT設定(ip nat inside source 〜〜)では、外部サーバーから内部サーバーのグローバルIPアドレス(100.100.1.1)に通信した場合も、NAT変換が行われます。
下記のように双方向でのNATが可能です。
外部サーバーから通信した場合のデバッグログ
Router#
03:55:29.124: NAT*: o: icmp (200.200.1.1, 12586) -> (100.100.1.1, 12586) [19339]
03:55:29.124: NAT*: s=200.200.1.1, d=100.100.1.1->192.168.1.1 [19339]
送信先がNATされていることがわかります。(d=100.100.1.1->192.168.1.1)
NAT・ルーティング・アクセスリストの処理順序
実際にNATを実装する場合、ルーティングやアクセスリストを適切に設定するにあたり、処理順序を考慮する必要があります。
Cisco機器では、「insideからoutsideへの通信」と「outsideからinsideへの通信」でルーティングとNATの処理順序が異なります。
insideからoutsideへの通信 | outsideからinsideへの通信 |
---|---|
1. パケット着信 2. 入力アクセスリストをチェック 3. ルーティング 4. NAT変換 5. 出力アクセスリストをチェック 6. パケット送信 | 1. パケット着信 2. 入力アクセスリストをチェック 3. NAT変換 4. ルーティング 5. 出力アクセスリストをチェック 6. パケット送信 |
詳細に関しては、下記を参照してください。