Cisco機器のNAT設定 | 静的NAT(スタティックNAT – ip nat inside source)

Cisco機器のNAT設定 | 静的NAT(スタティックNAT - ip nat inside source)

Cisco機器の静的NAT(スタティックNAT)の概要と、内部送信元アドレスのNAT(ip nat inside source)について説明します。

NATの概要については、下記を参照してください。

目次

Cisco機器の基本的なNATの設定

Cisco機器では、下記の設定を行うことで、NATを行うことができます。

  1. インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定する
  2. NAT対象とするネットワーク(内部or外部)と変換前後のIPアドレスを設定する
STEP
インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定する
inside/outsideの指定
STEP
NAT変換前とNAT変換後のIPアドレスを設定する
NAT戦後の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のステータスを確認します。

通信確認
STEP
通信前の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)の場合、設定した値が確認できます。

STEP
内部サーバーから外部サーバーにPing(ICMP通信)を実施
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
STEP
通信後のNATステータス確認
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外部機器のグローバルアドレスアウトサイド側の機器のアウトサイド側で見えるアドレス
覚え方のポイント

難解な表記となっていますが、下記のように覚えると分かりやすいです。

show ip nat translations の出力の見方

デバッグ確認

ルーターでの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. パケット送信

詳細に関しては、下記を参照してください。

  • URLをコピーしました!
  • URLをコピーしました!
目次